You can subscribe to this list here.
2002 |
Jan
(8) |
Feb
(22) |
Mar
(3) |
Apr
(13) |
May
(1) |
Jun
(4) |
Jul
|
Aug
(5) |
Sep
(9) |
Oct
(36) |
Nov
(7) |
Dec
(15) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(4) |
Feb
(1) |
Mar
(55) |
Apr
(25) |
May
(25) |
Jun
(4) |
Jul
(2) |
Aug
|
Sep
(12) |
Oct
(6) |
Nov
(14) |
Dec
(1) |
2004 |
Jan
(1) |
Feb
(8) |
Mar
(6) |
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(1) |
Oct
(3) |
Nov
(11) |
Dec
|
2005 |
Jan
(14) |
Feb
(3) |
Mar
(4) |
Apr
(14) |
May
(1) |
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(2) |
Nov
(2) |
Dec
(1) |
2006 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(8) |
Oct
(19) |
Nov
(5) |
Dec
|
2007 |
Jan
(5) |
Feb
(1) |
Mar
|
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
(8) |
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Grant M. <gr...@us...> - 2005-04-20 08:47:42
|
Update of /cvsroot/perl-xml/xml-filter-sort In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12698 Added Files: .cvsignore Log Message: - ignore build and test temp files --- NEW FILE: .cvsignore --- Makefile blib pm_to_blib *.tar.gz XML-Filter-Sort* runtest |
From: Grant M. <gr...@us...> - 2005-04-20 02:33:43
|
Update of /cvsroot/perl-xml/xml-filter-sort In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15300 Modified Files: Changes Log Message: - for 1.00 release Index: Changes =================================================================== RCS file: /cvsroot/perl-xml/xml-filter-sort/Changes,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- Changes 14 Jun 2002 20:39:42 -0000 1.1.1.1 +++ Changes 20 Apr 2005 02:33:35 -0000 1.2 @@ -1,13 +1,16 @@ Revision history for Perl extension XML::Filter::Sort. +1.00 20-Apr-2005 + - Fixed serious bug with text content = '0' reported by Rishi Dhupar + 0.91 11-Jun-2002 - - CPAN release - - imported into CVS on SourceForge + - CPAN release + - imported into CVS on SourceForge 0.90 11-Jun-2002 - - pre-CPAN release + - pre-CPAN release 0.01 11-Apr-2002 - - original version; created by h2xs 1.20 with options - -AX -n XML::Filter::Sort + - original version; created by h2xs 1.20 with options + -AX -n XML::Filter::Sort |
From: Grant M. <gr...@us...> - 2005-04-20 02:33:22
|
Update of /cvsroot/perl-xml/xml-filter-sort/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15238/t Modified Files: 4_workout.t Log Message: - add test for text content of '0' Index: 4_workout.t =================================================================== RCS file: /cvsroot/perl-xml/xml-filter-sort/t/4_workout.t,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- 4_workout.t 14 Jun 2002 20:39:48 -0000 1.1.1.1 +++ 4_workout.t 20 Apr 2005 02:33:14 -0000 1.2 @@ -97,6 +97,7 @@ <snackfood>popcorn</snackfood> <person>3<firstname>Wayne</firstname></person> <person>4<firstname>Xavier</firstname></person> + <trailer>0</trailer> </list>); $xmlout = ''; @@ -117,6 +118,7 @@ <snackfood>popcorn</snackfood> <person>3<firstname>Wayne</firstname></person> <person>4<firstname>Xavier</firstname></person> + <trailer>0</trailer> </list>), 'Sorted two independent lists (element between)'); |
From: Grant M. <gr...@us...> - 2005-04-20 02:32:58
|
Update of /cvsroot/perl-xml/xml-filter-sort/lib/XML/Filter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14729/lib/XML/Filter Modified Files: Sort.pm Log Message: - fix bug with text content of '0' Index: Sort.pm =================================================================== RCS file: /cvsroot/perl-xml/xml-filter-sort/lib/XML/Filter/Sort.pm,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- Sort.pm 14 Jun 2002 20:40:02 -0000 1.1.1.1 +++ Sort.pm 20 Apr 2005 02:32:49 -0000 1.2 @@ -1,5 +1,3 @@ -# $Id$ - package XML::Filter::Sort; use strict; @@ -14,7 +12,7 @@ use vars qw($VERSION @ISA); -$VERSION = '0.91'; +$VERSION = '1.00'; @ISA = qw(XML::SAX::Base); @@ -455,7 +453,7 @@ sub send_characters { my $self = shift; - return unless($self->{char_buffer}); + return unless(exists $self->{char_buffer}); if($self->{buffer}) { $self->{buffer}->characters({Data => $self->{char_buffer}}); } |
From: Petr P. <pa...@us...> - 2005-03-24 20:18:51
|
Update of /cvsroot/perl-xml/XML-LibXML-XPathContext In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21695 Modified Files: XPathContext.xs Log Message: avoid using XPathContextDATA on the lvalue side (some compilers seem displeased with it) Index: XPathContext.xs =================================================================== RCS file: /cvsroot/perl-xml/XML-LibXML-XPathContext/XPathContext.xs,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- XPathContext.xs 10 Nov 2003 10:09:12 -0000 1.41 +++ XPathContext.xs 24 Mar 2005 20:18:11 -0000 1.42 @@ -205,7 +205,7 @@ by configure_namespaces */ ctxt->namespaces = NULL; /* backup data */ - XPathContextDATA(copy) = xmlMalloc(sizeof(XPathContextData)); + copy->user = xmlMalloc(sizeof(XPathContextData)); if (XPathContextDATA(copy)) { memcpy(XPathContextDATA(copy), XPathContextDATA(ctxt),sizeof(XPathContextData)); /* clear ctxt->pool, so that it is not used freed during re-entrance */ @@ -239,7 +239,7 @@ if (XPathContextDATA(copy)) { memcpy(XPathContextDATA(ctxt),XPathContextDATA(copy),sizeof(XPathContextData)); xmlFree(XPathContextDATA(copy)); - XPathContextDATA(copy) = XPathContextDATA(ctxt); + copy->user = XPathContextDATA(ctxt); } /* now copy the rest */ memcpy(ctxt, copy, sizeof(xmlXPathContext)); |
From: Petr C. <pci...@us...> - 2005-03-16 11:01:52
|
Update of /cvsroot/perl-xml/sax-perl-org In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11100 Modified Files: changes-2.1.html Log Message: Index: changes-2.1.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/changes-2.1.html,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- changes-2.1.html 15 Mar 2005 16:11:43 -0000 1.6 +++ changes-2.1.html 16 Mar 2005 11:01:39 -0000 1.7 @@ -83,8 +83,8 @@ </b> <i> [resolves issue <a href="#I1">I1</a>]</i> <br /> - The section "Features" defines a read-only 'http://xmlns.perl.org/sax/version' - feature which returns a version of Perl SAX supported by a driver. + The section "Features" defines a read-only 'http://xmlns.perl.org/sax/version-2.1' + feature which returns 1 for a driver supporting Perl SAX 2.1. </p> <p class="change"> <b>Change <a name="C9">C9</a> @@ -93,9 +93,8 @@ <br /> LexicalHandler and DeclHandler are set using the parser options with the same name. The two read-only features, - (http://xmlns.perl.org/sax/LexicalHandler, DeclHandler) return + (http://xmlns.perl.org/sax/lexicalHandler, declHandler) return 0 or 1 to indicate whether the parser supports these two interfaces. - ???XML:::SAX::Base </p> <p class="change"> <b>Change <a name="C10">C10</a> |
From: Petr C. <pci...@us...> - 2005-03-16 11:00:15
|
Update of /cvsroot/perl-xml/sax-perl-org In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10695 Modified Files: changes-2.1.xml Log Message: Index: changes-2.1.xml =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/changes-2.1.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- changes-2.1.xml 15 Mar 2005 16:11:43 -0000 1.6 +++ changes-2.1.xml 16 Mar 2005 10:59:59 -0000 1.7 @@ -54,16 +54,15 @@ </change> <change id="C8" issue-ref="I1"> - The section "Features" defines a read-only 'http://xmlns.perl.org/sax/version' - feature which returns a version of Perl SAX supported by a driver. + The section "Features" defines a read-only 'http://xmlns.perl.org/sax/version-2.1' + feature which returns 1 for a driver supporting Perl SAX 2.1. </change> <change id="C9" issue-ref="I2"> LexicalHandler and DeclHandler are set using the parser options with the same name. The two read-only features, - (http://xmlns.perl.org/sax/LexicalHandler, DeclHandler) return + (http://xmlns.perl.org/sax/lexicalHandler, declHandler) return 0 or 1 to indicate whether the parser supports these two interfaces. - ???XML:::SAX::Base </change> <change id="C10" issue-ref="I13"> |
From: Petr C. <pci...@us...> - 2005-03-15 16:11:56
|
Update of /cvsroot/perl-xml/sax-perl-org In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6297 Modified Files: changes-2.1.html changes-2.1.xml sax-2.1-adv.html sax-2.1-idx.html sax-2.1.html Log Message: Index: changes-2.1.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/changes-2.1.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- changes-2.1.html 11 Feb 2005 09:05:24 -0000 1.5 +++ changes-2.1.html 15 Mar 2005 16:11:43 -0000 1.6 @@ -12,8 +12,7 @@ API is in progress. Comments should be sent to Perl-XML mailing list (per...@li...). </p> - <b>Open issues</b>: <a href="#I9">I9</a>, <a href="#I10">I10</a>, <a href="#I14">I14</a> - <h2>Changes from Perl SAX 2.0</h2> + <b>Open issues</b>: none<h2>Changes from Perl SAX 2.0</h2> <p class="change"> <b>Change <a name="C1">C1</a> </b> @@ -106,6 +105,36 @@ The spec states explicitly that the value of input source Encoding property has a higher priority than encoding specified in an XML declaration. </p> + <p class="change"> + <b>Change <a name="C11">C11</a> + </b> + <i> [resolves issue <a href="#I9">I9</a>]</i> + <br /> + The following text has been added to the InputSource definition: + "String - The character or byte string of this input source. + The SAX parser will ignore this if there is also a byte stream or + a character stream specified, but it will use the string in preference + to opening a URI connection itself. If the UTF-8 flag of the string is turned + on, the effect is as if the Encoding property is set to UTF-8." + The order properties are checked in agrees with the current XML::SAX::Base + implementation (v0.12): CharacterStream, ByteStream, String, SystemId. + </p> + <p class="change"> + <b>Change <a name="C12">C12</a> + </b> + <i> [resolves issue <a href="#I10">I10</a>]</i> + <br /> + In addition to streams, the parse_file() method also accepts system paths + to prevent possible confusion arising from the name of this method. + </p> + <p class="change"> + <b>Change <a name="C13">C13</a> + </b> + <i></i> + <br /> + The Features section has changed. All features have values of 1 or 0; the + section lists some common features. + </p> <h2>Issues</h2> <p class="applied"> <b>Issue <a name="I1">I1</a> @@ -218,10 +247,10 @@ (to have the UTF-8 flag on). <br /> </p> - <p class="none"> + <p class="applied"> <b>Issue <a name="I9">I9</a> </b> - <i> status: open, resolution: none</i> + <i> status: closed, resolution: applied [resolved as change <a href="#C11">C11</a>]</i> <br /> Input sources don't have a String property defined though the parse_string() method exists and use it. Current XML::SAX::Base version @@ -240,10 +269,10 @@ The order of properties to be checked has to be determined. <br /> </p> - <p class="none"> + <p class="applied"> <b>Issue <a name="I10">I10</a> </b> - <i> status: open, resolution: none</i> + <i> status: closed, resolution: applied [resolved as change <a href="#C12">C12</a>]</i> <br /> parse_file() is meant to accept streams in Perl SAX, while other modules (such as XML::LibXML and XML::Parser) accept system paths for @@ -294,16 +323,17 @@ specified in an XML declaration. <br /> </p> - <p class="none"> + <p class="denied"> <b>Issue <a name="I14">I14</a> </b> - <i> status: open, resolution: none</i> + <i> status: closed, resolution: denied</i> <br /> Parsers report an error when the parse() method is called and no input source (Source option) is provided, regardless on the method's argument. <br /> - Suggestion: Parsers should try to call the parse_uri() with the provided - argument. Only if there is no argument available the error is issued. + Suggestion: not to apply. It will be sufficient to provide a better error + message from XML::SAX::Base (e.g. to suggest than one may likely want to + call parse_uri() or parse_string() instead of parse().) <br /> </p> </body> Index: changes-2.1.xml =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/changes-2.1.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- changes-2.1.xml 11 Feb 2005 09:05:25 -0000 1.5 +++ changes-2.1.xml 15 Mar 2005 16:11:43 -0000 1.6 @@ -71,6 +71,27 @@ has a higher priority than encoding specified in an XML declaration. </change> + <change id="C11" issue-ref="I9"> + The following text has been added to the InputSource definition: + "String - The character or byte string of this input source. + The SAX parser will ignore this if there is also a byte stream or + a character stream specified, but it will use the string in preference + to opening a URI connection itself. If the UTF-8 flag of the string is turned + on, the effect is as if the Encoding property is set to UTF-8." + The order properties are checked in agrees with the current XML::SAX::Base + implementation (v0.12): CharacterStream, ByteStream, String, SystemId. + </change> + + <change id="C12" issue-ref="I10"> + In addition to streams, the parse_file() method also accepts system paths + to prevent possible confusion arising from the name of this method. + </change> + + <change id="C13" issue-ref=""> + The Features section has changed. All features have values of 1 or 0; the + section lists some common features. + </change> + </change-list> <issue-list> @@ -176,7 +197,7 @@ </para> </issue> - <issue id="I9" status="open" resolution="none" change-ref=""> + <issue id="I9" status="closed" resolution="applied" change-ref="C11"> <para> Input sources don't have a String property defined though the parse_string() method exists and use it. Current XML::SAX::Base version @@ -199,7 +220,7 @@ </para> </issue> - <issue id="I10" status="open" resolution="none" change-ref=""> + <issue id="I10" status="closed" resolution="applied" change-ref="C12"> <para> parse_file() is meant to accept streams in Perl SAX, while other modules (such as XML::LibXML and XML::Parser) accept system paths for @@ -249,14 +270,15 @@ </para> </issue> - <issue id="I14" status="open" resolution="none" change-ref=""> + <issue id="I14" status="closed" resolution="denied" change-ref=""> <para> Parsers report an error when the parse() method is called and no input source (Source option) is provided, regardless on the method's argument. </para> <para> - Suggestion: Parsers should try to call the parse_uri() with the provided - argument. Only if there is no argument available the error is issued. + Suggestion: not to apply. It will be sufficient to provide a better error + message from XML::SAX::Base (e.g. to suggest than one may likely want to + call parse_uri() or parse_string() instead of parse().) </para> </issue> Index: sax-2.1-adv.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/sax-2.1-adv.html,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- sax-2.1-adv.html 11 Feb 2005 09:05:25 -0000 1.6 +++ sax-2.1-adv.html 15 Mar 2005 16:11:43 -0000 1.7 @@ -140,7 +140,7 @@ <p>Features can be passed as options when creating a parser or calling a <tt>parse()</tt> method. They may also be set using the -set_feature(). +<var>set_feature()</var> method. </p> <pre> @@ -159,53 +159,70 @@ </pre> <p> - When performing namespace processing, Perl SAX parsers always provide - both the raw tag name in <tt>Name</tt> and the namespace names in - <tt>NamespaceURI</tt>, <tt>LocalName</tt>, and <tt>Prefix</tt>. - Therefore, the - "<tt>http://xml.org/sax/features/namespace-prefixes</tt>" Feature is - ignored. + Perl SAX supports Features described in the SAX spec as well as new + ones defined for Perl. The features taken over from Java SAX have + URLs startting with <tt>http://xml.org/sax/features/</tt> and + Perl-specific features start with + <tt>http://xmlns.perl.org/sax/</tt>. Note that features are things + that are supposed to be <strong>turned on</strong>, and thus should + normally be off by default, especially if the parser doesn't support + turning them off. There may be, for good reasons, exceptions to this + rule, for example the + <tt>http://xml.org/sax/features/namespaces</tt> feature. </p> <p> - Also, Features are things that are supposed to be <strong>turned - on</strong>, and thus should normally be off by default, especially if - the parser doesn't support turning them off. Due to backward - compatibility problems, the one exception to this rule is the - "<tt>http://xml.org/sax/features/namespaces</tt>" Feature which is on by - default and which a number of parsers may not be able to turn off. Thus, - a parser claiming to support this Feature (and all SAX2 parsers must + These are some features Perl SAX drivers may support: +</p> + +<dl> +<dt class="prop">http://xml.org/sax/features/namespaces</dt> +<dd> A value of 1 indicates namespace URIs and unprefixed local names + for element and attribute names will be available. This feature is on by + default and a number of parsers may not be able to turn it off. Thus, + a parser claiming to support this feature (and all SAX2 parsers must support it) may in fact only support turning it on. See <a href="sax-2.1.html#nsProcessing">Namespace Processing</a> for - more details. -</p> + more details.</dd> +</dl> -<p>??? - In addition to the Features described in the SAX spec - itself, a number of new ones may be defined for Perl. An example of - this would be http://xmlns.perl.org/sax/node-factory which - when supported by the parser would be settable to a NodeFactory object - that would be in charge of creating SAX nodes different from those that - are normally received by event handlers. See - <a href='http://xmlns.perl.org/'>http://xmlns.perl.org/</a> (currently - in alpha state) for details on how to register Features. -</p> +<dl> +<dt class="prop">http://xml.org/sax/features/namespace-prefix</dt> +<dd>This feature is ignored as Perl SAX parsers always provide both + the raw tag name in Name and the namespace names in NamespaceURI, + LocalName, and Prefix.</dd> +</dl> -<p> - The read-only <tt>http://xmlns.perl.org/sax/version</tt> feature is - used to advertise a version of Perl SAX supported by a driver. For - drivers supporting the version of Perl SAX described in this document, - <tt>$parser->get_feature('http://xmlns.perl.org/sax/version')</tt> must - return <tt>2.1</tt>. Drivers supporting earlier versions of Perl SAX - can return <tt>1.0</tt> or <tt>2.0</tt>. -</p> +<dl> +<dt class="prop">http://xml.org/sax/features/xmlns-uris</dt> +<dd> Controls whether the parser treats namespace declaration + attributes as being in the <tt>http://www.w3.org/2000/xmlns/</tt> + namespace. By default, Perl SAX conforms to the original "Namespaces + in XML" Recommendation, which explicitly states that such attributes + are not in any namespace. Setting this optional flag to 1 makes the + Perl SAX events conform to a later backwards-incompatible revision + of that recommendation, placing those attributes in a namespace.</dd> +</dl> -<p> - The features <tt>http://xml.org/sax/handlers/LexicalHandler</tt> and - <tt>http://xml.org/sax/handlers/DeclHandler</tt> advertise if a - driver supports optional lexical and declaration handlers. Their - values are either 1 or 0. -</p> +<dl> +<dt class="prop">http://xmlns.perl.org/sax/version-2.1</dt> +<dd>This read-only feature is used to tell if a driver supports + version 2.1 of Perl SAX interface. Only drivers supporting the + version of Perl SAX described in this document have this feture set + on.</dd> +</dl> + +<dl> +<dt class="prop">http://xmlns.perl.org/sax/lexicalHandler</dt> +<dd>Tells if a driver supports optional lexical handler. Parsers may + not be able to set this feature.</dd> +</dl> + +<dl> +<dt class="prop">http://xmlns.perl.org/sax/declHandler</dt> +<dd>Tells if a driver supports optional declaration handler. Parsers may + not be able to set this feature.</dd> +</dl> <p> The following methods are used to get and set features: @@ -251,11 +268,6 @@ when the SAX parser does not recognize the feature name and <tt>XML::SAX::Exception::NotSupported</tt> when the SAX parser recognizes the feature name but cannot set the requested value. - -<p> -This method is also the standard mechanism for setting extended handlers, -such as "<code>http://xml.org/sax/handlers/DeclHandler</code>". -</p> </dd></dl></p> @@ -298,24 +310,35 @@ <dt class="prop">SystemId</dt> <dd>The system identifier (URI) of this input source. -<p>The system identifier is optional if there is a byte stream or a -character stream, but it is still useful to provide one, since the +<p>The system identifier is optional if there is a byte stream, a +character stream or a string, but it is still useful to provide one, since the application can use it to resolve relative URIs and can include it in error messages and warnings (the parser will attempt to open a -connection to the URI only if there is no byte stream or character -stream specified).</p> +connection to the URI only if there is no byte stream, character +stream or string specified).</p> <p>If the application knows the character encoding of the object pointed to by the system identifier, it can register the encoding using the <tt>Encoding</tt> property.</p> </dd> +<dt class="prop">String</dt> +<dd>The character or byte string of this input source. + +<p>The SAX parser will ignore this if there is also a byte stream or +a character stream specified, but it will use the string in preference +to opening a URI connection itself.</p> + +<p>If the UTF-8 flag of the string is turned on, the effect is as if +the Encoding property is set to UTF-8.</p> +</dd> + <dt class="prop">ByteStream</dt> <dd>The byte stream for this input source. <p>The SAX parser will ignore this if there is also a character stream -specified, but it will use a byte stream in preference to opening a -URI connection itself.</p> +specified, but it will use a byte stream in preference to using a +string or opening a URI connection itself.</p> <p>If the application knows the character encoding of the byte stream, it should set the <tt>Encoding</tt> property.</p> @@ -325,7 +348,7 @@ <dd>The character stream for this input source. <p>If there is a character stream specified, the SAX parser will -ignore any byte stream and will not attempt to open a URI connection +ignore any byte stream or string and will not attempt to open a URI connection to the system identifier.</p> <p>Note: A CharacterStream is a file-handle that does not need any encoding Index: sax-2.1-idx.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/sax-2.1-idx.html,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- sax-2.1-idx.html 11 Feb 2005 09:05:25 -0000 1.7 +++ sax-2.1-idx.html 15 Mar 2005 16:11:44 -0000 1.8 @@ -10,6 +10,7 @@ border:1px solid #777777;} div.title {font-size:16px; font-weight:bold; float:left; padding:0px 0px 0px 2px;} + div.subtitle {float:left; font-style:italic; padding:0px 0px 0px 2px;} div.item {padding: 1px 0px 0px 10px; clear:left;} div.right {float:right; padding:0px 5px 0px 0px;} </style> @@ -19,6 +20,7 @@ <div class="box"> <div class="title">Perl SAX 2.1</div> <div class="right">[<a target="_top" href="http://perl-xml.sourceforge.net/perl-sax/">home</a>]</div> + <div class="subtitle">Revision: 2005-03-15</div> <div class="item"> <a href="sax-2.1.html" target="cnt">Introduction</a> </div> @@ -219,7 +221,5 @@ </div> </div> -<div>Revision: 05-02-11</div> - </body> </html> Index: sax-2.1.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/sax-2.1.html,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- sax-2.1.html 11 Feb 2005 09:05:25 -0000 1.6 +++ sax-2.1.html 15 Mar 2005 16:11:44 -0000 1.7 @@ -118,7 +118,10 @@ <dd> Parses the XML instance in the already opened <var>stream</var>. The stream can be either a file handle, a glob reference or a sub-class of -IO::Handle. <var>options</var> are the same as for <tt class='function'>parse()</tt>. +IO::Handle. In addition to <var>streams</var>, the <tt>parse_file</tt> +method also accepts <var>system paths</var> (as <tt>parse_uri</tt> +method does) to prevent possible confusion caused by the name of this method. +<var>options</var> are the same as for <tt class='function'>parse()</tt>. <tt>parse_file()</tt> returns the result of calling the <tt>end_document()</tt> handler.</dd></dl></p> |
From: Petr C. <pci...@us...> - 2005-02-11 09:05:35
|
Update of /cvsroot/perl-xml/sax-perl-org In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1161 Modified Files: changes-2.1.html changes-2.1.xml changes.css changes.xsl sax-2.1-adv.html sax-2.1-idx.html sax-2.1.html Log Message: Index: changes-2.1.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/changes-2.1.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- changes-2.1.html 11 Jan 2005 14:34:29 -0000 1.4 +++ changes-2.1.html 11 Feb 2005 09:05:24 -0000 1.5 @@ -12,6 +12,7 @@ API is in progress. Comments should be sent to Perl-XML mailing list (per...@li...). </p> + <b>Open issues</b>: <a href="#I9">I9</a>, <a href="#I10">I10</a>, <a href="#I14">I14</a> <h2>Changes from Perl SAX 2.0</h2> <p class="change"> <b>Change <a name="C1">C1</a> @@ -53,10 +54,9 @@ <b>Change <a name="C5">C5</a> </b> <i> [resolves issue <a href="#I11">I11</a>]</i> - <br />Hash values are Unicode strings (scalars with - UTF-8 flag on) The spec defines that a stream argument that can be provided - to parse_file() method can be either a file handle, a glob reference, - or a IO::Handle sub-class. + <br /> + The spec defines that a stream argument that can be provided to parse_file() + method can be either a file handle, a glob reference, or a IO::Handle sub-classe. </p> <p class="change"> <b>Change <a name="C6">C6</a> @@ -79,11 +79,38 @@ The spec defines explicitly that values of callback argument hashrefs are Unicode strings (scalars with UTF-8 flag on). </p> - <h2>Summary of Issues</h2> - <p class="open"> + <p class="change"> + <b>Change <a name="C8">C8</a> + </b> + <i> [resolves issue <a href="#I1">I1</a>]</i> + <br /> + The section "Features" defines a read-only 'http://xmlns.perl.org/sax/version' + feature which returns a version of Perl SAX supported by a driver. + </p> + <p class="change"> + <b>Change <a name="C9">C9</a> + </b> + <i> [resolves issue <a href="#I2">I2</a>]</i> + <br /> + LexicalHandler and DeclHandler are set using the + parser options with the same name. The two read-only features, + (http://xmlns.perl.org/sax/LexicalHandler, DeclHandler) return + 0 or 1 to indicate whether the parser supports these two interfaces. + ???XML:::SAX::Base + </p> + <p class="change"> + <b>Change <a name="C10">C10</a> + </b> + <i> [resolves issue <a href="#I13">I13</a>]</i> + <br /> + The spec states explicitly that the value of input source Encoding property + has a higher priority than encoding specified in an XML declaration. + </p> + <h2>Issues</h2> + <p class="applied"> <b>Issue <a name="I1">I1</a> </b> - <i> status: open, resolution: none</i> + <i> status: closed, resolution: applied [resolved as change <a href="#C8">C8</a>]</i> <br /> A parser should advertise SAX version it supports. There can be a new method ($parser->get_sax_version()) or a read-only feature @@ -94,10 +121,10 @@ Suggestion: the read-only feature. <br /> </p> - <p class="open"> + <p class="applied"> <b>Issue <a name="I2">I2</a> </b> - <i> status: open, resolution: none</i> + <i> status: closed, resolution: applied [resolved as change <a href="#C9">C9</a>]</i> <br /> "http://xml.org/sax/handlers/LexicalHandler" feature on the parser needs to be set to the object to receive lexical events currently. If @@ -117,15 +144,15 @@ o not (http://xmlns.perl.org/sax/LexicalHandler, DeclHandler). <br /> Suggestion: LexicalHandler and DeclHandler are set using the - parser properties with the same name. The two read-only features, + parser options with the same name. The two read-only features, (http://xmlns.perl.org/sax/LexicalHandler, DeclHandler) return 0 or 1 to indicate whether the parser support these two interfaces. <br /> </p> - <p class="open"> + <p class="denied"> <b>Issue <a name="I3">I3</a> </b> - <i> status: open, resolution: none</i> + <i> status: closed, resolution: denied</i> <br /> SAX 2.0 Ext. 1.1 has a new Attributes2 interface which extends attributes with new properties (Declared, Specified) to distinguish @@ -136,10 +163,10 @@ Suggestion: not to apply. <br /> </p> - <p class="decided"> + <p class="applied"> <b>Issue <a name="I4">I4</a> </b> - <i> status: decided, resolution: applied [resolved as change <a href="#C2">C2</a>]</i> + <i> status: closed, resolution: applied [resolved as change <a href="#C2">C2</a>]</i> <br /> The parse() method is defined in different ways in the Basic and Advanced documents. @@ -148,10 +175,10 @@ based on InputSource. <br /> </p> - <p class="open"> + <p class="denied"> <b>Issue <a name="I5">I5</a> </b> - <i> status: open, resolution: none</i> + <i> status: closed, resolution: denied</i> <br /> All hash references could be replaced with blessed classes. Need to clarify what would be benefits of such change. @@ -159,19 +186,19 @@ Suggestion: not to apply. <br /> </p> - <p class="decided"> + <p class="applied"> <b>Issue <a name="I6">I6</a> </b> - <i> status: decided, resolution: applied [resolved as change <a href="#C3">C3</a>]</i> + <i> status: closed, resolution: applied [resolved as change <a href="#C3">C3</a>]</i> <br /> Changes in attribute_decl eName, aName, Type, Mode (was ValueDefault), Value <br /> </p> - <p class="decided"> + <p class="applied"> <b>Issue <a name="I7">I7</a> </b> - <i> status: decided, resolution: applied [resolved as change <a href="#C6">C6</a>]</i> + <i> status: closed, resolution: applied [resolved as change <a href="#C6">C6</a>]</i> <br /> The effect of turning off namespace processing is unclear in Perl SAX. The spec should state that all namespace-related processing is skipped, @@ -182,16 +209,16 @@ {}pfx:lname). NS declarations are treated as common attributes. <br /> </p> - <p class="decided"> + <p class="applied"> <b>Issue <a name="I8">I8</a> </b> - <i> status: decided, resolution: applied [resolved as change <a href="#C7">C7</a>]</i> + <i> status: closed, resolution: applied [resolved as change <a href="#C7">C7</a>]</i> <br /> Perl SAX should require explicitly all event data to be Unicode strings (to have the UTF-8 flag on). <br /> </p> - <p class="open"> + <p class="none"> <b>Issue <a name="I9">I9</a> </b> <i> status: open, resolution: none</i> @@ -213,7 +240,7 @@ The order of properties to be checked has to be determined. <br /> </p> - <p class="open"> + <p class="none"> <b>Issue <a name="I10">I10</a> </b> <i> status: open, resolution: none</i> @@ -227,10 +254,10 @@ currently supported types. <br /> </p> - <p class="decided"> + <p class="applied"> <b>Issue <a name="I11">I11</a> </b> - <i> status: decided, resolution: applied [resolved as change <a href="#C5">C5</a>]</i> + <i> status: closed, resolution: applied [resolved as change <a href="#C5">C5</a>]</i> <br /> The specification should state explicitly what is meant be "streams", what are supported types for parse_file(): file handles, @@ -240,10 +267,10 @@ To support all of the above mentioned types. <br /> </p> - <p class="decided"> + <p class="applied"> <b>Issue <a name="I12">I12</a> </b> - <i> status: decided, resolution: applied [resolved as change <a href="#C4">C4</a>]</i> + <i> status: closed, resolution: applied [resolved as change <a href="#C4">C4</a>]</i> <br /> The spec should be more explicit about what a document locator is supposed to return. It could for example read: @@ -253,10 +280,10 @@ The first line is line 1; the first column in each line is column 1. <br /> </p> - <p class="open"> + <p class="applied"> <b>Issue <a name="I13">I13</a> </b> - <i> status: open, resolution: none</i> + <i> status: closed, resolution: applied [resolved as change <a href="#C10">C10</a>]</i> <br /> The value of the Encoding property of Input Sources should be able to override the encoding value specified in the xml declaration. The spec should state this @@ -265,7 +292,18 @@ Suggestion: to add the following text: If available, the value of Encoding property has a higher priority than encoding specified in an XML declaration. - + <br /> + </p> + <p class="none"> + <b>Issue <a name="I14">I14</a> + </b> + <i> status: open, resolution: none</i> + <br /> + Parsers report an error when the parse() method is called and no input + source (Source option) is provided, regardless on the method's argument. + <br /> + Suggestion: Parsers should try to call the parse_uri() with the provided + argument. Only if there is no argument available the error is issued. <br /> </p> </body> Index: changes-2.1.xml =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/changes-2.1.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- changes-2.1.xml 11 Jan 2005 14:34:29 -0000 1.4 +++ changes-2.1.xml 11 Feb 2005 09:05:25 -0000 1.5 @@ -33,10 +33,9 @@ line is column 1." </change> - <change id="C5" issue-ref="I11">Hash values are Unicode strings (scalars with - UTF-8 flag on) The spec defines that a stream argument that can be provided - to parse_file() method can be either a file handle, a glob reference, - or a IO::Handle sub-class. + <change id="C5" issue-ref="I11"> + The spec defines that a stream argument that can be provided to parse_file() + method can be either a file handle, a glob reference, or a IO::Handle sub-classe. </change> <change id="C6" issue-ref="I7"> @@ -54,11 +53,29 @@ Unicode strings (scalars with UTF-8 flag on). </change> + <change id="C8" issue-ref="I1"> + The section "Features" defines a read-only 'http://xmlns.perl.org/sax/version' + feature which returns a version of Perl SAX supported by a driver. + </change> + + <change id="C9" issue-ref="I2"> + LexicalHandler and DeclHandler are set using the + parser options with the same name. The two read-only features, + (http://xmlns.perl.org/sax/LexicalHandler, DeclHandler) return + 0 or 1 to indicate whether the parser supports these two interfaces. + ???XML:::SAX::Base + </change> + + <change id="C10" issue-ref="I13"> + The spec states explicitly that the value of input source Encoding property + has a higher priority than encoding specified in an XML declaration. + </change> + </change-list> <issue-list> - <issue id="I1" status="open" resolution="none" change-ref=""> + <issue id="I1" status="closed" resolution="applied" change-ref="C8"> <para> A parser should advertise SAX version it supports. There can be a new method ($parser->get_sax_version()) or a read-only feature @@ -71,7 +88,7 @@ </para> </issue> - <issue id="I2" status="open" resolution="none" change-ref=""> + <issue id="I2" status="closed" resolution="applied" change-ref="C9"> <para> "http://xml.org/sax/handlers/LexicalHandler" feature on the parser needs to be set to the object to receive lexical events currently. If @@ -93,13 +110,13 @@ </para> <para> Suggestion: LexicalHandler and DeclHandler are set using the - parser properties with the same name. The two read-only features, + parser options with the same name. The two read-only features, (http://xmlns.perl.org/sax/LexicalHandler, DeclHandler) return 0 or 1 to indicate whether the parser support these two interfaces. </para> </issue> - <issue id="I3" status="open" resolution="none" change-ref=""> + <issue id="I3" status="closed" resolution="denied" change-ref=""> <para> SAX 2.0 Ext. 1.1 has a new Attributes2 interface which extends attributes with new properties (Declared, Specified) to distinguish @@ -112,7 +129,7 @@ </para> </issue> - <issue id="I4" status="decided" resolution="applied" change-ref="C2"> + <issue id="I4" status="closed" resolution="applied" change-ref="C2"> <para> The parse() method is defined in different ways in the Basic and Advanced documents. @@ -122,7 +139,7 @@ </para> </issue> - <issue id="I5" status="open" resolution="none" change-ref=""> + <issue id="I5" status="closed" resolution="denied" change-ref=""> <para> All hash references could be replaced with blessed classes. Need to clarify what would be benefits of such change. @@ -132,14 +149,14 @@ </para> </issue> - <issue id="I6" status="decided" resolution="applied" change-ref="C3"> + <issue id="I6" status="closed" resolution="applied" change-ref="C3"> <para> Changes in attribute_decl eName, aName, Type, Mode (was ValueDefault), Value </para> </issue> - <issue id="I7" status="decided" resolution="applied" change-ref="C6"> + <issue id="I7" status="closed" resolution="applied" change-ref="C6"> <para> The effect of turning off namespace processing is unclear in Perl SAX. The spec should state that all namespace-related processing is skipped, @@ -152,7 +169,7 @@ </para> </issue> - <issue id="I8" status="decided" resolution="applied" change-ref="C7"> + <issue id="I8" status="closed" resolution="applied" change-ref="C7"> <para> Perl SAX should require explicitly all event data to be Unicode strings (to have the UTF-8 flag on). @@ -195,7 +212,7 @@ </para> </issue> - <issue id="I11" status="decided" resolution="applied" change-ref="C5"> + <issue id="I11" status="closed" resolution="applied" change-ref="C5"> <para> The specification should state explicitly what is meant be "streams", what are supported types for parse_file(): file handles, @@ -207,7 +224,7 @@ </para> </issue> - <issue id="I12" status="decided" resolution="applied" change-ref="C4"> + <issue id="I12" status="closed" resolution="applied" change-ref="C4"> <para> The spec should be more explicit about what a document locator is supposed to return. It could for example read: @@ -219,7 +236,7 @@ </para> </issue> - <issue id="I13" status="open" resolution="none" change-ref=""> + <issue id="I13" status="closed" resolution="applied" change-ref="C10"> <para> The value of the Encoding property of Input Sources should be able to override the encoding value specified in the xml declaration. The spec should state this @@ -229,7 +246,17 @@ Suggestion: to add the following text: If available, the value of Encoding property has a higher priority than encoding specified in an XML declaration. - + </para> + </issue> + + <issue id="I14" status="open" resolution="none" change-ref=""> + <para> + Parsers report an error when the parse() method is called and no input + source (Source option) is provided, regardless on the method's argument. + </para> + <para> + Suggestion: Parsers should try to call the parse_uri() with the provided + argument. Only if there is no argument available the error is issued. </para> </issue> Index: changes.css =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/changes.css,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- changes.css 11 Jan 2005 14:34:29 -0000 1.3 +++ changes.css 11 Feb 2005 09:05:25 -0000 1.4 @@ -7,17 +7,17 @@ background-color: #bbeeff; } -.open { +.none { border: solid 1px #999999; background-color: #ffbbbb; } -.decided { +.applied { border: solid 1px #999999; background-color: #bbffbb; } -.closed { +.denied { border: solid 1px #999999; - background-color: #bbbbff; + background-color: #bbbbbb; } Index: changes.xsl =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/changes.xsl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- changes.xsl 11 Jan 2005 14:34:29 -0000 1.2 +++ changes.xsl 11 Feb 2005 09:05:25 -0000 1.3 @@ -23,14 +23,29 @@ API is in progress. Comments should be sent to Perl-XML mailing list (per...@li...). </p> + <b>Open issues</b> + <xsl:apply-templates select="chg:issue-list"/> <h2>Changes from Perl SAX 2.0</h2> <xsl:apply-templates select="chg:change-list/chg:change"/> - <h2>Summary of Issues</h2> + <h2>Issues</h2> <xsl:apply-templates select="chg:issue-list/chg:issue"/> </body> </html> </xsl:template> + <xsl:template match="chg:issue-list"> + <xsl:text>: </xsl:text> + <xsl:for-each select="chg:issue[@status='open']"> + <a href="#{@id}"> + <xsl:value-of select="@id"/> + </a> + <xsl:if test="position() != last()"> + <xsl:text>, </xsl:text> + </xsl:if> + </xsl:for-each> + <xsl:if test="not(chg:issue[@status='open'])">none</xsl:if> + </xsl:template> + <xsl:template match="chg:change"> <p class="change"> <b> @@ -54,7 +69,7 @@ </xsl:template> <xsl:template match="chg:issue"> - <p class="{@status}"> + <p class="{@resolution}"> <b> <xsl:text>Issue </xsl:text> <a name="{@id}"> Index: sax-2.1-adv.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/sax-2.1-adv.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- sax-2.1-adv.html 11 Jan 2005 14:34:29 -0000 1.5 +++ sax-2.1-adv.html 11 Feb 2005 09:05:25 -0000 1.6 @@ -168,19 +168,19 @@ </p> <p> - Also, Features are things that are supposed to be <strong>turned - on</strong>, and thus should normally be off by default, especially if - the parser doesn't support turning them off. Due to backward - compatibility problems, the one exception to this rule is the - "<tt>http://xml.org/sax/features/namespaces</tt>" Feature which is on by - default and which a number of parsers may not be able to turn off. Thus, - a parser claiming to support this Feature (and all SAX2 parsers must - support it) may in fact only support turning it on. See <a - href="sax-2.1.html#nsProcessing">Namespace Processing</a> for - more details. + Also, Features are things that are supposed to be <strong>turned + on</strong>, and thus should normally be off by default, especially if + the parser doesn't support turning them off. Due to backward + compatibility problems, the one exception to this rule is the + "<tt>http://xml.org/sax/features/namespaces</tt>" Feature which is on by + default and which a number of parsers may not be able to turn off. Thus, + a parser claiming to support this Feature (and all SAX2 parsers must + support it) may in fact only support turning it on. See <a + href="sax-2.1.html#nsProcessing">Namespace Processing</a> for + more details. </p> -<p> +<p>??? In addition to the Features described in the SAX spec itself, a number of new ones may be defined for Perl. An example of this would be http://xmlns.perl.org/sax/node-factory which @@ -192,7 +192,23 @@ </p> <p> - The following methods are used to get and set features: + The read-only <tt>http://xmlns.perl.org/sax/version</tt> feature is + used to advertise a version of Perl SAX supported by a driver. For + drivers supporting the version of Perl SAX described in this document, + <tt>$parser->get_feature('http://xmlns.perl.org/sax/version')</tt> must + return <tt>2.1</tt>. Drivers supporting earlier versions of Perl SAX + can return <tt>1.0</tt> or <tt>2.0</tt>. +</p> + +<p> + The features <tt>http://xml.org/sax/handlers/LexicalHandler</tt> and + <tt>http://xml.org/sax/handlers/DeclHandler</tt> advertise if a + driver supports optional lexical and declaration handlers. Their + values are either 1 or 0. +</p> + +<p> + The following methods are used to get and set features: </p> <p><a name="getFeature"/> @@ -237,8 +253,8 @@ feature name but cannot set the requested value. <p> - This method is also the standard mechanism for setting extended handlers, - such as "<code>http://xml.org/sax/handlers/DeclHandler</code>". +This method is also the standard mechanism for setting extended handlers, +such as "<code>http://xml.org/sax/handlers/DeclHandler</code>". </p> </dd></dl></p> @@ -276,7 +292,8 @@ <p>The public identifier is always optional: if the application writer includes one, it will be provided as part of the location -information.</p></dd> +information.</p> +</dd> <dt class="prop">SystemId</dt> <dd>The system identifier (URI) of this input source. @@ -288,9 +305,10 @@ connection to the URI only if there is no byte stream or character stream specified).</p> -If the application knows the character encoding of the object +<p>If the application knows the character encoding of the object pointed to by the system identifier, it can register the encoding -using the <tt>Encoding</tt> property.</dd> +using the <tt>Encoding</tt> property.</p> +</dd> <dt class="prop">ByteStream</dt> <dd>The byte stream for this input source. @@ -299,8 +317,9 @@ specified, but it will use a byte stream in preference to opening a URI connection itself.</p> -If the application knows the character encoding of the byte stream, it -should set the <tt>Encoding</tt> property.</dd> +<p>If the application knows the character encoding of the byte stream, it +should set the <tt>Encoding</tt> property.</p> +</dd> <dt class="prop">CharacterStream</dt> <dd>The character stream for this input source. @@ -315,17 +334,19 @@ character, or number of characters from it, use the perl core read() function. To get a single byte from it (or number of bytes), you can use sysread().</p> - </dd> <dt class="prop">Encoding</dt> <dd>The character encoding, if known. <p>The encoding must be a string acceptable for an XML encoding -declaration (see section 4.3.3 of the XML 1.0 recommendation).</p> +declaration (see section 4.3.3 of the XML 1.0 recommendation). +If provided, the value of Encoding property has a higher priority +than encoding specified in the XML declaration.</p> -This property has no effect when the application provides a character -stream.</dd> +<p>This property has no effect when the application provides a character +stream.</p> +</dd> </dl> <h2><a name="Handlers">SAX Handlers</a></h2> @@ -513,7 +534,10 @@ <p>This is an optional extension handler for SAX2 to provide information about DTD declarations in an XML document. XML readers are -not required to support this handler.</p> +not required to support this handler. +Readers supporting this handler have the +<tt>http://xml.org/sax/handlers/DeclHandler</tt> feature set to 1. +Otherwise, this feature has value 0.</p> <p>Note that data-related DTD declarations (unparsed entities and notations) are already reported through the DTDHandler interface.</p> @@ -522,14 +546,10 @@ handler, all of the events will occur between the <tt>start_dtd</tt> and the <tt>end_dtd</tt> events.</p> -<p>To set a separate DeclHandler for an XML reader, set the -"<tt>http://xml.org/sax/handlers/DeclHandler</tt>" Feature with the -object to received declaration events. If the reader does not support -declaration events, it will throw a <tt>XML::SAX::Exception::NotRecognized</tt> -or a <tt>XML::SAX::Exception::NotSupported</tt> when you attempt to register -the handler. Declaration event handlers on the default handler are -automatically recognized and used.</p> - +<p>To set a DeclHandler for an XML reader, use the DeclHandler +option of the reader constructor or parse()/parse_x() method. If the +reader does not support declaration events, it ignores the DeclHandler +option.</p> <p><a name="elementDecl"/> <dl><dt><b><tt class='function'>element_decl</tt></b>(<var>element</var>)</dt> @@ -827,19 +847,20 @@ <p>This is an optional extension handler for SAX2 to provide lexical information about an XML document, such as comments and CDATA section -boundaries; XML readers are not required to support this handler.</p> +boundaries; XML readers are not required to support this handler. +Readers supporting this handler have the +<tt>http://xml.org/sax/handlers/LexicalHandler</tt> feature set to 1. +Otherwise, this feature has value 0.</p> <p>The events in the lexical handler apply to the entire document, not just to the document element, and all lexical handler events must appear between the content handler's <tt>start_document()</tt> and <tt>end_document()</tt> events.</p> -<p>To set the LexicalHandler for an XML reader, set the Feature -"<tt>http://xml.org/sax/handlers/LexicalHandler</tt>" on the parser to -the object to receive lexical events. If the reader does not support -lexical events, it will throw a <tt>XML::SAX::Exception::NotRecognized</tt> or -a <tt>XML::SAX::Exception::NotSupported</tt> when you attempt to register the -handler.</p> +<p>To set a LexicalHandler for an XML reader, use the LexicalHandler +option of the reader constructor or parse()/parse_x() method. If the +reader does not support lexical events, it ignores the LexicalHandler +option.</p> <p><a name="startDTD"/> <dl><dt><b><tt class='function'>start_dtd</tt></b>(<var>dtd</var>)</dt> @@ -1021,8 +1042,5 @@ a Filter will be available from CPAN in the not distant future. </p> - -<div>$Revision$</div> -<div>$Date$</div> </body> </html> Index: sax-2.1-idx.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/sax-2.1-idx.html,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- sax-2.1-idx.html 11 Jan 2005 14:34:29 -0000 1.6 +++ sax-2.1-idx.html 11 Feb 2005 09:05:25 -0000 1.7 @@ -88,7 +88,7 @@ </div> <div class="item"> <a href="sax-2.1-adv.html?#getFeatures" target="cnt">get_features()</a> - </div>sax-2.1.html + </div> </div> <div class="box"> @@ -219,8 +219,7 @@ </div> </div> -<div>$Revision$</div> -<div>$Date$</div> +<div>Revision: 05-02-11</div> </body> </html> Index: sax-2.1.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/sax-2.1.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- sax-2.1.html 11 Jan 2005 14:34:29 -0000 1.5 +++ sax-2.1.html 11 Feb 2005 09:05:25 -0000 1.6 @@ -399,7 +399,5 @@ </ul> -<div>$Revision$</div> -<div>$Date$</div> </body> </html> |
From: Grant M. <gr...@us...> - 2005-02-11 08:06:27
|
Update of /cvsroot/perl-xml/perl-xml-faq In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13042 Modified Files: perl-xml-faq.xml Log Message: - add Q&A re splitting huge files Index: perl-xml-faq.xml =================================================================== RCS file: /cvsroot/perl-xml/perl-xml-faq/perl-xml-faq.xml,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- perl-xml-faq.xml 11 Nov 2004 09:25:15 -0000 1.19 +++ perl-xml-faq.xml 11 Feb 2005 08:06:16 -0000 1.20 @@ -18,6 +18,7 @@ <year>2002</year> <year>2003</year> <year>2004</year> + <year>2005</year> <holder>Grant McLean</holder> </copyright> @@ -1177,19 +1178,16 @@ </answer> </qandaentry> - <qandaentry id="utf8"> - <question> - <para>What is UTF-8?</para> - </question> - <answer> + <qandaentry id="utf8"> <question> <para>What is UTF-8?</para> </question> + <answer> <para>Since Unicode supports character positions higher than 256, a - representation of those characters will obviously require more than - one 8-bit byte. There is more than one system for representing - Unicode characters as byte sequences. UTF-8 is one such system. It - uses a variable number of bytes (1 to 6) to represent each character. - This means that the most common characters (ie: 7 bit ASCII) only - require one byte.</para> + representation of those characters will obviously require more than one + 8-bit byte. There is more than one system for representing Unicode + characters as byte sequences. UTF-8 is one such system. It uses a + variable number of bytes (from 1 to 4 according to RFC3629) to represent + each character. This means that the most common characters (ie: 7 bit + ASCII) only require one byte.</para> <para>In UTF-8 encoded data, the most significant bit of each byte will be 0 for single byte characters and 1 for each byte of a multibyte @@ -1212,8 +1210,6 @@ 2 byte character 110xxxxx 10xxxxxx 3 byte character 1110xxxx 10xxxxxx 10xxxxxx 4 byte character 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx -5 byte character 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx -6 byte character 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx ]]></programlisting> <para>UTF-16 encoding is an alternative byte representation of Unicode @@ -2022,7 +2018,23 @@ </answer> </qandaentry> - + + <qandaentry id="file_split"> + <question> + <para>How can I split a huge XML file into smaller chunks</para> + </question> + <answer> + + <para>When your document is too large to slurp into memory, the DOM, + XPath and XSLT tools can't really help you. You could write your own SAX + filter fairly easily, but Michel Rodriguez has written a <ulink + url="http://www.perlmonks.org/index.pl?node_id=429707">general + solution</ulink> so you don't have to. You'll find it bundled with XML::Twig + from version 3.16.</para> + + </answer> + </qandaentry> + </qandadiv> <qandadiv id="xml_problems"><title>Common XML Problems</title> |
From: Grant M. <gr...@us...> - 2005-02-11 08:05:45
|
Update of /cvsroot/perl-xml/perl-xml-faq In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12757 Modified Files: faq-style.xsl Log Message: - don't overuse the author's name Index: faq-style.xsl =================================================================== RCS file: /cvsroot/perl-xml/perl-xml-faq/faq-style.xsl,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- faq-style.xsl 14 Oct 2003 09:13:47 -0000 1.5 +++ faq-style.xsl 11 Feb 2005 08:05:37 -0000 1.6 @@ -36,6 +36,8 @@ <!-- Templates to override defaults --> +<xsl:template match="articleinfo/author" mode="titlepage.mode" /> + <xsl:template match="question/para"> <b><xsl:value-of select="." /></b> </xsl:template> |
From: Grant M. <gr...@us...> - 2005-01-29 05:20:30
|
Update of /cvsroot/perl-xml/xml-simple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32033 Modified Files: .cvsignore MANIFEST.SKIP Added Files: .releaserc Log Message: - new config file for using 'release' script --- NEW FILE: .releaserc --- cpan_user GRANTM sf_user <none> Index: .cvsignore =================================================================== RCS file: /cvsroot/perl-xml/xml-simple/.cvsignore,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- .cvsignore 29 Jan 2005 04:51:09 -0000 1.2 +++ .cvsignore 29 Jan 2005 05:20:22 -0000 1.3 @@ -11,3 +11,4 @@ bugs_and_patches ptst xx +.lwpcookies Index: MANIFEST.SKIP =================================================================== RCS file: /cvsroot/perl-xml/xml-simple/MANIFEST.SKIP,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- MANIFEST.SKIP 29 Jan 2005 04:43:03 -0000 1.1 +++ MANIFEST.SKIP 29 Jan 2005 05:20:22 -0000 1.2 @@ -1,5 +1,7 @@ \bCVS/ \.cvsignore$ +\.releaserc$ +\.lwpcookies$ \.(SKIP|bak|old|swp|gz)$ ^Makefile$ ^blib @@ -7,6 +9,7 @@ ^benchmark ^bugs_and_patches ^checklist +^cover_db ^XML-Simple ^Simple.pm ^runtest |
From: Grant M. <gr...@us...> - 2005-01-29 04:51:18
|
Update of /cvsroot/perl-xml/xml-simple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26325 Modified Files: .cvsignore Log Message: - ignore Devel::Cover stuff Index: .cvsignore =================================================================== RCS file: /cvsroot/perl-xml/xml-simple/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- .cvsignore 29 Jan 2005 04:31:50 -0000 1.1 +++ .cvsignore 29 Jan 2005 04:51:09 -0000 1.2 @@ -4,11 +4,10 @@ blib blibdirs checklist +cover_db pm_to_blib *.tar.gz XML-Simple-* bugs_and_patches ptst -xml-simple.html -maintenance xx |
From: Grant M. <gr...@us...> - 2005-01-29 04:46:57
|
Update of /cvsroot/perl-xml/xml-simple/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25269 Removed Files: desertnet.xml-source Log Message: - seems spurious --- desertnet.xml-source DELETED --- |
From: Grant M. <gr...@us...> - 2005-01-29 04:43:12
|
Update of /cvsroot/perl-xml/xml-simple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24634 Modified Files: MANIFEST Added Files: MANIFEST.SKIP Log Message: - auto generate MANIFEST --- NEW FILE: MANIFEST.SKIP --- \bCVS/ \.cvsignore$ \.(SKIP|bak|old|swp|gz)$ ^Makefile$ ^blib ^pm_to_blib ^benchmark ^bugs_and_patches ^checklist ^XML-Simple ^Simple.pm ^runtest ^todo ^ptst ^xx ^OLD Index: MANIFEST =================================================================== RCS file: /cvsroot/perl-xml/xml-simple/MANIFEST,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- MANIFEST 29 Feb 2004 09:51:10 -0000 1.7 +++ MANIFEST 29 Jan 2005 04:43:02 -0000 1.8 @@ -1,10 +1,11 @@ Changes -MANIFEST -Makefile.PL -README lib/XML/Simple.pm lib/XML/Simple/FAQ.pod +Makefile.PL maketest +MANIFEST +META.yml Module meta-data (added by MakeMaker) +README t/0_Config.t t/1_XMLin.t t/1_XMLin.xml @@ -19,7 +20,6 @@ t/A_XMLParser.t t/desertnet.src t/lib/TagsToUpper.pm -t/subdir/test2.xml t/srt.xml +t/subdir/test2.xml t/test1.xml -META.yml Module meta-data (added by MakeMaker) |
From: Grant M. <gr...@us...> - 2005-01-29 04:31:58
|
Update of /cvsroot/perl-xml/xml-simple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22398 Added Files: .cvsignore Log Message: - things that aren't in CVS --- NEW FILE: .cvsignore --- Makefile META.yml benchmark blib blibdirs checklist pm_to_blib *.tar.gz XML-Simple-* bugs_and_patches ptst xml-simple.html maintenance xx |
From: Grant M. <gr...@us...> - 2005-01-29 04:25:55
|
Update of /cvsroot/perl-xml/CVSROOT In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21337 Added Files: cvsignore Log Message: - ignore vim swapfiles --- NEW FILE: cvsignore --- *.swp |
From: Grant M. <gr...@us...> - 2005-01-29 04:22:19
|
Update of /cvsroot/perl-xml/xml-simple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20656 Modified Files: Changes README Log Message: - for 2.14 release Index: Changes =================================================================== RCS file: /cvsroot/perl-xml/xml-simple/Changes,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- Changes 17 Nov 2004 09:01:00 -0000 1.18 +++ Changes 29 Jan 2005 04:22:10 -0000 1.19 @@ -1,5 +1,8 @@ Revision history for Perl module XML::Simple +2.14 Jan 29 2005 + - unlink and lock fixes for VMS (patch from Peter (Stig) Edwards) + 2.13 Nov 17 2004 - Fixed bug where NoIndent broke KeyAttr (reported by David Haas) - Added copy_hash helper method which may be overridden to avoid Index: README =================================================================== RCS file: /cvsroot/perl-xml/xml-simple/README,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- README 17 Nov 2004 09:01:01 -0000 1.18 +++ README 29 Jan 2005 04:22:10 -0000 1.19 @@ -56,7 +56,7 @@ STATUS - This version (2.13) is the current stable release. + This version (2.14) is the current stable release. Please send any feedback to the author: gr...@cp... |
From: Grant M. <gr...@us...> - 2005-01-29 04:21:09
|
Update of /cvsroot/perl-xml/xml-simple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20366 Added Files: todo Log Message: - things to do --- NEW FILE: todo --- - test cases - iterate parsers (only on author's machine?) |
From: Grant M. <gr...@us...> - 2005-01-29 04:20:51
|
Update of /cvsroot/perl-xml/xml-simple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20303 Added Files: runtest Log Message: - run individual test scripts --- NEW FILE: runtest --- #!/bin/sh echo; echo make PERL_DL_NONLAZY=1 /usr/bin/perl -w -Iblib/arch -Iblib/lib -I/usr/lib/perl5/5.6.0/i386-linux -I/usr/lib/perl5/5.6.0 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/$1*.t |
From: Grant M. <gr...@us...> - 2005-01-29 04:20:07
|
Update of /cvsroot/perl-xml/xml-simple/OLD In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20023 Added Files: old-releases.tar.gz saxscraps.tar.gz web.tar.gz Log Message: - old (probably useless) stuff --- NEW FILE: old-releases.tar.gz --- ûA TuåVÖûÑø¡ÆIÜÆwãÇZê¶=CIÅ"úzûÎ Ñ_£ µf=³ÿG)gü£ØËF`8?#µ?å¾fÀ]z¤xÑ0PMë¦ìȱjUËÛõúvµÉ*O>5¾Úbo_Ø®å°ÜG;¬ïs+äÖ±Qõ*`båã3j}VTIÛø Y8²BlØ,«¶Ú×Äàhü ÿq=6u#MÆjÒ±wÉB¢,8öÅ(õ{ É*HMh¬6L¥àIÈÜ xdòÝRêàFëØùxµg¥2i&dHH&i?¹L.<Dû5B²ØVHFð$ðÎþ°°ÙÎMî½(K~ËïZ»Ñ%9/C´Hì%·¨1}oS[mUYÓPÆ{ÔE µ$h}¡:U+iù¼)/S!y¤9÷ü4â¨Îá¨Ï º.pHÁ<p¡ç-çzm®KÖg&Sßö¦àm§½¸û0Zn0ôü19æÐ¦Á¦AÐcM .ÞMZ{9ü²ÂÉM~]%:Ñ®lWK¶["Çú ø#ËÅv&ð¡4öRU½|´#¢æ:½6)#h°\§Zkë@éåÎR&ÝÁ@JÔ9|bÀ¡f;îédâóàï¥E$ãñs¦´êÅM ùÿf5óÿQ&Vÿ½uv{#n *7çöm±3õ'@àWÌÒ!áçо`¸WHOÚ!G)Fè:¿v;ÅéóNk¼X1K<ì&¾w¡xܾn¯? kWó~~aùñIÛ#´cø0Ù>nux~Hûæ#<fäoÈ-KìÙag=;øíôä¬Ðw½ì!¸Â6½·QÓ æP_bRÚ-~÷c»´©¸PHâÕd«/yÄIÕ9-.¦y?Ùî CîF}á{à_Ù`:qì¾rM<rvÅÕ;|ÑnÛ÷©b£ö5öv£qRñ7ñX&W#HH¸¦Á}{£ Xæ²hzíd@ÂÎX"IÆÒx°Y,ö©]z&¹"$ c½Ãàï.{áÆï¿O»ªèñ¦÷ªæ û<±D¨`äéyåã Id¶ê$L ìN'9O âW7ínÖD`¦ZÎã&"YVÙÅ<Û¶|ì¡îê1û#0Ôä:×v´z À×å/ª(:uìßÿf&ͦz³:(ý±¹£õ»¦øwKâ3®$ä ÿlƾ8Ù#)?å*\Z.°H?ľpå좨¾Ðu)òs @ñS´c!11$) «¦¥¸Ç$cr;QR"ç»=ÅÈ´0KäqÉ;ÿàØ¼Ãõ Eîø+ 41R JÙ²"±Ü2¯û6òÔp/§#K7½æIÆB ä@äsÅXOR³/_Ò +ä¤Pȸôõ@Wg>ÏW>'0 ¶!¡$AE £aC¨(èÇß[àÖ@`"Ð,)Qd¶+cHÔüm :ÉíÄ($uqÖ#ôFhÊ*M]Å£ù®+¼ÿ^4èû6íA8J¢Á¦{V@6¿ ²$T¾AFì0ÔV@ ¤½\V?=É;¡gõ߯ó]mŨ"ß=ßÕóv¼â¤ìÆ0P àØA?nìÝ>öñNxQwßr Ú ¸ôüÁ^nè{Omç5éIBObPÐTXÄo¾&ù³0x®0çÕ®rGm£Ï $ÀaÒ§ö)YQÂìÚLû CÉ>T_'Ä^Cû#ÿQ©7éÆ ½Ë´ömI÷®ÂÓVhvKQQxÛv·}èJ>ãOGIeà¾Ð9Ê_ àÞÏqCnZHÜL^½ÁþËã9æXêkg¼Ê)xhÁÇí´ÿôø³ o ¯Mxîî>a}_è?ÿ3¢×eö'½ [...1022 lines suppressed...] #ÇÀm ¹»¥¼=ö¶Î'u~ÜÉ/)x×õk»fcsÕuÀ#ãVÎ Å 9f?"ÍPª hV2 Â"¿düÌ0¼ÇÙüXÁª2ϰ;& yÞe½Ñu8¾æ NTÆn5u}Ø~[v²~]yßvÀô $ç`âÐ(6Ói<ÁXãÖc°°fù\Þ1:;S;×LÄ}z:q6b$Tç5+Y~ÊF,±COüÀQó\;ÃìýPضêxS ¾¹NÅýÑj§Q¿g¯ÄÏ=<ìÖ^º¨|2£@Úì<4Ý»Äé½N»fÏÕTx1<uÍWlU÷iG&bZ2δ̤Ðf?JdË)åòÊéjÖKÌâÞ7 1Sü½0Ì ÿÍâìÅnºfG¡ÊËú(< S¬¥ÈqÝPBà±¢âq2?äzyõÞT]¯wÀµUF]t£ÔöJàpc ìb£(îû®¸9 8+W>̰+cØoµÁã붤yÔ>®I7yºªð\xñaËíI<mf¥ªÅ% -©[ªoW9*÷î_Ëâß®>ÉW?N.ç®þ78ÔÏÏÓYÝ/%óí¿b ¤£E²5ènE}xøsl¹=0çxvÜÇsù±~Aÿí· z^`æ Jh arÄFZÜÄZ1°L!®cüayUüT³*½}~5Êö¨aç«çÉðëN%ácà]s(´kԻƿN#°¸¢6Á8È©2Yt<ÝsßÚ¶ORÌIÜm«{FBeyi)eÞPÎ`;h¿¬] ÿÜØpÊD׸«Z)E(4¤µ ì£ u§5¼GIû®ªfCÎn NYL¤ ËÊÿé(¾ B,ꣷlb\×Ä£pÆÈMG£¥ÏøWXî^ø)ûkLf¼Úß^¼%E×ÁвßaÅJ ÙHî)g+NïhÏL¡;e±GÀ$1GÊT\ÉΣ{*,JÑó_¿¬ë&³ÎrÆÓîjPGBFñPQc¸ºF;QGI¬Dcf¨£Y8§y.ñv£N;Òðí¿Ppû¢oÔG ã9îyÛë"áaMËE4±Hp@q7 !c<ÁhÊË+ôOã~&½±B½M:=% Y qIá*kú@#he§ðÿ(næ.P· QW¡0I0 ¦u]ô<¾Ï=Oÿ©Ø£6ñrAØ{%¯ ©« gÀ£²óXLÉx@ÖeªÉW@³Þ7µðQo¥FEá%p¡pÁ°ÀÔ§7p·ºk`|ÞT wÂmyÒÃÀbH"è(5 v¢$# >ÇæD;$!Ë0ý":¥§è.¦|ExÎí<aëÓ]fèÞí=fJ{|-úA²Yìäp§Ê©0I¨U¸ ÚGtÏìéàÖ$&Ùmüà êáÎ鬨ª«¯ÍÑ(Ø ÞQñ»'ÐÞ¶Ð\×˧ýWçe}¾iÊ¢äÀÀUpòÒ)Íî×u¼i"}$ÑC8²nPEÖÎà¢éÌëáâø§lÐÎ%iñ®Zö9Fç«CÝTfxJ»¥{à]¶ÌÏ~uä0зx4üLU¼ØÒB uM-ÐpB$Ø¥(À*:Uå£-g¸è¾¼LÂ0sÛâÊZhàØõ;ÿX¶éY@Ç] » ~þ*äÁ2nWøÑ¸\Lüá£ãã·Gâê¨B8WÛÖzME£Ql£cñ>4ìíù;?äxq1´N³¬3àû-L# +oî¥uüUØ!ñÒÄñy©ÃÎ}'QIDÛ±î$£äÎBr©Í(ÿR C}± yTnM:Ͱc÷D/Á2ð¨¯v^ïÿ°wt,é¤16<á÷êsª»È°¹0IRªK-²GXÛUX%Ø»îü§ÿ´é/}]yNª¿GO¤nm÷ε*1 0&N K§$ê~ãñMvd(VQPÖiá½ÙZÊÄþ=ch_ÑuÜýóêòÆÁÔbÛÇä¿Ïd «¯^ÿpt\wP¿Ë{N±8¨.5qI{/%Ïy5 âIµùîýøýð÷ͺ¿Etu®sR3 â4ß5%Í6%f÷NØÏÚËÝ^HîqÒtÐTqD<SÉ7ßÕJ8ÊsÁ $dѦ©Ráf0U¸ uFì&#·§âÃÿ7=ý毸ÌóÅeoñ,ųxÏâY<gñ,ųxÏâY<gñ,ųxÏâY<gñ,ųxÏâY<gñ,ųxÏâY<gñ,ųxøùÿ¶X --- NEW FILE: saxscraps.tar.gz --- ûA Ä$qáÐÅ×Õê5øCº³aZ £²ìÓ%¹rúfTÓ5±B´j͵ Ð×dÑVj?vû?6DóÚÞ¿þÒ;7'Sãi×Ù¦1¿%äÌq¨%æÿÑaëPÎÿ"`ÏÅ#ÔA7tQ(³IRF®2#QøL¤q>n'DD]Êû÷HRò¸Ü2×rHhmËPn[à2#t,'º[uµ62PÐí»*ÖQQëÛÕ YuB·U¨üµ^e£Á«'Oàs@àÿß8©áâçÃÿò¤ÿÍæ¡.éðòuæ¹jß´Õ)v-t0/fFïÿ>¿%#ãøøílB0NJ¥ÉíLkdÝðÆæ`AzDÃ|S4üŰР:AL21&FÊÞk£ÊÞëªCOÇгc(Üߨ°°üöy*Õ*¥wS×´}¤üþßl头*aTIøðã£è㲿Ü)^¢ã#î o`HífØC±D}È"]l°WE=D|"'¨ââÁPÔ/ØZ¤Ì²1ÁôwY%1ýköÒàG(è>ªÃãÐÑDýZée©äÍúHh*Ú VR(Ö_×P0RðuY½]ÞÊ>Ê\-<!Vñª¼b¬% TòJ<r\Ò¤;ë'ü¶ÅL!äç£bÇfÎâ ûqϼÑÀªè?ÿÉÎ#ë:ïýó÷ú.ö}»æÞøn=w^åG:£þã¤ïÚQ²kú ~DåßiWÊûü£=BW§KGz|M K! -6cbsç=DHç{èÿ=sEohéy@w k Tè Â+WOB½A&QºS@Ä+a°3_,ÇA~+il"»~,SPùR®ûÛÂÆù¿ó_Þú¯ëÍFÊþWoÈù_*ÚE®ÌÌãqÃMÂfw48ÕïÀ$M?q12fª¶´©eÚϲð,fËL⤠jɲ:¦k)ØÐR_2,©ÌÎ+nÿL~M&¿ÒfÛZ·-m"b2ZÁCn-3m¹Ü<Þ¨9ö[mzqýp½\>i.ýá@XÿõzïüÍ=ßÙ%ïÃÿëGGIÿ¿&yë§ÿ4|oþÌ^îÿÔ\WT,>Í\|JrP¶Æ=´°K¾3Ýâ¹±xϺD¦¨pÁÁ2`¬7¾ã.¹(áVÞiuÃtE3^ xôf®y7ÁÉÜ<å,ü ³ÅTÄl°ho`'XÎCãDfnÀ@BqªÜX À°õ{Cg0aQ,)rн±Àº³FïòDÌ\ø²¢MÀ *b<7ngF Ìhb1 v7EPHn¿ÀUÓðɰëÏ|ÍqCçcÁ,}ûìÕ`Ѫüx#¤ô&¼bÖ«YÌLWE³ß -W2³9eéñJ_ÄÂ"±¬`» ±Wú`å_1o<æÖÕöÉtæÑëdA÷'z+;ìIÀgåî®ëòðsÐÑ` >áz½ècÀóR=ìã Oû~&yA½;àUϪ |:âÞK¡Ô¶*ôKÕ©oû Fj=@Ú%5*×CráÕ:¬\A7þA2|ðP&Áö0äg·ïÔfuèI,íü9<$Ùû¸ÌÖÄ7EU°pƦ5% Y»þïHöÈÿµVRþo5[M¹þÁú' YÒ\HÊ >>CËÂâIZÛNêOó8[8Ö¦D£T³F[+¥°,ù+CüÚ ë§¯Ç.e¦¿])ã±.kXeKöI=gPe9-#*%Ï?D_Ø /åø¯6ïÿÙMyö¿ÃúQrýoµ¤þ¿¸ü¸ù Ïó ð ðÕ)z½7gÿøãcý³u¢ûRSÃÈJØNâQ©ü>qca4ÿµøü'}³«<òíÿ)þ¿¡Ký_!pGÿ¿õî~;ÄÎ|rNï¢ùo{=Ã2 oçÛÿsýÿôfÒÿÿrÿW!Ðv¦>óº=¶=£p·8%Ó; w¶ÂÝWO½ðºF[eD;foý¶½°O:À'=ö©Áßð)x)µURL¹Yÿ`Óú¿+`ÎüÏÚÿ¯549ÿ R%üÎAÿ>ö|m÷ê¿üùßHÚÿÔÿ©ù9ûóßõ¦»{6ðöü_³~$ù¿B £ÿè»\òù¿VÊÿ£)ý? ýO¹|×ÿîîÏ~Èÿ£Ãÿ§Jý_!Ðþ+¿(ÓÊZ^FØ8CÓ¾ê?ÿ~ðêUó/Z¶ À@Aw>Cm^Â/ÁC®&gOAtÐðj¨ÍÍx}{ë[µ7úÌw1Dÿ{`cô[ »© Ø) wm¬Röø/á<!ºÚtÑ â.ßdÕÔA<ÜQGÑ´ýRpÖ}ÏÑâý;I}Eæ6ïñSXa~ì©ð$!¢ÿZ½GÞz»;÷'<úßÒô¿ [%ý/ ¡[beTöè%fkÑÇXcû¿¶pÿï4ÿO¤þ·¸Õþo`0; ½»r¿åîîÇhþ7üOh TÜ(ʯ޺ɪù "ÜUV±0àþ-(vñóRÈ%Kx2Ƴ[k2Få@hØ /h·k?ᦴ ]¢bäØÉ ,îºÄY[msçWfaeé `kzBeÉÆcw¥#f?]Eè§K¬ÿáøÌÓn£Ûjkµ½ìtâ ¬)¿_9Hhn;\À꺳)ø³RÈ»µåÝÚü$ïÖwkË»µåÝÚó¿øýàÄØû]å#ÿÕG©ý_ôÿ)îªÿ¿åaÀyBáîNýGÞ ÿ¿Õÿ`êþ×3,«Ç¾÷w̳ÿ5Z ÿ?½®Êóÿ õÿé{Î)U:dZåæ¾Óï(ä?FÙkÃÇJ·Ø]pVx`22aM:MÄÂáº`ò¬½zèú Æ)ºA{½à¢'´B¯oº>^¥ºbüy ÏCÇN-P«NÅHíÍy¡Mj^´ $wí»£ÚàÚwî,)ýS Òÿ¦@ÿ{w7@æÑí(}ÿ.é!ðmФ>ª;^~ë j,)±"@ðÿÓ뽩9ŹCÒO!þëºÿMéÿ]Ü]þ_çü¡Æwáüs: îc4N8˹Ììó¼ââ!ÜëcÔ·f¸Ê$ϱ#ôÈt=¿\Zþ·ËûÐA!¬o9WW^¬O×ÖfKW[0,¡ÂA$ø,`¹`Jo1 K-Eð lwJÌ´¬±æOtÓæ_`;iÂ×Îß@ðK V)DZËÕ,/ï´Z ä;½ÙZ.y8 ¤· 3÷m¾ XH£W=a:n~/êù?OßÇê&æ´ºÅ%°ëɬ:¤Ê äQ 0{6%ûgI ËóûéE¹**kÊoÁ}Ø âDÖê>Ý»¹QØ8£eÄÃc/=%Ü"ú/¯Út²Ë<rí¿Úaþkôÿ/¤Ê@ª¾4(Ü þ¿õXü¿^OùÿÕuIÿoEÿZéVQÚL8è¡ Hnè(Lh ûºØVÕj¶è°Ná±'ù§xjÖHY²GôA3DÛ¡GÄð}=àë͸J&VT^§ô°ùà)>| Ðÿ£zÉ»Î#Wÿs¨§Ïÿ¯Kú_<ýû5|âØCcÙÕ´¶Êé1çWm5xà9Úìí/m5z¹=5*izüo1å~IyNðaàPýBèGRåI!0¸¾ãÖ ýÜ Cöz+î¥RÖ0"©¢I³?ì! ü¶ßR!/§Ù×>L=Â%lØù/[Þz¸ñüzÊÿ¼Hú_Dç¿dzeÒ3avuþKxö<÷E $H A $H A $H A $H A $H¸ü?º --- NEW FILE: web.tar.gz --- ûA `x¼@ç¥ÄXb ü+1Æb6©¶h¶hÌ[ðÃ*{£%Ôd¯²V]Æaö"é§Xÿ§_£.Ï£¯íQ×MçIóµ*àô7h5,Þ²õÛk·áL[^Ü~oÿËP°MloéÏ|Ýô/gdz·ü£ÞÅÛ(cm(aQ)S£Ò°WâÈ|dS±@f§jÞ }Ø'³ËÆX@¹ÖæDX=e% [éNÆä5É~#´b'±ÄVµz^\+²[c¾mdÝ`bBU«¥ ÐÊ<\PI"vR+N ܺ C{ SNÒ) )V,|k) Í#øÅ+!1s+ÐDH==^$óJ¸F.\4ßò.Me6"y pêËIöb,l½Æ-¤"á|[LUÖãNY*ôäô'2½*Âü4Q^0¼±kÂÌø^µ_ ðÿÞéðíf{ºl²¼@Å=h¤Æ×¤ -¥¯UÂäQnÎ×ò-R@Ê?Zçoº¿Ì¦â]q"$í¢BÀ2Fn}G:¯¥¼2˺6ªMf0òYWu<3¶°c%ra¦5ÕÌC#Ö÷¬7@¦¬/cm8mÁ¨±Öa<D~0QiaN îJGÔf?A{ è× 4+¾Å¸@í!y ,¬«},0OÙ¹<TIíMaârùËÝ8TR¢gÃïR ©°¤*[EÌýÙ|°)ÑðÆÈ>¢ÒÑ\SêèÉnýO![7Ã0¾á,Ýà¬J»p B}5Ϭ²=Sì±%@±ö"LhR¡¢0Ò@¯ff°31FÿºP5]ô ¿àí!?!Ê ¶S©A[j sGTÁsÂZY¡³¦UFÈÇAZÒGØõB¯´¯¸Á§Uao¼À `ÉäøX?¿[v!rv/Êg#+8slÁW^(¶ËEWä[!@WHÕ%+É#âÜ(ÀÄ0µl 7Í*Sà ¢¨EA½¦`C<2îÇ9E~C®ý}ø?»/ÆØÆXO7ë#9´SöggMzðzµ±Å n8FGT&¦1ÊJvÐz$H i¶å´ÌÉ+t+5u²Hi!,ê©GΫ¾R"µ%Ù|D óhÑÕÄ.âö¶ªWöbhðĦ6l]J|£¢p6Þs>±)ð×)$D ôá5©##aÓ)ôsÅ6<Ab C¯É²y5·Z#ìvL0°ÈUÀX^$r¢YX³Ñ? 0ÎL:ÊEC w ®P0ÈЮÆ3ø ² Q".9çÙñÝe¢&0½¤ÀòaôýÂÞuî;F³a+BUYC¬EÖãÆÔ]ÅI7r¥æ%M)RFJäIÖ;ßÓ`ÌzKD=\ziJá4¬GÛÔ|£ªÀ5xÊáQoص<#¡Mâ<edÈR&8¥ÁÐ.C¶<³µY[^5éPNç-Uù*JÄõ®Jì ¶~ºN0(1ß<éM OÐ|2)3`zF̱kWL<±ae²¥®[!¹ : Í+m Sìsdj,ÙzýÂÚ È³±Óؼº]¢°ÕÕö-Õ|Áo`²vMÂ]ãâ6U`ù¢Ù J Ìfq¸¦qÌ5F$bl× î©>Óù0§9QEôT+»Íê]÷kf©P)Õì,NU 0 WðC&{ µÍet7öÃOvhl9¦* ´çê^ñsåTóî úÓz9w¡^+ë¥'n¿Å:f¥ÐiNàÃ8²Õ¹Kg·È<uPïiÄWÛ¯Ux CèÉíU q4éªtu±ãFæ³ý¶´ß¦=»KÔ±[Fd3jÌß|S'Ë¡ebPú]Ñ)Äêäûpq!öQ§ÙK4×»÷¾FiòÂü"UU09¤Ý4/ÆsÎwaÕ`ÿ§2I«%©LÏÝÐU×¶g²Ý´2;ÝAÒ/yÀÚT]Ùq¥jÏçøõwÐù= ¢@ns"JtÄ# û5¾RåQëã9Ø5ýwåàa"¾,Ñt?L¨«ìþ.¼«U8.¨û%à+( ¤*m¥0Ý®àäH h%aèÃ*aÖ8°ºò ñ^Ц\E/A¿((fJj+ÔXÆù>9c^^EV»ÖaUYEmÁ¢ mAmÿåÙÑ;ñòÕáÙ³ò1êôf±QZ¼5íÀçÜwd÷.rÃV«r¯¡Þ}I ëG«Lã*:!Aív\¾@ÜeÙÍÉr /{â´÷¶P¿¼äõ//u´{Øý³fSõ/û¯NNE³Ik}êÖ@]Ì4dùÂÓz¡ûm¼\Σ8IÄïNÏÎ/N.6ýò6ÓtSï~÷ýÉá?ÅŰ7nàýäõîQÿâppr><9;N0`/M¡ ±ÐÏý6ÿªÌ^Æå»Ê<[λg¢|Mf Á¡ùR°½°ö¤ Þ=c6ÓÌôı9Ï¡@ÍM뽡SÓapÜ;ÜÌ#Snuçðõn08×½Ó#¨Ã«ÍÓn% ìÿÔ£cÑÍ`¢7EPí~Ô»Ü3,gzýøv³q'dhØ~¿yT)®Yb`¿/zo.Î6õâd®É¢vxvþnpòêuEÐW*Ð?=²zðzçdi:ÝBáu=Ôþ-&ýõ©s·Ï`i³M*e6ÀQ¹ØcAzU ¦Èð¦"nRo:¹Ê4Ä"â_ÄÏÛ.s&¹äg×/I+¸J÷6O»g~÷Ìô&Ó-º¦ ¸OñFRÐyuºüè v:ë¯Ü²ûo k5ÕÔihmÌȵǯV©l²£ªÞ8R¦6M7w0éþýÍB¶hìV«Ô±gQF® /]d<Ö/QYìhØu</X s6»ì]º®Øz·WtÈFº /Iẵ»ë£-ØÅÕÛTñ,<¬¥ëÔàå.¸Õl;¤P¤fû8.(n5¬UEdÄR½"*X(5þ½/¢ØþEÙL.4ì& d ! ìH`$az ®(î;¸á¨n(*¨èÅAQpÁQQDQ^sªª«{fB¸÷úÞû¿ïqïgîZO:ëïdx#¥!&RW`1T bd0âuÙ§ áÂ|£\ï¢Hld E´hÖ<ÑrCsYrþ¨uþݮZVn%VÃZHvà4\[¡ËY+* J×äÊ!ßÀÃFJ¡©4®sa¶Þ ®'[|XÆ,ûè3+wR`½¸ñÒ0wV|Q<»kdÔ¶øK ^'©8SÝÏclHîd&Ë&³VáÙ©üLq7I>¥ÎPhãòϤãYL¾Dö!Æ`«àÙå0TÑܥǩn#¦á}qÔJÊÜ VÌ6%Án´ÑÐøe`à_eàg±ä·ïËþOâdº+ت©â£Ly¿tqÕÅÔ)r9¨çå¤4SÆD¤iÖ%ݾeÜhd´ïx;½åvv2Ê8÷ݱHüÆ+B´£+, ÄJÿ ]$Õ~ RÒ8£ HOCqU¶Ar5P#¦¨?"ÈÍ' ÛYâq7Ecu;@ÄÎrûy Zõ9êdkcA-DiÜïF&üÀó¬7%¢LóVLn¿ösL"à |5Ø*`¯ð({à#þâÖ6#Xè vrL &ݧV°TèòDZ0FÃDKÛb§SË/ sóé% 1OdÆbXLÜã@¤®q5¸ (¶â.aÔů?PËægXº äÒ ¹ Òí'+7 kØf2el%°Drh3À13FÃ'á&PñN[F72H<xðÑ"oÙ¯æ3åxÂøÂ¡°ÆG©m^K<Câq?À!8>ÓØä@È_ Ü+KÞL)MHAä3 r2'ek²o°k@Õ^¢s{ JøÝ-¿Ð*ô Ò$Üp%âAþ/ÿÕàiÔÕø´]¡K4qM6"æñ´ÇY»Éoõäö]´ï7¹ý ý&ÃÙ/&·ïÜÃhß¹k´}çÉ9üYé.Â%.ÖS¬iwT@gCï¨caÈXCº³Yò iʧÓ%¸«.@<òpÈWÅ÷Ñò7Û»Ù[½*Á9J>A ÒÇùǧVAú+K 9pJĺ+5Ú&B°À«×Àã3IÕOä ¯«7Á) t@÷cI³i85ÿ$à¶ ÷RT,ÛEÄ"ðN¢ÖÁt¯Vfr/^bdEØ¥$8ȹh÷4àXíÄ IG}Bæ>[â!Á@QLÂÑ4ÆÇÀ#SðU9ôvpÓI¤AÙ¶½ èâþtë'æE2BÁA¦6 ê@Ä=°2ùrYö"n5f-É^°³TÖØò¢ÉíÑS¼åY qóå14/ÝUq©bwætM¿naÛäìÐR"3ÊÒz}ÈlXGÝïa\~ rO0µB#øf¬ÑÑ@S$¹÷Jã*³%g©ü!y¡Ä(\ÐkĤ<ëþi*¨Ý4ôô_ØTÞ窮ÛdÔÿÓBÓñ»ÿoÈZpPبiÉÀt=r²yXXi0¼E´JôîðcÆ9 °ñËC§«¢yx/R¹ÁþPTÚÿP÷ ¦rÁa% ˹Ã~{`å£#ÆI~<ÅÃ)4Ò©ü»®øPõIKJDbÓÉ1 ¥±d±æA;>^2ðNVýá£$òviHùÖ)ãk:*¿è°E/ÂY1¹[ÑIAo¹7ÂMîñÄ+ ÞD6ªDP ohÙ'ä7%LÅAC3kS`tùÂú ËÝu(Û7ÅH7]^l=_6Eà'&ÛØ5[}] /39'6Lå¸hI5Á©;z©iX¨ñµ¤°QÀ !¤(at0z ¥bÛF:q^¹2v©G¦9N¦9`BðÞ(:Oe «£MLårñlbYmr8A.S§(ôZ§îÕ®l÷¨µ{ ZãiEw¯3Ä;nu8¾iàÕ¦Mä7 9â ¾+J5àØb3°iÑøî$h4aEUãuö!ÚµÓêFÛ8 qUX?ÆÕAD¤)ª²åò¡sW¢áªV®ùG ?*Þ¯>ß`3<§òÍðò Ô o ô5F/.ÅÈ$@eV{S±pHÑH(ó¸Ö¢Â^6%¨Ì:.õp=äøY8ȳFË-r¥¼(b.ÆI"ÁÞ×SP®ÐÐTWbIJàüp`óÓ=1å1løW°a,6GË7¯7K öÄMòH (^ð¶#Z`[ùº#f[b¤UÑ^ñó¡Yn ùNØjC~aeÔ-#UÏ+1*ÍÉhVÝÂþìKYò&NÄ·Ûã÷=h5uÇËBájâþ(µÇ+ë"^Ëø^<x 0çâ ÉÁ0¦Q.B"͸M o8t̤ÈÄT~@ø·ñv4<¶(RFái# %@Åpiÿ:1$±zJÈA¢¤²°O-»ÙØüÄÉk Û=xa7¬]x®Ã0UHJ¬J,öCõ[HLùØ¢øò©!&Ö0£ÍõEíH$ÞB2% Í2-Îãé-Z"6JÚwÅPP`é¢H¥=ßÉ¥;w(Õ`òr@A å³%¡ÓïY?Z# ¨ªmI*ñq¼)N¡ `Öyñ±NkîÊqfÒðVz§Û¶qF ©`a± 1ÀxîêÊ0¡}hVå;w'íýfyÅ ³)aÔòSâ _&í ;´}Æ_¡°âä¤_y× ÄëV ¼0íÏñ%§ön+þd¾âÉ EfÕJñËLq°½k±u¦¥{Ør ª`hqm{Î*`ê_`³6S|ÎN _ªxÂü¨ FLÐg~å{õYù<ÿ¼áôa¦5áÓqêxbàïh%:}Õ<À¶EËä±l-L £§}<ÂT RnZOUãT yb+I8äÆOÉr¬V®µ¢)ø8=*±ë$ïi}ÄÃ-#½Â*8PPK 5®F×ZtÕMfÁÑÑY³ª1+«Ê GTSÄ1îjçÝÈÐ<[˾F#üzAìũ٠QFâ§0¼SðDÃn¿+g®É³ñ*ø°:,O´·äx·Æ&"$i²úRdõdU aÒq¢¥äç§jrÎÔX¼,Àá,Î'mfÚIqaÉn+׫±MË1ì µª(ðÑ|Ç Gé]´´Óaá6 ¯¬Ô1Ð9Éß &sî÷H!õHÆíAtoVBÂÇFÒűé©qéTVµÕ Xè"¶ò[5Ñ,bb%( e¤KEkZÒxÝÓ8þ#üFÜcrQËpRPÝc Ì¡ÍË-b§ìEÔõ8ÁíY]þ÷zÀP*E¶|¢>ªuÌ)*ÜnpC¾Rô ¦ $1ÀÆO¡ÃÍt>yûJ¡.VêÓèºLb) PZ°d¼Ï/½þ¾/âsKÕÌîM¿5þzmøu)ØaGÊä"zا_/õ3ª·Ï4I¶£x¥QaãË hÔ/ Ä$TÈ:aÇ´IóVk/л<P(² _U:żiÀ'Èz¬}òü7îv¥$Y;^Y=í»/b¥Éáã|ÔpD^ýÜ 6&¡=°y)WÔ DÆ@å<¦ÂïDÁAwè%þ`é4αq4xg´ëK(mQB<¶2[ ù¼È8˨1LðQX½pд@ñCÙ²Ä7ûÐ#OÊk,ÆdaÉaÉGp`q½«[þ¹ÀkE£J e~s8b@ÿ¥#5Ì|î³OPEÿ/àN£üª8½ND¢Ë1ÂΩ_(ÏÃÇ4jxXý´xö¤²IÐ vÛ¾=ô)&ð=þt ¸D1eõ½|uýnÛ l_cªwP[{æO§½}Mx¥áÌäW ^À§ûV»+ÁïÐÂáxë6~ÏòßDI°ä7 ¸ûs(é¥Ú²Aa°qµ¿ë|Ŷ!ÇÌáâï8ö¤ö.üW¨eCnä1ÂÄûe%ÏÁXâ nÒ[]ϰírâÅ×iüq>É1ÐYl :=a¨>(Ø3ÖfMÆs8áã°Õë[8.ÂäçHIäÿ¬&&)9¦Hm]±üw1 sååæñN£úÖ1²¡Á( ãðÕ5Ç^:¾i7¼iuà «AÛw<33¢:ò¶ã:uýÔÿÆèëºüÿþè9<¬ K ´9'9µý{âÄ÷ YWtÑ?è×y±4þóÛε~Û%æÛÑÒ3Ëη2û'î}¸_öenEÇê¶smÝv®ÛÎÿI·]jë¶KmÝv9f·ucg°/µI.t©)¸ñâGe"ú'Å rva¯¡5ØVþwâàéÎüéÎüéε>Ý ?Ý ?Ý¥üÇdµ;8i\Üç ªaE0ZÐÛGé :ÕmñQìw4ø'4D¹Ë9>?åHó-Ù:6k½~ÿÊJ"ãÑÎb^w¦ÑEM¨oÌ]õuãÎôñòùÇ1Ú>þ_çûPÛ[®õ K@SFÂ~©rú-£îÔ` ´þ\²IÑíµY«²u]ÁÍ ðô<ÓÎOôÓrC6w9ë~_ ¯ áñ¡ I%J Kslw É · ¼*ÉÓë ú-Ýb<ü¶ Û¥v¿$sPÍ~ïØk,ÚÜ1¹¹üò!$¯y=dR\GHhÀøÈ×]áõÈ'Éh Ò©ãaa¸|q!ÒËÞø"9Í)¨æxðÑtÛ àCFïñ_'8qG(X²=½=n(×1oèÏQÊ7Ö8xûFÑ÷T[ã¨g(4<p.ö-gn>+b%D¥ÖºQÈ%[Øþ¸´2·É_À7¦Jµ°ÃWUçÀÅ5z°Nª¼Äq{ ú3=íár3ÁÝó ùQ pq¤àhD £«q1¸@Éu$,&,#Ã_ÆêHª(ôb¸$E; "M¹WÁâ$J ,f Z Q'ù ¼¶µZ×»Òe1Á(}Ví.^ötaSõF¬v*+ <ĨS`GIËòGpBf¿Õ«kÏ|1ä,ÕÇàÆ¸-&Sùp+®ÑDqºÑÀ¬o[ã8Dåø¸EÈ´j]|g,VaMc *h%OëùôðvMàV*ñi«GE$ÊÊȨªªJ¯êgdäõOc³Iö´Ìäº< [Ò)ZBìhIh ftAâËéµÜ$ð}aî8¬r¿[à(6¬x1@º1äRT^s0ÚHn©ÉG£S(ÆFå<èú!FR@XyÍ`©Ï-r¶+¹×·TºÈqp4Já7u[¡[¾ÏLþ3§ÓMiz453Ŷ¨¡Ö§8¯=#<jü8!WykeMvcBÉo&ư!V/äõ£tAÈ?:@ÌBÖGg.`ÿ+GÙ$l¹Á%L%{¨0ÄIóÛ8â6§°o& ÔéÈGu째ÉÓu°xR(÷$ÁXL${Zîéz ÉÉ ¢±w¿[f4Îü yDép/cÉàÖô sõ¾yãFåÁjáßö½á1dö:æÜJNcì1Ù ú`;t3X?lÛ÷4¿B¹ÃoSÅ P½w>Ax¸ Ý3ØXxáIoâàp]àFx+áoÑø»N-!4¡Ò\çÔõ·hH/ÖðÅT~»TJé0ýÌ^¼é¶³O*ät¡æðWÃ[}UüPdHÀZyQèIæÚ`dÂO½©°PRX9 « DÛJ.g³QϤÚêûH$l@CQÀ0$`mH|lQy«s¡[9l:õyè)XúÖäÃ󧦲¾íO#eMño ÷B>1®Ò? átIÙ ä!AÎ.+g£@nÈ\jUZb R|N §IácÓåóÑè Iì«Ù éf´¬Ì7³±3l½Ù l2Xôs8V)þ¦´+Äàöb§þà³ßó2yªÞßöF²²`êx{§´ëÄ6kbúIÓ;B¼¶XéFO× A« 3Ëe<Á¹08!«Ø\ 9ÌT¢ à.¦ôÍ÷p6Û½öÃj£¦Fa* ÈÖpò¡ÍÅpgÑ zF}±Ò]î+yÞ® ,"Î ÂÂhñhIû¶OÕbÜg6;Ù}qÌ©ñ®ø/1jCG7ltMª@EÑjó$k±S1ýõîÒU2â b¢éÿ#bYí#¹ ±²P<ª÷9¡-H~âòEüb /E¬AµfFªý`ÍÓE?"øÊï¸ÿP# Þ©E whЫ©ÚÆÛHLÁkL¦¸Ã>MaÃf ?VøÜ9Ê'T9m*Ç.%k ¥pR©lRÏóhûpåyMfT@5HJ»IcÙe«w²y¡ÀÖõ¯ äA]z¨R·1ø¬,0 ± Vù¿² ½@Ö ðÙh âÈë*UR¥'z=¥wÉ´ïq.K¯©áPP)âT RpÒ ðã2kZعöïSÀ¥¢<:¡g±£óÏå ácÓ 0<ddÿÙRõÅRÍB5´'ÄÙ]u¨ÿ09ª&xNEîi¼èPÐc¡EÕÌõ-GaÇ%X6QÖ&Å2µÛ:0ÒlR\v¶fËWkØ« °TJ*kÚ-þ'®Ãoa[GY¢ÃêÑ a0®ý$ËçÕé%Z1ûÉH¸~Çó, îµ'qûÕÒBfñÿJ.¢:ºBÞV-,_$fÿâ^JÇCâÒÖo³~ü£¨ÚmSd±)O)øTh.©ÿô¹R¼xÿõc¥ÈlGQ4«ì¨röûÔ±½Çwí{ÀâíÂq<Z磻[dGó=ª§ h@xتg<¿ GØ,ý1ûçÝ]¸° 'Û~ú ÆÒcâ~ÿ±ñéç~6c» XLDBð]øD_®¢±,8¨æä7ƪÙSËÔXÅ`mËEMɲ_<õL¬^o^4=¾¡*Æ\Æp_Hì Ã?SÚKcùò0ë·wo(Û,ìÂZÆ~°&ÛÁ`ÎVNGbàÀ[ųÃ:Î3`F©Þ¡UDIY]¥$w^å5ÂÔàöxÈë¬TóÒb'ovBnBÌ Î-¬W9`MZu/ûBÌSöêk)á5$Ù$¥ønr }¥ËÅ\Ãû°é¥%ÕhI°Np<¬ãã±öfNM^jÚ+ý"g °lU¿NÚ{(ÂäH\Âz`©]:X^ #ùÇ[X¦S[?Χôt=yb ýçj±ÇZá5Î]Nü µãBzKølZN(ìDÑ\qÙø7Õ@TúäÂ! eéäÕJèØÊVJ+¸Ç Q0a½Lâ¯V¬Pk'òØîE«RîçM*5d }ú¿²x»EFñÜÔBÀRæoE~÷ Ò©¦ 9 CÀÈp.Äè¡ÌL@AÏÞAuü]È,vòÑízÞãcr§ÍÒ¬=KÈt >rõJܼPrÍOûi¹ãè¥sÖ ÝÁ½ÃVUð ¾ò±ÙJ0|åÏ82O¼÷ò£ÛìoUÀ(Da^Ò B¦¶t)ú|>Ovj÷Éÿâ|h#ÈùJ=½4»d·¬"ÁyíÏÕ18ä¸ßädÎüa-ÜÍê2ë"È:jûuDáIòrSvª)à@È*ÞcUN`Moì=8 ùrÚ¬UH`Çð VB©@9$·)¢>åÅ/çä]Iô¶*0FÂû'ÎÓj ¥ #¾!ô°$¸{Èñ)ÂLK8w|Û[ ÄÂGÜ ³"OùÅ~Å[´?Uzëï÷ºÑÉ¡Ü1hî#Q ñlÌ÷bë<`Wi´$$Dp4ùAf¬Jt"$G3ÈÛÏv|JñIÐh(¢°1$T2ôw$¿xM=îC8 S:z±^£³¦,3f N_|Cî¿ó ®Î.=¥]¦ÞGgÿÉB]ô* $ɰ ¹¯©Tð§cQg'`ån# cñ}Ry»v~lõlìº3¼Hü!¤Æeñ%v'Ä|vìsn{] ·|â³dEþ×zJAxÛáGÊq:Å=GJó©NU0ö8&pfÇ>¬°ÉP'&ö§Òb¿¶4ɨ:ncZ¬CµvÒ)6¸,þ&Û_K÷q¨½XéK<¶Íÿ¨þgAL¨þqÍ/=ÙÐ4ÜÒÖ)âH}¸ÁÞ°þ(Ä]ðòd(¡´ÞÀV KQºµÄèr²æ¦aK_YuÀÎZ@ÍÁÊâñá¢"²SÞgͦÆâè/0phS ÿÄæSÔÙ¦ZØÛ¸6léù"XñNi9l#)ø¾s)ýÚFÆßµF'>PÏ&uþ×6ïÓ]úÔ ÃÎK±:Ö8xÏM;Ö±àxoâ«0! òÏä®Aìt#¦Á4°Êæö@98nê§tÄtKQ)^$5ÒNÖNP@RáÄ¿0\°Ã Ó(ÂÉÑàsC÷G4 í2¼:@°¾¬1.sÐ|ã Á¡ú ¯e¢@Ccl¢Ä&Ág,´WjÂÑ ³ðæè5®8¦§§ëÅ.úASá8ïêÓºÑÞ,&§êe~ÀyWj8Ñ©D\eÇ¢mzôQFÇíEþl(7 ±Cõ`ÄÃbí!*¸-ÌkG2¡88S·s¥0kǶüÂ/n ¿Ò5Pç}Xha§ú6Ô£<Ê@Â"еÖðx²ÁÓî(P2¿¿0:E ÇTÉ1>Þ¹E.P¤9H¬5îÎä%7ä%þØj;^)ö E^bÎñ/¿^ÒNe+/̪õk2Ö ;QoJú<5q Ò:^kÞsnÐWmçécÅ¥ËfÈn6i¼:-¥ïd©pÂN+ÃÒñQ÷ÑN¡E/§c"Ôe_ð¿Ùûm¤±¾ÆGªÍZãôaÀ*Á`Aî¤È¢$¦LhvhWcRPká4_ÍåÊYâgΦ۴çÃjË#d å|7%R¤.õV pççòTe!øB<ÌY>njPë ³øub³1§Þ!\qØuk¹íò!¦:ñ[®Ä\DºáXÁVãÌy³FAØ)éýÌÖûʱÀ;*¦) ðÒr&´ó+³Âc.E ÛS6á"IñéÅà[±g¥Àþzbe?Ó ¡däÚ±ßCG[.½ÅZ"cwâW#W¾ÖÑH$Ú$11?¤'¥¼¹,=W=ÇVÖ 4lØ&ãÐ&U3~%}$¾\óÃ"¤D!Î DÅÝ7<oDÞÈ¢¬ãÚþ´Z;QTmÅàÓͶ¶Ü.Ü3!ùBRâécQ³¥µÑpz$¤|¾6oH¢ÕâàHtP¡Ã4Þ8nìv@ñ"ïü6ïÙÂíj3ñakH±za®*\ÑØÊ"¬%h#ÚqäÓJ ì&Dµ¸åt½Ûÿµ¬mi=¦þ02YOôÙÁòZ [ï&¸lïZB¦G·Þç§¥ö¾rwJl7k%>ÎL.U8,aU= BïK0SÌa´zB¤P}¯¸H¯÷åFAÑ6ÇÉ`·Ðdax¶¥Ç¡n°Ð1ºâQ³4.ñ(\_¾¯jÕbJ\±æâÍ-ÌxQ±Ìïäó%j9 Q¯¶¨U Ñ1&Ú£n²öÍ5Å+,ÆÈW,°('®íº£Õ§]ä#nÄ;þ%UÉ%i'§ÆíÁÅå.|ø'>Jí%"]¸i6±uËqqu?ÅN|n)½ AN:û3Y®ú±#Lý[}Å©Áí¢¾f·v:sÜ÷²Ë¦1m%Å4õFiTYÙ&32ñÆì°£Å_¡x#ÞsÚÄY§;ï9½6n/j¢¤- ÇmRÖGÐIsÍu,¼aªù¯0,Z9:µ¥GIm(/¥¯ÙRxBà,èX²A¢ pÀû 9ö ªÍr0'Û}âØÿZyP"¹0Òoe¬ ]y¦a`41øýÔ¾FRRN_¸!¹:"5îa¬y³tÈ4å´ ©Q,À?)T7$TÝÜÑH*ËRW|¤'õ«*wé¶O*IM¸ð+!õS¯(A´fen+êþMÌðÜ¡^fy/ûÙX:æó¨ûyrÕÆoÅ»þ·Æ.2&Ü»òcƸ!×a¯f\y÷Xv\þxbC®È÷¤ã[r¤e1¶Y 6äF]Öù±P¨YÅb;¡XÒCvx~°HY^ G9Çr¥:Í-6£Vÿt¸ÑëlçMÜO±Uµ×ÒâI[¯pµÊUrÅ:ã¼NÉìàut(Ê¿ö|ÁbÜöö«¹®ý«ÆmÛî^±ììóL¶Üà^V=fHÿazaQnA¦2ʵLÝãØöË.sx\&áññ²Ñ0·;Qº¦¾ S4$F^!Ä+hAîi$QÑØA®`üÊXʳ"½+m¥Jî f¥:ºmiý³y9VDÁwÚjï )ÌÒJ`VìfÉïÑyÀÎñ¼°Õ4®Òâq1QÀ®YQ¬J.ú!®%Ó)|î¸|(¢+ÕüÐP³)T!+B%tM½Äëe·¢ÑTt@+êWêÔ,ìPTv8ÂÒ¢Y$¶Ó,m<Õõ¤ít[q©¢NfÐQùß$o5ÏN½eR4èØFÊY ò§rÃzhnX²^,`@ùÆwñuN½bÙ;Öà¨}pÀ7j5®Î2Áº.ðÚ\¥Î«ÔŶJ]Ä*)»ÆÿZ\3©¼3,Q(-©6Ë"|NñìÆ$/´é«ôaZB6óè|ð"ô3TeÙdfû Ö2n_ô2ÞÓüuø÷@5lcÁ##[åmû0U¶ Ây ìÒd"«Õ4y%B^¬Ê Ãaà¸Gø>n}ªN¡JX$¨ôâ°òâ£n¶~e8£»° , àR¦âV kÞÞúõ=Þ°oct3¼«¬ÉÏÊ"#¢Àl¨ï¤Ö·Óg'ç*?²09'fè:ƽ@Eo©«¼L´n!KyÝTZVF°¿MD" ûÁ½Ó¬êÀ¼Òï4¶¬&Ô¾ò»«¡:,7©°AÚj<WAתºUhæëåxKYê- ¬}¡pÞf1YGî è4tJp,ÕTèu)¶èL æöÏKÎáÈï&tÉjU `^â HÊæðÅòw+4\4S)lqøØèR(h2é@ûÖBÎå°D|À~CcÒ9<ƶ,â5 íÂzäËdB±.«¨IÇ$B`yê²vCñiá]Á1ù >ÔÄH<ÐE£ÁÒÈ×`¯xAÉö@ eêý.ââ}ª ΤÂð)Á fN±fidUêcúG5jìµê OdÃÆ]°KGõ¯^Ø ((%©KY#ð$¼L) » ì,õ¦$ÌÕ-6(Üd=~ÚÕPáü+dM$«q1(çQÈï-Ä~<ÂÞ©}ȯäÕÂ;ÃÇ®sÐ|`¹£¦Z:&JêL SP(DéhX GÎ ""Õ G ¬ä4Ƽn35AŤ5B¥&!ôIÎB'ÕJ¤LßfRA45S- ª ÇÉìEÀf°íõæXmÓP¶fë×Û-°SF6V*ûÀè» ÈCÅzLv é`Ã8Á#^#°àn𬳦d³0vÐFaÄÜÈ#¬&Ø»mx¬bÒAÓ,«aÉ.,Þܺáöbì 9ÔªÅe£6+á!Ê+OÃMQ~Îüb0HÜ )Þ*: æ3å`X?ÀðYËbˬ')Á!øcbE,+^Ñ^çÏs-nÄ\¡W"0¹ÖÇ®<c¤ ÉÃÕPwäW0i^¸m àF£_¶/Àrª\QÍT1Þ>'½ ¢#4/\g|Æ<IGØli4¦ ùî iѾrPÎi eã)`äá=C:àt1×è\ÎÎs2Þå¤ÞZ ç X¯¾ HÁ"(m&gxAÆæ&¤¸Æ+gZY¿ì´*T3@cÝ&a\ßî°Ïmyj*ݯoK7ÄNo&eäZ$sÑê,\-ÁÎèÆ¥àëH÷^c¨Tóô!íé\Úpèÿõ«Ô¥<ÇÅîÀǦþó6qØVÂöð¿JñJÄ:¤PuMCp4KE«DÛ$§~j Y+ìê@bD{Bzá/þöÚtõÓþñåO«ëúçJ¸.Ýa¿å©ëcLH eA6ÆIÚ»ðÐÊûHqÕÄhpEéIK¡fCYýØÍ?Å(w]b¦Å]îEüÊB%ÖrÞªxAÇ(ÿ,ô+ ³ªÉV¢"FdrjG»onÃáêÔguR)fªÊcTaK¤xÅg·d`ÓØ{v_ÍÿçöWÁ£d.jÐíÈ.MUÉN]°=¤ëaå¬)9TáNB-B)yp|¨H*7í%ê¢CeèÎÓµ\¿_ÞÜcy1l± +@Á°X-1$.cÈIuñ|A§`¢ÅcE²CrYÇXU1L¸ÑûÍ¡ÌBG&ø=)Ï8ÔBk$¹e T]aجö¦ñÛ-RïÍ@P¼%|æÊÖÓñCBV YY¥14Ë%<å°"tb*ñ1bAüµMÓºã4égözb^&/ªic">?¢a÷ËVêÏærÃUª'!Ó$ '"ÃßbÞJÊsºsKEê&¤ñV!6hbK"hvc4®:Ýܧ*#ÁEKLïô("&³;Óq|SÔÚ`zäÈiK mÂk÷ºÊ?À·BddP&õøQÞ°bdQÂM!¡O¨ûÙL&àÑ2ÕwÄ«üý¦*.YôHc-ðR/1ÍØ<M¼}½q_Ç,÷jh¯*¡ÓË`Xp1]\ÜzàfÚ¾ï)ïGt±ÅR*±aMU¼!Ó`ÅÒâà÷³`Á0Ôkd 6CO!Û[.%;²Z¢p£g:n¨Ït)í¹&òuïë ^ÛãWNÖĸ³D¬=ÒF6ÜrÀ·è(àAÆpzòó;ùaç¤P86DâÊ6^h ±'Haózè<aôIAQtÂÝãqÜ0ϹÆÊCèWüCbþÊ ¼0&É(Þ¥|"/å6°å:Z*8 R¸UÓ^ìCÍÛÒ 7åè»DözìfLÃa@Æ«¼«K[<Zìû óêõ®´²0`Síy`"òÝáMGûöDÃn¿Ð¾j?æõ@Èb>Dç9\áÖØhCCv§ªÐóPXõ%ÊNªÉ!Äò¦ =1,£hæávpRÏCܶEÇYúf¦ÉÓvRîw§JÜKË)@ií 7n+(; MöÎqzgi9ÖKðbpëZßB«¸O&2¡ÐâH¦%!{G& A+O&¿]MÂZ UÜ=`Á Æ ò½\`6CÚ0B\DYS»Õ5% À^æããùD!ȱ"ÈíáFH0ä+E1oE9+SOM¤ó¬j~B:¯ `'oyÑÅ ¶}ÆPä§e¯6#3¯Ü!ª2¯ÝÀp »¶ü~ÕÅ¡ðB?X:ÃGq 1Î~%à¤Ì'b vÉ wîB¢æW}Èç¥ìz{ D2e&JeÇ#P0±½(|Pªs¶ØÐ94FËL]+ßÌ+ÝKEË$5;(µj¦qÞ«v¿U©*o©$%$©X²ä'Ø¿QéßèÅgw ã ±¹ö¸8_˳K©@ Úú·ÁÄê(V'¸ÌgmÕV"»÷K» {\n{v0àÍAÆÌ7 rB0 ®w2 É9Á¾ ¸k±ÜÍ*<|Äã £=-]`%{8=ÔtºðÍä ¸hqøéÅ~à"ÚýõÇ 1 Ö"¢Q[¯ªØÑJSд<Páµ§èúR,^´ê ø¬À,K)íJ¥:ÜÖ¦ZI}Jý0ð ý9ej°ÊÂ8AïLÙ¤Ð'KñwÆ}@½Â(E÷ǤªX£;: ¸;*t¿¯£Æy|f(h¼¹&þ¨ µ=Sñ½8 ÖÞ&Ð1UǨÏ@¬h íõìD¶\.é. õÜ ÐÐË73qp©òBÃÕrNa(âfögÜm[DÃ;3äf »ó@Æ''(&q|è#Lô¦ ãÿÑÓ¤DhSÒ.Â6òRTRq{P'jà¦Ùhʽt+# ó#K<ãC.*ÄÈQxiå® o'8ÏÂ¥¥°$I7¡a#$¸VÞpE(}ºäàþo{¤¯T[XâôZ¹ÑΤ/*¾a !@®r '©¦ðæXÏ9D2ÜíØrÍIµtâ, UH¡ 2&³êXD1x@BëRBUºU¯ 6Tân:8(¤¸ ¿ØWµ w:ËãF ê+BE«p4[-?ìô2Û5£ÅaçTç4y¿IÎB¦À0UpÌÒóaYþ£rGº -n$¦`×ØÇ ìÒv&àY*@ÉÑæw,Jÿ¬{b"RfC('Ü»]Ìͨ,KSN%;¸âeîéàBö§Áqe¤WD*ýþpaQnÑBê( S2Ó;uKh4Éñ`Hì²²FòòôÜá ù1²8´6¢3,@¿l(#ÀeZT ÎÓïmÕáM)Jíþù£Æ4¸HÉ TMjEfÏ=Ó:wê© IdDép/;z\Tö- ¹p`2_.TcÎ0iÁ²HSGzÉ jFË#õ³éd ó,HÇÆ\+ÉQ4£V7§6J~Ä.eüCÓêýÿÿ¥UÞFçÄÌ2É¥%¦1îqÓËgý§}tbÿºuí ?3»_ØIýÉ~ëta·îõ2ÙGݺuêÚ¥kf=ø¶Kzz§ÿÆõ/ Yº^É»çõ}'ú'þù×úúN»È}bý8{_ooïiU_|zÿ o?úî«ìø¢ý/OÿÒöîçÆùO¹GÎÈÏþ¡í7¹vôªFæËÿ¼jÉŧvRý6Y}ÂmïîY²|9ûÿò½òׯk·en:ýú³+ð¾rdOÇ:Ì¿øÑñO½ºsè£ÛýïÃO_öä1Ñâ§&éúrÒ¥ãþú¨ÉKÙmN¾såØîËÝÙsÉËæN¾tÂ-Gwoÿ´ê ½9òÜÐGG/}ò¶W&}pïÚ#Ï]ýyßCcxgcǶ¿yté+ßñéYý>oÑu£æ]4ìûúîÒÿím^ßíöSÌÕ)ùŠὯ '·så¼oNnyO³uN¯QýûÇ7ÿ8rÍìã|ûëû¿?tnFÓ±¡;w¿ÝæÞ¶^õÃý÷þ~òìOïüæ¬KÖ/í{§«IósZÜÔ§´íWMÊÃì½Çæ/¯4hÏM=ÌÞø_-©y¤O¿¢þÁÍæE®Î,h:¬Ç ½µmõñwã_êzNýÅ6kýéÏ;ÛriU[z}¶êç¯Nxíèú¾ZWïú÷í½ö½Wv_yâþÅswÖgwÛ{yEæk/ètêï×Oß|ë°G¯ÿãýg_¼ûë~ûüùA×mZf¥þ¯³ï®8iÓ×¹~\6àù´¦&yûXõóð²¦ÍÛº®~§±·«µÈZóvçÙÞ3~¨×ãýÆW¿=.õåºVí½ÁõË®*qïÜW$7¯ÿþÈ76ýkÝ33/?ýf£S ýúÖ7<ÝðÏÆ/LÛ6òôüG/ûø³[µ2ådz~Òni¿ù¡Ñoµ}æÔKwŧ8mÖ¢Ñ-V\yg)ÃO7kGçCgåô=<+å¼x¸ÓÕËB¹·Í^×tv£{64îÝüÝûæ_=×Åvþa\]ÞÑRÿíÈÞ±[sÊ?{àÓVl{þÞ[ùkѹÓwÌ{FÓNù.¸bar-·r¥ïÊ/¿¹î²Õ«ê=RäÁG4}aÉwmÿ×'|w+õǧì1OXÿÖÊV»Þ9·¤âs÷+}ï?jâ¦Û¿3äÒÇÝw-¸øÔn~ôìÒ¬õ/ÎÙ«?µðþzo¹¯*w{ë÷ò.¸ví´õþÝØéù['mhxâôµ:¥wþ «k^Í[°±ÓeeIýë¥ïj|ÛµÃöüöêë;3>íó×¼G üø¥s,nuÞygDWÝk|ÝùÏGÞåûç§í;ÒÎòÄ´]o7|·~iòÇ®ÞܬÿUUÕÛºÚxº®éܼÑ=¾SN(Øðp«Ë>Ë=§Ié þð&ýÂõïîZ²®yÅ%Ê«Ó~:úkÇ}úç¥cܺíÐ¥GÏ?Ôdì6nÝ|èÒÊ*ß;ºô£hå·G_~íïzÝ]=¿<·ñÓ7|ZÓéÎßßþügFíØùTë3s^ü}Ýóîm]^>eß+½u;P¹ç»èÊk.ïiòì9¯tycÿe'²:·ÛÛ䡧ͺỮ'.ÞqÛÝ·Ìy;ý£O¼Ûó¦×Ã÷m?cø×¦ÕWõÞuQåÁmF·hùÒÉéïî<»Ç÷ ûõïóúî=CÏ~å׬ÙuýÙ/ä½XW¼æÉs²Fôýø¾OZýùïIã·.w{ï1dÁí snþj|ýO¬úô¡¤¿ëï]yÙ©sÚ?2/è˺ó³¿*ÝÔöó]<m<qSÉ[³][øôѳ2θÞù6©ÞË}^\¹ðüÏ®[äÿkÓ÷\´ºÉÏì\¼Öío·ÛóeVÕ3_u][9óÅ.Zÿòs·?uÇ='¼Ý軾ðÉ%Y=FþÑ´û;#OÜpÓÁâ¿6:²hÎ_yçÏ¿2ÿú³}yþÇO íýU·ýoì^Úôï×f½Ù<uíúM×~Üö±7®~òp;¿ÿþð{Þ¿"ÝÓNXÛñàî×_ÙñFÿ«O^± Ø#¢ ü׸F¯}˳îκ©ÝçýexçÃç}ÿÖ['t»ª÷uigO¼Y3úé.øeIò:ã;vy²îûò¤AÞ#Í'æé¯ÖLº»tfÆû7ܱ±qJãwßòYÎc÷OØyÍν+>$íðÑþIÙC/[ÛðÃ-|7ytÃÓ¦:5ÙÒ¾É[?óÞopE«Ò®¥M&<>1Úeþ%çîý6ðÇ}ú}pâþ¥Ýyð½·þjù̶.¿-^~UÃOw]ùS¾ºþÉÕ¿^ØèÊÕI÷5½zJ¶#4Íé°ô>O£ÛÝ¿¥ñį®ÿ¥ï}G÷Ô[¹ÿè¤×Öÿ«Þ%Á]¿urÑÇç_zÿíûØÿÜK/ýØ= hík?¾çâçZ,;Z6bÚ®ÃOmݳæÀÑÓê½À×ìbWß6µxþ7Ozÿß½uðç˾5léóK.<úÛýtëö¡îßZ>¨©~<çÈIÆ3-íòEMŮɻ_9#ÐÇÓl^êç_h¾zøG~ËiôZyë_÷æ\µé,û ¦jFõï?zwýþÕùwßal·çöõ*|ú-÷6ó?)üôÅî»ûµ:û½wÖµÝsÙAç}õrÛW÷Ö¿ÿÌêÞ¿rø¦¿j0åÕÞ7½½hæÝNËüúéΦl?aÞéó]íJZõÀ;OKY¶øÉ¾ëßhôàcX×ò&maßmÍË;¿àþ×zeí<¥iÒ¼É 'õ8?øÚÚCy?^¶ü´'Nüᮿ>fmß6?uÊo¤ïú¶þOñÁ9I?çlXÓWyù²ý;Úe½#ý+Ï>ëOÞ^ýNçM¯W½zSþÕõf\¹ðÑÖZnêåùS¯0¬Þ_|߯þÁûî8aýõÏwÿÉýùÛÿº3å/¶mmz{Û§¦nìýàìÚ~vG»ÛwÜ÷ÂyïÖïvöðÏÏhvrê»Ýܱ]x~GJ§qV\ôuÓv7_~uÑн½Ù»÷ÄÍ;Ö~VÍ¥7Û¥SÏaUõ.¸aMúð_ݵòÛg6¿ÑµË¼zÿÔúÕyÙ¼?ÕËkxï+¯Ãõ¾ðÕ¹S.ÕÇìYñçMÞg5ÜQÿííÙ®Fº¶uÀÀµÕ S|£¶d¿wÿæÃ²vÝú]Ëþ¯õ\.-½zuû;±îí¼Iç´(ÏμcÈ9Ï,ÜüçýßÎØqÏ ú.µéY_ñËÄ¡³¦Îlxúi ¿lìM¹¼jÅü·/O))Ù÷éÛÙ/7¼m£ æOº»þ77/øà×vóW\÷U^é·>ùF(í´ÊoZ^Ó|ÌU¶>òË/ÿq÷îO_)¿òÖÓóZ iµõÔæSoýâÅM÷1êGßÖâ~Oïëþî£üy¾ïJßÜÖåÖ¸Ú̲òý&ÌizÛæk_Ê÷1uÁا¼×SÃÜ/?éáÙ÷GJVÊó/Uwy,»_Jè¿NØxdîÔ>ß½ý¿çg|üä¥îÿô_[nÒiFMé)75ÍuÏÀ¡á_ÿ}ýoÕéy¯:àP/OÏM/õ{øÝ½®÷kþ¦gÍN?kÜ{ï ®(°ks+vrW^'ÿçݰèúAW¬þ3|EÚÄÁûömòSoêG~3}íÁÀ I'%æ]ýà-Ý,jðkZë+R~|dúªw×öþüø¬]-ÙÕöàÍIû.{·kÇ}ó}qñu7ü:æ÷zÃ't¹râëKOï鿼g£?|ó÷È7ý뤣V?î?quùè¦\0kpÓuûWÍß|Ç©7]Ü,©í®~ó~¼«Õs[òW<ìyEýtïI¿Ì»¹xÔ²ÓÏ»ð¾&f¶81³ß]Ô<oî/cfþ±4·ºêûòþW4òÝôÄ ß4êzqÁÈÏW)ùüÞá®Ó¤T>{¦m^<é´kýò¿woõÐ#Ã+n²F[¾ô¹6®ß=ÿðÚù¾Ö¾øÝâµ×üp]ã§ßúÁ¾0²ë¥´þÛÕéÊukÿ¼æ£Í÷¼ýÎÓ_Ý>nöùg6ùÄÆ{&5étÓ¾nh°à£a7úÝæ¸ìRû~qûÂ׿Y·qÊ®+Æ´ûng·¿öТ)«®Ì$k7Ênøêc7^vþE w¾<}Ö7-'12§ß½¼zUêÄ¢sÁ÷îûaåµ;7\ÔôðÔÀ£O 9wBêiÞè³±ñæg_^SyÙ¹\7¡fÉǬº§æÜò[^Ñ{ÑÖçú\æ6æÅmv\jæîx¤y£)¿îºàÞ[o½ºã÷Z½xZ·ý ½þÊ¥OV®ÞÕн`Òì½o·Ô\/y¸Ãü¡/4å©s_ÔvÛ«kC[»¢èÂeS¶oõ~«mÏOÛØüHæ#+f§/\ßæ¦Ñi¯õv}7þ®O.è³¾ú®%®ÅÙ¿N}áù¤Ë_¬;·í-#N^øÙöÍ Öß?ìÞ©é¼ñÐI7?<nøæ ¯®|ç±#=íÛqûNxãñ?/yÙ=3ÿzâôò7º?¹æáÑãºTø¥þþ)¡/7*=³uÊ1'MiÿØ {ÿ½êÊüym^ÖãÐè9¿È]T¯ÓýoTñî÷,hý±ÿÊÝßü±ß©|røî Èôsû¾3pbÃ&<tJ½ç¤M?ðD3>3äÖëØÓvø©5Û<½åÝ»{'}Û¤³Ý7G[5;¥OVË.Z]vdÂÜÍ꿵æõFç Ø:»úõSËì\?~Äô1¯oúíÌ'õl¾°;óÞ|ë_lvïïÍ ½Óòôa»ëw»íOÛ²Ó¯s >&cÉG?´ñ¼Öù_»Zפ´y¨²Ñ·yâÂ7îlzÒ»ø7-ñâ«ÆÜýùOß®é®è)·5~rÁ¿oN{mïk[>òý´çÊùèÚ´ËùåñϺiPûMk®Íhôõ¹×&¸«ÃÀ'o]ûÂÁo7}àñ8ùû½Øì<tÉËs^8÷¯)j:}÷×þ{¶yV^ò÷ÂG¾îÒâsfmòõ®yxhå{l:òÉmÆwõ_åz¼xçÎíS^m¿uëm¯Eò¿0oé°¬eÓ_7ôúËýÜ-ý ¾ø×¹ËEVo²ùÜF [éÝîI£Ö¼Õ«ù3+î=4öª;²µÀ/ºMýmJ¯Ý;#.y®õê6þëÀË+oÅÚÔuWijaàå÷L×qO wÑUÏ_÷ËÍ_6zÒµb`}^xÃ~ YÓ÷l;í³®û¥ßg?\QÖüîØôöÉíüÃcW®wÕK4WÔ¡G§ægoßuøÙÙ=Û7£i°ß[ó=×þ¼>¼uÁy±Y¿Î[vôÁ¿\Jå_c£OüýÊøÏ>;zèç'j¯¿²ôïÃæò£d̹aöVsþ¥O.=ºä£ öÎ=#<°æðSwVÿel üuyUk§³èÈÕK×~2fòKñÑØ5{øhùá©ckÿñAK×^¼ìñk[4>oã[M\wnáuW¿V¶ÿU7·fðÜñæø-c¢ãÞûúÜQWL~ôÛo·þf½®ÝÇE/¨|iÔgÇ%Ï=±ÃwBïïËùhóGûâ[J;G®Ûyíé»`ñD·²ùÏöZõÍkG»õßÙðüíN9åÝö÷eýT©mÙrÙÞ¹'M<uZ»_®?Pï»·¥´æ==v]2µËîK¦7}GßPiÓ÷×ú ½·:ñÀÖ çÜzæ£Ö¯zbVeAÛ_{]×÷ù´Á7dÙºcË5I7fï~jáÝ;'t[YüQS?ÖïȹÃÿ®WtQ³ÛÏ6äè§§~´²ÁE?þá«?ÐþÎôK-Þòä\mÀwÞ1öC_Më1úî¾ÍFiöíiKê)k:¢jÙ¦®ºÿ%C7®ó=´»fÙ²/òÇoX±ðè¿4é{^~ÎÃÁ?µü£¯}jû¶ÝG'e÷ó§/NØðÁ?û,üëÃÆ÷vè´Ëj·¨×ô;^3üÃg¼¯-Hzçu<úð'/î@¿Þ_Ùì ¯7ö½¯õ{¯-}oß´W¦L|ü©³.:ÙÉÝúͽ{É\Oá-Ã_ÜXþÔįrÿ8·GÕ_òÒ>9ô×KNþùÑÁS\þÀÃ×sëÖ9s»7xôàíw<ÿÝÏìëøà«Ûn×ýs_ËG¾ß×è§áéO.ì¯+Ìë-ëÙºÃà¾|ÂÙ?ìÚgQûrËn?eÒ9W½zÞÀï^;fUuQõëO¾îpÁeûç û£ñð}£2ÝóêÑwÙ·pç9yw4|á?¬YzÕ{+ç¾:ãùÏ6n¸ký9>êºzxÛ[ϸ¥ï-×µyn×gáE>ÙñÁ¯º^ýüîóWßßÄXÔýnwwYغæúûîz§à··: qÙþzW]úM£Ë]û:·¹ EóÓßú6ëfÁ?Îð^Z¶û×ë&Lºúëä%¿wÙwu:¹Á)Ûnmúò¦ó¾?ù´ïmÐû[÷Wô~)ïÃ'~±â×>7-_\þÚ½KÒs´»rPÍ=»,:Z¡úàèsçͨÿEÑoÖë>zî)7ôÛÕfê©Ïõåþ®óνêÅ]Þ¼ôÄÆ¸ðô¬qNý0)Ò§ÃÒUï»eÛ ÛU ä~4ñíO]·±÷ÃSºß6yÅãmgÎ^ôÂäÅGùcbñßÞ:³gÖóþl<ý±\÷ÈÚO[hI#óû®¸~Kñå Ö»ò¡=éÃ×ây`^Ð],ýuþÕÁÎÞö]uÛY§o¹°UþÜÎ-¶ûyØñû¾ÿÖÁÛÜüÃð¾ªî´wÙèpZW×ʹçMúø£z7ÎwÅuO¿éõºorë]¾;uÐÅô¥í8ðËÊÛ OùrÙ©·ïÝyZÒmØãƧ÷OÿxCÎè{¾¬Y÷ö ?÷èåñ+õM}ohp§ËhùwÏßý7t>0vqƲg/xãÙVíßûÁù'=²ë¨þGZú ÞZóîI/|sã´m;f&ß{ïÔËóÞ¼nðÒÏÝ#=/m^ÿÒæ _;ëåÓnß°ÑÕìä/nì¸õήçG¦Ìɽð»w,|5küÁ[ê?zWÅ7ïÌÞcØ×Øzûß-½%;}\ñì{¦D{'o[Z0üùå]NnXxcôG>m¿ê¯©û/9Üö»=+Ó#æ¸_ÙøRë ö8;5ï_»ÞUÉûþxàqß³eõ?Ü䥢Tÿ¶#ónÊëÝhñ¨¬¾ê§^÷ß8îñ×ÚÎz`{÷/.õÌúsãkw\wÑÞÇ}¼oÔIþýݹgwðÓìÜÝÝÞ[^¼%oê5ÏÿrNZï-o-_²é¤Ó-ý«þ¥ÉmhdîÛÔsdÇO^¬÷âÁEóz_óeEãvèß÷Û9©®.~î¤ïîº!çCÙÌ9§µÿöÝðà¤KÃ+ÎrlVäqÿñøÔ_ÐòªQ¨7jóÈ9Zó}Nødî-úW£×FåÝõà§ç¼²åý!7_ÕâÍÉϼ84ëÖË|xÖÛ7·¼ãè£OïökXï×ëõèâvëRÊ}bäs¿,õhzåâìíõÜ->z£Ï»eËÏ,ÿ!éÜùÏÞsbû 7Îzô÷[߬mùó¯9Ù»ã·5iá®[}&ݹå£y>Ôò÷¬qíÑêÇÂ¥.÷¯«ÿ e¼úËÔO:qe`VÑ/OøyÆøíÓ2½_ìßý¡ü´O}þV»ìÑiL<ùæó:Xtnë* 9éóçþõÑI >½ôº®g=?¤~ÛîgÚ´íÕ/¾Wþð»7<Óîý)çô;´4éFóþ~vXå°éþÇî¹}ËùGº¾²µÁ ë/¿C7o¯¹ý³ëÞî¾9òS÷½°úª¹g®j»ì áÛÖ?sêïë¿Ù³º¤èå.]ø3¿áÛó¯¹xÚ²U~øé9ßï,𯾣vù´ºw§¡Koôï\w×Ö¥ÙIW?;iBpðÎ^Ð íÅA¿gÀïøìÚW>¿fk³-ßè?ïËAËz?[ÖðÀy}ª²«ôv]﮾ÿçôy¾×÷«¿u)z°Ýdzëß9áªÛ>zêï^¶riN³¯ñ7íÀÊÑõmÝò¹µgmY0qûÝÓÞºR÷×Ô¿üþë J¯}48ö»Ìw_jöicîiS§f¤¯ûØÀô>ÃâVÿDÖðΫ/k}í(ÿEû}ÙovíZqò__íyêÞ÷æD[?mªïõǯÓwÓæmîζ¬5u¹¤s¯Ó[oX}Åc7OÏx¹a¸ÏµÌ¹çÔÀÔC³^¿fôîmÿlYÎ[ð-û¶ÿ<sÚðÉvì4jÎÜ¿ýéè'¾ÿ|·å®/þÞsøÌ3¯yíM}\_Ùâõ·¿Öeå/õîôyþÞÇÚ9jå-gÌ÷ïò[ðÒ-³î\rÛ-z}Ð;ã+¢Ìþiuy¶7¿9©íÞ½Ï=rñ¶~ÿsÇ}/ÛùÊö£ÜscòùË/ýäËw}7TuÜùñéì»Þ^þåð_yÊKG*³ú/Ýré¼VrYu?¾?úÓþýÔìò cÖWD¿8ôâSÞºyÖõº²MÆ]æoçç,Xÿêm=?ËúÆ ÷F´Úûw÷¾ÚúRî7wÜ´qÜÕi×ÜxòmíÛÝÿÏûÃû/Þ°xÏÃü±fÈsßÿjþï#ÿ8å^9ûWZÐø¥o.¾ïþëÎýòÔ½Gß¿=ôÇîúöoÎøë»«K_øsÏî½»·ë=íÂgwíXx÷CW=¹mÿ7Íß:£ÛÐÇVø¯hýȬûÎlÕé]nÙðæíZôëAo¦¬o{õEüõðgkǶ9幯Ýo~ºÍw,¯N^=ðÆæ¥W¯>8ñ®¥õ¹~ÖÁ÷ÉßÚlÞõKò¼±îçÙ·ÍSoúoïqÕü× ø4û¶ûºG¬¿gQÑëwt9ðþç#~ýmûß^òðM=VíÛöþ íK¶6ìp-krÉ ÏÉpÖ¢uySúÁ_>¹ï]Û_ܵéE§¾æ½÷Ñÿ¾çÍúMòpþoþ_9¼+t££/UE~[µeÉ)ZÞlÑããtÿú¾_ÜÙps÷WVÜö¶et£>¼ñÖ{vú£ûÀßGï:óèGïm¹ôϦCÝS¿ ì{°äÜyÞ{ìûÏï3©ïØ®]®y³¼zxògõé}°éá©»×ïÜîÏþòÄÃ?)úõÆÃ]üõÆ÷Mýº¬´ð÷ÆW÷°¦ê¿¶»jYÏË?¿°Ç¾A·vüðûW?iõÛÐgoø¶I0zI³Pa÷þDUÞÔrtÁìéàG]wþÇçÝWÜ7Ý'ÿ=߸æÇOB¯ÿ¸/ºJ±oûw}õK«¹W}ÝØc®8»£Þ¹þÍçí|·ÝþUlÜÞîË~g}}ò>ïðÛýÓ£ÏÌ zù[>4÷OV6rUѲZk<£ãÿZw ÂÅmÛ¶m¿Ç¶mÛ¶mÛ¶mÛ¶íÓïÞ4ýÑ´IÛ?}2ÉÌÎN²Í Ùh¿ +Àþ0O+xnß ·Aq F'¸> âi·¦wökv&[ü:vôvÁaUÓ_ØEoåduïѪ7mHhúߣ½wë×ö+YsÖ»^dmêT 7¡*1v ²£ LfNÂgXhíIþ+Ón³PR`ËëTƦJÀå=O·]Éà)ÏuFã¦z=±5 Ó47 ¹on¶â;Bì{©>~×Áoy}ã<P°&´UKiIÁÊokÍX8 §VQäÏÇgÃ)§õÂhÁ²ÐÀ FvÛjñDÿU:b§ù]JjW/¼ °Ä~F8 ¯±UZÜKצ8¹ÞÏ«YéãâÑäµx 1 ùOúIæR¦E«^á]-OÒ¼C©üÍÓúèÜõò]&]¾m¥nUÓD'Ý#ÅuÁrúÜp@ø°K8Ñ$;Î÷mãcü|ìÄììÁ[êîbêkAPE}×dSv×2Ó°¾pªÑÏT«Àµå:@PãÕë×ÜÏâ=ÎIW·mdíç óÌsÆQ1íqHTº=¿XÑä-´kuÐÏÝlv34íÞ_ddsQñ©<»BOPÑôÆþØ.oðÔÔ¼¨¬ T · ¶jµz¦ñpvÍvÎÖ f `¢n9j¦úÃúºc#w_a-9íuÈFsØngjúÃúN &<VÓp¸Ã6¯©üÓ9¡¥ffó5NÛiXV uìp©úJ[jsF[=Òñ¸hk,¾ÈOUÆ´åuo;T¾mêBã ¡ µaöd¤½:H@YM¢£(IvU³ªªÑ¬}E®ðh6)ë)ñ±6p),J¼cíìP"I8§ÚÂ?Ö¨l§ü´)áù¨±|oº nt³©¶ÈiÜ ÞÆëÕ¦²Dkøð ÕMÙíøFðÃ@ñM»ðßåÈý;#Éeâµøëøú\Î ZÞÿAöðƼÍiÀº÷1*éxgy?gK&áÇè!ר-gPõ÷ÅËTÔÉY®aߣfãaÙiÏüôµÒÍÚ6Ųö»ó¬ V¦ÛäO'<´ËÇïxÈeIÙnÝs;Ç®F?8~L÷À®5M|ÃKV¬ãæçú x3xs$G>ü¿(+}÷® Êy8gvnéѳÖd(EdøÛB³3Ö#Ø h»TÃæ,ŨÌÇ oÇÎ(²qÝia»jRAÉùõÃb H¬/ÄbZÌäü9b ÿÔÅÿ©1K@bvd:ÿSH¤#±´P*¢YügT<£OùRck-¡¦6Ç= QÞ?BQhdéÍG×:è©zÎ",ÂÀ*®LäÜN=Ô3Á²{Ïh©³ÃÖ¦¶éÄ]Æ:aúü¯0ËÐj&qÕT*Ìöl®yÊÂÆàbÁ¦·¥%qõ4"Éö,Ö¦§¸ ;X¦Ik¢FÎ¥ Xâ84D¥Íåµ¾¸ s±zë£ÊÊ&µþj¶ÎʦåÎ}é ·í¿Vm }£ívm"1g»ß\]ÆI@.÷nÈ?GóRßø_IcîY¢®yU¡ðªg¶b:ÀX¥9&ÅèÄH=9a0µ9÷-ÃöDâWó ÙDË;Ûå³ððIæFk W7õæò:¢è¢¬ôôpM»½r2Hajhým¢ÂÅXÂ0Çç]qZ·wÃÛ·ùDZÿw¹ôåîR8øØØ7¹ÃûT½/L\,láözgyí´F@Óõ«o{ºq1@¿ ËÚÐäÔÅûXÒ ©±åâ=võß àÊpãUÙà;}Ú±ý$#Iã9¼a[ãÓ vë¢ÇSæýù>xÌÙÌ»ÝHÈõÅ 8È:ÿ߯ÜÖÜ/ÛÕ^×µ;ÖLÌKöÏÝçèhÏϾí_ÔÍ1ÑwÈ ó4ý¡° xxLnÖÅö¥ C,~íT4 âS[Q! ¹ÔokM<{Úw®lèª/ác©8ìÇ~Sr´¥ZU½ª#ÖxdÞà[øôt·)üÐÔ9¥DR±Àî&ðÀê3ý#½dxfIC8[¥RP0KWÆT'Àü#«¢sT¶Á¨÷Ú}ÍÛ=¬c{¹þCÂÔ#M Jïi>FFe÷ÿµ í²´,a¼êÒ`Ç"Tôø-ð^® ø ¼x°-tÉc×tén5w«¦w¹T^kO¶5õwS+)¨k ÉÝu/ïµl+{kÃsÙÖ5ÍÙT´Wx±êIøû¾·FæPÀnhd?î«Å¼LÔµD ã<À 8à¶Ë»g"¬}ç½ NÙü{k»Î¯--«-«3xù¾ !G!¹ÍF03Í(Ø3ÿHFÚ̾BƪCvköÕÔM¡òÕrf4\jׯj>^¾i!é°è¥ÿµ_ g´ù²ñŶÐòme6}³4.^Z\vÂ{Þç+¥ÎU¦IÕSȱÇ;b24£'pV$, x1»V{8Þ®/`M8ó¹|«j¨V/mi\%7ÕBÕù4¸8NÿücÂF¦6FlØYy±1_¹u{yËmá¡ÛÁB¶Ø¶^Üy ,ôý®`Zá»×Èòç¾ï<ÕÓU ÿy*oá³ :ÐYú|Ä=£qÛ0ô{_Ú*Û)úQësä(ÕçúÜRI)íý^ÕìÙ07"¸+¯ú$N8^2¸ÜmjÆ´×fC9°Y-õÛg¨Ë×°a«ÔÈ|ö:Øp.¯gïÆB0 4N íäÆÍ×øIñxî3z´ì·4¬ë3jӼܿÕCVáÃ+ke]Ü#Á7dcF[ê®r°Ì¾i¦÷ÈêAÐäc䣢ÓvãôhæÙP(÷1Î-_'i$ ¯qBÝã,*?A¡Ô1LF(qJ øñw'õLçÝ ¾ü.¹ÝáwgHÓñªJ|¤Q£ïÞF]ÏÜè;R×iÐæ¹²\`ÂÏõ²è17dû{³XÁÀhÉÏ_CXbo^z7Ë3Oÿ.A ¯Ò®¥D `î½nnýìÏð³õ¤ß¬°sÕ?C;À»ÙûðLêK 6<0(C¨5Æ/R|ñõôì%Vʪ{ç nKº ¹tL¼ ³Ëpµ w¶!¬ÛÙ)tIÐU8yg1.)á1=(v½º¯ªË¤ûsØG{M$åÿli8\X³ry=vÕ2K¬YòX?L`Y°7&[Ëã<5]qÀüs:Cʳd¸ï5C5IjàNë4Þj(!]ôDñTwdY¤<ò¡êù=ý± ¡n55¤¡ ¡ÕôÄ%Ë¢P'×Ûª.-Û5óh6õÅî£÷Tdþi_¨ôeËwR1fFÈÿ¸$Uºåa æ|%³³ùÇpÁ¤,¢ÿënhæ²sbÂÒ²]®È'5±Áèóo[3͹ç²qÚVŶ¦ì®f *b>^q£VÈÆ¬õ,ö(vVËLMÑ«à]¸E©H¢ §RáÐû?\/ÀcqË$ù-cUIÐiL%¿ÃfñÊ<GOÂÂÈ4h:É5õ~2,ÁOƪZçñ³õº6ã¿7?»2¾v+l5)ZW¦[þ}·jvüObÞ|lÁµb®c¦mG¹¸]3 ¿iWLöÐgÛF³ÏmqLáÉË7ìa´òÉ^ú¡úú÷eÕÆþöZ3«¹Á ¯n=lþn1SI-óR¯.,Ù÷e ÚT¾ørºÃÅkHÏ 5ÁEfMî_´I õò^ëXf KÎÈ¥ÍGc<Ø3 ó³ «[Ñ~[lÊQ´Èìx5z>WãmËO¡é0É Å [à4´1mQÛeã@íÒ«z/+¦j`CÖ5бµm¡@V%dÈy³]¢,Ë·ÁõÔßµñ9ï.ü.$ÆaæFÆ]Åá× gqæ Èu¡áäÊ&gÆ«4a·NÃ.)ã0˦üϹæ1mÂjħÄQ&Oam) ÅÅW$±ÛP8ðC¿àU ¯à¾÷AAÉme4+ß7ÃWÂÓtL<W*=zUPk%¯ë¨~+na.}³¼YÁuI¶l'@˦l×â¨LOÌQ½úLÝ<ò*nÊZéHt¬ûú5ì3yYG¹s/ õÎ ø§ú¡ þLôbZZ©XÍËO<X{¡½¡^9 8GÜ ö¨¥t²;®3÷$UÃ'g¤kP¾¾ð`¦Â'¦·5÷lΤtÇL¤ç"¡!H×Öý*7ó®ùpáx¶ÑÑûÚ¤RݨQó:¶5ß®o¬çí!?J1dôÙÜxÛúkNOóObthG2HÙ#ùã$xô9¼Ç5SñÕð7&g@üy Oï2Sü "Cê*e¤×Ð,ù`X°=È%ùÑnæB¦´â¼*¡tL>äI¾Ø0ÊC±'ÄÈ>Çt¢èy òFu6tHçt¥¤ô×$§ÂWLQ;sõrøÙÕ®iØñ-YF©î2kù]ÊJ¬Û|dYð¹mk×ý¹VïQÊØ´ST×ÈÜÑÔÇÍXõK¦¨ U ¶Ñ¸B½\<δç«d¤<Òaw1Èq&jfÔ|rpè~cÆÖØD¸A<9M·×P¬Ó®ä(_=dR@z±ÅÌæ½´ZJß=lHCDEX¡#YË©> F ìõ+^ºqdçÜöõÃôÔîIÌ¡¬ØÐÁ 1ÀZDò~E0'WeöðÝÒ3®IPc $âÒ=ý®ß FÍ vVÕ@ÅÂaæÙ¿I!}ïIoÂ(6<ÿqQ9ÇÅc¥Y¢LÙ9çp µMuÖx²-¬dܾ'Ù¿¥Æ½>£7æ6\éË-0VLb±$©ÓÂöO×ZåùÄ^Ô½@÷3Ïzd×ÎJ¼V¾-ioþ,jÀü#WºnkVMËKÌLX=ïµ èJ«>ò÷Oùym³¦üÚþìú´A»iR2)^«?3:ÝQ´&ç£÷y ³´í`Þ)nLòu>2¸0ÄzGâðªCòF}X#ZJ¾g4áC§Á[ê¹dAÛÙB¹Óé¢Sòýt´²i=ä® .2Æ7Dõ@-@=ãå ¬3)b\¨r ÜË"Þ¿3'zÙÒK'ÙüFf:0#ý9pÊÉcm-ä«]}¢*Bù!«øR¼öìA&çuP£4Lõ<çìª!]9àÒò{ËÓAL tÙC>«1âF«ê¥Õ¼XñDkd³÷ó`X Yf9óV[ l9u+ Q«ëÙ/¿×ù®Q_s<ßv<5ClhåFVÌB7 É'n®càäÓÂ7±¥7dö.Þ¨=r»]çm3»Ýj×C7©q»]>)*N¨ c ý¹Ï uA~l8¬8,òj|ÍåzÅOÈïÖTöi»èR\ ¨µfÖó^°4+v~ñ5 ˱à5ÖNI®2ÅVÊ{ôk YëJP;ò[ÌÔÁ×ð>÷¨¬Y_®a!É)÷tJRkÕÓËK¨0Õµ5Яpî÷ð3qç±o©¨£ÛZݼô=+fñ (]\¤!Hl¾$gC²c ±Kð»ljì¦p -úèw|²k¥yp¥øI6Õµ5s×7³µ3Òéù^÷ô¿kryäicã>µ÷Os~N=+ãc~{æ6¶»yü\¿_g¾<·âkeý]&D±%³Qª&NôÝÏ¿Ã[iðwÂÃ{aá}ðw(D¿|Ò_>é¯_7y´Ò_@ Voq¡{ø±¬àb£â"õ\`Ч¿,YëY¿¤~ÿSßn#˰¸Þª¤\ªÉOí×C7mÛ®E±ñÉ<,Âêdê7×JºtÕ)Æf6\÷ÙGÑ5ºôóÅJþm¾É(ÂY9Äz3Òäîc½Æì@wèj¸ª8wÈqäõüÖÒÅKºíw.¾y³1MFSWØýÂ=ÎÝÏ=Ðþaý ,ä§aÀjéY ëùæäàZ÷úü&ÐWÇÕ;gnsß/ÿÖ×Oò¼JF^ZªjY:°Èôí4yïàO,ÑË*ËÑË%3{ZB A½Ñ¥1ïÞÇ#¿õ'(- PÚ×µ'yË/i!«xéÂĶzàt$È«¶(¯ÀL÷2˯L peQ;hN E /ì¯ïÅó`¯S`£d^êX±ÐÙ°.®4¿)9D={Q5 ù±îð¬Áá8JoR¯NGò ©5ÐÑYǬÙP¬FlO «MØ2( üÓH9 Ì.%2íc ìo"IÃÄÜp á$NG¬^å+zò¨PXJòu û0ì3Àe¢9ºI°XÐh4|Iêì㫤MÕ:dà=À 6ÆX@ëuôìùÚ;r,ê·_§[ª>F*~ªODO¾[ä¿fL'6?«¨½{ñjA{AJÜÞiõÊÞA\>öìyÚòwãù»«¦¢p+é¦åS ¡´å vsF">!À¹äëØlÕo<r5¯÷9ívpCvê=1,$xÕD>϶âú2ý 6åëðRÀ?Hgo¬d1õU#ÉT·òðx²¬@?ïÅ?Xâé¾m/@¥sx£Nïù{û`³¥ºÊ `7ráw~ô·nÔXÜ£f1ãÖµñc`ÿRùe7ð?dÀmpçî¢ÇÏã! FÞk?oÇæ6?ÇÏ¡ 'ëí÷Eú8¸X¸ß«g8ßSbpaIRFK'øòÈ1ZµR vAïsN[ iSí¡èÎ ìþRàvävî-´íÝâ»Åüc¡jüÊ1°HL\ΩËe·¨/:iÍbRׯӧt/Ë WzLg¥8~êPò@ * ¬-;ä§!éòâpòÕöÓ®«rËRîs¤ýjºÀls¼sµÄ®ùólÁ¶5Ò3÷#¡Åª`N\ÏÜÜøp^û6ÅѧÑÙ_ùÞ\>Ù2àOz%´4ëÕ?|²_ê{0 Öh²§2;ªº°êÞ\Ë)Fì¨Llá¤U@#0*±;w(ϸBCT¿oMCèÎkbÚö§MGÈe¬#vãÛc¶¦:ìõ9`m<¼éúÌÂïÀ½oðyÂCcc8/øuÕÎñ#5!cu¾ïz'!,Ï.ã®¶õ<°&þù÷Þ´N1 ³;w=\÷kWâ"ý¾ÙÃAöaÓIUÅM¸µp¿«^ RÊêÂë sá2S~É¿eÛÛøxµììv,wGüßyuC%f=5óÖ^7¼bÏrV-¢±ÿÍ:Ö-VZVWu ÛXEö$j³÷o@ë¦ác\Ú®F¤<áMWöw'Ì"ãÞË¡¢ºáê¸äPÖ{º8½<¾®Ó`¢RvÞo(íË¥'/p`ø&³64Ѫ_6ï¥M¯[&etaT¨`¦ÿ¾#Gà78Â@%,È1~¨zw¡[:Î A6ì9ëDçÓiÑMFÔ6û̸6û¿9o\Ë'Åò R;ÏÙ·9Øý¬¶¢CÒF>)¥Öþ²pe#SMëäBï+©± jÈÿ"ZgûKy±×SÖ¼+Én*ÓÂGþ rMe¤ºÂÙ]®[ÎÂ7Y§ZÏ[ ºpäLã3Q4RÛ? ùþÌ{Ê!.p^³ÜD|0&sâ1¼×%Â>$ûtÍ×À줾_üQÂM/ï}À5$.ç£Xâõênc/sMÞmNéOÿIiPu;ÙPئ¯´GõNH@ÊEËqýOCäÞPÞ/úxöe`âAGßr©+äKõx64 ç,"H·){ÐÀHJRy±·<ñ ÿ¼³çá PP9fù Ô;8_CÃíð=Ö¢À~·dsýÈÚ#ìíà ¼Ð¢7áî¾+"b½Û½«_°0äÉýås÷ÑÿªTSºÞ·î;=u06»·O^^¸ñ$ZoÅ©dësÐÌ .@Ù×qò}ò´· Ca<Kw¦ñ$<aaÖÅF5ð`féÕlº#±;p´5v[Û-.½Ów»k3ùe EX_Ñ;ùF½ êðrñ1³Ñ±ì ?,(Ì9+ñ`rgòÔÓÜý£©Ùý^]-p¼6-A¿\3 zS[ë»ì JC¸ÜZneÞ`hvâúäñVfWbçP;¶/¥fV£»¸ªÎã¶{J:h7Ã];åuÀ6Kªg±1äÚÞb(Uùë+WoÂË;øjTmó´äËÓäÖíac Å¥ôYGnX¨ó2ñÖæU³McßĪ()Ú5௠z½Ð âºPiâèªÌû@JAüæåÜÝÆZÜ%)0ò4YnHI©°'Fiók"&S¦Oç¼iÀ·Éâúåýx~&AåIö%£|1Ìü Û>Kà!I#F4q SJg¨ù)Û¶odw0R¶Ç÷±Dþ{ÀÑé¸aÕûoª zWíÒÆt# -,±LyMÁü/¼Ì¨=ßë÷ñ,hiH¼ÅÝÚtdѪp!ßõ4ÚZûs2ØÓôéÄ»®»QG¹@QíëøêÄYöÙ9cë ½Év>),îcôòâÌ"çàx- à¸XfìLËdEÂ5{BE¿Nhc»Eñ>û39¶su±hÔöÌxUÖ8=AÌÂHãt´í¼!ZYÕ¹åB{'ÿÛá M5-óÀðÛ.Ê]ô¸ 乿eÒ*²¤OHèh?{äXv7ÙÑçÊdVª«ÃbZ·~Ä<¶Ð2rbDÆWÇÝõó²ìáµOjõÑïÖá&L=j38 [6fÑ饯[Û3q©ä¢xÖÌÚt{b? âðW{ø½ÓY²!°R &¬më¡-iô50ëZ*÷NÄÜ.xÊM§TØßæ·ð;Ï.#éyÖ®EÄZ×(wvk%E¦*}¾.È0GþÆÔ]/Háûd9_ÕñÁøCmtôG¹SÐU24²Ð@ºÛcæLJÄëÏkÐís!Ü´Ä\+RÏËjJµÓÉÚY4/»t ¶( 'æØ§Z¢§òå»c¸ÙP_ûY+© YÁØ;èºmÄF=²S.5pR Qó¶Ayîq4¦N!¨Ûtû¶Éº² ÿÄRÝòFFãç$"vT¾ä!i3@, #etáf rô² #a×HÍ\j8 jdè¡¡,ée¢¸&Ôÿ*,4rô|ÔWJÖYN¾KÌÝc=ðk·1¡8´nxHÎcÐXÿÖd3YÄLÓdíz*Ítµ!$ Vx9-uô_ª¥1Üf,øqéÑóÃ~KáÓ@}«9á ®ß <%ûA,,%°uX[Kb!ÆíMÌÃ>åQj©}ä B¯=tù &³²*$1X®#!G¯×PäÚÜÊîúb¬;ÎqÎdTIBPWuñõ Õ,k´þ©ñ]øÓ:q ûú¸63¨¹yu ~¥x¯ÑWÄ5 ¼Îâ%린¥u¦$HÔâ>F[ãè ûl¤¤Áõ}ÑuÊì·Gâ#\±<qÉ=MÒA¿¯[ Ôkðö}ÃIÓ%m1Cð¸?XÂîàVÀ÷Äês¼ëÊ *×§)N%r@ÏtæÎL\ÈJho¤rµñ ¼Üù¨õ²´¾jÞ©/Å9jÜVNQd¤¦ å4* 2åWïÞðÌtSéÁFs±¨LÐl½`¡ýc ±¤aÑå"+¡bÓ"¬fÔ>ûâCÑÊÊåërto\a%0/GzË Ù{rÝÔec«nÇyYØó%!÷!H©ø$ƪÐ7b ÷£ ÒµÈr½Þai>h®Têtõtg¬Ä'´ªH38AµXÔP¶·]:¹¿Q¦¹ôÀJ³Yì$!jÄtxº¦ØPã«ûÄVÊØ¾ 6({PlÊÕ:ÞS9ÁfõÚ®`´ ɾ®¨+Y{bMYà§qô×÷m¨·ómOÿÈI¡ÜîH5öýýþF\TØî¿yqªh£³ë09öÀz!îöÏÎÀée[ù,¿Ì/½óåñÄÃjfA´T°¿ùER|ÑYBÆú,LØÈ öÕ¯Sï] g1¨2DJ86Ù©iÞç"v%þrãiMè«e(!q®LPÅ tý}"L±nU¨,@· NÁËKé=HÉû0Õ[ib"ÐE««cIÑS$ËÂûñþ]öÛnzƵ¥µ`Éðf ÿ6Áe/éc³ ýZk¤hbÜ.Eks],Ö·sÓÊ|PÞUô¶ÙzU4S¿ë;Mk¡Z#OªE^&¨%Xp¡ÂÜkVüãÑ»û8.#Sõþ!¦ÿ÷]s<ÁH-.ä$³©¨¶1»»¶ÄÔgwYD¬^äl^Â# #bóüÓ`/ÐB~ÀUäßú{&Hô<éÛÁë³+:QRúù<UO ½ÆÕ®xMDÌ5©°üØynîÚê< uvÜ×EÅ>ø@Ecج-ô®ÁXåÛf!]ëga®mt¼<ÿáPõ±8û0}ß* ¶é)ÏanX*æ¡|®r{üÒ×7Ñ[³óæÊ±voç/o¢d¾Ô4âÈà:³MXG{cÂfCZS&oÕ=¥õ^3sâ<\(z¥Í2W7eOã±BÎ×(rsA@HqN·©OgÑO¼éæÖR°íÿ·kzäwüêG)>kè9¥j:º9?ÃäX`Ï#õÑ'å ;Coø,yËÁmQ'>¡n+VúØ(XåÚÇru:0!½J+Úo^ªsè'ÝJŨæÑ¥2Ç õzÄ|X ®JIø¦ ¶k|äx[þpÀþbw8µàÊ˽÷ªw½Üw!'ÛvµÆ[·Ü÷aÃÌg$£cçg!GfÝÁÎ÷¤päÚ:î ?áàt¸ÓuÜ®èÝJ «bãÙ^H²æyÅ¡D3nêD´® ÝmýÛÀ´ì1PMÜàóãÊMA^òDê@£ÐQpëpîTMÅJoû¬ ú¡TDOs³3Ó¸²öx©QW©V ;"ãîæò:(.ÃR{4ͰÕßû¸3kÊÄ_ê×¶´Øêóâ4øDFÓ&rÊ^ø{µÒôó'÷+¸ÏQ:Mu,¤â<xçÛçÄÓ:ý¯7äBýX6qd¹& Ág³S9S¡6÷ßê<~îÛâmÉ/ÞÚ8®å µ®kéÙ:|wvìýoU³E#··Ócc¥ñ(O,õCÒÞXû8C÷¢æNr§¼¢F[VÊwÙùíòEé¿.øBkÿùY/é|ÖÓgSc? )}AÄí %»s^_ï¨`W][=snoí¿^; ±,íÚb'~âܾåãÌE*L<'ȧA¯*d`A/d ¤ )-oJÕj©±$?` 2Ð÷a1Ûsöÿ´Òbå^t9®dcBÓ0ÅÍFÝ1jIÏÖCÆrý ÃäÊ.M#3wH h[ÜWð«YÙ¸L&%;QÏ>bîHd]¾ÓèO «!hÌyÎwºÈ¤=زvm(ëÂiâß-v{õf1Mã5Áá~ë3Ø:yÐ4TCF$ÿ¾ ±4OzÈ.}aÅ(÷9Ç2F>§£¶RfüÆÄCÌ_>¡T]LÚº 2 ¢¡Ð@FmçÏxRÒ<p?©Þþj£þHr¨~lk§ D¤1<ä©Äé&Ï;Üâh!g0jØÜ7/·$µMÛ´'aÍÀïhS½vãä +|}¼õÂCz*ý_y:$SñrõHÝñWxv6 8XC% áÂlpeÙÈ)¤Bù¿õ4=_..98aIÇ(þÞª}`coOûn¿çè×Xz/vÑ4çÈ Õ%¼"H£ÅZ_ïT0QÝÒKð:!\mØP= Q6ÝÆ_¡ùî&HPæÐØCÄh,>RT«BsÒÝá«9B(¢XpA¾ðë&LÑÁ*Ó:ùwg÷÷Þ¯Çûça=?AZBdàH"ÁKt¢Kö"Ò±soܳ%f:¿©Íó &Ò1÷-5 7Õ±ï·õê" £ýé¹Fhp¼Áqèça,SFëTÈàÖüÃ/ïWx¡Ê«¤åÖúøÈÅ'ÜP7±l°Ë¢µ ¡²øµF`\xÁæ$]@«¬ï\ëvõ²BB h°+Pæ¾èGaW÷ ¬«¹EKå±ËeÝó£¤4N©IÀ|/D«[ªr/Lµ¦|ù.¢LeQRúè+IÿÚà¶-½3L!õ`ÈÿÍàû4#](J ÞRR<WÖQ;¾ß&$ãjX l0)6Ô3ÿca-ö ±6»âÂsæ'ì)ëÿÔ{:` AY%`Ueôû"Ù*)xLniåù´ý Æ:*°«öBQwñÔpJò*¦1@æh JábÇAË C!wû2ã°j:5PÀv ¿8 +ÑcásAfcHÀïxc<ZÇt¥r+Ê{µ=Ù UFÙþÚi§öº¹¬ócÀ2º¾P¹¥#ñÅm õ-ñÏÎ_.D<¹$cÁ(ײ{Qù »-åðvµÌhªÙ Ù¿,í÷ÓFnX© ;$*=Æ [¯AúR£¿ ÀNGÉaZ9©N)U¤UJéæ ÖÄp@¹`'Ï.RÎ&ºtÀ¢ÕÊh8å [MNS·ü.1C¬¬©!\¯ïXôVßsÁéxÛ´Ñêon¥Þw'jk]Ô´®]¨UqT}G7dt: E¶Ê Íî¬CÈÓÈ ^lÞK`·¨Z-C»« ©Dn0éÊÚúf¹bÍß¼kS¿¾Úâ;ª µ³fÆê©ÒNwéû¯&óòs_¾ qLYet×±É3Ù w(£y ,c±D%nkõò1û¹íú65Éåð%gOÀ!£ô½Ðô Üsv@ðnKw¤ÍàsþÕ;=h2¸=§n?a@²}ÀhÉ|Nõ>3¼¬ã¹¾n&·2hÐ8F FÚ\´èxvM¢>¼¡@¡Ó|Ç<jQ¶´p_ÃVÁç2p4-m zøÙd²=ò` C4#µÔ¾ Ó-t7 %{/ìã³z=UvËÚq3.ý ¢'wÌb3PC¾,"©×Æ>À¨U'üBÙ=ù¨gû.Kì+¹´LÓ] feS3viùo(v;àÀd!MX2c&étÓÖÕ07zÈoÁ´=_ìB¸ØA°"òä~Ñ\´Ë¹£ê=Ñö·¿'±Jd2q%özím×{vÒù kNR¾;¶Îbx?à#û*'¡ ZGIy4´³ºwA-^ fTqðkqíõWN µ!s<f¿QXXÐ2æÞÛGLMé)Ó-éh7,ýbvç3°×±QºÒiâ²æv>BnXaó&M&Ø}æWê]Ç=cÁ©^Ä'ãs£÷¡Y¤,'!óò<`ÖçûÍ5\yM:ã-ïèß%Ò!+ße<0èkæ-¸;K¶i;ÉF±@l¶&ªUM¡6®`´\z÷AýIÝOaUßãHÉÂËp*+ n7ÝÃ¥åýg<Îμd<3Ìñ±³ùÏq¹%Ô6¸®xÂKñ©â0`âú|±MìÈ9ÀþÈm¢$MGÚ|®Æx<uXj5êö¥y,PÜhÔuÍ/\Í"µ¾ÀW6(Fá]zmõ°_µºöùè4 i.²êè5ã$c¾\'$1ÿäWC¢> ¾êÐ|É ÔÚe3øÞ]?ê:¶FãÞøwXjÓ§KêIZóZføA9&¦"- ùJ¶©`v¿¹¥pÐÒ!Ó½®¿³inÔ´3sRÙ(ù, s(b¤v( n?ÍQnD¯º³©Óf¼`ª«ÂÃgÚ¸W=. °?ü2y]а 5ç²CX²W´7»S-« #HPî¥~¦ scjÕdå?ÙAküÛé HR6w¦ oâÍ*7Ù/: KÈoæÀT¹à î¡Õ´Ãwá qOkæ;!¡Ë`<ÂN(Kô¤Eq >D;Ý%Vµ¯ÅßIU½×é ñ³?±WÄú÷q³Aò;4é\û!T½}vøõE|ðè1¶´]áÇ ¬ÚpTQ¨bÌH¾°ªzq¥ñ¿R2[m|â}'§ÂùNQÒ̱bUãâ ¸C&¹F]ëö´¡uãñ´Z! [©Ò×`(hl·§+ÛJ¬háû¥946I³ÓѸy*°l¥âybÇ8Kdl ú"W³4s~ù¶°,Æ ÌÞßSÆÛfØ (91æoóò O!^|ØñLÛð3ÜCýÏyn>Íþýùjä99ϼU[X¶Äûê/ÓÃ§Ñ£Ê ÅÈÚ@IU§ßæáô³cçÐY æÜCJyÞJR몹ð}>ëΩe¬~iTOÉÀgöØ&·wåmc³Á µýqZ¤ v[cØLò;Ê 3z¶òÒÄH4OQ|õå{°Rä*p¸bå8ùn Eé½Í¤#Z \J$ª×¿Å®!>,Uåß&& ë6ɬÁìDÍòóíݾüØ\H T¦û]¢qmꡦñåe¼z¶¦ög³D%mZªäòMq$ 50ÄæþhIÊ'Á½)ÖÁzZJeúPD} j Òg¤ðôî»2%¹\9ä÷º²OÞ,kµ\d¡ù&§ÆÜÖA ìÝ'V§"Û§cQ¬/ª¦X8Á¯ÀU2d G0ôØ0²cZ¶Îb'62rµ¹ýÐÒ£÷£äsÞ¬«¿£q£Õ9BsßHHN9ÛBñ;Î mnÜ¥÷¼Ç,Ê2úÎ4oòë1Wù>LëÅ×=ÌKÝ"¾µ,¶ÛªFîW[ìT ·Íp2ÂÍ'8Â}É ÝhÊPN)¶XéªÓÒ}{Í ¡1¬(Ê{4ôÓ í@ ³´F6¢v\gb Ó^äÝÚ_â í¼J{Eî|¤ È6I1ñíÂ8¹ çt¢Gª4e%bÏ\×3¶¶õ½ó1÷EqN¡V1ÚqÜ×d%\!ÏQüÀwÀ\88¸¸x ü6½ÏÌè}YpkQ¬0µ×'Ü«ÕyfJüéëvë¹U^=íú3['+£jUlê@â°@å>Ä$8ÀÁÒ£]]Qò·ã¨1±¾ÞÿYÛ¾âïc[»FA !S÷áÄêÆä>TIÉQìP;F#§ü)è{#N9O&sùõùr9~üºÄ°ÃøÎ;kF>Ôt&'1ek*j5ª`°á¼² ÁZÏ Ú*ÈÀ¯ '0¤ פûdÆïn P*Ðé#¢CF[IèS¯2Ým;öÚms¼[;þÉìÖÛZÓÙA .OôÇ0b'ûêJ@ØPlþÆÄ& ÈÈpÜ|$.[×µæ3_ç+*4ç4?ª°±y3Ò ñÐ2Ô,ÅJd2¼Ä1?å'}9¼½Ö|X©8 LVTEhtÁüf§óùeóNa¸ ° /ÛDæG'ÍÔ«Ú0Q# ß»hSÎd¦pÍ2iȤikjå<N_ãDìXèpni½ÿ ÀLs+à#4Ö¦EX´xZßÀíâ>pPëB,2SÅ7úPi²(¶" ¸ºA\y½øâñ)cÿ+qiéÊwèóóS0à¤Að Z&PG)2âù*v5Y¦*ó67l >ÛøaÓÒ/sÀÕRRÒCn§b¾HM2ëcÃÎ~½í0Y/#%ÆAh8Ûq´T.õ2M Â-hÐ'ÚST îNNVE´R$2²>ÏÄR~Fl(z(Kc±¢?nê XÄØ©tWË^-'6ñ97«ý¡ë² ¼&K¶:! ½>Épd} u^7Q®Y=qêvD jbäu×¼J^RqÃ[8yÉÛÂÄÉjD» T{î}è¡ò½ÅTÄìëÕ2ùF}hF ým.ÌÈ¿Nª3E>8ÑÙu¦`¾ößaü/LwÈîz³ptPvÅDáÙÅmFvïr«ÉHvñå~«¦>©rlZ*u¼0gÐþ7Ü#3êïGÃÁ²ÈZg¥(K1bKþuQ±Kk`NaÖXô«áJc£mQýaòH¦}uÁ`¬~ø¡ ÄAaqáo>'5iƸÍ6'Ty̶t1çæg¶_ÈÑ.æð]ÅCÌDÌÚûVT[ñy'#F&Õ¢j¥¥ü´®Ñ½@m-GO73¨ÛdðQ¬¿!ì2²öÄlwU6iJØl^.OMÙÓ¬ãêÒ%Oq,HÌ!qáªýË&îm.¬jD:¢«ºHÑe6ÚûøV×Í¿!èÖ¿ÀÛ(¶Þð¨±gî§ÒÖuQáa¬´èÿü\ü¡ úsÂXø¨/.ªã8Æyvÿä2ÉÆ²r\)Kãé<ꥷyÚKå½0l±ÄrAÄjÅûßÅ])ÜI@£ÉaNIµhÆkªË ¥Ý¹Gx*b¤¦LÿY²£º'Jjöªr ÿTÈÁçEýnµ=³ZCÇzÔ¨H_Úç÷r|² èñ©ê UÂÅjswÌo§{ ˯4C¹"9³1ªQ9jrñÎr."qWúpL&MWéöuvjöhjáÆÎ]¿ý bÜNÎKÖ²©¼F3ÐZ¾MÏ#RGr ¿.°¼R"áróoa|KpÚ,¨¨Ö hOnÕã3¾ÓnÒÆ)ð Á´ºl¦Ë@<á\vàSÙqfci¾ |°ðõ 7½à¾X>à' øfê¬vKJZbA%±DÔ6.°4µÂç«]x ¤×Iâ8«Iî:Ñxè@L@_§FEïMÜA;¢á\âEÜùõ[çÉ,[Qîö¤Ãímó à¨s ¢ªàû ·3WèÚ,R#rùèÙR:ëg.¹º.jò}7©~LøÒ½_/@ùg$÷ê°N* %1$ìHùÃátÈ,õSò0þ*Ò Þïà1ð$rl>üº¤Pönö.¿®*?¦Ñ¡!ònRþ[\ö?¹¾ðnC£®÷jLÛâÀùûÛ©¤¥Ê¸'}Æ: ÷eÓ¶*Ó! Bîl¤àÛ]zZð:rùíBNõ¦à~d·øoæ12ögÂ"¬[¡gÂSW÷FQ;Jûpâùß#ðcä¬vÀ.ÿ>zxÚ¦"À¾VJ¸n'æÛlZï,Ù.Ë,^²²¶ì®Zìø̳¢÷û+ú8k¥-$åønsÙ³Ô6wÒ³/Êñ,jm@x´(÷Ø+)&_û~HíçRkLZidg,âæ£Ïó~îØsVúº5rhòÚ6okOXvèþÒü±ïß ÊÛÌ%ù¬Q2®¨t¨ü%ÀÍEÇõþ ê¼^µd>¤ rªÝB5À¢fYùÁ´ÃÖ˦´" 4.9Û&B[oßÀá½Ç óù·Äö΢«A ì÷ܰdè'"îdÀÝ·¾ÿ¬è9(¨aÚ·¦Å(M8 ©Ì1j OÐÙ´ÌJ¾?fíCiíµ0zᨮº<ÒLïÊuQS 2é÷²ºûWµÝ4ëÔ¶ýKæÍ¾YÌþ{!ÎÙ$á/©¶Y ìNÜ#ùÞ5"xño๿ÿ]ÝÍíE§(öAO¦Îæ¨<âOÀ`÷R«]pÖKyõføßþ7®êãïü»Ït0Ùûïüd¯E¬ðÊçÑg³çcëõí[¥(ô}·IµîNàGÇCëëE g«d¸'mbß׸»eËü(ÉDÅÝ }@Ýl56 sjA¯lôa[iÄ¡¥ã ¼ åàU´è,À·Dø{úsíOÛØÏò²ëµÃ^èFHñÑ*ä¯íÓ(µ¯>;<ê^íáfñ`E¡<µcäÅ¥ ¿VaÊë}òaÑàlÉ¢iÇf>õöBsqvg`ROfGѧº U¾D ©@~a5f ë(,yX>ðç\Î#¢hv®»îê %÷ÙA:ê¤×XÍo¡,N%¤»Ûí ´A5íS,ð²>n]{ËëýAÃJçܤÊÇ·ù¬Zâ>{Â^i ßB}çAí¢=:tU:ª§ yiÉ(W¦Ô xæ´Vt ¦kkC¹äÐ<i&ñâÜÜ!â}¢ZT5.¾Åô8,¢¡9ßgOzõðtüª9 ,ÙoN" µÞé©«Ñ!É|Z-j;K ¦ gÈ6Ñ;Ræ_¦CÍÔÕªS!gxøÀW!@ 7#^ü ,E/ÞI;áâÿå¸ó(|m]¬'/" «6>ÆÙ¹Hó"_ÛÅ¡ÃÓ^þÇ^õeéôË\.ß½!v£p\ÕáüÏÅòxÑ;ÞÚÉ2Ó¯ä©ÂaZGË¼Ï µÝm¿ójP§O¸´õ¦ç«!!tLeÜXÏP ÎU&7°c³ìá]¾´nÈÁ J_=¬ú¾¿óWl³C*¹ùþ¶VmDMÃN)A; Þ!¯LÌ©àMð½Â¤=Hm^Ö`J(³}Ns#=zNk¡R*Óã,°(Ïù6ù8UñmóÅoÝ_åwmªyD;R<ðîß_6·Ï¯±myÔÿ6ãåÖ?éw; cà'TF$£ÁƧ¯ÒÀ½ûqq );òÐi!ªFA{w#²ú6Å¥*ùTâ/]ûf7HW#Ry/Mm[ÕQëJXÞ8OØc"üv¹2-$ÉËjðGÿto¥áVJÔ:©M6R,äVYòÐÿ¥íÙÕ/kñã>¥ããk¡±å%_ÃØãDÝi)¯p¹Øéñ1Û].»(ÓÃû7 dà#÷-'Ýq|©×zI6}og¦û*Æ.×ãÛS÷êðCÆÞáÖÓ¿û¸àýºúo|=õ±ÕÓ,þ®>QP3å$qÑØ²E%7íÀ;-ýH+¢B¥%ÇXä6ö6nÕ¢Ip¸x{1ªìvN¶çx¿Eóèø\ÃàW÷qX©p©ê@üoô²©TîÔW©U¼Í¸£^©]V¤-°å®à2½a?g¼ | [R9ã#=i3×\·±É5ÄÑÈËOzõ3pãø4Uéo=¼aõlÊÉ"É®¯ÐÎÛÒ¨MÑqO÷ipû³Ðª~Ì4 ^ÀébvfanÓʺʶÛðf¦ÂPa<ãSr O]kÞxïͺA-Cö!é©"ÒÙ<}¬·ªG3 XÛ¥ÝEr~ z§Ó¢¦ËüåÂ1mþ í\ãh½yâÓFc¹&;½°d 3¡^À¾,%wýXצksd6@ÛíôUAæâtK`PѤ:n.Déÿ¤ûÇB=Ó Áñq}B@§þ¢vK¾ê û¾íñ@|ãCéÿÀØ®ý±ª/¬SÓÂýx0¹`¥s<a_Ú|(Yæäýw |§å!`_ÚàµX?%ÂÓÐ|¿ïÎväÉ ©.¾X5b¡ÝQGÇ\;ºå¶é°k|¡jéq»fÔ´B!O_@¸":âcÓ<r¥*çÝq§|ëGEÙùU?pHÒa¼÷@Þ0ØûC=¹Òl¥¸¡BÌZUÝÛóQwÌmzÙ@Ï{«Å-2¯7ä§´B Þ¢ ¿ø{Ý{åÌåù³onݰÓþõ¿Êù;+ü½Â·ücåkÛ#ýõßr¶éÇT¶´ÞO.ä¼¼|7pý6R¯7q÷aàæËÀÅ7o> ÞxÞ¯ +ºg$yàÁ\Lú;g«oQmh¨ 7¯c³Å)pû_;ñozÛY4øË(®¥¯õ:iu)û3ê@Ù$R¸pÛH2?⬮9VÈBýÝWtZ yêêáIòQÖesÓ[ ±ÂmßÊÅE£d@ÈÄSñÙkxàã¬uG'̰¼§Æë¿ÄÌ×7`î( 5Å XðwjîÏ÷=¸îÃ¥¯m¹ø--¨¢ÁÖ+yÀ(aózÆËàJò&|w±u·ý>=Ulòç"W^|É1GF¹wÜrcvÊyT{f$bøô´lϪۡÁ1z¹1«ããÞ7{¯:ÃÀÿ½ mÑ}ô%älxËz[3³Ióa¤Q4Àï¿jÍðSóGÎZDüiÅcx2ÃÒ?9 ÖARîc>[ÓÂx¬}bãµ\õ"Ì$Ìl`=uÜØÈÙç¬ÞÊmæNï»]=±µí´±½þd5·ÙOw-ÕØ²oÙf¸ÝpîØrÍlßøºtÓ.Áé Ás`>Úa «Ææû-¼dëÌ÷[Èð9|è ÎQº«bIG´g ¶YÐ/ÙY9úìÇó%Néy 3FÈ È UnÎæë&7{jf2¨-¨Áb R'dô-ëÌÝãÏãèidzvÞúåY[Vþú=[#qÂI]2ãYeÒ´@{*v¶lÿBkÆ^ºÂ^¼ÄmTÁ©¹îYvE*òÒÌ+ÒóÎEy@ YIv¶=¨³5%QWgoF¦{>Yö)F>ãËþ~ÛíÈ]9f$Y´q;óm¼ >?+jã®tÃvÍ' Xm'®«z¯ÄÕVé{Ç^D¼öôþÑêǵô.¼úì\Ð]c!èmc Ì8oðá5¯ÛÛ·I& øß¼5sðòH»"ÏÞDU ök¦ìâDè¯#RõÙªyb-ðÇzöÓðÄýSºA¯Ôa)±Öýµì¤ÓOë '¼CêÉ'ê %îÞ¬»wó¢÷m]9Hã âÜâ ÝÊèôç¿§LÌÄâ\ð 5¸ÏC^ú¥ûÕ+îy?µÏõÃNZ½ Æéwè¸1lð¾¿:5i7¦=÷CÓûg%ïà¿ãwÚÂc ¬ï=ÿ½^ßnØqgÙöII#]AAO»%ùR%'hóYN¶ ?WººÂ¬JKAÁ÷°iLMyæÀ-±ÖMéú|ðBv¯ È·Ò̽ÉÙ¹Nmíe&1¢K´Ü9óéâ1,C wân¼ÙÑÕ5JcÁæÕ¸Nkõ..OQÇäg?_4\&þ~³nküæñ?ÁÐ5ïHp`%ÁUÝX˦$U§)2è¬Ñ]$<ÃÔ0bÑRKÛÊÖ@Nä7HúSÇ ªïÙ4д'»E]rmqèO¨!¢-ÂVêL äÐxß"×ôð ;Ay7,ª6E96¢Âk쨲BA0ºú-ísQÅÀ°cÑ´ÁçÈ!%e¹.4í«"Xfë ýsHÐÕÀ95Z¡^nµ+K{Ly@MÞ¡r í½Fã¿F ¿RóõT[¨ó¶£´Å¢zPñÏúôÙ7_ ÇEõ;hYéè<Ù⯯«±¸ºÛwƹÞl*/7zàØ:ÍÙ_>M÷©õ'¯gsÆBýÐÜÀ_1-kѳØîÓd úÒ]å¦ÖkB}gMP Y¼fnéêYåËx1 wÜ'ái£å¨o"Õ"b¹3²,«uø*r,Ëe>3Û'±â-|=cÿ. Õ`½è êþp<êÿüó¬ÁSUv¯9dQº¾Íf¤)Æ$< IPi'$B©q JaOrå.CìOV)DçÔ§Õ$;ûWÑ #ëÜêýI!î^®ÖpEù7v°ÚB§û-S}½¤áX^û¿îû£jð$ý[}EB õÆÒðuËû¾m>Ú»+¿æÉ½ÛÔí#}ä[R@Ð.®U/µ5)%§Ý!ÐJþ¡¶Z_ u¬È ½Yù(þ¤Ü÷¯yú|Mµì;sßáZ»KòjÊÌ¥;R®½v¡M¡²êÏ;õÂþSfÚá¶×òw~&àÈ$X:u~tw|F:Ä!RÓyR¦éÅ*2âÎ,;/.wâ®AÔ¬RK¾ üD&9±{Îkj7L5F檤 räÔ'ï`1îßÔÒÞ²p#û©6#UÛȪ^ݹ¸¡àÊp#yÿ;ª7âÿý¹9ßÒÏ(Õ!nѲôûtv>ºÓ@^ÃrÞ¶3羺®`wä ®Cꦮëɮڤè²XdÛ÷+ ß±÷°ñ ¢ÓIá±0OùÛ{"Ä Íã9ËE=È©´æÿ~ì·ËÅwõ÷ ôþ2EûÛܵ°µ3{êjÿ®÷7øU·§¼ãEðû°±¤/rüfd mKæÞÁ@¶~ÝÃCÅÚi¢AÐBL½ µ|Mîëøn¹SòúÒÊ÷ÙÍ0§ÀÙçïìz Sà]Ìþý *T>rvOسÊI}·Q/U¡_¹VvNÜP8fæöÕg83náêTÎ5ÈrÕ¼+ú_Â{í´ÆdÐÑ'íÞczç]}ü^vÁ1.^¨àÈæÓÏïçø 9ÈwVÓÔ@´`4*Óc{×÷;Úi÷ÎÔ~¢O eXÿ:Å<ÑݯXbåçà¾áê6æ=HßAî&£²m" ÆW þ±úr 12ܽ~}Þ¼oÙ·lÆ_4ã/ñÈþI`û"´}ýëjÙN¦A&@9Îs£.M¿HÿtÜ$~k*¿Ò¾Y9==µê>®¦ãݱrkgÏæUÅC6··®_e´7j ¾}îrfÈ%Y; ¹5¼ÐüC1{%2ÀÏØN]f¼LÈ´%°ÞFAxÅzîií^ì]sÈ#û 7v Í|äò(ÎùÀHàë)²H:ö`z[:C(=µ[ìùãÂ_ô¬e§Î][õgÁ!üGC^Á*ª gÐeíg½;®:;!"ÐAØÎâÞp#u¦De[#è¹ÎN ìÏS颧w`Ôâ ?¤£°÷Dõøl54c½m5$3TèÏR"ëJò=×G_Ov!ëãKîeg¼~o8Wqf,Ó¸âUÈ!íêH«vr¼@"Úë¸2ÅqXT,¬½´ñ1êj\X_|¤¿*#v qC%:!$=Pfl¦b®uSd9£*ÏbÿìÕ.g¯Z+Á©@?»Ù'K+äºülïí´¿+YÎkÀø´ZK;¾öcÊQâ2D²[Ö{çùêªQÁÝ¢ 1%uqþÕ?66c¥Öyö ºaþ±_^×ßJoí(gcd= ÊÒçôEU\² ÃO4½Ã¤ÙÆM¢`jvðE+éD pÀ*À)·zó(Âñ´àµ îáxú4Ç<Âñ4j6þéT\ç$Âù4ã6È.Âù´4ã8Ëâ§ÅB.`ÎgÁ Mv²x~^´¾aµÕk§d Ük°Þ¨9v¢ÇT¿ß($Õº9±zF¡jã¹öpàÍâYºzqJôb'\שÈëÛ´uib>Ûà45WøHJÍeô¨N"¨úBGºZ©JÚSk|æ8?§×î˽æwK鯝7çß³méÖ½ñÏUÙ¯jÝYηk'®Í wûä¶}«Ó=Çíí¼sZ¾÷kaéÛgJÎ?K¼Ï*áéìS]i¯µyU9´ÖÖâÌR@ð0m)àue ÊO¹.4²ïAÁ"Ð7¸Ú\+ÅLÃÓ¢æÛ BÌ×mUiEúCP´ú¹Row=þ$r(ÏÏ1¾©Q-ÀxªÔäÚY# ©ÄZI`/^ô?Zºê?FS{º%¡ñD#ãÔÊciFPÿÖjf2gæQÆ6Ò±VÚS1tõ½1ãÎC¸ðg΢§E"rUÁÈ3*ȶS×à ¬´*Ltþ%rÐw'º MÊBuνÌïx«2e{Êw&]Ùê(ÜçÏLyMÎ.\ó/8)»c4o%t:y_רNYÍ6+f郞ٮ_DcìÒ#ÎúÒd4/ôÚæ×ý !s)rÝ )ÎïÙÓxQDÇKµ_¾3Zñ×%ï ¯²¨A\T *½Gr sif_hifó£=£J©_¿ü- <ÚUY¥^õü3ïÇÝ5Füð«ìü±²'½ÔJ>üéfKM@Ên-xeè+ÙE[lllY§HèÕþ6ȲéãdUó#½ÂB[6ª£F:¨Ì QótÑPEdÝ ¸ Á$iéy£rV)"#±Æ @ W¸.>H gjeØÅe^¯ClaíjJe(a+zÒ %wðþ¶ðþ$Z·è:×ä!S§évæ»åeè9¾OÆ4'ÔM52g»£vÔÔ¶*bIOñl¡ÈãÊtÔAêðjÖ³Ígâ,]Ó²=¼"Wä@5A\µbßvHïÙ>ÐO,2ïRM£ýNÜþB%YzÍméïnôÇ4lÚå[n©Øô3·;·Éõváü®;©¸Ý*¿×ô¡~tEÒçáµYÒJh¾¶Þóc8XØ(Ü×1Jm(¨ÄÆTP°Fß=FäØÝÄaÂBb>%¨`s o[gÓp>×Ê?³&%ÏxÅb^Þãîeþ¤®¸ù÷F·HC¡pV¿x ²8ø¹àoFOûÊ æ37Ê]ZsSÉTD hÖI]*´ú§ØuצüãÇùyùÑܦÎóðÂ3ÔqF3g+ú©:§q-vï0ÚûñP©¯áÂãâÉì÷ù- }îKº+ÎËñ<SÆqsÚWu%ÇlE¬Î¬6ª7Yì¯ÈûÈZ~ô -×í ¾ Ô¨Ñç·LO/üö ª #?Ä$´: ~_/óh«ÙÚ ç =3Qåyà¼V[C½cAÛvèQÕ|¡dBäô| ýÒ´WkíîEæ tU:øB̺t(Iu¸º½Ò/xq^å¦Â5Ú®øc{Ñäãn;*Ý$tp¨Z sUzîÒ.zRë´rº¼ÏV^ý6ñ»°®³Kw¾ëM3D2,ç¸aÐ|ß6!ßî'eè³HF)AÛe3³zZ©õÑaZ^5Q¿qL iúKº¯ó_FÐ:*Ⱦ)MgÏ$bÙøf!7i »ÚV¾ËöT>{=kIÙS´M"Ð+õGòúwïÒV NÂmCضÍo~Ço``ØÊø©³qËÖWn]Õ7¬]¸=«ûéâ(hØDfRÏãv¨vÊgÛ`]6ñáÇé^zËmØãxåHÇwÇ?1O J±É£Ít·æH¦<&)Îvk¨Æòµ2½'}êØ[O<̶@eéDªÊÀ¼*â#:mg dTd\òh²G¹}¤QØáåtLhøòÐc§Ü pj4=Íõmk§gß)¾`,Y\Le>¶Ã/æ¯\°pÁÎè¾;)ËF3'§1õ[^nex¯üaÃxVEÖeÎÍüÞ?ÌXä_©dXNÓªqò¯\2¤±ö&ßû|Eú3Ã/ßÅy~,ñgMMºßÔlÒ9 cÙûrÜNÇßÈ%Í]Ý ²b¹vóA«)'gË]| f2o.÷:ÐwivvÒë¢lL I-1ÚØ¿bô>ÂãFX14'«4Q Í)ÃÆëgï]/Ótùý÷9»zn×pR på u4ZðiÚaùÅ]ªïreƧTXh²´±aJÏ·æÓTº}/¥ Aë6Õ(OdìÛL¥dúwúd^ê wM»d¯Ôà+©ñÔøTý(Ì|úkNNM@8¿%ÚéQ0ñ É&ôÜÐ/Fvbô³ÊÑÝïE4:JLt-ÜPDð éÿk¸ùò¦×w¿Gì.N¦ïº|?¿¡$P¯Eq uÛν é®v9~ìФ>Ï<òÌZÄDªú&ÈóÀºhj¸×DD¹.<",9ú_dê ßHÁâ=ßPÉßa*IÈRà\F)ÞOIcÁ¹²ðtÁQ·úèi!Û`,kiÏË¢ÉëÈ¥XÓÐ7¢`Í¡rÂý¬,À5àLØm*_yZkè¢\{]©©ê"kÐHWgÕÚTQ>3ǪÉ8vÔXæ!×µtÞ°w6pÑ÷ý`e}É;Ñí}lp=á¾zB,^E)°þy:äkYK§û/®QÃgçç[¨Ê{oѾôÄPëV UÜÜÖO©SØ·ÚÌü´$OðPF*T"Â9r(![%Í&mÛl¯oZÔäÙBßz: h¾_I÷Æ!*$É8âÙ3A}1®Øû1ï».9ü³.ºJPÑ= ª(ÃHx'¹7Z> þ¡u¯Éi.aúH³ê.«ëÃøq¿e#Æ 3[½ÁÛ{ÈV`I½§Ó!³¡Þ~4Õ#ûÑó{¦pYäU%¤xÞo±£2wª9ÝÕî)#áZ GXóÖ 9w*DàsgËFPìbfN¼«NS©ISÚË èâ0Zs±Y¿>´µúÜW4 Y]ÿÓLcQ&±¿TsGÅ&moÎPr*àTSIønKT.Ù\ <R:ÑÆÇ4ÿ½'תÚç' aED¦P×;SÐWnò¢ÍUn=¹ÜÈ@¨3hÉY±y)V`þ-h§ð;ÐÝ¢åZ²ðýÒì¸?òþØ-Ö øpxÃâÀ§ ò4Ûqë)µøô8®UW xø°Îsݼ5üGÃ¥Øê/F°öÎ\ÿö´(/E È=Z§Nêfæ ÅT \a 3¡¤âÜ- 97x-%H´&ne%=äcÈ©êçü.xÝdf̢èÓ2J ÓõWz¤:Éñ¥yØÕgþ ¸òù¡¦Jß2ÆÌ©³·sóÈ_°ËÏ÷üÌêØ«Øüïið߸ÿÕï þʸôÝÁ/ûÖÖÖÌ Ú¾¤µµ³ïÏàßYü{¡pªYÒ7T²ï}òþÉßÙ;¯í¿G¸ù.ï_íÍéðÇð,?ør6ÏtW@Ôø÷L/í?¿ÒÞ¶Ò¡YÂEF&^·ÇQê5£úÁá3ó ¦¾Lp©»Yyú\ï Âû0ÂBÞf {ép-ýݤkÖe¼ïê¿Ø'õ H®?Äßþó÷êoÿ- êÿµ{ÒÙ£Å|0p¡ü6á÷8|â#;âø¬ HtX;qôt ̾&)6)7«åô© ÒöCZ¡lto9âV<2¬) *¡Á@)6§ÊBµ<½tJ}r02D2Ðr.[ Õ®:¿§@*D@êÛÇCö;hïiëvüÏ%¡%\¼O:ô¬¼Ç£ñÓb)_¿©À Ó¸Ô°p_B°ÌMZ~q¤@ÌÅcÐ< ÓB"£o-+°ÙÀpÜxõ~ÁÎjq±ð5 iHÎ<;áp6âM⫱W!!Ã~ö±G-¯d!|±âIPC>7Ý&?,ù²B"B´I2 »Í2¹o*OÀ¡ÎnH{å åúd,$,! NH©.Å%Jª*hÝDm )¢ºãe-ð<Æ@Îb"ÃÜË^©¾»¿íE®¦à2rç* ¤Eæ;°:R°_DÚ- ½½ð¥©êÈ{Ù+¾Y÷²2VlÒ ¬)Æ»Pk¹@p[¹ýVÁ¶¬wÄ×1HKÜ_Ýù'/µJuZ¢( ÄO Ý}ʧñ1Î4¸ÔLb?;ý÷,A$_/db=ímÖ¸%è]F8DÚø£)Ëgy ßlÍÕU´@¼{Cýñ÷ØGü©m)làñ)`Uµoâ:XÈÜÊ<ÌävÒÝSZ@6ºÛ*¹ºª!Ý9hü \nj<¡Ð÷A 3º"°+»tHY¢Ãi÷üµÏÚh}?oC(6kŨ6#2¹e?EöØ3Ëmí/ï>xÃM"à ºa½0,ÅZUuê<ýq³¹qÖ~iqT¬¸ ÍùaéS¢C@ã÷5Jö±PnßC X§!_F$¡Ü o.Èä7íÍÉj§ÈMÍ!þ1f%÷¼X%ÈT£O¯îûò ¤ûU&+¥fðn+)\©" ¼¨'¥Ýóõõµ J?T£ØFw²¡Z¹8|1%Í1ª=±×BL¡cåódß[%Ýß²ö;ötÕ1jGuw8Ù)É?³1Ĩø¡w 1%ÊþUEÜ ;÷·~ ¸¤e.1wvÅ)û0÷¥ø¢ÄçrjNM¥vX¥Ew$³YUÞ=®òqOÈ$69êi¤6ÎÐå¯dÅ^Blfë¬ê\jw²I&º_^o¿äåÍ{xA¥³ï/ïÕcà=mM*øUùÖ4#/¥>OÅ¡¯³S³[S_z,ÅÂxß±ÛðgßÇý×Ú>Bô7ke+:HWp(ÿ¨.->fæÝ¡3LÝÉg±õ¶6 ;Uh³>wº;iYälXv ÅÕ#²AÐÐãOs¶']?XC¾Þ°ÀÃ.cؤcrú([,îÙyô"û° B%ïÃRò5¦h¼ï§[ózl¿J}ÿ8µ=Ì»e8lÖ6f4·ç¶á|¯ÜÃí ìy«.î ÈFjÁWÏß W¶©&è"onöÿË4zÿ=½Î"z@@ù±Û°ð¤«÷åkQ¡¬BÕåjR6á¨S¸9jX¨-,W±£j¶aÞ¸nJÊZúbh¢eËCt}aUÐÝuo°Þ 7>åöüA8µT#PÔ§pd8Ú$Ëkt#~DÈ-ø à-DÇHj ©Õíêé$Z%µËú:Æ8ìÁ§ ÆþDîØ6"ñ}\Íæah\ÆÊF:ß]ýåuâ6}¸Qj»âûî"(o8JFmàÝ1¯ìoâºYëSkÛ&c·sfö=÷ì×OY®ªa¹¸ïc3}àR ±[²ì»- áÉtPÜØR¤9A¼Ç1^?oÚª# ~^TÈYl%ÆípL0oþ?l¬xcÙ~²cÈzñ|9w,ø³ÏyqQf}2ök *Þ4á¡Õ¥«÷+ÈFCóþÁ¯-,cáÌÐ#ÆÎbüÌæ[ PR¿Ä$?¨çuG{,.ÏÅÇýûº¥÷T²¾uÖÊÕqÔwöýib}³òtìt¶xf£Q>älÃs-ÝG[`\lý1ÂÓÁ´GãÇÁ7KýÍÌ$ÎàtiÃèlüSWÎvñeÍSFÖÚóÍ5_ÔˬQ¯²ØN÷M»ßéù»ª{ů?×v°åeÏuæÛuÙc6·/ßßN+6/û>Ü~?°HOÇ?¯4édä*Íõôé:è,%Ü]-ebH¤3ݲ gÏk$£Ì £á6Ãbg|¸#5PÒh%¼ÅeIý2cPîecsÏTvÅt¿n)_¦1ç E'ÒæºO£Ò³ ù¼Æj9@+£NñþCú_u£&ÎÿFô¸Á¾!Üß_ûzp ø,ÃÅw÷Û««QÈãt'W¥}WôjÍè@Ø jô9Øá²®#}Mãu©Îy¾êÂë@Ê ¾`@.\9Äøº³ ôâTÁûõ}fH¬1õßFNM·²ÝXÂä½Ükï°çFE±ÕÓcÈ32VÅÜ.ª6r2s1©)ÊËf$ëÉâÒ9{"SÊ¢V$;Y¢¨mÖµTUA G?ÒÑp¸N>sTRáx¾KdÒ³:PWý«ä^ |0ê AñVï±mòƳ.ú$hpáì'`g)·Æ&üÌQ ,o¾y½ys¹¼Üó*ë ¯ß½§ÜÕÎüGTyÎìQµj+D^ò âW¾£=2¹J ý3<ð9Â%§/ðJa.ÃÛíx!%]¦1ÚCâB¼åFf¥?vAÉ4ͯg ¢qï©Ã1g)e÷æ\ïy´6ê:d ã+â&i8ÛÁ¹òê>XþÉ£0jÒé9yK&îb)X¦v®W;ÐJ{ÜSà{A3ú/Ã7evð ä ¶P\!¢ÉªÃ èdÍͲVGpÛÊNÅi%Ê6 KÓÀ:æyÑ|cÅÕV¤ú¾«Qn19λaek®>+M±,·²É÷ý=ðýLMÒ¤^^j Ê¡´:næbEØ0}/Sãn`U lz$'ìÐí9qÅD5NbëEHKÍ!ÖÑú¾¾çÈ >Û+uÛ*xwÒþ(æ¾Yðñ<nÛxÛôj[ysóÆå m+¿ÎvÊb=3Ú"í sýÒ¹+nJìÅÊ0bÒ¿ú")ep#òÄsZ1Zþ¯2Ï!Ñ\¡jr|C¼aÓòHÙúQ«5¥bÔ[Ø-Ť'²ð½\Gë¢âiî丵1:Cç) A®¹HuV¨ïDMuFöýS<q~¯k8¦I¾1ÝÕÌÞZvµX$Ò,¡*üNøécÊmXj80ìh@)Åc½!<³o¼ßD]m·NXK¥¸¨¥(x(nD`(.)&ö<Q7ïÈTú¼«Iá.JpÆþÉML´_÷µ³ÐVBbL©g)d&êªs¥"SÐÛfÒõPcUá6c#.Ætò½|AªLc*'Ú[¨lUWRq¹¬³(éÂn!¹¶7Õâ»ûÉy|Ï×ü ëè[QË"#Ñ=|%ÉJ¯ ý¦ÏèüQÃTzë£c¨4vH ß ³à?mÛ=vðda7põX"Ü9mÃN¬WDk¾ð\9¸¼;*êGo0ÊÓPÈr xjÒøñ´x/AMt-Ë8EïÙFª¯A½CLÚp$MÓ/Ñh Îñ;¾Ôüü¥W(¦bPoXf©RåÁ=Ñ|ñq-5 A¾BßÒ4t©]¥éÓM À¦ß¶ã*>Öéò¸[½)Ê,~6xY¥xTªCʸ"ª*.cmh3Ç$>LÓ]I¦t)ºð9÷u~Á3¬É m®«VùOQ´JSÀñ8ÆaiåGìÙÝ @ÁN´îMÕÍ;<2¶üÎÈ~uóbÂ5n .tqªÃ¼R>U6î£ÒdÚáæj£ ²rŨØpÓ¹"H³!ä;îüBfÊö±M_Ïfý-ÁK'ÔfMY7ÅÄ v¿&ré!N VR+AV"°âüe4ý¡Ý_ØæÔa;ÃBàTßLÝØ(ô÷ÔB§Ã8ðA©_ÂQðiù(uÀªælpÎ3Ìóg§Ï¶ÛîïØ°~aö_Â(.Ôû× MáøÖæogßrX ÛþÌÌÄX noµ}?¸×tÀk첦ÞÑü¨Åµê9¡.õÐúÔ¼ìÌèØÊo7}çÅÞqwè~ èªo $¦©3³å â,lÎm¥Dµ ÅÔùíQ¯f¸O,þdi¤®mJ-g^$´û¡ \ÕеzÓ_Ú¡.£ãBo&Ô+²^Z_ Õ÷½ïOf¸'bNs¥eÛ9ÕòH¦Äº'ij¨XÉÿð{R¹öÆþFî=sfçå0:,(a;æSþ ?ðÝûâ~^á.êkr~GFPµêdéªS1/KfEkjIN-ªÛÑ0PGð¨0>8.0Ü·ô#Q¸<ÌI5hjg`Ìáîsèsò·ðb _Ïéi¾ÞÁ~ÕU_þ{y¡p?¾&«ÙÞ×4á1û³ü>òýÔ-6aoÎÄ ¹.rÚZ®<gâV$É£aøCkÊ> ku·Ïpº¶M4×kèÄø5·c®@yjkÑÄLµQ¶Yb[½dN Rl¢ÄÜÐ" Eöã~óuMÙ0®ÆªlÄ: ÃÌÉnTA6õZ#ú2Vf×Épc, HcÎÓÒ5'¤tatÁ|<uCQ´ª¤²ÊSÊÐZ_Ëër_¢â!G>ÁzßcÜ'X¦oósì´5* U£ÊãÄ·Ì[$¯K]PzPÔà·õÎÖwö8¥û6ªw´5X²ïYþpcºð$u´µWÙÓèÒÍò|»WÙÖ\ê}téï6r¡`\ØFbF-¹Ø³VÁäz?0:&üfMËh7(8[tåYãÒ¥¹U`ÊâãÞv jmÛÄør©WË"lªÃ.¯vt·®êôÌ|4ÑÚRÙ褶ÆÉtßÒ©èùUÁÞÇíÿpc[WºøÍ=`v5óc¯µÞn}À^ÖVïÁWt².)3Àn*n&ãíK²{ -¯æS=|RÒÔ³/_ ÐÌß%nçÍÓlÜã½ÄØ×HáxPE8´#£)c¿Bã Jî /ÜkæéU¹, ÿó!Ul÷åN0s¼uÞ¶ªâÌåFzÓYËÆ°be¦vÜsrP¾xÙQÆüä] àpgªnBW7éû}Ö}XgVgÁîoÓ¬gU²ÔÎéÁ; X]Q M$þ¬^âÙ"ÆT¡ðÜ ±É:ÅZ1óâǯÍC{9²;gè"÷´ù ÈóÔì¾ÌZ}§¬hí;oæ :×p-r¹vóZ'4]£v`GÐ&ícÛ¨ïEëhÉüKÓkÁêbK¾~4il×QmJ0³·gò×+JÍǧû¢mygT>iun¡úÊFØ^/üÁ°¤Hõ\fô¤¡ÙRØ-·}áTfP×:Í7´nì ýæ#6×êµÁ)!©~¤RÓ®rA]³&[ ²³è¨?,ÃÉa3¬&E¥gÁÄGCår\ç°!%NªO«{ùn\i©G2R,kcûû6 @%a´ÿïn+}îoï¥y?wÌZu£2é~xW4É d,iÊX_õ¡Rcî8èí!Óe<&J¹j¿ôø)?Þ:þ°#ð¯Åz,»WäÑ@öÄD~ÝB³Tx@søKQîú" ̨¼Ò7¦&±OÁå´Ú¦µö#îëWEôMKõ{¾ZsëÂÔVÔæ5«(sLWc¦<O?gòÖVsæ+/Ø'@Í. |y>´}]ý4¦oäJý\æ²^°{ó' ³¢iǰT¥hÅb¹ÈñP@Ñçãu£lD!ÔôÑDyGA U l¹ÂÕ ß 4¿8þéùÌÓGè.J˽e"c{_~/ïTC9À««<wâ5ÖW*sÄJªs)fÈs°u¨-Ôy<=}öCMxå}¢Îµ&.í1ônMÒ¥q XU>W'¯ ¹ý¿á:¶Mø±Gñ¨yÅ÷ºÕ|º¸âðU)÷Ã'7 yoOz'ç3SÅkä©rv|Ñ 'êÛ"àÒ.ÞèÿVv~r2d½(£-Rágo´eeNQáùrCwE2@¦¦°Ä]ÞöNå mqƬûÖ¢×ϳkÔw$U\a+ý%T\ñú¢%jwã!c*os HÆRº FϨGöC1nb1U .Éèû¿_îßçùyýyø¼Nð÷ÔÐú8x<ý¾^ãè½»a æ1Þ(yà ³Ó zFÖ ¥¸§;¸@9²«òÚË¥ùU»C®/ÇÉ ÎÚQçðKbäìtdzÑ$p¿²Æµ7CY@ýb7N V½àøy9]2d.òã0`$àÂõÚbxÊP ÌtåwëJ|!àü^ãã¾Óëåáãýy<ü4.$$eéEø¢$Z;H³N×`M$~ÌoÅÅÒ¼'|íÄÄOqJ"«ü. +y@ЫJôy¢ÀRÚSÜûmKÚØuR2O±TXÁË?ÏDîG2<¸`àÀÆ7o.¿ºÌé¯Ç%~Î XBÖa¦BêÇ_!^îïÀ5vDäÀ½$?R£PÖÆÀ%aLÊËÆA¥jÙâr© Öæ3°<G.¹$¥yºü¸r©Ä!.¦Ï»Ð]ÑÑ Yu¬UìÿáØ°aFU¹¸;$Úüñ hÀ¢pM9ϯ;²JªA!¸Vê[_rF0ê²ñô´ Á¬vn^йxj$Sð"´ûÞnaVÉõ¤¸+¸©P fgøÖy¾¶_þ}Þ*Æ©¾ðB@@B.êÏü(¹1ôÔ]§¥È»¥j¶N9Å+ðÔ kh e+¡W+YéL9À'-â¥ùvK¶Ù@5lÕëDàa¶d.¸FåiY¦Uã·ö·§yY{y¡«+½ ª\èt¬uøÌÅ<3 Kê* C8Êo@õÓ@¤Ú¤sò¤0BªPêØÐXêè¬ÛLxß èðÜíI×óiÛ¬÷NÒÐýóÓ§Üæ£Ãw Ú&K}ɨÒyHºçtÀµ=&:ª0»Ø9äJÎ!#3ú¹KpÏÅQ@ Þï %°). n Éî¶IA-Ôèo ÖVSé. ÿdB" H°q4Î © ù@A¢ö=Ïß²n÷dm5&ï@u×ü íÕBd,éÎ Û¢dý§%ÞÞêjÔÜ%·ÑSåL»QÒ\*d(QoÂÍÀ6pÍ÷Ó>÷ZÂ)ýð ¬PNǯ£|t+2÷*¯v).Öª6ÞÑ«N#NÝwsDïjõ© 9«6¦÷Æ7 u(y5°>¶Fö<-þ°¯=û Ü`/´õè"0w¡-zqêú=¸¦wØäàßBªLY«QÊĪ, 6ØYTÙXî%©ÊBäny¸Å§ê/ëÂþ©$÷å}²v×vw }ÂéÇ4 «ò5u¤imm°ÃjÿtnQÍnÀþiÈù1æO´rÕÙíH#)÷tNµôÇãy´Nîecy·ê/1Ñ 2Z¬B'+Ùp+ * õ«ýd¤Ö,Ý:pô´é j¦L, Nª$Ð_ÖÐßD0Ó(ÛÛÑ÷(Ô(ÛJÓB^ö¡S¼ÆbXT©7å>MÄ6oK0ÆÖÚ»ýÏ®m<L>ãFN2ô ]eìvó+aÖ2-6ÚKÍo¸µ]K: cûÉY;î©¶@Ñ`Ų 7*Ê#v?ýBybzH_=Y¢Î¾g4ÅÞ©¨ yʶ`BYGÝPÆ×9ÐCÉHÃ{ïBÐnVH... [truncated message content] |
From: Grant M. <gr...@us...> - 2005-01-29 04:18:38
|
Update of /cvsroot/perl-xml/xml-simple/OLD In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19734/OLD Log Message: Directory /cvsroot/perl-xml/xml-simple/OLD added to the repository |
From: Grant M. <gr...@us...> - 2005-01-29 04:17:56
|
Update of /cvsroot/perl-xml/xml-simple/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19481/t Modified Files: 1_XMLin.t 3_Storable.t 4_MemShare.t 5_MemCopy.t 7_SaxStuff.t Log Message: - VMS unlink fixes (patch from Peter (Stig) Edwards) Index: 1_XMLin.t =================================================================== RCS file: /cvsroot/perl-xml/xml-simple/t/1_XMLin.t,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- 1_XMLin.t 17 Nov 2004 09:01:01 -0000 1.21 +++ 1_XMLin.t 29 Jan 2005 04:17:42 -0000 1.22 @@ -25,8 +25,8 @@ $@ = ''; eval "use XML::Simple;"; is($@, '', 'Module compiled OK'); -unless($XML::Simple::VERSION eq '2.13') { - diag("Warning: XML::Simple::VERSION = $XML::Simple::VERSION (expected 2.13)"); +unless($XML::Simple::VERSION eq '2.14') { + diag("Warning: XML::Simple::VERSION = $XML::Simple::VERSION (expected 2.14)"); } Index: 3_Storable.t =================================================================== RCS file: /cvsroot/perl-xml/xml-simple/t/3_Storable.t,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- 3_Storable.t 29 Feb 2004 09:49:18 -0000 1.9 +++ 3_Storable.t 29 Jan 2005 04:17:42 -0000 1.10 @@ -146,7 +146,11 @@ $t2 = (stat($CacheFile))[9]; isnt($t1, $t2, 'and this time the cache timestamp has changed'); -unlink($XMLFile); +if ('VMS' eq $^O) { + 1 while (unlink($XMLFile)); +} else { + unlink($XMLFile); +} ok(! -e $XMLFile, 'deleted the cache file'); open(FILE, ">$XMLFile"); # Re-create it (empty) close(FILE); Index: 4_MemShare.t =================================================================== RCS file: /cvsroot/perl-xml/xml-simple/t/4_MemShare.t,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- 4_MemShare.t 18 May 2003 08:43:13 -0000 1.4 +++ 4_MemShare.t 29 Jan 2005 04:17:42 -0000 1.5 @@ -113,7 +113,11 @@ my $opt = XMLin($XMLFile, cache => 'memshare'); is_deeply($opt, $Expected, 'parsed expected data from file'); -unlink($XMLFile); +if ('VMS' eq $^O) { + 1 while (unlink($XMLFile)); +} else { + unlink($XMLFile); +} ok(! -e $XMLFile, 'deleted the XML source file'); open(FILE, ">$XMLFile"); # Re-create it (empty) close(FILE); Index: 5_MemCopy.t =================================================================== RCS file: /cvsroot/perl-xml/xml-simple/t/5_MemCopy.t,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- 5_MemCopy.t 18 May 2003 08:43:13 -0000 1.5 +++ 5_MemCopy.t 29 Jan 2005 04:17:42 -0000 1.6 @@ -117,7 +117,11 @@ my $opt = XMLin($XMLFile, cache => 'memcopy'); is_deeply($opt, $Expected, 'parsed expected data through the cache'); -unlink($XMLFile); +if ('VMS' eq $^O) { + 1 while (unlink($XMLFile)); +} else { + unlink($XMLFile); +} ok(! -e $XMLFile, 'deleted the source XML file'); open(FILE, ">$XMLFile"); # Re-create it (empty) close(FILE); Index: 7_SaxStuff.t =================================================================== RCS file: /cvsroot/perl-xml/xml-simple/t/7_SaxStuff.t,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- 7_SaxStuff.t 29 Feb 2004 09:49:18 -0000 1.4 +++ 7_SaxStuff.t 29 Jan 2005 04:17:42 -0000 1.5 @@ -101,7 +101,11 @@ $XML::Simple::PREFERRED_PARSER = ''; ok(CopyFile($SrcFile, $XMLFile), 'created source XML file'); -unlink($CacheFile); +if ('VMS' eq $^O) { + 1 while (unlink($CacheFile)); +} else { + unlink($CacheFile); +} ok(! -e $CacheFile, 'deleted old cache files'); # Pass in a filename to check parse_uri() |
From: Grant M. <gr...@us...> - 2005-01-29 04:16:20
|
Update of /cvsroot/perl-xml/xml-simple/lib/XML In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19123/lib/XML Modified Files: Simple.pm Log Message: - VMS locking fixes (patch from Peter (Stig) Edwards) Index: Simple.pm =================================================================== RCS file: /cvsroot/perl-xml/xml-simple/lib/XML/Simple.pm,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- Simple.pm 17 Nov 2004 08:36:49 -0000 1.22 +++ Simple.pm 29 Jan 2005 04:16:10 -0000 1.23 @@ -53,7 +53,7 @@ @ISA = qw(Exporter); @EXPORT = qw(XMLin XMLout); @EXPORT_OK = qw(xml_in xml_out); -$VERSION = '2.13'; +$VERSION = '2.14'; $PREFERRED_PARSER = undef; my $StrictMode = 0; @@ -358,9 +358,13 @@ require Storable; # We didn't need it until now - # If the following line fails for you, your Storable.pm is old - upgrade - - Storable::lock_nstore($data, $cachefile); + if ('VMS' eq $^O) { + Storable::nstore($data, $cachefile); + } + else { + # If the following line fails for you, your Storable.pm is old - upgrade + Storable::lock_nstore($data, $cachefile); + } } @@ -384,7 +388,12 @@ require Storable; # We didn't need it until now - return(Storable::lock_retrieve($cachefile)); + if ('VMS' eq $^O) { + return(Storable::retrieve($cachefile)); + } + else { + return(Storable::lock_retrieve($cachefile)); + } } |
From: Petr C. <pci...@us...> - 2005-01-11 14:34:43
|
Update of /cvsroot/perl-xml/sax-perl-org In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6394 Modified Files: changes-2.1 changes-2.1.html changes-2.1.xml changes.css changes.xsl index.html sax-2.1-adv.html sax-2.1-idx.html sax-2.1-ref.html sax-2.1.html Log Message: Index: changes-2.1 =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/changes-2.1,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- changes-2.1 27 Sep 2004 09:03:18 -0000 1.3 +++ changes-2.1 11 Jan 2005 14:34:29 -0000 1.4 @@ -1,4 +1,4 @@ -This document is deprecated. -It has been replaced with changes-2.1.html -as of September 27, 2004. - +This document is deprecated. +It has been replaced with changes-2.1.html +as of September 27, 2004. + Index: changes-2.1.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/changes-2.1.html,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- changes-2.1.html 10 Nov 2004 08:26:59 -0000 1.3 +++ changes-2.1.html 11 Jan 2005 14:34:29 -0000 1.4 @@ -38,6 +38,47 @@ Changes in attribute_decl(): ValueDefault renamed to Mode. The new name is less confusing and corresponds to SAX Java API. </p> + <p class="change"> + <b>Change <a name="C4">C4</a> + </b> + <i> [resolves issue <a href="#I12">I12</a>]</i> + <br /> + The following text has been added to define what the document locator is + supposed to return: "If possible, a Perl SAX driver should provide the line + and column position of the last character of the text associated with the + current document event. The first line is line 1; the first column in each + line is column 1." + </p> + <p class="change"> + <b>Change <a name="C5">C5</a> + </b> + <i> [resolves issue <a href="#I11">I11</a>]</i> + <br />Hash values are Unicode strings (scalars with + UTF-8 flag on) The spec defines that a stream argument that can be provided + to parse_file() method can be either a file handle, a glob reference, + or a IO::Handle sub-class. + </p> + <p class="change"> + <b>Change <a name="C6">C6</a> + </b> + <i> [resolves issue <a href="#I7">I7</a>]</i> + <br /> + New section "Namespace Processing" has been added. It describes + the behavior of a parser for NS processing turned off: + Element/attribute hash keys are always present, + NamespaceURI, Prefix and LocalName are undef. Attributes keys + are prefixed with {}. NS declarations are treated as common + attributes. start_prefix_mapping and end_prefix_mapping are + never called. + </p> + <p class="change"> + <b>Change <a name="C7">C7</a> + </b> + <i> [resolves issue <a href="#I8">I8</a>]</i> + <br /> + The spec defines explicitly that values of callback argument hashrefs are + Unicode strings (scalars with UTF-8 flag on). + </p> <h2>Summary of Issues</h2> <p class="open"> <b>Issue <a name="I1">I1</a> @@ -50,6 +91,8 @@ also to Perl SAX 2.0 retrospectively to distinguish between 1.0, 2.0 and 2.1 drivers. <br /> + Suggestion: the read-only feature. + <br /> </p> <p class="open"> <b>Issue <a name="I2">I2</a> @@ -73,6 +116,11 @@ features to let apps to know whether extension handlers are supported o not (http://xmlns.perl.org/sax/LexicalHandler, DeclHandler). <br /> + Suggestion: LexicalHandler and DeclHandler are set using the + parser properties with the same name. The two read-only features, + (http://xmlns.perl.org/sax/LexicalHandler, DeclHandler) return + 0 or 1 to indicate whether the parser support these two interfaces. + <br /> </p> <p class="open"> <b>Issue <a name="I3">I3</a> @@ -85,6 +133,8 @@ DTD. This could be introduced into Perl SAX 2.1 as an optional extension (advertised by a feature). <br /> + Suggestion: not to apply. + <br /> </p> <p class="decided"> <b>Issue <a name="I4">I4</a> @@ -106,6 +156,8 @@ All hash references could be replaced with blessed classes. Need to clarify what would be benefits of such change. <br /> + Suggestion: not to apply. + <br /> </p> <p class="decided"> <b>Issue <a name="I6">I6</a> @@ -116,10 +168,10 @@ eName, aName, Type, Mode (was ValueDefault), Value <br /> </p> - <p class="open"> + <p class="decided"> <b>Issue <a name="I7">I7</a> </b> - <i> status: open, resolution: none</i> + <i> status: decided, resolution: applied [resolved as change <a href="#C6">C6</a>]</i> <br /> The effect of turning off namespace processing is unclear in Perl SAX. The spec should state that all namespace-related processing is skipped, @@ -130,10 +182,10 @@ {}pfx:lname). NS declarations are treated as common attributes. <br /> </p> - <p class="open"> + <p class="decided"> <b>Issue <a name="I8">I8</a> </b> - <i> status: open, resolution: none</i> + <i> status: decided, resolution: applied [resolved as change <a href="#C7">C7</a>]</i> <br /> Perl SAX should require explicitly all event data to be Unicode strings (to have the UTF-8 flag on). @@ -171,16 +223,14 @@ this method. <br /> Suggested solution: - To change parse_file() so that it accepts a string in addition to the - currently supported types. Alternatively, parse_file() can be considered - deprecated (though supported for compatibility) and another method - (? parse_stream) used to accept streams. + To change parse_file() so that it accepts a system path in addition to the + currently supported types. <br /> </p> - <p class="open"> + <p class="decided"> <b>Issue <a name="I11">I11</a> </b> - <i> status: open, resolution: none</i> + <i> status: decided, resolution: applied [resolved as change <a href="#C5">C5</a>]</i> <br /> The specification should state explicitly what is meant be "streams", what are supported types for parse_file(): file handles, @@ -190,10 +240,10 @@ To support all of the above mentioned types. <br /> </p> - <p class="open"> + <p class="decided"> <b>Issue <a name="I12">I12</a> </b> - <i> status: open, resolution: none</i> + <i> status: decided, resolution: applied [resolved as change <a href="#C4">C4</a>]</i> <br /> The spec should be more explicit about what a document locator is supposed to return. It could for example read: @@ -203,5 +253,20 @@ The first line is line 1; the first column in each line is column 1. <br /> </p> + <p class="open"> + <b>Issue <a name="I13">I13</a> + </b> + <i> status: open, resolution: none</i> + <br /> + The value of the Encoding property of Input Sources should be able to override + the encoding value specified in the xml declaration. The spec should state this + explicitly, if so. + <br /> + Suggestion: to add the following text: If available, the value + of Encoding property has a higher priority than encoding + specified in an XML declaration. + + <br /> + </p> </body> </html> Index: changes-2.1.xml =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/changes-2.1.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- changes-2.1.xml 10 Nov 2004 08:26:59 -0000 1.3 +++ changes-2.1.xml 11 Jan 2005 14:34:29 -0000 1.4 @@ -1,182 +1,238 @@ -<?xml version="1.0"?> -<change-log xmlns="http://sax.perl.org/changeLog"> - - <title>Perl SAX 2.1 Changes and Issues</title> - - <description> - The purpose of this file is to record changes done from Perl SAX - 2.0 and to track related issues.</description> - - <change-list> - - <change id="C1" issue-ref=""> - XMLVersion and Encoding fields added to document locator - (as in Locator2 interface of SAX 2.0 Ext. 1.1) - </change> - - <change id="C2" issue-ref="I4"> - The definition of parse() unified in the Basic and - Advanced documents. parse_uri() added. The new definition fits to - the current XML::SAX::Base implementation (as of XML::SAX v0.12). - </change> - - <change id="C3" issue-ref="I6"> - Changes in attribute_decl(): ValueDefault renamed to Mode. - The new name is less confusing and corresponds to SAX Java API. - </change> - - </change-list> - - <issue-list> - - <issue id="I1" status="open" resolution="none" change-ref=""> - <para> - A parser should advertise SAX version it supports. There can be - a new method ($parser->get_sax_version()) or a read-only feature - (http://xmlns.perl.org/sax/version). This feature should be introduced - also to Perl SAX 2.0 retrospectively to distinguish between 1.0, 2.0 - and 2.1 drivers. - </para> - </issue> - - <issue id="I2" status="open" resolution="none" change-ref=""> - <para> - "http://xml.org/sax/handlers/LexicalHandler" feature on the parser - needs to be set to the object to receive lexical events currently. If - the reader does not support lexical events, it will throw - a XML::SAX::Exception::NotRecognized or a - XML::SAX::Exception::NotSupported when you attempt to register the - handler. DeclHandler works in the same way. Actually, this is a theory - - XML::SAX::Base doesn't implement this currently. - </para> - <para> - This approach is very different from the common PerlSAX mechanism: - look for a specific handler, then look for a handler method on the - default handler, ignore the callback when not found. It would be more - 'perlish' to apply this simple mechanism to LexicalHandler and - DeclHandler too. If we want these two be extension handlers (compliant - 2.1 parsers are not required to support them) there could be read-only - features to let apps to know whether extension handlers are supported - o not (http://xmlns.perl.org/sax/LexicalHandler, DeclHandler). - </para> - </issue> - - <issue id="I3" status="open" resolution="none" change-ref=""> - <para> - SAX 2.0 Ext. 1.1 has a new Attributes2 interface which extends - attributes with new properties (Declared, Specified) to distinguish - between attributed specified in an XML doc and those declared in - DTD. This could be introduced into Perl SAX 2.1 as an optional - extension (advertised by a feature). - </para> - </issue> - - <issue id="I4" status="decided" resolution="applied" change-ref="C2"> - <para> - The parse() method is defined in different ways in the Basic and - Advanced documents. - Proposed solution: to add an explicit parse_uri() method, parse() - would call either parse_uri(), parse_string(), or parse_stream() - based on InputSource. - </para> - </issue> - - <issue id="I5" status="open" resolution="none" change-ref=""> - <para> - All hash references could be replaced with blessed classes. Need to - clarify what would be benefits of such change. - </para> - </issue> - - <issue id="I6" status="decided" resolution="applied" change-ref="C3"> - <para> - Changes in attribute_decl - eName, aName, Type, Mode (was ValueDefault), Value - </para> - </issue> - - <issue id="I7" status="open" resolution="none" change-ref=""> - <para> - The effect of turning off namespace processing is unclear in Perl SAX. - The spec should state that all namespace-related processing is skipped, - and no namespace-related information is made available. - </para> - <para> - Suggestion: All node keys are always present, NamespaceURI, Prefix and - LocalName are undef. Attributes keys are prefixed with {} (for example - {}pfx:lname). NS declarations are treated as common attributes. - </para> - </issue> - - <issue id="I8" status="open" resolution="none" change-ref=""> - <para> - Perl SAX should require explicitly all event data to be Unicode strings - (to have the UTF-8 flag on). - </para> - </issue> - - <issue id="I9" status="open" resolution="none" change-ref=""> - <para> - Input sources don't have a String property defined though the - parse_string() method exists and use it. Current XML::SAX::Base version - (0.12) already implements String property. The properties are checked in - this order: CharacterStream, ByteStream, String, SystemId. - </para> - <para> - Suggested solution: To add the following paragraph: - </para> - <para> - String - The character or byte string for this input source. - If there is a string specified, the SAX parser will ignore any byte - or character stream and will not attempt to open a URI connection to - the system identifier. - If the UTF-8 flag of the string is turned on, the effect is as if - the Encoding property is set to UTF-8. - </para> - <para> - The order of properties to be checked has to be determined. - </para> - </issue> - - <issue id="I10" status="open" resolution="none" change-ref=""> - <para> - parse_file() is meant to accept streams in Perl SAX, while other - modules (such as XML::LibXML and XML::Parser) accept system paths for - this method. - </para> - <para> - Suggested solution: - To change parse_file() so that it accepts a string in addition to the - currently supported types. Alternatively, parse_file() can be considered - deprecated (though supported for compatibility) and another method - (? parse_stream) used to accept streams. - </para> - </issue> - - <issue id="I11" status="open" resolution="none" change-ref=""> - <para> - The specification should state explicitly what is meant be "streams", - what are supported types for parse_file(): file handles, - glob references, IO::Handle sub-classes, ... - </para> - <para> - Suggested solution: - To support all of the above mentioned types. - </para> - </issue> - - <issue id="I12" status="open" resolution="none" change-ref=""> - <para> - The spec should be more explicit about what a document locator is - supposed to return. It could for example read: - </para> - <para> - If possible, a Perl SAX driver should provide the line and column position - of the first character after the text associated with the document event. - The first line is line 1; the first column in each line is column 1. - </para> - </issue> - - </issue-list> - -</change-log> +<?xml version="1.0"?> +<change-log xmlns="http://sax.perl.org/changeLog"> + + <title>Perl SAX 2.1 Changes and Issues</title> + + <description> + The purpose of this file is to record changes done from Perl SAX + 2.0 and to track related issues.</description> + + <change-list> + + <change id="C1" issue-ref=""> + XMLVersion and Encoding fields added to document locator + (as in Locator2 interface of SAX 2.0 Ext. 1.1) + </change> + + <change id="C2" issue-ref="I4"> + The definition of parse() unified in the Basic and + Advanced documents. parse_uri() added. The new definition fits to + the current XML::SAX::Base implementation (as of XML::SAX v0.12). + </change> + + <change id="C3" issue-ref="I6"> + Changes in attribute_decl(): ValueDefault renamed to Mode. + The new name is less confusing and corresponds to SAX Java API. + </change> + + <change id="C4" issue-ref="I12"> + The following text has been added to define what the document locator is + supposed to return: "If possible, a Perl SAX driver should provide the line + and column position of the last character of the text associated with the + current document event. The first line is line 1; the first column in each + line is column 1." + </change> + + <change id="C5" issue-ref="I11">Hash values are Unicode strings (scalars with + UTF-8 flag on) The spec defines that a stream argument that can be provided + to parse_file() method can be either a file handle, a glob reference, + or a IO::Handle sub-class. + </change> + + <change id="C6" issue-ref="I7"> + New section "Namespace Processing" has been added. It describes + the behavior of a parser for NS processing turned off: + Element/attribute hash keys are always present, + NamespaceURI, Prefix and LocalName are undef. Attributes keys + are prefixed with {}. NS declarations are treated as common + attributes. start_prefix_mapping and end_prefix_mapping are + never called. + </change> + + <change id="C7" issue-ref="I8"> + The spec defines explicitly that values of callback argument hashrefs are + Unicode strings (scalars with UTF-8 flag on). + </change> + + </change-list> + + <issue-list> + + <issue id="I1" status="open" resolution="none" change-ref=""> + <para> + A parser should advertise SAX version it supports. There can be + a new method ($parser->get_sax_version()) or a read-only feature + (http://xmlns.perl.org/sax/version). This feature should be introduced + also to Perl SAX 2.0 retrospectively to distinguish between 1.0, 2.0 + and 2.1 drivers. + </para> + <para> + Suggestion: the read-only feature. + </para> + </issue> + + <issue id="I2" status="open" resolution="none" change-ref=""> + <para> + "http://xml.org/sax/handlers/LexicalHandler" feature on the parser + needs to be set to the object to receive lexical events currently. If + the reader does not support lexical events, it will throw + a XML::SAX::Exception::NotRecognized or a + XML::SAX::Exception::NotSupported when you attempt to register the + handler. DeclHandler works in the same way. Actually, this is a theory + - XML::SAX::Base doesn't implement this currently. + </para> + <para> + This approach is very different from the common PerlSAX mechanism: + look for a specific handler, then look for a handler method on the + default handler, ignore the callback when not found. It would be more + 'perlish' to apply this simple mechanism to LexicalHandler and + DeclHandler too. If we want these two be extension handlers (compliant + 2.1 parsers are not required to support them) there could be read-only + features to let apps to know whether extension handlers are supported + o not (http://xmlns.perl.org/sax/LexicalHandler, DeclHandler). + </para> + <para> + Suggestion: LexicalHandler and DeclHandler are set using the + parser properties with the same name. The two read-only features, + (http://xmlns.perl.org/sax/LexicalHandler, DeclHandler) return + 0 or 1 to indicate whether the parser support these two interfaces. + </para> + </issue> + + <issue id="I3" status="open" resolution="none" change-ref=""> + <para> + SAX 2.0 Ext. 1.1 has a new Attributes2 interface which extends + attributes with new properties (Declared, Specified) to distinguish + between attributed specified in an XML doc and those declared in + DTD. This could be introduced into Perl SAX 2.1 as an optional + extension (advertised by a feature). + </para> + <para> + Suggestion: not to apply. + </para> + </issue> + + <issue id="I4" status="decided" resolution="applied" change-ref="C2"> + <para> + The parse() method is defined in different ways in the Basic and + Advanced documents. + Proposed solution: to add an explicit parse_uri() method, parse() + would call either parse_uri(), parse_string(), or parse_stream() + based on InputSource. + </para> + </issue> + + <issue id="I5" status="open" resolution="none" change-ref=""> + <para> + All hash references could be replaced with blessed classes. Need to + clarify what would be benefits of such change. + </para> + <para> + Suggestion: not to apply. + </para> + </issue> + + <issue id="I6" status="decided" resolution="applied" change-ref="C3"> + <para> + Changes in attribute_decl + eName, aName, Type, Mode (was ValueDefault), Value + </para> + </issue> + + <issue id="I7" status="decided" resolution="applied" change-ref="C6"> + <para> + The effect of turning off namespace processing is unclear in Perl SAX. + The spec should state that all namespace-related processing is skipped, + and no namespace-related information is made available. + </para> + <para> + Suggestion: All node keys are always present, NamespaceURI, Prefix and + LocalName are undef. Attributes keys are prefixed with {} (for example + {}pfx:lname). NS declarations are treated as common attributes. + </para> + </issue> + + <issue id="I8" status="decided" resolution="applied" change-ref="C7"> + <para> + Perl SAX should require explicitly all event data to be Unicode strings + (to have the UTF-8 flag on). + </para> + </issue> + + <issue id="I9" status="open" resolution="none" change-ref=""> + <para> + Input sources don't have a String property defined though the + parse_string() method exists and use it. Current XML::SAX::Base version + (0.12) already implements String property. The properties are checked in + this order: CharacterStream, ByteStream, String, SystemId. + </para> + <para> + Suggested solution: To add the following paragraph: + </para> + <para> + String - The character or byte string for this input source. + If there is a string specified, the SAX parser will ignore any byte + or character stream and will not attempt to open a URI connection to + the system identifier. + If the UTF-8 flag of the string is turned on, the effect is as if + the Encoding property is set to UTF-8. + </para> + <para> + The order of properties to be checked has to be determined. + </para> + </issue> + + <issue id="I10" status="open" resolution="none" change-ref=""> + <para> + parse_file() is meant to accept streams in Perl SAX, while other + modules (such as XML::LibXML and XML::Parser) accept system paths for + this method. + </para> + <para> + Suggested solution: + To change parse_file() so that it accepts a system path in addition to the + currently supported types. + </para> + </issue> + + <issue id="I11" status="decided" resolution="applied" change-ref="C5"> + <para> + The specification should state explicitly what is meant be "streams", + what are supported types for parse_file(): file handles, + glob references, IO::Handle sub-classes, ... + </para> + <para> + Suggested solution: + To support all of the above mentioned types. + </para> + </issue> + + <issue id="I12" status="decided" resolution="applied" change-ref="C4"> + <para> + The spec should be more explicit about what a document locator is + supposed to return. It could for example read: + </para> + <para> + If possible, a Perl SAX driver should provide the line and column position + of the first character after the text associated with the document event. + The first line is line 1; the first column in each line is column 1. + </para> + </issue> + + <issue id="I13" status="open" resolution="none" change-ref=""> + <para> + The value of the Encoding property of Input Sources should be able to override + the encoding value specified in the xml declaration. The spec should state this + explicitly, if so. + </para> + <para> + Suggestion: to add the following text: If available, the value + of Encoding property has a higher priority than encoding + specified in an XML declaration. + + </para> + </issue> + + </issue-list> + +</change-log> Index: changes.css =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/changes.css,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- changes.css 25 Oct 2004 09:22:38 -0000 1.2 +++ changes.css 11 Jan 2005 14:34:29 -0000 1.3 @@ -1,23 +1,23 @@ -p { - padding: 2px 5px 2px 5px; -} - -.change { - border: solid 1px #999999; - background-color: #bbeeff; -} - -.open { - border: solid 1px #999999; - background-color: #ffbbbb; -} - -.decided { - border: solid 1px #999999; - background-color: #bbffbb; -} - -.closed { - border: solid 1px #999999; - background-color: #bbbbff; -} +p { + padding: 2px 5px 2px 5px; +} + +.change { + border: solid 1px #999999; + background-color: #bbeeff; +} + +.open { + border: solid 1px #999999; + background-color: #ffbbbb; +} + +.decided { + border: solid 1px #999999; + background-color: #bbffbb; +} + +.closed { + border: solid 1px #999999; + background-color: #bbbbff; +} Index: changes.xsl =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/changes.xsl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- changes.xsl 27 Sep 2004 09:03:18 -0000 1.1 +++ changes.xsl 11 Jan 2005 14:34:29 -0000 1.2 @@ -1,85 +1,85 @@ -<?xml version="1.0" encoding="UTF-8"?> -<xsl:stylesheet version="1.0" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:chg="http://sax.perl.org/changeLog" - xmlns="http://www.w3.org/1999/xhtml" - exclude-result-prefixes="chg"> - - <xsl:output method="xhtml" - doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" - doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/> - - <xsl:template match="/chg:change-log"> - <html> - <head> - <title>Perl SAX 2.1 Changes and Issues</title> - <link href="changes.css" rel="STYLESHEET" type="text/css"/> - </head> - <body> - <h1>Perl SAX 2.1 Changes and Issues</h1> - <p> - The development of - <a href="http://perl-xml.sourceforge.net/perl-sax/">Perl SAX 2.1</a> - API is in progress. Comments should be sent to Perl-XML mailing list - (per...@li...). - </p> - <h2>Changes from Perl SAX 2.0</h2> - <xsl:apply-templates select="chg:change-list/chg:change"/> - <h2>Summary of Issues</h2> - <xsl:apply-templates select="chg:issue-list/chg:issue"/> - </body> - </html> - </xsl:template> - - <xsl:template match="chg:change"> - <p class="change"> - <b> - <xsl:text>Change </xsl:text> - <a name="{@id}"> - <xsl:value-of select="@id"/> - </a> - </b> - <i> - <xsl:if test="@issue-ref != ''"> - <xsl:text> [resolves issue </xsl:text> - <a href="#{@issue-ref}"> - <xsl:value-of select="@issue-ref"/> - </a> - <xsl:text>]</xsl:text> - </xsl:if> - </i> - <br /> - <xsl:value-of select="text()"/> - </p> - </xsl:template> - - <xsl:template match="chg:issue"> - <p class="{@status}"> - <b> - <xsl:text>Issue </xsl:text> - <a name="{@id}"> - <xsl:value-of select="@id"/> - </a> - </b> - <i> - <xsl:text> status: </xsl:text> - <xsl:value-of select="@status"/> - <xsl:text>, resolution: </xsl:text> - <xsl:value-of select="@resolution"/> - <xsl:if test="@change-ref != ''"> - <xsl:text> [resolved as change </xsl:text> - <a href="#{@change-ref}"> - <xsl:value-of select="@change-ref"/> - </a> - <xsl:text>]</xsl:text> - </xsl:if> - </i> - <br /> - <xsl:for-each select="chg:para"> - <xsl:value-of select="text()"/> - <br /> - </xsl:for-each> - </p> - </xsl:template> - -</xsl:stylesheet> +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:chg="http://sax.perl.org/changeLog" + xmlns="http://www.w3.org/1999/xhtml" + exclude-result-prefixes="chg"> + + <xsl:output method="xhtml" + doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" + doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/> + + <xsl:template match="/chg:change-log"> + <html> + <head> + <title>Perl SAX 2.1 Changes and Issues</title> + <link href="changes.css" rel="STYLESHEET" type="text/css"/> + </head> + <body> + <h1>Perl SAX 2.1 Changes and Issues</h1> + <p> + The development of + <a href="http://perl-xml.sourceforge.net/perl-sax/">Perl SAX 2.1</a> + API is in progress. Comments should be sent to Perl-XML mailing list + (per...@li...). + </p> + <h2>Changes from Perl SAX 2.0</h2> + <xsl:apply-templates select="chg:change-list/chg:change"/> + <h2>Summary of Issues</h2> + <xsl:apply-templates select="chg:issue-list/chg:issue"/> + </body> + </html> + </xsl:template> + + <xsl:template match="chg:change"> + <p class="change"> + <b> + <xsl:text>Change </xsl:text> + <a name="{@id}"> + <xsl:value-of select="@id"/> + </a> + </b> + <i> + <xsl:if test="@issue-ref != ''"> + <xsl:text> [resolves issue </xsl:text> + <a href="#{@issue-ref}"> + <xsl:value-of select="@issue-ref"/> + </a> + <xsl:text>]</xsl:text> + </xsl:if> + </i> + <br /> + <xsl:value-of select="text()"/> + </p> + </xsl:template> + + <xsl:template match="chg:issue"> + <p class="{@status}"> + <b> + <xsl:text>Issue </xsl:text> + <a name="{@id}"> + <xsl:value-of select="@id"/> + </a> + </b> + <i> + <xsl:text> status: </xsl:text> + <xsl:value-of select="@status"/> + <xsl:text>, resolution: </xsl:text> + <xsl:value-of select="@resolution"/> + <xsl:if test="@change-ref != ''"> + <xsl:text> [resolved as change </xsl:text> + <a href="#{@change-ref}"> + <xsl:value-of select="@change-ref"/> + </a> + <xsl:text>]</xsl:text> + </xsl:if> + </i> + <br /> + <xsl:for-each select="chg:para"> + <xsl:value-of select="text()"/> + <br /> + </xsl:for-each> + </p> + </xsl:template> + +</xsl:stylesheet> Index: index.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/index.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- index.html 27 Sep 2004 09:03:18 -0000 1.5 +++ index.html 11 Jan 2005 14:34:29 -0000 1.6 @@ -1,47 +1,47 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <title>Perl SAX</title> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <link href="perl-sax.css" rel="STYLESHEET" type="text/css" /> - </head> - <body> - <div class="Header"> - <div class="Title">Perl SAX (Simple API for XML) Page</div> - This is the current Perl SAX page. The former official - <a href="http://sax.perl.org">Perl SAX page</a> is no more - maintained for various reasons. - Perl SAX is a part of - the <a href="http://perl-xml.sourceforge.net/">Perl XML Project</a> - hosted by <a href="http://www.sourceforge.net/">Sourceforge</a>. - </div> - <div> - <div class="SubTitle">Perl SAX 2.0</div> - Current stable version of Perl SAX is 2.0. The API is defined - by the following documents: - <ul> - <li><a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/perl-xml/libxml-perl/doc/sax-2.0.html?rev=HEAD&content-type=text/html">Perl - SAX 2.0 Binding</a></li> - <li><a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/perl-xml/libxml-perl/doc/sax-2.0-adv.html?rev=HEAD&content-type=text/html">Perl - SAX 2.0 Advanced</a></li> - </ul> - </div> - <div> - <div class="SubTitle">Perl SAX 2.1</div> - The version 2.1 is under development: - <ul> - <li><a href="sax-2.1.html">Perl SAX 2.1 Binding</a></li> - <li><a href="sax-2.1-adv.html">Perl SAX 2.1 Advanced</a></li> - <li><a href="sax-2.1-ref.html">Perl SAX 2.1 Reference</a> (an indexed view of the two above docs)</li> - <li><a href="changes-2.1.html">Changes and Issues</a></li> - </ul> - </div> - <div> - <div class="SubTitle">Related Pages</div> - <ul> - <li><a href="http://www.saxproject.org/">Official SAX Page</a></li> - </ul> - </div> - - </body> -</html> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>Perl SAX</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <link href="perl-sax.css" rel="STYLESHEET" type="text/css" /> + </head> + <body> + <div class="Header"> + <div class="Title">Perl SAX (Simple API for XML) Page</div> + This is the current Perl SAX page. The former official + <a href="http://sax.perl.org">Perl SAX page</a> is no more + maintained for various reasons. + Perl SAX is a part of + the <a href="http://perl-xml.sourceforge.net/">Perl XML Project</a> + hosted by <a href="http://www.sourceforge.net/">Sourceforge</a>. + </div> + <div> + <div class="SubTitle">Perl SAX 2.0</div> + Current stable version of Perl SAX is 2.0. The API is defined + by the following documents: + <ul> + <li><a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/perl-xml/libxml-perl/doc/sax-2.0.html?rev=HEAD&content-type=text/html">Perl + SAX 2.0 Binding</a></li> + <li><a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/perl-xml/libxml-perl/doc/sax-2.0-adv.html?rev=HEAD&content-type=text/html">Perl + SAX 2.0 Advanced</a></li> + </ul> + </div> + <div> + <div class="SubTitle">Perl SAX 2.1</div> + The version 2.1 is under development: + <ul> + <li><a href="sax-2.1-ref.html"><b>Perl SAX 2.1 Reference</b></a> (an indexed view of the two following docs)</li> + <li><a href="sax-2.1.html">Perl SAX 2.1 Binding</a></li> + <li><a href="sax-2.1-adv.html">Perl SAX 2.1 Advanced</a></li> + <li><a href="changes-2.1.html">Changes and Issues</a></li> + </ul> + </div> + <div> + <div class="SubTitle">Related Pages</div> + <ul> + <li><a href="http://www.saxproject.org/">Official SAX Page</a></li> + </ul> + </div> + + </body> +</html> Index: sax-2.1-adv.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/sax-2.1-adv.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- sax-2.1-adv.html 25 Oct 2004 09:27:14 -0000 1.4 +++ sax-2.1-adv.html 11 Jan 2005 14:34:29 -0000 1.5 @@ -1,1024 +1,1028 @@ -<!-- $Id$ --> -<html> -<head> -<title>Advanced Features of the Perl SAX 2.1 Binding</title> -<meta name="keywords" content="XML SGML SAX Perl libxml libxml-perl" /> -<style type="text/css"> -.prop { - font-family: monospace; - font-weight: bold; - vertical-align: top; - padding-right: 1em; [...2021 lines suppressed...] +<li><tt>parse()</tt> methods return the value returned by calling the +<tt>end_document()</tt> handler.</li> + +<li> + Method names have been converted to lower-case with underscores. + Parameters are all mixed case with initial upper-case. +</li> +</ul> + +<p> + If compatibility is a problem for you consider writing a Filter that + converts from this style to the one you want. It is likely that such + a Filter will be available from CPAN in the not distant future. +</p> + + +<div>$Revision$</div> +<div>$Date$</div> +</body> +</html> Index: sax-2.1-idx.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/sax-2.1-idx.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- sax-2.1-idx.html 25 Oct 2004 09:27:14 -0000 1.5 +++ sax-2.1-idx.html 11 Jan 2005 14:34:29 -0000 1.6 @@ -1,206 +1,226 @@ -<!-- $Id$ --> -<html> - <head> - <title>Perl SAX 2.1</title> - <style type="text/css"> - a {text-decoration:none} - div {font-size: 14px; color: #777777;} - div.box {padding:4px 2px 4px 2px; - margin:0px 0px 10px 0px; - border:1px solid #777777;} - div.title {font-size:16px; font-weight:bold; float:left; - padding:0px 0px 0px 2px;} - div.item {padding: 1px 0px 0px 10px; clear:left;} - div.right {float:right; padding:0px 5px 0px 0px;} - </style> - </head> - <body> - -<div class="box" style="background-color:#eeeeee"> - <div class="title">Perl SAX 2.1</div> - <div class="right">[<a target="_top" href="http://perl-xml.sourceforge.net/perl-sax/">home</a>]</div> - <div class="item"> - <a href="#parser">Parser</a> - </div> - <div class="item"> - <a href="#content">ContentHandler</a> - </div> - <div class="item"> - <a href="#dtd">DTDHandler</a> - </div> - <div class="item"> - <a href="#error">ErrorHandler</a> - </div> - <div class="item"> - <a href="#resolver">Entity Resolver</a> - </div> - <div class="item"> - <a href="#lexical">LexicalHandler</a> - </div> - <div class="item"> - <a href="#decl">DeclHandler</a> - </div> - <div class="item"> - <a href="#other">other objects</a> - </div> -</div> - -<div class="box"> - <div class="title"><a name="parser"/>Parser</div> - <div class="right">[<a href="#top">top</a>]</div> - <div class="item"> - <a href="sax-2.1.html?#parse" target="cnt">parse()</a> - </div> - <div class="item"> - <a href="sax-2.1.html?#parseURI" target="cnt">parse_uri()</a> - </div> - <div class="item"> - <a href="sax-2.1.html?#parseFile" target="cnt">parse_file()</a> - </div> - <div class="item"> - <a href="sax-2.1.html?#parseString" target="cnt">parse_string()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#getFeature" target="cnt">get_feature()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#setFeature" target="cnt">set_feature()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#getFeatures" target="cnt">get_features()</a> - </div> -</div> - -<div class="box"> - <div class="title"><a name="content"/>ContentHandler</div> - <div class="right">[<a href="#top">top</a>]</div> - <div class="item"> - <a href="sax-2.1-adv.html?#setDocumentLocator" target="cnt">set_document_locator()</a> - </div> - <div class="item"> - <a href="sax-2.1.html?#startDocument" target="cnt">start_document()</a> - </div> - <div class="item"> - <a href="sax-2.1.html?#endDocument" target="cnt">end_document()</a> - </div> - <div class="item"> - <a href="sax-2.1.html?#startElement" target="cnt">start_element()</a> - </div> - <div class="item"> - <a href="sax-2.1.html?#endElement" target="cnt">end_element()</a> - </div> - <div class="item"> - <a href="sax-2.1.html?#characters" target="cnt">characters()</a> - </div> - <div class="item"> - <a href="sax-2.1.html?#ignorableWhitespace" target="cnt">ignorable_whitespace()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#startPrefixMapping" target="cnt">start_prefix_mapping()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#endPrefixMapping" target="cnt">end_prefix_mapping()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#processingInstruction" target="cnt">processing_instruction()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#skippedEntity" target="cnt">skipped_entity()</a> - </div> -</div> - -<div class="box"> - <div class="title"><a name="dtd"/>DTDHandler</div> - <div class="right">[<a href="#top">top</a>]</div> - <div class="item"> - <a href="sax-2.1-adv.html?#notationDecl" target="cnt">notation_decl()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#unparsedEntity" target="cnt">unparsed_entity_decl()</a> - </div> -</div> - -<div class="box"> - <div class="title"><a name="error"/>ErrorHandler</div> - <div class="right">[<a href="#top">top</a>]</div> - <div class="item"> - <a href="sax-2.1-adv.html?#warning" target="cnt">warning()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#error" target="cnt">error()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#fatalError" target="cnt">fatal_error()</a> - </div> -</div> - -<div class="box"> - <div class="title"><a name="resolver"/>EntityResolver</div> - <div class="right">[<a href="#top">top</a>]</div> - <div class="item"> - <a href="sax-2.1-adv.html?#resolveEntity" target="cnt">resolve_entity()</a> - </div> -</div> - -<div class="box"> - <div class="title"><a name="lexical"/>LexicalHandler</div> - <div class="right">[<a href="#top">top</a>]</div> - <div class="item"> - <a href="sax-2.1-adv.html?#startDTD" target="cnt">start_dtd()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#endDTD" target="cnt">end_dtd()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#startEntity" target="cnt">start_entity()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#endEntity" target="cnt">end_entity()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#startCDATA" target="cnt">start_cdata()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#endCDATA" target="cnt">end_cdata()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#comment" target="cnt">comment()</a> - </div> -</div> - -<div class="box"> - <div class="title"><a name="decl"/>DeclHandler</div> - <div class="right">[<a href="#top">top</a>]</div> - <div class="item"> - <a href="sax-2.1-adv.html?#elementDecl" target="cnt">element_decl()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#attributeDecl" target="cnt">attribute_decl()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#internalEntityDecl" target="cnt">internal_entity_decl()</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#externalEntityDecl" target="cnt">external_entity_decl()</a> - </div> -</div> - -<div class="box"> - <div class="title"><a name="other"/>other objects</div> - <div class="right">[<a href="#top">top</a>]</div> - <div class="item"> - <a href="sax-2.1.html?#Exceptions" target="cnt">Exceptions</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#InputSources" target="cnt">Input Sources</a> - </div> - <div class="item"> - <a href="sax-2.1-adv.html?#Features" target="cnt">Features</a> - </div> -</div> - -<div>$Revision$</div> -<div>$Date$</div> - - </body> -</html> +<!-- $Id$ --> +<html> + <head> + <title>Perl SAX 2.1</title> + <style type="text/css"> + a {text-decoration:none} + div {font-size: 14px; color: #777777;} + div.box {padding:4px 2px 4px 2px; + margin:0px 0px 10px 0px; + border:1px solid #777777;} + div.title {font-size:16px; font-weight:bold; float:left; + padding:0px 0px 0px 2px;} + div.item {padding: 1px 0px 0px 10px; clear:left;} + div.right {float:right; padding:0px 5px 0px 0px;} + </style> + </head> + <body> + +<div class="box"> + <div class="title">Perl SAX 2.1</div> + <div class="right">[<a target="_top" href="http://perl-xml.sourceforge.net/perl-sax/">home</a>]</div> + <div class="item"> + <a href="sax-2.1.html" target="cnt">Introduction</a> + </div> + <div class="item"> + <a href="sax-2.1.html#nsProcessing" target="cnt">Namespace Processing</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html#Parsers" target="cnt">SAX Parsers</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html#Filters" target="cnt">SAX Filters</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html#Java" target="cnt">Java Compatibility</a> + </div> +</div> + +<div class="box" style="background-color:#eeeeee"> + <div class="title">Interfaces</div> + <div class="right">[<a href="#top">top</a>]</div> + <div class="item"> + <a href="#parser">Parser</a> + </div> + <div class="item"> + <a href="#content">ContentHandler</a> + </div> + <div class="item"> + <a href="#dtd">DTDHandler</a> + </div> + <div class="item"> + <a href="#error">ErrorHandler</a> + </div> + <div class="item"> + <a href="#resolver">Entity Resolver</a> + </div> + <div class="item"> + <a href="#lexical">LexicalHandler</a> + </div> + <div class="item"> + <a href="#decl">DeclHandler</a> + </div> + <div class="item"> + <a href="#other">other objects</a> + </div> +</div> + +<div class="box"> + <div class="title"><a name="parser"/>Parser</div> + <div class="right">[<a href="#top">top</a>]</div> + <div class="item"> + <a href="sax-2.1.html?#parse" target="cnt">parse()</a> + </div> + <div class="item"> + <a href="sax-2.1.html?#parseURI" target="cnt">parse_uri()</a> + </div> + <div class="item"> + <a href="sax-2.1.html?#parseFile" target="cnt">parse_file()</a> + </div> + <div class="item"> + <a href="sax-2.1.html?#parseString" target="cnt">parse_string()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#getFeature" target="cnt">get_feature()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#setFeature" target="cnt">set_feature()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#getFeatures" target="cnt">get_features()</a> + </div>sax-2.1.html +</div> + +<div class="box"> + <div class="title"><a name="content"/>ContentHandler</div> + <div class="right">[<a href="#top">top</a>]</div> + <div class="item"> + <a href="sax-2.1-adv.html?#setDocumentLocator" target="cnt">set_document_locator()</a> + </div> + <div class="item"> + <a href="sax-2.1.html?#startDocument" target="cnt">start_document()</a> + </div> + <div class="item"> + <a href="sax-2.1.html?#endDocument" target="cnt">end_document()</a> + </div> + <div class="item"> + <a href="sax-2.1.html?#startElement" target="cnt">start_element()</a> + </div> + <div class="item"> + <a href="sax-2.1.html?#endElement" target="cnt">end_element()</a> + </div> + <div class="item"> + <a href="sax-2.1.html?#characters" target="cnt">characters()</a> + </div> + <div class="item"> + <a href="sax-2.1.html?#ignorableWhitespace" target="cnt">ignorable_whitespace()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#startPrefixMapping" target="cnt">start_prefix_mapping()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#endPrefixMapping" target="cnt">end_prefix_mapping()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#processingInstruction" target="cnt">processing_instruction()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#skippedEntity" target="cnt">skipped_entity()</a> + </div> +</div> + +<div class="box"> + <div class="title"><a name="dtd"/>DTDHandler</div> + <div class="right">[<a href="#top">top</a>]</div> + <div class="item"> + <a href="sax-2.1-adv.html?#notationDecl" target="cnt">notation_decl()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#unparsedEntity" target="cnt">unparsed_entity_decl()</a> + </div> +</div> + +<div class="box"> + <div class="title"><a name="error"/>ErrorHandler</div> + <div class="right">[<a href="#top">top</a>]</div> + <div class="item"> + <a href="sax-2.1-adv.html?#warning" target="cnt">warning()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#error" target="cnt">error()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#fatalError" target="cnt">fatal_error()</a> + </div> +</div> + +<div class="box"> + <div class="title"><a name="resolver"/>EntityResolver</div> + <div class="right">[<a href="#top">top</a>]</div> + <div class="item"> + <a href="sax-2.1-adv.html?#resolveEntity" target="cnt">resolve_entity()</a> + </div> +</div> + +<div class="box"> + <div class="title"><a name="lexical"/>LexicalHandler</div> + <div class="right">[<a href="#top">top</a>]</div> + <div class="item"> + <a href="sax-2.1-adv.html?#startDTD" target="cnt">start_dtd()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#endDTD" target="cnt">end_dtd()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#startEntity" target="cnt">start_entity()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#endEntity" target="cnt">end_entity()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#startCDATA" target="cnt">start_cdata()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#endCDATA" target="cnt">end_cdata()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#comment" target="cnt">comment()</a> + </div> +</div> + +<div class="box"> + <div class="title"><a name="decl"/>DeclHandler</div> + <div class="right">[<a href="#top">top</a>]</div> + <div class="item"> + <a href="sax-2.1-adv.html?#elementDecl" target="cnt">element_decl()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#attributeDecl" target="cnt">attribute_decl()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#internalEntityDecl" target="cnt">internal_entity_decl()</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#externalEntityDecl" target="cnt">external_entity_decl()</a> + </div> +</div> + +<div class="box"> + <div class="title"><a name="other"/>other objects</div> + <div class="right">[<a href="#top">top</a>]</div> + <div class="item"> + <a href="sax-2.1.html?#Exceptions" target="cnt">Exceptions</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#InputSources" target="cnt">Input Sources</a> + </div> + <div class="item"> + <a href="sax-2.1-adv.html?#Features" target="cnt">Features</a> + </div> +</div> + +<div>$Revision$</div> +<div>$Date$</div> + + </body> +</html> Index: sax-2.1-ref.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/sax-2.1-ref.html,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- sax-2.1-ref.html 6 Aug 2004 10:23:38 -0000 1.3 +++ sax-2.1-ref.html 11 Jan 2005 14:34:29 -0000 1.4 @@ -1,11 +1,11 @@ -<!DOCTYPE html - PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> -<frameset cols="225, *"> - <noframes> - <a href="sax-2.1.html">Perl SAX 2.1 Binding</a> - </noframes> - <frame name="idx" id="idx" src="sax-2.1-idx.html" /> - <frame name="cnt" id="cnt"src="sax-2.1.html" /> -</frameset> - +<!DOCTYPE html + PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> +<frameset cols="225, *"> + <noframes> + <a href="sax-2.1.html">Perl SAX 2.1 Binding</a> + </noframes> + <frame name="idx" id="idx" src="sax-2.1-idx.html" /> + <frame name="cnt" id="cnt"src="sax-2.1.html" /> +</frameset> + Index: sax-2.1.html =================================================================== RCS file: /cvsroot/perl-xml/sax-perl-org/sax-2.1.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- sax-2.1.html 25 Oct 2004 09:27:14 -0000 1.4 +++ sax-2.1.html 11 Jan 2005 14:34:29 -0000 1.5 @@ -1,381 +1,405 @@ -<!-- $Id$ --> -<html> -<head> -<title>Perl SAX 2.1 Binding</title> -</head> -<body> - -<h1>Perl SAX 2.1 Binding</h1> - -<p>SAX (Simple API for XML) is a common parser interface for XML -parsers. It allows application writers to write applications that use -XML parsers, but are independent of which parser is actually used.</p> - -<p>This document describes the version of SAX used by Perl modules. -The original version of SAX 2.0, for Java, is described at <a -href="http://sax.sourceforge.net/">http://sax.sourceforge.net/</a>.</p> - -<p>There are two basic interfaces in the Perl version of SAX, the -parser interface and the handler interface. The parser interface -creates new parser instances, starts parsing, and provides additional -information to handlers on request. The handler interface is used to -receive parse events from the parser. This pattern is also commonly -called "Producer and Consumer" or "Generator and Sink". Note that the -parser doesn't have to be an XML parser, all it needs to do is provide -a stream of events to the handler as if it were parsing XML. But the -actual data from which the events are generated can be anything, a Perl -object, a CSV file, a database table... -</p> - -<p>SAX is typically used like this: - -<pre> - my $handler = MyHandler->new(); - my $parser = AnySAXParser->new( Handler => $handler ); - $parser->parse($uri); -</pre></p> - -<p>Handlers are typically written like this: - -<pre> - package MyHandler; - - sub new { - my $type = shift; - return bless {}, $type; - } - - sub start_element { - my ($self, $element) = @_; - - print "Starting element $element->{Name}\n"; - } - - sub end_element { - my ($self, $element) = @_; - - print "Ending element $element->{Name}\n"; - } - - sub characters { - my ($self, $characters) = @_; - - print "characters: $characters->{Data}\n"; - } - - 1; -</pre></p> - -<h2>Basic SAX Parser</h2> - -<p>These methods and options are the most commonly used with SAX -parsers and event generators.</p> - -<p>Applications may not invoke a <tt>parse()</tt> method again while a -parse is in progress (they should create a new SAX parser instead for -each nested XML document). Once a parse is complete, an application -may reuse the same parser object, possibly with a different input -source.</p> - -<p>During the parse, the parser will provide information about the XML -document through the registered event handlers. Note that an event that -hasn't been registered (ie that doesn't have its corresponding method in -the handler's class) will <b>not</b> be called. This allows one to only -get the events one is interested in. -</p> - -<p>If you generate SAX events, data are required to be passed to -handler methods with all properties defined in this document -unless otherwise specified. -</p> - -<p><a name="parseURI"/> -<dl><dt><b><tt class='function'>parse_uri</tt></b>(<var>uri</var> [, <var>options</var>])</dt> -<dd> -Parses the XML instance identified by <var>uri</var> (a system -identifier). <var>options</var> can be a list of options, value pairs -or a hash (reference). Options include <tt>Handler</tt>, features and properties, -and advanced SAX parser options. <tt>parse_uri()</tt> returns the result -of calling the <tt>end_document()</tt> handler. The options supported -by <tt>parse_uri()</tt> may vary slightly if what is being "parsed" isn't -XML. -</dd></dl></p> - -<p><a name="parseFile"/> -<dl><dt><b><tt class='function'>parse_file</tt></b>(<var>stream</var> [, <var>options</var>])</dt> -<dd> -Parses the XML instance in the already opened <var>stream</var>, an -IO::Handler or similar. <var>options</var> are the same as for <tt -class='function'>parse()</tt>. <tt>parse_file()</tt> returns the result -of calling the <tt>end_document()</tt> handler.</dd></dl></p> - -<p><a name="parseString"/> -<dl><dt><b><tt class='function'>parse_string</tt></b>(<var>string</var> [, <var>options</var>])</dt> -<dd> -Parses the XML instance in <var>string</var>. <var>options</var> are -the same as for <tt class='function'>parse()</tt>. -<tt>parse_string()</tt> returns the result of calling the -<tt>end_document()</tt> handler.</dd></dl></p> - -<p><a name="parse"/> -<dl><dt><b><tt class='function'>parse</tt></b>([<var>options</var>])</dt> -<dd> -This is a generic method that calls one of the above methods based on -the <tt>Source</tt> option. <var>options</var> can be a list of -options, value pairs or a hash (reference).</dd></dl> -</p> - -<p> -<dl><dt><b><tt>Handler</tt></b></dt> -<dd> -The default handler object to receive all events from the parser. -Applications may change <tt>Handler</tt> in the middle of the parse -and the SAX parser will begin using the new handler -immediately. The <a href="sax-2.1-adv.html">Advanced SAX</a> document -lists a number of more specialized handlers that can be used should you -wish to dispatch different types of events to different objects. -</dd></dl></p> - -<h2><a name="BasicHandler">Basic SAX Handler</a></h2> - -<p>These methods are the most commonly used by SAX handlers.</p> - -<p><a name="startDocument"/> -<dl><dt><b><tt class='function'>start_document</tt></b>(<var>document</var>)</dt> -<dd> -Receive notification of the beginning of a document.</p> - -<p>The SAX parser will invoke this method only once, before any other -methods (except for <tt>set_document_locator()</tt> in advanced SAX -handlers). - -No properties are defined for this event (<var>document</var> is -empty).</dd></dl></p> - -<p><a name="endDocument"/> -<dl><dt><b><tt class='function'>end_document</tt></b>(<var>document</var>)</dt> -<dd> -Receive notification of the end of a document. - -<p>The SAX parser will invoke this method only once, and it will be -the last method invoked during the parse. The parser shall not invoke -this method until it has either abandoned parsing (because of an -unrecoverable error) or reached the end of input.</p> - -<p>No properties are defined for this event (<var>document</var> is -empty).</p> - -The return value of <tt>end_document()</tt> is returned by the -parser's <tt>parse()</tt> methods.</dd></dl></p> - -<p><a name="startElement"/> -<dl><dt><b><tt class='function'>start_element</tt></b>(<var>element</var>)</dt> -<dd> -Receive notification of the start of an element. - -<p>The Parser will invoke this method at the beginning of every -element in the XML document; there will be a corresponding -<tt>end_element()</tt> event for every <tt>start_element()</tt> event (even when the -element is empty). All of the element's content will be reported, in -order, before the corresponding <tt>end_element()</tt> event.</p> - -<var>element</var> is a hash reference with these properties: - -<blockquote> -<table> -<tr><td><b><tt>Name</tt></b></td> -<td>The element type name (including prefix).</td></tr> -<tr><td><b><tt>Attributes</tt></b></td> -<td>The attributes attached to the element, if any.</td></tr> -</table> -</blockquote> - -If namespace processing is turned on (which is the default), these -properties are also available: - -<blockquote> -<table> -<tr><td><b><tt>NamespaceURI</tt></b></td> -<td>The namespace of this element.</td></tr> -<tr><td><b><tt>Prefix</tt></b></td> -<td>The namespace prefix used on this element.</td></tr> -<tr><td><b><tt>LocalName</tt></b></td> -<td>The local name of this element.</td></tr> -</table> -</blockquote> - -<tt>Attributes</tt> is a reference to hash keyed by JClark namespace -notation. That is, the keys are of the form "{NamespaceURI}LocalName". -If the attribute has no NamespaceURI, then it is simply "{}LocalName". -Each attribute is a hash reference with these properties: - -<blockquote> -<table> -<tr><td><b><tt>Name</tt></b></td> -<td>The attribute name (including prefix).</td></tr> -<tr><td><b><tt>Value</tt></b></td> -<td>The normalized value of the attribute.</td></tr> -<tr><td><b><tt>NamespaceURI</tt></b></td> -<td>The namespace of this attribute.</td></tr> -<tr><td><b><tt>Prefix</tt></b></td> -<td>The namespace prefix used on this attribute.</td></tr> -<tr><td><b><tt>LocalName</tt></b></td> -<td>The local name of this attribute.</td></tr> -</table> -</blockquote> -</dd> -</dl> -</p> - -<p><a name="endElement"/> -<dl><dt><b><tt class='function'>end_element</tt></b>(<var>element</var>)</dt> -<dd> -Receive notification of the end of an element. - -<p>The SAX parser will invoke this method at the end of every element -in the XML document; there will be a corresponding <tt -class='function'>start_element()</tt> event for every <tt -class='function'>end_element()</tt> event (even when the element is -empty).</p> - -<var>element</var> is a hash reference with these properties: - -<blockquote> -<table> -<tr><td><b><tt>Name</tt></b></td> -<td>The element type name (including prefix).</td></tr> -</table> -</blockquote> - -If namespace processing is turned on (which is the default), these -properties are also available: - -<blockquote> -<table> -<tr><td><b><tt>NamespaceURI</tt></b></td> -<td>The namespace of this element.</td></tr> -<tr><td><b><tt>Prefix</tt></b></td> -<td>The namespace prefix... [truncated message content] |