RESTRICT AUTOMERGE: Update libxml2 to 2.9.8
Merge to pi-dev, restore Android.mk and revert 440b0b3d89db029dc2b8c86130461d292a8e11dc
Bug: 79662501
Bug: 36809766
Bug: 36810305
Bug: 62151041
Test: manually verify functionality for regression
Change-Id: I2fea499ca1d60d47b1a36d7c4662e2937be74e8c
diff --git a/.gitignore b/.gitignore
index 84cf80f..680a7e1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+*.exe
*.o
*.lo
*.log
@@ -76,6 +77,7 @@
python/libxml2class.py
python/libxml2class.txt
python/libxml2mod.la
+python/setup.py
python/tests/Makefile
python/tests/Makefile.in
python/tests/tmp.xml
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..da48143
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,22 @@
+language: c
+sudo: false
+addons:
+ apt:
+ packages:
+ # Some tests require the DTDs.
+ w3c-sgml-lib
+matrix:
+ include:
+ # Try to emulate a C89 compiler on a POSIX system by disabling as many
+ # GNU extensions as possible.
+ - compiler: gcc
+ env: CFLAGS="-O2 -std=c89 -D_XOPEN_SOURCE=700 -Werror -Wno-error=unused-function"
+ # clang with AddressSanitizer and UndefinedBehaviorSanitizer.
+ - compiler: clang
+ dist: trusty
+ env: CONFIG="--without-python"
+ CFLAGS="-O2 -g -fno-omit-frame-pointer -fsanitize=address,undefined -fno-sanitize=float-divide-by-zero,pointer-overflow -fno-sanitize-recover=all -Werror -Wno-error=unused-function -Wno-error=cast-align"
+ UBSAN_OPTIONS=print_stacktrace=1
+script: sh autogen.sh $CONFIG && make -j2 V=1 && make check
+git:
+ depth: 10
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..260edf1
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,119 @@
+//
+// Copyright (C) 2014 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+//
+// To update:
+//
+
+// git merge aosp/upstream-master
+// mma -j
+// # (Make any necessary Android.bp changes and test the new libxml2.)
+// git push aosp HEAD:master # Push directly, avoiding gerrit.
+// git push aosp HEAD:refs/for/master # Push to gerrit.
+//
+// # Now commit any necessary Android.bp changes like normal:
+// repo start post-sync .
+// git commit -a
+//
+
+// This comes from the automake-generated Makefile.
+// We deliberately exclude nanoftp.c and nanohttp.c, the trio library, and zlib.
+cc_library {
+ name: "libxml2",
+ vendor_available: true,
+ vndk: {
+ enabled: true,
+ },
+ host_supported: true,
+ srcs: [
+ "SAX.c",
+ "entities.c",
+ "encoding.c",
+ "error.c",
+ "parserInternals.c",
+ "parser.c",
+ "tree.c",
+ "hash.c",
+ "list.c",
+ "xmlIO.c",
+ "xmlmemory.c",
+ "uri.c",
+ "valid.c",
+ "xlink.c",
+ "debugXML.c",
+ "xpath.c",
+ "xpointer.c",
+ "xinclude.c",
+ "DOCBparser.c",
+ "catalog.c",
+ "globals.c",
+ "threads.c",
+ "c14n.c",
+ "xmlstring.c",
+ "buf.c",
+ "xmlregexp.c",
+ "xmlschemas.c",
+ "xmlschemastypes.c",
+ "xmlunicode.c",
+ "xmlreader.c",
+ "relaxng.c",
+ "dict.c",
+ "SAX2.c",
+ "xmlwriter.c",
+ "legacy.c",
+ "chvalid.c",
+ "pattern.c",
+ "xmlsave.c",
+ "xmlmodule.c",
+ "schematron.c",
+ ],
+ export_include_dirs: ["include"],
+ cflags: [
+ "-DLIBXML_THREAD_ENABLED=1",
+
+ "-Wall",
+ "-Werror",
+ "-Wno-error=ignored-attributes",
+ "-Wno-missing-field-initializers",
+ "-Wno-self-assign",
+ "-Wno-sign-compare",
+ "-Wno-tautological-pointer-compare",
+ "-Wno-unused-function",
+ "-Wno-unused-parameter",
+ ],
+ static: {
+ cflags: ["-fvisibility=hidden"],
+ },
+ target: {
+ vendor: {
+ exclude_shared_libs: ["libicuuc"],
+ },
+ },
+ shared_libs: ["libicuuc"],
+ export_shared_lib_headers: ["libicuuc"],
+}
+
+cc_binary_host {
+ name: "xmllint",
+ srcs: ["xmllint.c"],
+ cflags: [
+ "-DLIBXML_THREAD_ENABLED=1",
+
+ "-Wall",
+ "-Werror",
+ ],
+ shared_libs: ["libxml2"],
+}
diff --git a/Android.mk b/Android.mk
index 63e87ee..f35448f 100644
--- a/Android.mk
+++ b/Android.mk
@@ -20,9 +20,7 @@
# To update:
#
-# git remote add libxml2 git://git.gnome.org/libxml2
-# git fetch libxml2
-# git merge libxml2/master
+# git merge aosp/upstream-master
# mm -j32
# # (Make any necessary Android.mk changes and test the new libxml2.)
# git push aosp HEAD:master # Push directly, avoiding gerrit.
@@ -37,7 +35,7 @@
# We deliberately exclude nanoftp.c and nanohttp.c, the trio library, and zlib.
common_SRC_FILES := SAX.c entities.c encoding.c error.c \
parserInternals.c parser.c tree.c hash.c list.c xmlIO.c \
- xmlmemory.c uri.c valid.c xlink.c HTMLparser.c HTMLtree.c \
+ xmlmemory.c uri.c valid.c xlink.c \
debugXML.c xpath.c xpointer.c xinclude.c \
DOCBparser.c catalog.c globals.c threads.c c14n.c xmlstring.c \
buf.c xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
@@ -54,6 +52,7 @@
-Wno-self-assign \
-Wno-sign-compare \
-Wno-tautological-pointer-compare \
+ -Wno-unused-parameter \
# Static library
#=======================================================
diff --git a/CONTRIBUTING b/CONTRIBUTING
new file mode 100644
index 0000000..6f7a988
--- /dev/null
+++ b/CONTRIBUTING
@@ -0,0 +1,24 @@
+The current version of the code can be found in the GNOME Git Repository:
+
+ https://git.gnome.org/browse/libxml2/
+
+There's mirror on GitHub:
+
+ https://github.com/GNOME/libxml2
+
+Start discussions and send patches to the mailing list, or file a bug and
+add a patch as attachment.
+
+ https://mail.gnome.org/mailman/listinfo/xml
+ https://bugzilla.gnome.org/enter_bug.cgi?product=libxml2
+
+Format patches with git-format-patch and use plain text attachments
+if possible.
+
+All code must conform to C89 and pass the "make check" tests. Avoid
+compiler warnings and add regression tests if possible.
+
+The .travis.yml file can be used to thoroughly check the build with strict
+compiler flags, ASan and UBSan. Fork the libxml2 mirror on GitHub and set
+up Travis to test the commits you make on your fork.
+
diff --git a/ChangeLog b/ChangeLog
index 08725dd..896fbbb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -593,7 +593,7 @@
Tue Apr 22 10:27:17 CEST 2008 Daniel Veillard <daniel@veillard.com>
- * dict.c: improvement on the hashing of the dictionnary, with visible
+ * dict.c: improvement on the hashing of the dictionary, with visible
speed up as the number of strings in the hash increases, work from
Stefan Behnel
@@ -1929,7 +1929,7 @@
* tree.c: Fixed xmlGetNodePath() to generate the node test "*"
for elements in the default namespace, rather than generating
- an unprefixed named node test and loosing the namespace
+ an unprefixed named node test and losing the namespace
information.
Fri Jun 9 21:45:02 CEST 2006 Kasimier Buchcik <libxml2-cvs@cazic.net>
@@ -2305,7 +2305,7 @@
* tree.c: Simplified usage of the internal xmlNsMap. Added a
"strict" lookup for namespaces based on a prefix. Fixed a
namespace processing issue in the clone-node function, which
- occured if a @ctxt argument was given.
+ occurred if a @ctxt argument was given.
Fri Mar 3 17:44:10 CET 2006 Rob Richards <rrichards@ctindustries.net>
@@ -3951,7 +3951,7 @@
* README: updated
* debugXML.c: fix a bug raised by bill on IRC
* relaxng.c: fix a leak in weird circumstances
- * runsuite.c Makefile.am: standalone test tool agaisnt
+ * runsuite.c Makefile.am: standalone test tool against
the regression suites, work in progress
Tue Jun 28 08:30:26 CEST 2005 Daniel Veillard <daniel@veillard.com>
@@ -4356,7 +4356,7 @@
* xmlschemas.c: Added substitution group constraints; changed
the build of the pre-computed substitution groups. Channeled
errors during xsi assembling of schemas to the validation
- context. Fixed a big memory leak, which occured when using
+ context. Fixed a big memory leak, which occurred when using
IDCs: the precomputed value of attributes was not freed if
the attribute did not resolve to an IDC field (discovered
with the help of Randy J. Ray's schema, posted to the
@@ -4551,7 +4551,7 @@
Mon Mar 21 21:09:07 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
- * xmlschemas.c: Fixed a segfault, which occured during bubbling
+ * xmlschemas.c: Fixed a segfault, which occurred during bubbling
of IDC nodes (bug #170779 and #170778, reported by GUY Fabrice):
a variable was missed to be reset in a loop. Deactivated bubbling,
if not referenced by a keyref.
@@ -5017,7 +5017,7 @@
Sun Jan 23 23:54:39 CET 2005 Daniel Veillard <daniel@veillard.com>
* hash.c include/libxml/hash.h: added xmlHashCreateDict where
- the hash reuses the dictionnary for internal strings
+ the hash reuses the dictionary for internal strings
* entities.c valid.c parser.c: reuse that new API, leads to a decent
speedup when parsing for example DocBook documents.
@@ -5371,7 +5371,7 @@
Wed Nov 24 13:41:52 CET 2004 Daniel Veillard <daniel@veillard.com>
* dict.c include/libxml/dict.h: added xmlDictExists() to the
- dictionnary interface.
+ dictionary interface.
* xmlreader.c: applying xmlTextReaderHasAttributes fix for namespaces
from Rob Richards
@@ -5697,7 +5697,7 @@
Tue Oct 26 18:09:59 CEST 2004 Daniel Veillard <daniel@veillard.com>
* debugXML.c include/libxml/xmlerror.h: added checking for names
- values and dictionnaries generates a tons of errors
+ values and dictionaries generates a tons of errors
* SAX2.ccatalog.c parser.c relaxng.c tree.c xinclude.c xmlwriter.c
include/libxml/tree.h: fixing the errors in the regression tests
@@ -7746,14 +7746,14 @@
make tests
* xpath.c include/libxml/xpath.h: added xmlXPathCtxtCompile() to
compile an XPath expression within a context, currently the goal
- is to be able to reuse the XSLT stylesheet dictionnary, but this
+ is to be able to reuse the XSLT stylesheet dictionary, but this
opens the door to others possible optimizations.
* dict.c include/libxml/dict.h: added xmlDictCreateSub() which allows
- to build a new dictionnary based on another read-only dictionnary.
- This is needed for XSLT to keep the stylesheet dictionnary read-only
+ to build a new dictionary based on another read-only dictionary.
+ This is needed for XSLT to keep the stylesheet dictionary read-only
while being able to reuse the strings for the transformation
- dictionnary.
- * xinclude.c: fixed a dictionnar reference counting problem occuring
+ dictionary.
+ * xinclude.c: fixed a dictionary reference counting problem occuring
when document parsing failed.
* testSAX.c: adding option --repeat for timing 100times the parsing
* doc/* : rebuilt all the docs
@@ -7806,7 +7806,7 @@
Thu Jan 8 17:57:50 CET 2004 Daniel Veillard <daniel@veillard.com>
* xmlschemas.c: removed a memory leak remaining from the switch
- to a dictionnary for string allocations c.f. #130891
+ to a dictionary for string allocations c.f. #130891
Thu Jan 8 17:48:46 CET 2004 Daniel Veillard <daniel@veillard.com>
@@ -7928,7 +7928,7 @@
Fri Jan 2 11:40:06 CET 2004 Daniel Veillard <daniel@veillard.com>
* SAX2.c: found and fixed a bug misallocating some non
- blank text node strings from the dictionnary.
+ blank text node strings from the dictionary.
* xmlmemory.c: fixed a problem with the memory debug mutex
release.
@@ -9386,7 +9386,7 @@
* parser.c: William's change allowed to spot a nasty bug in xmlDoRead
if the result is not well formed that ctxt->myDoc is not NULL
- and uses the context dictionnary.
+ and uses the context dictionary.
Fri Sep 26 21:09:34 CEST 2003 Daniel Veillard <daniel@veillard.com>
@@ -11220,7 +11220,7 @@
* test/xsdtest/xsdtest.xml uri.c: after and exchange with James
Clark it appeared I had bug in URI parsing code ...
* relaxng.c include/libxml/relaxng.h: completely revamped error
- reporting to not loose message from optional parts.
+ reporting to not lose message from optional parts.
* xmllint.c: added timing for RNG validation steps
* result/relaxng/*: updated the result, all error messages changed
@@ -13182,7 +13182,7 @@
xmlNewCharEncodingHandler as requested in #89415
* python/generator.py python/setup.py.in: applied cleanup
patches from Marc-Andre Lemburg
- * tree.c: fixing bug #89332 on a specific case of loosing
+ * tree.c: fixing bug #89332 on a specific case of losing
the XML-1.0 namespace on xml:xxx attributes
Wed Jul 31 23:27:42 2002 Aleksey Sanin <aleksey@aleksey.com>
@@ -15356,7 +15356,7 @@
Sat Oct 6 15:07:14 CEST 2001 Daniel Veillard <daniel@veillard.com>
- * xpath.c: fixing #61673 part I, do not loose doc information
+ * xpath.c: fixing #61673 part I, do not lose doc information
when copying result value trees.
Sat Oct 6 11:58:58 CEST 2001 Daniel Veillard <daniel@veillard.com>
@@ -15970,7 +15970,7 @@
Mon Jul 9 22:06:53 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
* valid.c: fixed "Internal: MIXED struct bad" when #CDATA elements
- validation occured on content with element child
+ validation occurred on content with element child
Mon Jul 9 17:59:08 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
diff --git a/HACKING b/HACKING
deleted file mode 100644
index 5d28294..0000000
--- a/HACKING
+++ /dev/null
@@ -1,37 +0,0 @@
-NOTE:
- - the head of this module is package libxml-2 . There is incompatibilities
- with the old libxml-1 headers. I posted on gnome-hackers a recipe to
- change your code to compile with both, check it out ! Also read
- http://xmlsoft.org/upgrade.html
- - in the meantime the old 1.x code has been tagged with LIB_XML_1_BRANCH
- extract this version and drop me a mail if you want me to take care of
- the update of your module to libxml-2 <daniel@veillard.com>
- - the 1.x branch has a separate commit policy, please check the HACKING
- file for this branch
-
- Rules for commits on the gnome-xml module
- =========================================
-
- BEFORE READING FURTHER: DO NOT COMMIT DIRECTLY !
-
- In the exceptional case where a serious breakage in this module
-prevents other core projects from making progress, then feel free
-to patch first and send mail afterward as long as the changes are limited.
-Please keep in mind that a large part of my user base is on Windows, so
-be careful with potential portability problems there.
-
-Otherwise, send me (veillard@redhat.com) a mail and if it's a bug
-issue, register it at bugzilla.gnome.org (module libxml). I check both
-my mail and the bug database on a regular basis. If you don't get an
-answer within a week (which is highly unprobable) then commit your changes.
-This simply mean that I'm on holliday or on the road.
-
- thanks in advance for following the rule,
-
-Daniel
-
-P.S.: Bjorn Reese, William Brack, Thomas Broyer, Igor Zlatkovic and
- Aleksey Sanin get an exception for the send before commit rule
- as well as John Fleck for the doc maintenance Send them mail if
- I don't answer to request in a timely fashion
-
diff --git a/HTMLparser.c b/HTMLparser.c
deleted file mode 100644
index d1395fa..0000000
--- a/HTMLparser.c
+++ /dev/null
@@ -1,7165 +0,0 @@
-/*
- * HTMLparser.c : an HTML 4.0 non-verifying parser
- *
- * See Copyright for the status of this software.
- *
- * daniel@veillard.com
- */
-
-#define IN_LIBXML
-#include "libxml.h"
-#ifdef LIBXML_HTML_ENABLED
-
-#include <string.h>
-#ifdef HAVE_CTYPE_H
-#include <ctype.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_ZLIB_H
-#include <zlib.h>
-#endif
-
-#include <libxml/xmlmemory.h>
-#include <libxml/tree.h>
-#include <libxml/parser.h>
-#include <libxml/parserInternals.h>
-#include <libxml/xmlerror.h>
-#include <libxml/HTMLparser.h>
-#include <libxml/HTMLtree.h>
-#include <libxml/entities.h>
-#include <libxml/encoding.h>
-#include <libxml/valid.h>
-#include <libxml/xmlIO.h>
-#include <libxml/globals.h>
-#include <libxml/uri.h>
-
-#include "buf.h"
-#include "enc.h"
-
-#define HTML_MAX_NAMELEN 1000
-#define HTML_PARSER_BIG_BUFFER_SIZE 1000
-#define HTML_PARSER_BUFFER_SIZE 100
-
-/* #define DEBUG */
-/* #define DEBUG_PUSH */
-
-static int htmlOmittedDefaultValue = 1;
-
-xmlChar * htmlDecodeEntities(htmlParserCtxtPtr ctxt, int len,
- xmlChar end, xmlChar end2, xmlChar end3);
-static void htmlParseComment(htmlParserCtxtPtr ctxt);
-
-/************************************************************************
- * *
- * Some factorized error routines *
- * *
- ************************************************************************/
-
-/**
- * htmlErrMemory:
- * @ctxt: an HTML parser context
- * @extra: extra informations
- *
- * Handle a redefinition of attribute error
- */
-static void
-htmlErrMemory(xmlParserCtxtPtr ctxt, const char *extra)
-{
- if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
- (ctxt->instate == XML_PARSER_EOF))
- return;
- if (ctxt != NULL) {
- ctxt->errNo = XML_ERR_NO_MEMORY;
- ctxt->instate = XML_PARSER_EOF;
- ctxt->disableSAX = 1;
- }
- if (extra)
- __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER,
- XML_ERR_NO_MEMORY, XML_ERR_FATAL, NULL, 0, extra,
- NULL, NULL, 0, 0,
- "Memory allocation failed : %s\n", extra);
- else
- __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_PARSER,
- XML_ERR_NO_MEMORY, XML_ERR_FATAL, NULL, 0, NULL,
- NULL, NULL, 0, 0, "Memory allocation failed\n");
-}
-
-/**
- * htmlParseErr:
- * @ctxt: an HTML parser context
- * @error: the error number
- * @msg: the error message
- * @str1: string infor
- * @str2: string infor
- *
- * Handle a fatal parser error, i.e. violating Well-Formedness constraints
- */
-static void LIBXML_ATTR_FORMAT(3,0)
-htmlParseErr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
- const char *msg, const xmlChar *str1, const xmlChar *str2)
-{
- if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
- (ctxt->instate == XML_PARSER_EOF))
- return;
- if (ctxt != NULL)
- ctxt->errNo = error;
- __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_HTML, error,
- XML_ERR_ERROR, NULL, 0,
- (const char *) str1, (const char *) str2,
- NULL, 0, 0,
- msg, str1, str2);
- if (ctxt != NULL)
- ctxt->wellFormed = 0;
-}
-
-/**
- * htmlParseErrInt:
- * @ctxt: an HTML parser context
- * @error: the error number
- * @msg: the error message
- * @val: integer info
- *
- * Handle a fatal parser error, i.e. violating Well-Formedness constraints
- */
-static void LIBXML_ATTR_FORMAT(3,0)
-htmlParseErrInt(xmlParserCtxtPtr ctxt, xmlParserErrors error,
- const char *msg, int val)
-{
- if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
- (ctxt->instate == XML_PARSER_EOF))
- return;
- if (ctxt != NULL)
- ctxt->errNo = error;
- __xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_HTML, error,
- XML_ERR_ERROR, NULL, 0, NULL, NULL,
- NULL, val, 0, msg, val);
- if (ctxt != NULL)
- ctxt->wellFormed = 0;
-}
-
-/************************************************************************
- * *
- * Parser stacks related functions and macros *
- * *
- ************************************************************************/
-
-/**
- * htmlnamePush:
- * @ctxt: an HTML parser context
- * @value: the element name
- *
- * Pushes a new element name on top of the name stack
- *
- * Returns 0 in case of error, the index in the stack otherwise
- */
-static int
-htmlnamePush(htmlParserCtxtPtr ctxt, const xmlChar * value)
-{
- if ((ctxt->html < 3) && (xmlStrEqual(value, BAD_CAST "head")))
- ctxt->html = 3;
- if ((ctxt->html < 10) && (xmlStrEqual(value, BAD_CAST "body")))
- ctxt->html = 10;
- if (ctxt->nameNr >= ctxt->nameMax) {
- ctxt->nameMax *= 2;
- ctxt->nameTab = (const xmlChar * *)
- xmlRealloc((xmlChar * *)ctxt->nameTab,
- ctxt->nameMax *
- sizeof(ctxt->nameTab[0]));
- if (ctxt->nameTab == NULL) {
- htmlErrMemory(ctxt, NULL);
- return (0);
- }
- }
- ctxt->nameTab[ctxt->nameNr] = value;
- ctxt->name = value;
- return (ctxt->nameNr++);
-}
-/**
- * htmlnamePop:
- * @ctxt: an HTML parser context
- *
- * Pops the top element name from the name stack
- *
- * Returns the name just removed
- */
-static const xmlChar *
-htmlnamePop(htmlParserCtxtPtr ctxt)
-{
- const xmlChar *ret;
-
- if (ctxt->nameNr <= 0)
- return (NULL);
- ctxt->nameNr--;
- if (ctxt->nameNr < 0)
- return (NULL);
- if (ctxt->nameNr > 0)
- ctxt->name = ctxt->nameTab[ctxt->nameNr - 1];
- else
- ctxt->name = NULL;
- ret = ctxt->nameTab[ctxt->nameNr];
- ctxt->nameTab[ctxt->nameNr] = NULL;
- return (ret);
-}
-
-/**
- * htmlNodeInfoPush:
- * @ctxt: an HTML parser context
- * @value: the node info
- *
- * Pushes a new element name on top of the node info stack
- *
- * Returns 0 in case of error, the index in the stack otherwise
- */
-static int
-htmlNodeInfoPush(htmlParserCtxtPtr ctxt, htmlParserNodeInfo *value)
-{
- if (ctxt->nodeInfoNr >= ctxt->nodeInfoMax) {
- if (ctxt->nodeInfoMax == 0)
- ctxt->nodeInfoMax = 5;
- ctxt->nodeInfoMax *= 2;
- ctxt->nodeInfoTab = (htmlParserNodeInfo *)
- xmlRealloc((htmlParserNodeInfo *)ctxt->nodeInfoTab,
- ctxt->nodeInfoMax *
- sizeof(ctxt->nodeInfoTab[0]));
- if (ctxt->nodeInfoTab == NULL) {
- htmlErrMemory(ctxt, NULL);
- return (0);
- }
- }
- ctxt->nodeInfoTab[ctxt->nodeInfoNr] = *value;
- ctxt->nodeInfo = &ctxt->nodeInfoTab[ctxt->nodeInfoNr];
- return (ctxt->nodeInfoNr++);
-}
-
-/**
- * htmlNodeInfoPop:
- * @ctxt: an HTML parser context
- *
- * Pops the top element name from the node info stack
- *
- * Returns 0 in case of error, the pointer to NodeInfo otherwise
- */
-static htmlParserNodeInfo *
-htmlNodeInfoPop(htmlParserCtxtPtr ctxt)
-{
- if (ctxt->nodeInfoNr <= 0)
- return (NULL);
- ctxt->nodeInfoNr--;
- if (ctxt->nodeInfoNr < 0)
- return (NULL);
- if (ctxt->nodeInfoNr > 0)
- ctxt->nodeInfo = &ctxt->nodeInfoTab[ctxt->nodeInfoNr - 1];
- else
- ctxt->nodeInfo = NULL;
- return &ctxt->nodeInfoTab[ctxt->nodeInfoNr];
-}
-
-/*
- * Macros for accessing the content. Those should be used only by the parser,
- * and not exported.
- *
- * Dirty macros, i.e. one need to make assumption on the context to use them
- *
- * CUR_PTR return the current pointer to the xmlChar to be parsed.
- * CUR returns the current xmlChar value, i.e. a 8 bit value if compiled
- * in ISO-Latin or UTF-8, and the current 16 bit value if compiled
- * in UNICODE mode. This should be used internally by the parser
- * only to compare to ASCII values otherwise it would break when
- * running with UTF-8 encoding.
- * NXT(n) returns the n'th next xmlChar. Same as CUR is should be used only
- * to compare on ASCII based substring.
- * UPP(n) returns the n'th next xmlChar converted to uppercase. Same as CUR
- * it should be used only to compare on ASCII based substring.
- * SKIP(n) Skip n xmlChar, and must also be used only to skip ASCII defined
- * strings without newlines within the parser.
- *
- * Clean macros, not dependent of an ASCII context, expect UTF-8 encoding
- *
- * CURRENT Returns the current char value, with the full decoding of
- * UTF-8 if we are using this mode. It returns an int.
- * NEXT Skip to the next character, this does the proper decoding
- * in UTF-8 mode. It also pop-up unfinished entities on the fly.
- * NEXTL(l) Skip the current unicode character of l xmlChars long.
- * COPY(to) copy one char to *to, increment CUR_PTR and to accordingly
- */
-
-#define UPPER (toupper(*ctxt->input->cur))
-
-#define SKIP(val) ctxt->nbChars += (val),ctxt->input->cur += (val),ctxt->input->col+=(val)
-
-#define NXT(val) ctxt->input->cur[(val)]
-
-#define UPP(val) (toupper(ctxt->input->cur[(val)]))
-
-#define CUR_PTR ctxt->input->cur
-#define BASE_PTR ctxt->input->base
-
-#define SHRINK if ((ctxt->input->cur - ctxt->input->base > 2 * INPUT_CHUNK) && \
- (ctxt->input->end - ctxt->input->cur < 2 * INPUT_CHUNK)) \
- xmlParserInputShrink(ctxt->input)
-
-#define GROW if ((ctxt->progressive == 0) && \
- (ctxt->input->end - ctxt->input->cur < INPUT_CHUNK)) \
- xmlParserInputGrow(ctxt->input, INPUT_CHUNK)
-
-#define CURRENT ((int) (*ctxt->input->cur))
-
-#define SKIP_BLANKS htmlSkipBlankChars(ctxt)
-
-/* Inported from XML */
-
-/* #define CUR (ctxt->token ? ctxt->token : (int) (*ctxt->input->cur)) */
-#define CUR ((int) (*ctxt->input->cur))
-#define NEXT xmlNextChar(ctxt)
-
-#define RAW (ctxt->token ? -1 : (*ctxt->input->cur))
-
-
-#define NEXTL(l) do { \
- if (*(ctxt->input->cur) == '\n') { \
- ctxt->input->line++; ctxt->input->col = 1; \
- } else ctxt->input->col++; \
- ctxt->token = 0; ctxt->input->cur += l; ctxt->nbChars++; \
- } while (0)
-
-/************
- \
- if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt); \
- if (*ctxt->input->cur == '&') xmlParserHandleReference(ctxt);
- ************/
-
-#define CUR_CHAR(l) htmlCurrentChar(ctxt, &l)
-#define CUR_SCHAR(s, l) xmlStringCurrentChar(ctxt, s, &l)
-
-#define COPY_BUF(l,b,i,v) \
- if (l == 1) b[i++] = (xmlChar) v; \
- else i += xmlCopyChar(l,&b[i],v)
-
-/**
- * htmlFindEncoding:
- * @the HTML parser context
- *
- * Ty to find and encoding in the current data available in the input
- * buffer this is needed to try to switch to the proper encoding when
- * one face a character error.
- * That's an heuristic, since it's operating outside of parsing it could
- * try to use a meta which had been commented out, that's the reason it
- * should only be used in case of error, not as a default.
- *
- * Returns an encoding string or NULL if not found, the string need to
- * be freed
- */
-static xmlChar *
-htmlFindEncoding(xmlParserCtxtPtr ctxt) {
- const xmlChar *start, *cur, *end;
-
- if ((ctxt == NULL) || (ctxt->input == NULL) ||
- (ctxt->input->encoding != NULL) || (ctxt->input->buf == NULL) ||
- (ctxt->input->buf->encoder != NULL))
- return(NULL);
- if ((ctxt->input->cur == NULL) || (ctxt->input->end == NULL))
- return(NULL);
-
- start = ctxt->input->cur;
- end = ctxt->input->end;
- /* we also expect the input buffer to be zero terminated */
- if (*end != 0)
- return(NULL);
-
- cur = xmlStrcasestr(start, BAD_CAST "HTTP-EQUIV");
- if (cur == NULL)
- return(NULL);
- cur = xmlStrcasestr(cur, BAD_CAST "CONTENT");
- if (cur == NULL)
- return(NULL);
- cur = xmlStrcasestr(cur, BAD_CAST "CHARSET=");
- if (cur == NULL)
- return(NULL);
- cur += 8;
- start = cur;
- while (((*cur >= 'A') && (*cur <= 'Z')) ||
- ((*cur >= 'a') && (*cur <= 'z')) ||
- ((*cur >= '0') && (*cur <= '9')) ||
- (*cur == '-') || (*cur == '_') || (*cur == ':') || (*cur == '/'))
- cur++;
- if (cur == start)
- return(NULL);
- return(xmlStrndup(start, cur - start));
-}
-
-/**
- * htmlCurrentChar:
- * @ctxt: the HTML parser context
- * @len: pointer to the length of the char read
- *
- * The current char value, if using UTF-8 this may actually span multiple
- * bytes in the input buffer. Implement the end of line normalization:
- * 2.11 End-of-Line Handling
- * If the encoding is unspecified, in the case we find an ISO-Latin-1
- * char, then the encoding converter is plugged in automatically.
- *
- * Returns the current char value and its length
- */
-
-static int
-htmlCurrentChar(xmlParserCtxtPtr ctxt, int *len) {
- if (ctxt->instate == XML_PARSER_EOF)
- return(0);
-
- if (ctxt->token != 0) {
- *len = 0;
- return(ctxt->token);
- }
- if (ctxt->charset == XML_CHAR_ENCODING_UTF8) {
- /*
- * We are supposed to handle UTF8, check it's valid
- * From rfc2044: encoding of the Unicode values on UTF-8:
- *
- * UCS-4 range (hex.) UTF-8 octet sequence (binary)
- * 0000 0000-0000 007F 0xxxxxxx
- * 0000 0080-0000 07FF 110xxxxx 10xxxxxx
- * 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
- *
- * Check for the 0x110000 limit too
- */
- const unsigned char *cur = ctxt->input->cur;
- unsigned char c;
- unsigned int val;
-
- c = *cur;
- if (c & 0x80) {
- if (cur[1] == 0) {
- xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
- cur = ctxt->input->cur;
- }
- if ((cur[1] & 0xc0) != 0x80)
- goto encoding_error;
- if ((c & 0xe0) == 0xe0) {
-
- if (cur[2] == 0) {
- xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
- cur = ctxt->input->cur;
- }
- if ((cur[2] & 0xc0) != 0x80)
- goto encoding_error;
- if ((c & 0xf0) == 0xf0) {
- if (cur[3] == 0) {
- xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
- cur = ctxt->input->cur;
- }
- if (((c & 0xf8) != 0xf0) ||
- ((cur[3] & 0xc0) != 0x80))
- goto encoding_error;
- /* 4-byte code */
- *len = 4;
- val = (cur[0] & 0x7) << 18;
- val |= (cur[1] & 0x3f) << 12;
- val |= (cur[2] & 0x3f) << 6;
- val |= cur[3] & 0x3f;
- } else {
- /* 3-byte code */
- *len = 3;
- val = (cur[0] & 0xf) << 12;
- val |= (cur[1] & 0x3f) << 6;
- val |= cur[2] & 0x3f;
- }
- } else {
- /* 2-byte code */
- *len = 2;
- val = (cur[0] & 0x1f) << 6;
- val |= cur[1] & 0x3f;
- }
- if (!IS_CHAR(val)) {
- htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
- "Char 0x%X out of allowed range\n", val);
- }
- return(val);
- } else {
- if ((*ctxt->input->cur == 0) &&
- (ctxt->input->cur < ctxt->input->end)) {
- htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
- "Char 0x%X out of allowed range\n", 0);
- *len = 1;
- return(' ');
- }
- /* 1-byte code */
- *len = 1;
- return((int) *ctxt->input->cur);
- }
- }
- /*
- * Assume it's a fixed length encoding (1) with
- * a compatible encoding for the ASCII set, since
- * XML constructs only use < 128 chars
- */
- *len = 1;
- if ((int) *ctxt->input->cur < 0x80)
- return((int) *ctxt->input->cur);
-
- /*
- * Humm this is bad, do an automatic flow conversion
- */
- {
- xmlChar * guess;
- xmlCharEncodingHandlerPtr handler;
-
- guess = htmlFindEncoding(ctxt);
- if (guess == NULL) {
- xmlSwitchEncoding(ctxt, XML_CHAR_ENCODING_8859_1);
- } else {
- if (ctxt->input->encoding != NULL)
- xmlFree((xmlChar *) ctxt->input->encoding);
- ctxt->input->encoding = guess;
- handler = xmlFindCharEncodingHandler((const char *) guess);
- if (handler != NULL) {
- xmlSwitchToEncoding(ctxt, handler);
- } else {
- htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
- "Unsupported encoding %s", guess, NULL);
- }
- }
- ctxt->charset = XML_CHAR_ENCODING_UTF8;
- }
-
- return(xmlCurrentChar(ctxt, len));
-
-encoding_error:
- /*
- * If we detect an UTF8 error that probably mean that the
- * input encoding didn't get properly advertized in the
- * declaration header. Report the error and switch the encoding
- * to ISO-Latin-1 (if you don't like this policy, just declare the
- * encoding !)
- */
- {
- char buffer[150];
-
- if (ctxt->input->end - ctxt->input->cur >= 4) {
- snprintf(buffer, 149, "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
- ctxt->input->cur[0], ctxt->input->cur[1],
- ctxt->input->cur[2], ctxt->input->cur[3]);
- } else {
- snprintf(buffer, 149, "Bytes: 0x%02X\n", ctxt->input->cur[0]);
- }
- htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
- "Input is not proper UTF-8, indicate encoding !\n",
- BAD_CAST buffer, NULL);
- }
-
- ctxt->charset = XML_CHAR_ENCODING_8859_1;
- *len = 1;
- return((int) *ctxt->input->cur);
-}
-
-/**
- * htmlSkipBlankChars:
- * @ctxt: the HTML parser context
- *
- * skip all blanks character found at that point in the input streams.
- *
- * Returns the number of space chars skipped
- */
-
-static int
-htmlSkipBlankChars(xmlParserCtxtPtr ctxt) {
- int res = 0;
-
- while (IS_BLANK_CH(*(ctxt->input->cur))) {
- if ((*ctxt->input->cur == 0) &&
- (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0)) {
- xmlPopInput(ctxt);
- } else {
- if (*(ctxt->input->cur) == '\n') {
- ctxt->input->line++; ctxt->input->col = 1;
- } else ctxt->input->col++;
- ctxt->input->cur++;
- ctxt->nbChars++;
- if (*ctxt->input->cur == 0)
- xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
- }
- res++;
- }
- return(res);
-}
-
-
-
-/************************************************************************
- * *
- * The list of HTML elements and their properties *
- * *
- ************************************************************************/
-
-/*
- * Start Tag: 1 means the start tag can be ommited
- * End Tag: 1 means the end tag can be ommited
- * 2 means it's forbidden (empty elements)
- * 3 means the tag is stylistic and should be closed easily
- * Depr: this element is deprecated
- * DTD: 1 means that this element is valid only in the Loose DTD
- * 2 means that this element is valid only in the Frameset DTD
- *
- * Name,Start Tag,End Tag,Save End,Empty,Deprecated,DTD,inline,Description
- , subElements , impliedsubelt , Attributes, userdata
- */
-
-/* Definitions and a couple of vars for HTML Elements */
-
-#define FONTSTYLE "tt", "i", "b", "u", "s", "strike", "big", "small"
-#define NB_FONTSTYLE 8
-#define PHRASE "em", "strong", "dfn", "code", "samp", "kbd", "var", "cite", "abbr", "acronym"
-#define NB_PHRASE 10
-#define SPECIAL "a", "img", "applet", "embed", "object", "font", "basefont", "br", "script", "map", "q", "sub", "sup", "span", "bdo", "iframe"
-#define NB_SPECIAL 16
-#define INLINE FONTSTYLE, PHRASE, SPECIAL, FORMCTRL
-#define NB_INLINE NB_PCDATA + NB_FONTSTYLE + NB_PHRASE + NB_SPECIAL + NB_FORMCTRL
-#define BLOCK HEADING, LIST, "pre", "p", "dl", "div", "center", "noscript", "noframes", "blockquote", "form", "isindex", "hr", "table", "fieldset", "address"
-#define NB_BLOCK NB_HEADING + NB_LIST + 14
-#define FORMCTRL "input", "select", "textarea", "label", "button"
-#define NB_FORMCTRL 5
-#define PCDATA
-#define NB_PCDATA 0
-#define HEADING "h1", "h2", "h3", "h4", "h5", "h6"
-#define NB_HEADING 6
-#define LIST "ul", "ol", "dir", "menu"
-#define NB_LIST 4
-#define MODIFIER
-#define NB_MODIFIER 0
-#define FLOW BLOCK,INLINE
-#define NB_FLOW NB_BLOCK + NB_INLINE
-#define EMPTY NULL
-
-
-static const char* const html_flow[] = { FLOW, NULL } ;
-static const char* const html_inline[] = { INLINE, NULL } ;
-
-/* placeholders: elts with content but no subelements */
-static const char* const html_pcdata[] = { NULL } ;
-#define html_cdata html_pcdata
-
-
-/* ... and for HTML Attributes */
-
-#define COREATTRS "id", "class", "style", "title"
-#define NB_COREATTRS 4
-#define I18N "lang", "dir"
-#define NB_I18N 2
-#define EVENTS "onclick", "ondblclick", "onmousedown", "onmouseup", "onmouseover", "onmouseout", "onkeypress", "onkeydown", "onkeyup"
-#define NB_EVENTS 9
-#define ATTRS COREATTRS,I18N,EVENTS
-#define NB_ATTRS NB_NB_COREATTRS + NB_I18N + NB_EVENTS
-#define CELLHALIGN "align", "char", "charoff"
-#define NB_CELLHALIGN 3
-#define CELLVALIGN "valign"
-#define NB_CELLVALIGN 1
-
-static const char* const html_attrs[] = { ATTRS, NULL } ;
-static const char* const core_i18n_attrs[] = { COREATTRS, I18N, NULL } ;
-static const char* const core_attrs[] = { COREATTRS, NULL } ;
-static const char* const i18n_attrs[] = { I18N, NULL } ;
-
-
-/* Other declarations that should go inline ... */
-static const char* const a_attrs[] = { ATTRS, "charset", "type", "name",
- "href", "hreflang", "rel", "rev", "accesskey", "shape", "coords",
- "tabindex", "onfocus", "onblur", NULL } ;
-static const char* const target_attr[] = { "target", NULL } ;
-static const char* const rows_cols_attr[] = { "rows", "cols", NULL } ;
-static const char* const alt_attr[] = { "alt", NULL } ;
-static const char* const src_alt_attrs[] = { "src", "alt", NULL } ;
-static const char* const href_attrs[] = { "href", NULL } ;
-static const char* const clear_attrs[] = { "clear", NULL } ;
-static const char* const inline_p[] = { INLINE, "p", NULL } ;
-
-static const char* const flow_param[] = { FLOW, "param", NULL } ;
-static const char* const applet_attrs[] = { COREATTRS , "codebase",
- "archive", "alt", "name", "height", "width", "align",
- "hspace", "vspace", NULL } ;
-static const char* const area_attrs[] = { "shape", "coords", "href", "nohref",
- "tabindex", "accesskey", "onfocus", "onblur", NULL } ;
-static const char* const basefont_attrs[] =
- { "id", "size", "color", "face", NULL } ;
-static const char* const quote_attrs[] = { ATTRS, "cite", NULL } ;
-static const char* const body_contents[] = { FLOW, "ins", "del", NULL } ;
-static const char* const body_attrs[] = { ATTRS, "onload", "onunload", NULL } ;
-static const char* const body_depr[] = { "background", "bgcolor", "text",
- "link", "vlink", "alink", NULL } ;
-static const char* const button_attrs[] = { ATTRS, "name", "value", "type",
- "disabled", "tabindex", "accesskey", "onfocus", "onblur", NULL } ;
-
-
-static const char* const col_attrs[] = { ATTRS, "span", "width", CELLHALIGN, CELLVALIGN, NULL } ;
-static const char* const col_elt[] = { "col", NULL } ;
-static const char* const edit_attrs[] = { ATTRS, "datetime", "cite", NULL } ;
-static const char* const compact_attrs[] = { ATTRS, "compact", NULL } ;
-static const char* const dl_contents[] = { "dt", "dd", NULL } ;
-static const char* const compact_attr[] = { "compact", NULL } ;
-static const char* const label_attr[] = { "label", NULL } ;
-static const char* const fieldset_contents[] = { FLOW, "legend" } ;
-static const char* const font_attrs[] = { COREATTRS, I18N, "size", "color", "face" , NULL } ;
-static const char* const form_contents[] = { HEADING, LIST, INLINE, "pre", "p", "div", "center", "noscript", "noframes", "blockquote", "isindex", "hr", "table", "fieldset", "address", NULL } ;
-static const char* const form_attrs[] = { ATTRS, "method", "enctype", "accept", "name", "onsubmit", "onreset", "accept-charset", NULL } ;
-static const char* const frame_attrs[] = { COREATTRS, "longdesc", "name", "src", "frameborder", "marginwidth", "marginheight", "noresize", "scrolling" , NULL } ;
-static const char* const frameset_attrs[] = { COREATTRS, "rows", "cols", "onload", "onunload", NULL } ;
-static const char* const frameset_contents[] = { "frameset", "frame", "noframes", NULL } ;
-static const char* const head_attrs[] = { I18N, "profile", NULL } ;
-static const char* const head_contents[] = { "title", "isindex", "base", "script", "style", "meta", "link", "object", NULL } ;
-static const char* const hr_depr[] = { "align", "noshade", "size", "width", NULL } ;
-static const char* const version_attr[] = { "version", NULL } ;
-static const char* const html_content[] = { "head", "body", "frameset", NULL } ;
-static const char* const iframe_attrs[] = { COREATTRS, "longdesc", "name", "src", "frameborder", "marginwidth", "marginheight", "scrolling", "align", "height", "width", NULL } ;
-static const char* const img_attrs[] = { ATTRS, "longdesc", "name", "height", "width", "usemap", "ismap", NULL } ;
-static const char* const embed_attrs[] = { COREATTRS, "align", "alt", "border", "code", "codebase", "frameborder", "height", "hidden", "hspace", "name", "palette", "pluginspace", "pluginurl", "src", "type", "units", "vspace", "width", NULL } ;
-static const char* const input_attrs[] = { ATTRS, "type", "name", "value", "checked", "disabled", "readonly", "size", "maxlength", "src", "alt", "usemap", "ismap", "tabindex", "accesskey", "onfocus", "onblur", "onselect", "onchange", "accept", NULL } ;
-static const char* const prompt_attrs[] = { COREATTRS, I18N, "prompt", NULL } ;
-static const char* const label_attrs[] = { ATTRS, "for", "accesskey", "onfocus", "onblur", NULL } ;
-static const char* const legend_attrs[] = { ATTRS, "accesskey", NULL } ;
-static const char* const align_attr[] = { "align", NULL } ;
-static const char* const link_attrs[] = { ATTRS, "charset", "href", "hreflang", "type", "rel", "rev", "media", NULL } ;
-static const char* const map_contents[] = { BLOCK, "area", NULL } ;
-static const char* const name_attr[] = { "name", NULL } ;
-static const char* const action_attr[] = { "action", NULL } ;
-static const char* const blockli_elt[] = { BLOCK, "li", NULL } ;
-static const char* const meta_attrs[] = { I18N, "http-equiv", "name", "scheme", "charset", NULL } ;
-static const char* const content_attr[] = { "content", NULL } ;
-static const char* const type_attr[] = { "type", NULL } ;
-static const char* const noframes_content[] = { "body", FLOW MODIFIER, NULL } ;
-static const char* const object_contents[] = { FLOW, "param", NULL } ;
-static const char* const object_attrs[] = { ATTRS, "declare", "classid", "codebase", "data", "type", "codetype", "archive", "standby", "height", "width", "usemap", "name", "tabindex", NULL } ;
-static const char* const object_depr[] = { "align", "border", "hspace", "vspace", NULL } ;
-static const char* const ol_attrs[] = { "type", "compact", "start", NULL} ;
-static const char* const option_elt[] = { "option", NULL } ;
-static const char* const optgroup_attrs[] = { ATTRS, "disabled", NULL } ;
-static const char* const option_attrs[] = { ATTRS, "disabled", "label", "selected", "value", NULL } ;
-static const char* const param_attrs[] = { "id", "value", "valuetype", "type", NULL } ;
-static const char* const width_attr[] = { "width", NULL } ;
-static const char* const pre_content[] = { PHRASE, "tt", "i", "b", "u", "s", "strike", "a", "br", "script", "map", "q", "span", "bdo", "iframe", NULL } ;
-static const char* const script_attrs[] = { "charset", "src", "defer", "event", "for", NULL } ;
-static const char* const language_attr[] = { "language", NULL } ;
-static const char* const select_content[] = { "optgroup", "option", NULL } ;
-static const char* const select_attrs[] = { ATTRS, "name", "size", "multiple", "disabled", "tabindex", "onfocus", "onblur", "onchange", NULL } ;
-static const char* const style_attrs[] = { I18N, "media", "title", NULL } ;
-static const char* const table_attrs[] = { ATTRS, "summary", "width", "border", "frame", "rules", "cellspacing", "cellpadding", "datapagesize", NULL } ;
-static const char* const table_depr[] = { "align", "bgcolor", NULL } ;
-static const char* const table_contents[] = { "caption", "col", "colgroup", "thead", "tfoot", "tbody", "tr", NULL} ;
-static const char* const tr_elt[] = { "tr", NULL } ;
-static const char* const talign_attrs[] = { ATTRS, CELLHALIGN, CELLVALIGN, NULL} ;
-static const char* const th_td_depr[] = { "nowrap", "bgcolor", "width", "height", NULL } ;
-static const char* const th_td_attr[] = { ATTRS, "abbr", "axis", "headers", "scope", "rowspan", "colspan", CELLHALIGN, CELLVALIGN, NULL } ;
-static const char* const textarea_attrs[] = { ATTRS, "name", "disabled", "readonly", "tabindex", "accesskey", "onfocus", "onblur", "onselect", "onchange", NULL } ;
-static const char* const tr_contents[] = { "th", "td", NULL } ;
-static const char* const bgcolor_attr[] = { "bgcolor", NULL } ;
-static const char* const li_elt[] = { "li", NULL } ;
-static const char* const ul_depr[] = { "type", "compact", NULL} ;
-static const char* const dir_attr[] = { "dir", NULL} ;
-
-#define DECL (const char**)
-
-static const htmlElemDesc
-html40ElementTable[] = {
-{ "a", 0, 0, 0, 0, 0, 0, 1, "anchor ",
- DECL html_inline , NULL , DECL a_attrs , DECL target_attr, NULL
-},
-{ "abbr", 0, 0, 0, 0, 0, 0, 1, "abbreviated form",
- DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "acronym", 0, 0, 0, 0, 0, 0, 1, "",
- DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "address", 0, 0, 0, 0, 0, 0, 0, "information on author ",
- DECL inline_p , NULL , DECL html_attrs, NULL, NULL
-},
-{ "applet", 0, 0, 0, 0, 1, 1, 2, "java applet ",
- DECL flow_param , NULL , NULL , DECL applet_attrs, NULL
-},
-{ "area", 0, 2, 2, 1, 0, 0, 0, "client-side image map area ",
- EMPTY , NULL , DECL area_attrs , DECL target_attr, DECL alt_attr
-},
-{ "b", 0, 3, 0, 0, 0, 0, 1, "bold text style",
- DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "base", 0, 2, 2, 1, 0, 0, 0, "document base uri ",
- EMPTY , NULL , NULL , DECL target_attr, DECL href_attrs
-},
-{ "basefont", 0, 2, 2, 1, 1, 1, 1, "base font size " ,
- EMPTY , NULL , NULL, DECL basefont_attrs, NULL
-},
-{ "bdo", 0, 0, 0, 0, 0, 0, 1, "i18n bidi over-ride ",
- DECL html_inline , NULL , DECL core_i18n_attrs, NULL, DECL dir_attr
-},
-{ "big", 0, 3, 0, 0, 0, 0, 1, "large text style",
- DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "blockquote", 0, 0, 0, 0, 0, 0, 0, "long quotation ",
- DECL html_flow , NULL , DECL quote_attrs , NULL, NULL
-},
-{ "body", 1, 1, 0, 0, 0, 0, 0, "document body ",
- DECL body_contents , "div" , DECL body_attrs, DECL body_depr, NULL
-},
-{ "br", 0, 2, 2, 1, 0, 0, 1, "forced line break ",
- EMPTY , NULL , DECL core_attrs, DECL clear_attrs , NULL
-},
-{ "button", 0, 0, 0, 0, 0, 0, 2, "push button ",
- DECL html_flow MODIFIER , NULL , DECL button_attrs, NULL, NULL
-},
-{ "caption", 0, 0, 0, 0, 0, 0, 0, "table caption ",
- DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "center", 0, 3, 0, 0, 1, 1, 0, "shorthand for div align=center ",
- DECL html_flow , NULL , NULL, DECL html_attrs, NULL
-},
-{ "cite", 0, 0, 0, 0, 0, 0, 1, "citation",
- DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "code", 0, 0, 0, 0, 0, 0, 1, "computer code fragment",
- DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "col", 0, 2, 2, 1, 0, 0, 0, "table column ",
- EMPTY , NULL , DECL col_attrs , NULL, NULL
-},
-{ "colgroup", 0, 1, 0, 0, 0, 0, 0, "table column group ",
- DECL col_elt , "col" , DECL col_attrs , NULL, NULL
-},
-{ "dd", 0, 1, 0, 0, 0, 0, 0, "definition description ",
- DECL html_flow , NULL , DECL html_attrs, NULL, NULL
-},
-{ "del", 0, 0, 0, 0, 0, 0, 2, "deleted text ",
- DECL html_flow , NULL , DECL edit_attrs , NULL, NULL
-},
-{ "dfn", 0, 0, 0, 0, 0, 0, 1, "instance definition",
- DECL html_inline , NULL , DECL html_attrs, NULL, NULL
-},
-{ "dir", 0, 0, 0, 0, 1, 1, 0, "directory list",
- DECL blockli_elt, "li" , NULL, DECL compact_attrs, NULL
-},
-{ "div", 0, 0, 0, 0, 0, 0, 0, "generic language/style container",
- DECL html_flow, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "dl", 0, 0, 0, 0, 0, 0, 0, "definition list ",
- DECL dl_contents , "dd" , DECL html_attrs, DECL compact_attr, NULL
-},
-{ "dt", 0, 1, 0, 0, 0, 0, 0, "definition term ",
- DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "em", 0, 3, 0, 0, 0, 0, 1, "emphasis",
- DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "embed", 0, 1, 0, 0, 1, 1, 1, "generic embedded object ",
- EMPTY, NULL, DECL embed_attrs, NULL, NULL
-},
-{ "fieldset", 0, 0, 0, 0, 0, 0, 0, "form control group ",
- DECL fieldset_contents , NULL, DECL html_attrs, NULL, NULL
-},
-{ "font", 0, 3, 0, 0, 1, 1, 1, "local change to font ",
- DECL html_inline, NULL, NULL, DECL font_attrs, NULL
-},
-{ "form", 0, 0, 0, 0, 0, 0, 0, "interactive form ",
- DECL form_contents, "fieldset", DECL form_attrs , DECL target_attr, DECL action_attr
-},
-{ "frame", 0, 2, 2, 1, 0, 2, 0, "subwindow " ,
- EMPTY, NULL, NULL, DECL frame_attrs, NULL
-},
-{ "frameset", 0, 0, 0, 0, 0, 2, 0, "window subdivision" ,
- DECL frameset_contents, "noframes" , NULL , DECL frameset_attrs, NULL
-},
-{ "h1", 0, 0, 0, 0, 0, 0, 0, "heading ",
- DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "h2", 0, 0, 0, 0, 0, 0, 0, "heading ",
- DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "h3", 0, 0, 0, 0, 0, 0, 0, "heading ",
- DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "h4", 0, 0, 0, 0, 0, 0, 0, "heading ",
- DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "h5", 0, 0, 0, 0, 0, 0, 0, "heading ",
- DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "h6", 0, 0, 0, 0, 0, 0, 0, "heading ",
- DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "head", 1, 1, 0, 0, 0, 0, 0, "document head ",
- DECL head_contents, NULL, DECL head_attrs, NULL, NULL
-},
-{ "hr", 0, 2, 2, 1, 0, 0, 0, "horizontal rule " ,
- EMPTY, NULL, DECL html_attrs, DECL hr_depr, NULL
-},
-{ "html", 1, 1, 0, 0, 0, 0, 0, "document root element ",
- DECL html_content , NULL , DECL i18n_attrs, DECL version_attr, NULL
-},
-{ "i", 0, 3, 0, 0, 0, 0, 1, "italic text style",
- DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "iframe", 0, 0, 0, 0, 0, 1, 2, "inline subwindow ",
- DECL html_flow, NULL, NULL, DECL iframe_attrs, NULL
-},
-{ "img", 0, 2, 2, 1, 0, 0, 1, "embedded image ",
- EMPTY, NULL, DECL img_attrs, DECL align_attr, DECL src_alt_attrs
-},
-{ "input", 0, 2, 2, 1, 0, 0, 1, "form control ",
- EMPTY, NULL, DECL input_attrs , DECL align_attr, NULL
-},
-{ "ins", 0, 0, 0, 0, 0, 0, 2, "inserted text",
- DECL html_flow, NULL, DECL edit_attrs, NULL, NULL
-},
-{ "isindex", 0, 2, 2, 1, 1, 1, 0, "single line prompt ",
- EMPTY, NULL, NULL, DECL prompt_attrs, NULL
-},
-{ "kbd", 0, 0, 0, 0, 0, 0, 1, "text to be entered by the user",
- DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "label", 0, 0, 0, 0, 0, 0, 1, "form field label text ",
- DECL html_inline MODIFIER, NULL, DECL label_attrs , NULL, NULL
-},
-{ "legend", 0, 0, 0, 0, 0, 0, 0, "fieldset legend ",
- DECL html_inline, NULL, DECL legend_attrs , DECL align_attr, NULL
-},
-{ "li", 0, 1, 1, 0, 0, 0, 0, "list item ",
- DECL html_flow, NULL, DECL html_attrs, NULL, NULL
-},
-{ "link", 0, 2, 2, 1, 0, 0, 0, "a media-independent link ",
- EMPTY, NULL, DECL link_attrs, DECL target_attr, NULL
-},
-{ "map", 0, 0, 0, 0, 0, 0, 2, "client-side image map ",
- DECL map_contents , NULL, DECL html_attrs , NULL, DECL name_attr
-},
-{ "menu", 0, 0, 0, 0, 1, 1, 0, "menu list ",
- DECL blockli_elt , NULL, NULL, DECL compact_attrs, NULL
-},
-{ "meta", 0, 2, 2, 1, 0, 0, 0, "generic metainformation ",
- EMPTY, NULL, DECL meta_attrs , NULL , DECL content_attr
-},
-{ "noframes", 0, 0, 0, 0, 0, 2, 0, "alternate content container for non frame-based rendering ",
- DECL noframes_content, "body" , DECL html_attrs, NULL, NULL
-},
-{ "noscript", 0, 0, 0, 0, 0, 0, 0, "alternate content container for non script-based rendering ",
- DECL html_flow, "div", DECL html_attrs, NULL, NULL
-},
-{ "object", 0, 0, 0, 0, 0, 0, 2, "generic embedded object ",
- DECL object_contents , "div" , DECL object_attrs, DECL object_depr, NULL
-},
-{ "ol", 0, 0, 0, 0, 0, 0, 0, "ordered list ",
- DECL li_elt , "li" , DECL html_attrs, DECL ol_attrs, NULL
-},
-{ "optgroup", 0, 0, 0, 0, 0, 0, 0, "option group ",
- DECL option_elt , "option", DECL optgroup_attrs, NULL, DECL label_attr
-},
-{ "option", 0, 1, 0, 0, 0, 0, 0, "selectable choice " ,
- DECL html_pcdata, NULL, DECL option_attrs, NULL, NULL
-},
-{ "p", 0, 1, 0, 0, 0, 0, 0, "paragraph ",
- DECL html_inline, NULL, DECL html_attrs, DECL align_attr, NULL
-},
-{ "param", 0, 2, 2, 1, 0, 0, 0, "named property value ",
- EMPTY, NULL, DECL param_attrs, NULL, DECL name_attr
-},
-{ "pre", 0, 0, 0, 0, 0, 0, 0, "preformatted text ",
- DECL pre_content, NULL, DECL html_attrs, DECL width_attr, NULL
-},
-{ "q", 0, 0, 0, 0, 0, 0, 1, "short inline quotation ",
- DECL html_inline, NULL, DECL quote_attrs, NULL, NULL
-},
-{ "s", 0, 3, 0, 0, 1, 1, 1, "strike-through text style",
- DECL html_inline, NULL, NULL, DECL html_attrs, NULL
-},
-{ "samp", 0, 0, 0, 0, 0, 0, 1, "sample program output, scripts, etc.",
- DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "script", 0, 0, 0, 0, 0, 0, 2, "script statements ",
- DECL html_cdata, NULL, DECL script_attrs, DECL language_attr, DECL type_attr
-},
-{ "select", 0, 0, 0, 0, 0, 0, 1, "option selector ",
- DECL select_content, NULL, DECL select_attrs, NULL, NULL
-},
-{ "small", 0, 3, 0, 0, 0, 0, 1, "small text style",
- DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "span", 0, 0, 0, 0, 0, 0, 1, "generic language/style container ",
- DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "strike", 0, 3, 0, 0, 1, 1, 1, "strike-through text",
- DECL html_inline, NULL, NULL, DECL html_attrs, NULL
-},
-{ "strong", 0, 3, 0, 0, 0, 0, 1, "strong emphasis",
- DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "style", 0, 0, 0, 0, 0, 0, 0, "style info ",
- DECL html_cdata, NULL, DECL style_attrs, NULL, DECL type_attr
-},
-{ "sub", 0, 3, 0, 0, 0, 0, 1, "subscript",
- DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "sup", 0, 3, 0, 0, 0, 0, 1, "superscript ",
- DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "table", 0, 0, 0, 0, 0, 0, 0, "",
- DECL table_contents , "tr" , DECL table_attrs , DECL table_depr, NULL
-},
-{ "tbody", 1, 0, 0, 0, 0, 0, 0, "table body ",
- DECL tr_elt , "tr" , DECL talign_attrs, NULL, NULL
-},
-{ "td", 0, 0, 0, 0, 0, 0, 0, "table data cell",
- DECL html_flow, NULL, DECL th_td_attr, DECL th_td_depr, NULL
-},
-{ "textarea", 0, 0, 0, 0, 0, 0, 1, "multi-line text field ",
- DECL html_pcdata, NULL, DECL textarea_attrs, NULL, DECL rows_cols_attr
-},
-{ "tfoot", 0, 1, 0, 0, 0, 0, 0, "table footer ",
- DECL tr_elt , "tr" , DECL talign_attrs, NULL, NULL
-},
-{ "th", 0, 1, 0, 0, 0, 0, 0, "table header cell",
- DECL html_flow, NULL, DECL th_td_attr, DECL th_td_depr, NULL
-},
-{ "thead", 0, 1, 0, 0, 0, 0, 0, "table header ",
- DECL tr_elt , "tr" , DECL talign_attrs, NULL, NULL
-},
-{ "title", 0, 0, 0, 0, 0, 0, 0, "document title ",
- DECL html_pcdata, NULL, DECL i18n_attrs, NULL, NULL
-},
-{ "tr", 0, 0, 0, 0, 0, 0, 0, "table row ",
- DECL tr_contents , "td" , DECL talign_attrs, DECL bgcolor_attr, NULL
-},
-{ "tt", 0, 3, 0, 0, 0, 0, 1, "teletype or monospaced text style",
- DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-},
-{ "u", 0, 3, 0, 0, 1, 1, 1, "underlined text style",
- DECL html_inline, NULL, NULL, DECL html_attrs, NULL
-},
-{ "ul", 0, 0, 0, 0, 0, 0, 0, "unordered list ",
- DECL li_elt , "li" , DECL html_attrs, DECL ul_depr, NULL
-},
-{ "var", 0, 0, 0, 0, 0, 0, 1, "instance of a variable or program argument",
- DECL html_inline, NULL, DECL html_attrs, NULL, NULL
-}
-};
-
-/*
- * start tags that imply the end of current element
- */
-static const char * const htmlStartClose[] = {
-"form", "form", "p", "hr", "h1", "h2", "h3", "h4", "h5", "h6",
- "dl", "ul", "ol", "menu", "dir", "address", "pre",
- "listing", "xmp", "head", NULL,
-"head", "p", NULL,
-"title", "p", NULL,
-"body", "head", "style", "link", "title", "p", NULL,
-"frameset", "head", "style", "link", "title", "p", NULL,
-"li", "p", "h1", "h2", "h3", "h4", "h5", "h6", "dl", "address",
- "pre", "listing", "xmp", "head", "li", NULL,
-"hr", "p", "head", NULL,
-"h1", "p", "head", NULL,
-"h2", "p", "head", NULL,
-"h3", "p", "head", NULL,
-"h4", "p", "head", NULL,
-"h5", "p", "head", NULL,
-"h6", "p", "head", NULL,
-"dir", "p", "head", NULL,
-"address", "p", "head", "ul", NULL,
-"pre", "p", "head", "ul", NULL,
-"listing", "p", "head", NULL,
-"xmp", "p", "head", NULL,
-"blockquote", "p", "head", NULL,
-"dl", "p", "dt", "menu", "dir", "address", "pre", "listing",
- "xmp", "head", NULL,
-"dt", "p", "menu", "dir", "address", "pre", "listing", "xmp",
- "head", "dd", NULL,
-"dd", "p", "menu", "dir", "address", "pre", "listing", "xmp",
- "head", "dt", NULL,
-"ul", "p", "head", "ol", "menu", "dir", "address", "pre",
- "listing", "xmp", NULL,
-"ol", "p", "head", "ul", NULL,
-"menu", "p", "head", "ul", NULL,
-"p", "p", "head", "h1", "h2", "h3", "h4", "h5", "h6", FONTSTYLE, NULL,
-"div", "p", "head", NULL,
-"noscript", "p", NULL,
-"center", "font", "b", "i", "p", "head", NULL,
-"a", "a", "head", NULL,
-"caption", "p", NULL,
-"colgroup", "caption", "colgroup", "col", "p", NULL,
-"col", "caption", "col", "p", NULL,
-"table", "p", "head", "h1", "h2", "h3", "h4", "h5", "h6", "pre",
- "listing", "xmp", "a", NULL,
-"th", "th", "td", "p", "span", "font", "a", "b", "i", "u", NULL,
-"td", "th", "td", "p", "span", "font", "a", "b", "i", "u", NULL,
-"tr", "th", "td", "tr", "caption", "col", "colgroup", "p", NULL,
-"thead", "caption", "col", "colgroup", NULL,
-"tfoot", "th", "td", "tr", "caption", "col", "colgroup", "thead",
- "tbody", "p", NULL,
-"tbody", "th", "td", "tr", "caption", "col", "colgroup", "thead",
- "tfoot", "tbody", "p", NULL,
-"optgroup", "option", NULL,
-"option", "option", NULL,
-"fieldset", "legend", "p", "head", "h1", "h2", "h3", "h4", "h5", "h6",
- "pre", "listing", "xmp", "a", NULL,
-/* most tags in in FONTSTYLE, PHRASE and SPECIAL should close <head> */
-"tt", "head", NULL,
-"i", "head", NULL,
-"b", "head", NULL,
-"u", "head", NULL,
-"s", "head", NULL,
-"strike", "head", NULL,
-"big", "head", NULL,
-"small", "head", NULL,
-
-"em", "head", NULL,
-"strong", "head", NULL,
-"dfn", "head", NULL,
-"code", "head", NULL,
-"samp", "head", NULL,
-"kbd", "head", NULL,
-"var", "head", NULL,
-"cite", "head", NULL,
-"abbr", "head", NULL,
-"acronym", "head", NULL,
-
-/* "a" */
-"img", "head", NULL,
-/* "applet" */
-/* "embed" */
-/* "object" */
-"font", "head", NULL,
-/* "basefont" */
-"br", "head", NULL,
-/* "script" */
-"map", "head", NULL,
-"q", "head", NULL,
-"sub", "head", NULL,
-"sup", "head", NULL,
-"span", "head", NULL,
-"bdo", "head", NULL,
-"iframe", "head", NULL,
-NULL
-};
-
-/*
- * The list of HTML elements which are supposed not to have
- * CDATA content and where a p element will be implied
- *
- * TODO: extend that list by reading the HTML SGML DTD on
- * implied paragraph
- */
-static const char *const htmlNoContentElements[] = {
- "html",
- "head",
- NULL
-};
-
-/*
- * The list of HTML attributes which are of content %Script;
- * NOTE: when adding ones, check htmlIsScriptAttribute() since
- * it assumes the name starts with 'on'
- */
-static const char *const htmlScriptAttributes[] = {
- "onclick",
- "ondblclick",
- "onmousedown",
- "onmouseup",
- "onmouseover",
- "onmousemove",
- "onmouseout",
- "onkeypress",
- "onkeydown",
- "onkeyup",
- "onload",
- "onunload",
- "onfocus",
- "onblur",
- "onsubmit",
- "onreset",
- "onchange",
- "onselect"
-};
-
-/*
- * This table is used by the htmlparser to know what to do with
- * broken html pages. By assigning different priorities to different
- * elements the parser can decide how to handle extra endtags.
- * Endtags are only allowed to close elements with lower or equal
- * priority.
- */
-
-typedef struct {
- const char *name;
- int priority;
-} elementPriority;
-
-static const elementPriority htmlEndPriority[] = {
- {"div", 150},
- {"td", 160},
- {"th", 160},
- {"tr", 170},
- {"thead", 180},
- {"tbody", 180},
- {"tfoot", 180},
- {"table", 190},
- {"head", 200},
- {"body", 200},
- {"html", 220},
- {NULL, 100} /* Default priority */
-};
-
-static const char** htmlStartCloseIndex[100];
-static int htmlStartCloseIndexinitialized = 0;
-
-/************************************************************************
- * *
- * functions to handle HTML specific data *
- * *
- ************************************************************************/
-
-/**
- * htmlInitAutoClose:
- *
- * Initialize the htmlStartCloseIndex for fast lookup of closing tags names.
- * This is not reentrant. Call xmlInitParser() once before processing in
- * case of use in multithreaded programs.
- */
-void
-htmlInitAutoClose(void) {
- int indx, i = 0;
-
- if (htmlStartCloseIndexinitialized) return;
-
- for (indx = 0;indx < 100;indx ++) htmlStartCloseIndex[indx] = NULL;
- indx = 0;
- while ((htmlStartClose[i] != NULL) && (indx < 100 - 1)) {
- htmlStartCloseIndex[indx++] = (const char**) &htmlStartClose[i];
- while (htmlStartClose[i] != NULL) i++;
- i++;
- }
- htmlStartCloseIndexinitialized = 1;
-}
-
-/**
- * htmlTagLookup:
- * @tag: The tag name in lowercase
- *
- * Lookup the HTML tag in the ElementTable
- *
- * Returns the related htmlElemDescPtr or NULL if not found.
- */
-const htmlElemDesc *
-htmlTagLookup(const xmlChar *tag) {
- unsigned int i;
-
- for (i = 0; i < (sizeof(html40ElementTable) /
- sizeof(html40ElementTable[0]));i++) {
- if (!xmlStrcasecmp(tag, BAD_CAST html40ElementTable[i].name))
- return((htmlElemDescPtr) &html40ElementTable[i]);
- }
- return(NULL);
-}
-
-/**
- * htmlGetEndPriority:
- * @name: The name of the element to look up the priority for.
- *
- * Return value: The "endtag" priority.
- **/
-static int
-htmlGetEndPriority (const xmlChar *name) {
- int i = 0;
-
- while ((htmlEndPriority[i].name != NULL) &&
- (!xmlStrEqual((const xmlChar *)htmlEndPriority[i].name, name)))
- i++;
-
- return(htmlEndPriority[i].priority);
-}
-
-
-/**
- * htmlCheckAutoClose:
- * @newtag: The new tag name
- * @oldtag: The old tag name
- *
- * Checks whether the new tag is one of the registered valid tags for
- * closing old.
- * Initialize the htmlStartCloseIndex for fast lookup of closing tags names.
- *
- * Returns 0 if no, 1 if yes.
- */
-static int
-htmlCheckAutoClose(const xmlChar * newtag, const xmlChar * oldtag)
-{
- int i, indx;
- const char **closed = NULL;
-
- if (htmlStartCloseIndexinitialized == 0)
- htmlInitAutoClose();
-
- /* inefficient, but not a big deal */
- for (indx = 0; indx < 100; indx++) {
- closed = htmlStartCloseIndex[indx];
- if (closed == NULL)
- return (0);
- if (xmlStrEqual(BAD_CAST * closed, newtag))
- break;
- }
-
- i = closed - htmlStartClose;
- i++;
- while (htmlStartClose[i] != NULL) {
- if (xmlStrEqual(BAD_CAST htmlStartClose[i], oldtag)) {
- return (1);
- }
- i++;
- }
- return (0);
-}
-
-/**
- * htmlAutoCloseOnClose:
- * @ctxt: an HTML parser context
- * @newtag: The new tag name
- * @force: force the tag closure
- *
- * The HTML DTD allows an ending tag to implicitly close other tags.
- */
-static void
-htmlAutoCloseOnClose(htmlParserCtxtPtr ctxt, const xmlChar * newtag)
-{
- const htmlElemDesc *info;
- int i, priority;
-
- priority = htmlGetEndPriority(newtag);
-
- for (i = (ctxt->nameNr - 1); i >= 0; i--) {
-
- if (xmlStrEqual(newtag, ctxt->nameTab[i]))
- break;
- /*
- * A missplaced endtag can only close elements with lower
- * or equal priority, so if we find an element with higher
- * priority before we find an element with
- * matching name, we just ignore this endtag
- */
- if (htmlGetEndPriority(ctxt->nameTab[i]) > priority)
- return;
- }
- if (i < 0)
- return;
-
- while (!xmlStrEqual(newtag, ctxt->name)) {
- info = htmlTagLookup(ctxt->name);
- if ((info != NULL) && (info->endTag == 3)) {
- htmlParseErr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
- "Opening and ending tag mismatch: %s and %s\n",
- newtag, ctxt->name);
- }
- if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
- ctxt->sax->endElement(ctxt->userData, ctxt->name);
- htmlnamePop(ctxt);
- }
-}
-
-/**
- * htmlAutoCloseOnEnd:
- * @ctxt: an HTML parser context
- *
- * Close all remaining tags at the end of the stream
- */
-static void
-htmlAutoCloseOnEnd(htmlParserCtxtPtr ctxt)
-{
- int i;
-
- if (ctxt->nameNr == 0)
- return;
- for (i = (ctxt->nameNr - 1); i >= 0; i--) {
- if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
- ctxt->sax->endElement(ctxt->userData, ctxt->name);
- htmlnamePop(ctxt);
- }
-}
-
-/**
- * htmlAutoClose:
- * @ctxt: an HTML parser context
- * @newtag: The new tag name or NULL
- *
- * The HTML DTD allows a tag to implicitly close other tags.
- * The list is kept in htmlStartClose array. This function is
- * called when a new tag has been detected and generates the
- * appropriates closes if possible/needed.
- * If newtag is NULL this mean we are at the end of the resource
- * and we should check
- */
-static void
-htmlAutoClose(htmlParserCtxtPtr ctxt, const xmlChar * newtag)
-{
- while ((newtag != NULL) && (ctxt->name != NULL) &&
- (htmlCheckAutoClose(newtag, ctxt->name))) {
- if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
- ctxt->sax->endElement(ctxt->userData, ctxt->name);
- htmlnamePop(ctxt);
- }
- if (newtag == NULL) {
- htmlAutoCloseOnEnd(ctxt);
- return;
- }
- while ((newtag == NULL) && (ctxt->name != NULL) &&
- ((xmlStrEqual(ctxt->name, BAD_CAST "head")) ||
- (xmlStrEqual(ctxt->name, BAD_CAST "body")) ||
- (xmlStrEqual(ctxt->name, BAD_CAST "html")))) {
- if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
- ctxt->sax->endElement(ctxt->userData, ctxt->name);
- htmlnamePop(ctxt);
- }
-}
-
-/**
- * htmlAutoCloseTag:
- * @doc: the HTML document
- * @name: The tag name
- * @elem: the HTML element
- *
- * The HTML DTD allows a tag to implicitly close other tags.
- * The list is kept in htmlStartClose array. This function checks
- * if the element or one of it's children would autoclose the
- * given tag.
- *
- * Returns 1 if autoclose, 0 otherwise
- */
-int
-htmlAutoCloseTag(htmlDocPtr doc, const xmlChar *name, htmlNodePtr elem) {
- htmlNodePtr child;
-
- if (elem == NULL) return(1);
- if (xmlStrEqual(name, elem->name)) return(0);
- if (htmlCheckAutoClose(elem->name, name)) return(1);
- child = elem->children;
- while (child != NULL) {
- if (htmlAutoCloseTag(doc, name, child)) return(1);
- child = child->next;
- }
- return(0);
-}
-
-/**
- * htmlIsAutoClosed:
- * @doc: the HTML document
- * @elem: the HTML element
- *
- * The HTML DTD allows a tag to implicitly close other tags.
- * The list is kept in htmlStartClose array. This function checks
- * if a tag is autoclosed by one of it's child
- *
- * Returns 1 if autoclosed, 0 otherwise
- */
-int
-htmlIsAutoClosed(htmlDocPtr doc, htmlNodePtr elem) {
- htmlNodePtr child;
-
- if (elem == NULL) return(1);
- child = elem->children;
- while (child != NULL) {
- if (htmlAutoCloseTag(doc, elem->name, child)) return(1);
- child = child->next;
- }
- return(0);
-}
-
-/**
- * htmlCheckImplied:
- * @ctxt: an HTML parser context
- * @newtag: The new tag name
- *
- * The HTML DTD allows a tag to exists only implicitly
- * called when a new tag has been detected and generates the
- * appropriates implicit tags if missing
- */
-static void
-htmlCheckImplied(htmlParserCtxtPtr ctxt, const xmlChar *newtag) {
- int i;
-
- if (ctxt->options & HTML_PARSE_NOIMPLIED)
- return;
- if (!htmlOmittedDefaultValue)
- return;
- if (xmlStrEqual(newtag, BAD_CAST"html"))
- return;
- if (ctxt->nameNr <= 0) {
- htmlnamePush(ctxt, BAD_CAST"html");
- if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
- ctxt->sax->startElement(ctxt->userData, BAD_CAST"html", NULL);
- }
- if ((xmlStrEqual(newtag, BAD_CAST"body")) || (xmlStrEqual(newtag, BAD_CAST"head")))
- return;
- if ((ctxt->nameNr <= 1) &&
- ((xmlStrEqual(newtag, BAD_CAST"script")) ||
- (xmlStrEqual(newtag, BAD_CAST"style")) ||
- (xmlStrEqual(newtag, BAD_CAST"meta")) ||
- (xmlStrEqual(newtag, BAD_CAST"link")) ||
- (xmlStrEqual(newtag, BAD_CAST"title")) ||
- (xmlStrEqual(newtag, BAD_CAST"base")))) {
- if (ctxt->html >= 3) {
- /* we already saw or generated an <head> before */
- return;
- }
- /*
- * dropped OBJECT ... i you put it first BODY will be
- * assumed !
- */
- htmlnamePush(ctxt, BAD_CAST"head");
- if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
- ctxt->sax->startElement(ctxt->userData, BAD_CAST"head", NULL);
- } else if ((!xmlStrEqual(newtag, BAD_CAST"noframes")) &&
- (!xmlStrEqual(newtag, BAD_CAST"frame")) &&
- (!xmlStrEqual(newtag, BAD_CAST"frameset"))) {
- if (ctxt->html >= 10) {
- /* we already saw or generated a <body> before */
- return;
- }
- for (i = 0;i < ctxt->nameNr;i++) {
- if (xmlStrEqual(ctxt->nameTab[i], BAD_CAST"body")) {
- return;
- }
- if (xmlStrEqual(ctxt->nameTab[i], BAD_CAST"head")) {
- return;
- }
- }
-
- htmlnamePush(ctxt, BAD_CAST"body");
- if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
- ctxt->sax->startElement(ctxt->userData, BAD_CAST"body", NULL);
- }
-}
-
-/**
- * htmlCheckParagraph
- * @ctxt: an HTML parser context
- *
- * Check whether a p element need to be implied before inserting
- * characters in the current element.
- *
- * Returns 1 if a paragraph has been inserted, 0 if not and -1
- * in case of error.
- */
-
-static int
-htmlCheckParagraph(htmlParserCtxtPtr ctxt) {
- const xmlChar *tag;
- int i;
-
- if (ctxt == NULL)
- return(-1);
- tag = ctxt->name;
- if (tag == NULL) {
- htmlAutoClose(ctxt, BAD_CAST"p");
- htmlCheckImplied(ctxt, BAD_CAST"p");
- htmlnamePush(ctxt, BAD_CAST"p");
- if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
- ctxt->sax->startElement(ctxt->userData, BAD_CAST"p", NULL);
- return(1);
- }
- if (!htmlOmittedDefaultValue)
- return(0);
- for (i = 0; htmlNoContentElements[i] != NULL; i++) {
- if (xmlStrEqual(tag, BAD_CAST htmlNoContentElements[i])) {
- htmlAutoClose(ctxt, BAD_CAST"p");
- htmlCheckImplied(ctxt, BAD_CAST"p");
- htmlnamePush(ctxt, BAD_CAST"p");
- if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL))
- ctxt->sax->startElement(ctxt->userData, BAD_CAST"p", NULL);
- return(1);
- }
- }
- return(0);
-}
-
-/**
- * htmlIsScriptAttribute:
- * @name: an attribute name
- *
- * Check if an attribute is of content type Script
- *
- * Returns 1 is the attribute is a script 0 otherwise
- */
-int
-htmlIsScriptAttribute(const xmlChar *name) {
- unsigned int i;
-
- if (name == NULL)
- return(0);
- /*
- * all script attributes start with 'on'
- */
- if ((name[0] != 'o') || (name[1] != 'n'))
- return(0);
- for (i = 0;
- i < sizeof(htmlScriptAttributes)/sizeof(htmlScriptAttributes[0]);
- i++) {
- if (xmlStrEqual(name, (const xmlChar *) htmlScriptAttributes[i]))
- return(1);
- }
- return(0);
-}
-
-/************************************************************************
- * *
- * The list of HTML predefined entities *
- * *
- ************************************************************************/
-
-
-static const htmlEntityDesc html40EntitiesTable[] = {
-/*
- * the 4 absolute ones, plus apostrophe.
- */
-{ 34, "quot", "quotation mark = APL quote, U+0022 ISOnum" },
-{ 38, "amp", "ampersand, U+0026 ISOnum" },
-{ 39, "apos", "single quote" },
-{ 60, "lt", "less-than sign, U+003C ISOnum" },
-{ 62, "gt", "greater-than sign, U+003E ISOnum" },
-
-/*
- * A bunch still in the 128-255 range
- * Replacing them depend really on the charset used.
- */
-{ 160, "nbsp", "no-break space = non-breaking space, U+00A0 ISOnum" },
-{ 161, "iexcl","inverted exclamation mark, U+00A1 ISOnum" },
-{ 162, "cent", "cent sign, U+00A2 ISOnum" },
-{ 163, "pound","pound sign, U+00A3 ISOnum" },
-{ 164, "curren","currency sign, U+00A4 ISOnum" },
-{ 165, "yen", "yen sign = yuan sign, U+00A5 ISOnum" },
-{ 166, "brvbar","broken bar = broken vertical bar, U+00A6 ISOnum" },
-{ 167, "sect", "section sign, U+00A7 ISOnum" },
-{ 168, "uml", "diaeresis = spacing diaeresis, U+00A8 ISOdia" },
-{ 169, "copy", "copyright sign, U+00A9 ISOnum" },
-{ 170, "ordf", "feminine ordinal indicator, U+00AA ISOnum" },
-{ 171, "laquo","left-pointing double angle quotation mark = left pointing guillemet, U+00AB ISOnum" },
-{ 172, "not", "not sign, U+00AC ISOnum" },
-{ 173, "shy", "soft hyphen = discretionary hyphen, U+00AD ISOnum" },
-{ 174, "reg", "registered sign = registered trade mark sign, U+00AE ISOnum" },
-{ 175, "macr", "macron = spacing macron = overline = APL overbar, U+00AF ISOdia" },
-{ 176, "deg", "degree sign, U+00B0 ISOnum" },
-{ 177, "plusmn","plus-minus sign = plus-or-minus sign, U+00B1 ISOnum" },
-{ 178, "sup2", "superscript two = superscript digit two = squared, U+00B2 ISOnum" },
-{ 179, "sup3", "superscript three = superscript digit three = cubed, U+00B3 ISOnum" },
-{ 180, "acute","acute accent = spacing acute, U+00B4 ISOdia" },
-{ 181, "micro","micro sign, U+00B5 ISOnum" },
-{ 182, "para", "pilcrow sign = paragraph sign, U+00B6 ISOnum" },
-{ 183, "middot","middle dot = Georgian comma Greek middle dot, U+00B7 ISOnum" },
-{ 184, "cedil","cedilla = spacing cedilla, U+00B8 ISOdia" },
-{ 185, "sup1", "superscript one = superscript digit one, U+00B9 ISOnum" },
-{ 186, "ordm", "masculine ordinal indicator, U+00BA ISOnum" },
-{ 187, "raquo","right-pointing double angle quotation mark right pointing guillemet, U+00BB ISOnum" },
-{ 188, "frac14","vulgar fraction one quarter = fraction one quarter, U+00BC ISOnum" },
-{ 189, "frac12","vulgar fraction one half = fraction one half, U+00BD ISOnum" },
-{ 190, "frac34","vulgar fraction three quarters = fraction three quarters, U+00BE ISOnum" },
-{ 191, "iquest","inverted question mark = turned question mark, U+00BF ISOnum" },
-{ 192, "Agrave","latin capital letter A with grave = latin capital letter A grave, U+00C0 ISOlat1" },
-{ 193, "Aacute","latin capital letter A with acute, U+00C1 ISOlat1" },
-{ 194, "Acirc","latin capital letter A with circumflex, U+00C2 ISOlat1" },
-{ 195, "Atilde","latin capital letter A with tilde, U+00C3 ISOlat1" },
-{ 196, "Auml", "latin capital letter A with diaeresis, U+00C4 ISOlat1" },
-{ 197, "Aring","latin capital letter A with ring above = latin capital letter A ring, U+00C5 ISOlat1" },
-{ 198, "AElig","latin capital letter AE = latin capital ligature AE, U+00C6 ISOlat1" },
-{ 199, "Ccedil","latin capital letter C with cedilla, U+00C7 ISOlat1" },
-{ 200, "Egrave","latin capital letter E with grave, U+00C8 ISOlat1" },
-{ 201, "Eacute","latin capital letter E with acute, U+00C9 ISOlat1" },
-{ 202, "Ecirc","latin capital letter E with circumflex, U+00CA ISOlat1" },
-{ 203, "Euml", "latin capital letter E with diaeresis, U+00CB ISOlat1" },
-{ 204, "Igrave","latin capital letter I with grave, U+00CC ISOlat1" },
-{ 205, "Iacute","latin capital letter I with acute, U+00CD ISOlat1" },
-{ 206, "Icirc","latin capital letter I with circumflex, U+00CE ISOlat1" },
-{ 207, "Iuml", "latin capital letter I with diaeresis, U+00CF ISOlat1" },
-{ 208, "ETH", "latin capital letter ETH, U+00D0 ISOlat1" },
-{ 209, "Ntilde","latin capital letter N with tilde, U+00D1 ISOlat1" },
-{ 210, "Ograve","latin capital letter O with grave, U+00D2 ISOlat1" },
-{ 211, "Oacute","latin capital letter O with acute, U+00D3 ISOlat1" },
-{ 212, "Ocirc","latin capital letter O with circumflex, U+00D4 ISOlat1" },
-{ 213, "Otilde","latin capital letter O with tilde, U+00D5 ISOlat1" },
-{ 214, "Ouml", "latin capital letter O with diaeresis, U+00D6 ISOlat1" },
-{ 215, "times","multiplication sign, U+00D7 ISOnum" },
-{ 216, "Oslash","latin capital letter O with stroke latin capital letter O slash, U+00D8 ISOlat1" },
-{ 217, "Ugrave","latin capital letter U with grave, U+00D9 ISOlat1" },
-{ 218, "Uacute","latin capital letter U with acute, U+00DA ISOlat1" },
-{ 219, "Ucirc","latin capital letter U with circumflex, U+00DB ISOlat1" },
-{ 220, "Uuml", "latin capital letter U with diaeresis, U+00DC ISOlat1" },
-{ 221, "Yacute","latin capital letter Y with acute, U+00DD ISOlat1" },
-{ 222, "THORN","latin capital letter THORN, U+00DE ISOlat1" },
-{ 223, "szlig","latin small letter sharp s = ess-zed, U+00DF ISOlat1" },
-{ 224, "agrave","latin small letter a with grave = latin small letter a grave, U+00E0 ISOlat1" },
-{ 225, "aacute","latin small letter a with acute, U+00E1 ISOlat1" },
-{ 226, "acirc","latin small letter a with circumflex, U+00E2 ISOlat1" },
-{ 227, "atilde","latin small letter a with tilde, U+00E3 ISOlat1" },
-{ 228, "auml", "latin small letter a with diaeresis, U+00E4 ISOlat1" },
-{ 229, "aring","latin small letter a with ring above = latin small letter a ring, U+00E5 ISOlat1" },
-{ 230, "aelig","latin small letter ae = latin small ligature ae, U+00E6 ISOlat1" },
-{ 231, "ccedil","latin small letter c with cedilla, U+00E7 ISOlat1" },
-{ 232, "egrave","latin small letter e with grave, U+00E8 ISOlat1" },
-{ 233, "eacute","latin small letter e with acute, U+00E9 ISOlat1" },
-{ 234, "ecirc","latin small letter e with circumflex, U+00EA ISOlat1" },
-{ 235, "euml", "latin small letter e with diaeresis, U+00EB ISOlat1" },
-{ 236, "igrave","latin small letter i with grave, U+00EC ISOlat1" },
-{ 237, "iacute","latin small letter i with acute, U+00ED ISOlat1" },
-{ 238, "icirc","latin small letter i with circumflex, U+00EE ISOlat1" },
-{ 239, "iuml", "latin small letter i with diaeresis, U+00EF ISOlat1" },
-{ 240, "eth", "latin small letter eth, U+00F0 ISOlat1" },
-{ 241, "ntilde","latin small letter n with tilde, U+00F1 ISOlat1" },
-{ 242, "ograve","latin small letter o with grave, U+00F2 ISOlat1" },
-{ 243, "oacute","latin small letter o with acute, U+00F3 ISOlat1" },
-{ 244, "ocirc","latin small letter o with circumflex, U+00F4 ISOlat1" },
-{ 245, "otilde","latin small letter o with tilde, U+00F5 ISOlat1" },
-{ 246, "ouml", "latin small letter o with diaeresis, U+00F6 ISOlat1" },
-{ 247, "divide","division sign, U+00F7 ISOnum" },
-{ 248, "oslash","latin small letter o with stroke, = latin small letter o slash, U+00F8 ISOlat1" },
-{ 249, "ugrave","latin small letter u with grave, U+00F9 ISOlat1" },
-{ 250, "uacute","latin small letter u with acute, U+00FA ISOlat1" },
-{ 251, "ucirc","latin small letter u with circumflex, U+00FB ISOlat1" },
-{ 252, "uuml", "latin small letter u with diaeresis, U+00FC ISOlat1" },
-{ 253, "yacute","latin small letter y with acute, U+00FD ISOlat1" },
-{ 254, "thorn","latin small letter thorn with, U+00FE ISOlat1" },
-{ 255, "yuml", "latin small letter y with diaeresis, U+00FF ISOlat1" },
-
-{ 338, "OElig","latin capital ligature OE, U+0152 ISOlat2" },
-{ 339, "oelig","latin small ligature oe, U+0153 ISOlat2" },
-{ 352, "Scaron","latin capital letter S with caron, U+0160 ISOlat2" },
-{ 353, "scaron","latin small letter s with caron, U+0161 ISOlat2" },
-{ 376, "Yuml", "latin capital letter Y with diaeresis, U+0178 ISOlat2" },
-
-/*
- * Anything below should really be kept as entities references
- */
-{ 402, "fnof", "latin small f with hook = function = florin, U+0192 ISOtech" },
-
-{ 710, "circ", "modifier letter circumflex accent, U+02C6 ISOpub" },
-{ 732, "tilde","small tilde, U+02DC ISOdia" },
-
-{ 913, "Alpha","greek capital letter alpha, U+0391" },
-{ 914, "Beta", "greek capital letter beta, U+0392" },
-{ 915, "Gamma","greek capital letter gamma, U+0393 ISOgrk3" },
-{ 916, "Delta","greek capital letter delta, U+0394 ISOgrk3" },
-{ 917, "Epsilon","greek capital letter epsilon, U+0395" },
-{ 918, "Zeta", "greek capital letter zeta, U+0396" },
-{ 919, "Eta", "greek capital letter eta, U+0397" },
-{ 920, "Theta","greek capital letter theta, U+0398 ISOgrk3" },
-{ 921, "Iota", "greek capital letter iota, U+0399" },
-{ 922, "Kappa","greek capital letter kappa, U+039A" },
-{ 923, "Lambda", "greek capital letter lambda, U+039B ISOgrk3" },
-{ 924, "Mu", "greek capital letter mu, U+039C" },
-{ 925, "Nu", "greek capital letter nu, U+039D" },
-{ 926, "Xi", "greek capital letter xi, U+039E ISOgrk3" },
-{ 927, "Omicron","greek capital letter omicron, U+039F" },
-{ 928, "Pi", "greek capital letter pi, U+03A0 ISOgrk3" },
-{ 929, "Rho", "greek capital letter rho, U+03A1" },
-{ 931, "Sigma","greek capital letter sigma, U+03A3 ISOgrk3" },
-{ 932, "Tau", "greek capital letter tau, U+03A4" },
-{ 933, "Upsilon","greek capital letter upsilon, U+03A5 ISOgrk3" },
-{ 934, "Phi", "greek capital letter phi, U+03A6 ISOgrk3" },
-{ 935, "Chi", "greek capital letter chi, U+03A7" },
-{ 936, "Psi", "greek capital letter psi, U+03A8 ISOgrk3" },
-{ 937, "Omega","greek capital letter omega, U+03A9 ISOgrk3" },
-
-{ 945, "alpha","greek small letter alpha, U+03B1 ISOgrk3" },
-{ 946, "beta", "greek small letter beta, U+03B2 ISOgrk3" },
-{ 947, "gamma","greek small letter gamma, U+03B3 ISOgrk3" },
-{ 948, "delta","greek small letter delta, U+03B4 ISOgrk3" },
-{ 949, "epsilon","greek small letter epsilon, U+03B5 ISOgrk3" },
-{ 950, "zeta", "greek small letter zeta, U+03B6 ISOgrk3" },
-{ 951, "eta", "greek small letter eta, U+03B7 ISOgrk3" },
-{ 952, "theta","greek small letter theta, U+03B8 ISOgrk3" },
-{ 953, "iota", "greek small letter iota, U+03B9 ISOgrk3" },
-{ 954, "kappa","greek small letter kappa, U+03BA ISOgrk3" },
-{ 955, "lambda","greek small letter lambda, U+03BB ISOgrk3" },
-{ 956, "mu", "greek small letter mu, U+03BC ISOgrk3" },
-{ 957, "nu", "greek small letter nu, U+03BD ISOgrk3" },
-{ 958, "xi", "greek small letter xi, U+03BE ISOgrk3" },
-{ 959, "omicron","greek small letter omicron, U+03BF NEW" },
-{ 960, "pi", "greek small letter pi, U+03C0 ISOgrk3" },
-{ 961, "rho", "greek small letter rho, U+03C1 ISOgrk3" },
-{ 962, "sigmaf","greek small letter final sigma, U+03C2 ISOgrk3" },
-{ 963, "sigma","greek small letter sigma, U+03C3 ISOgrk3" },
-{ 964, "tau", "greek small letter tau, U+03C4 ISOgrk3" },
-{ 965, "upsilon","greek small letter upsilon, U+03C5 ISOgrk3" },
-{ 966, "phi", "greek small letter phi, U+03C6 ISOgrk3" },
-{ 967, "chi", "greek small letter chi, U+03C7 ISOgrk3" },
-{ 968, "psi", "greek small letter psi, U+03C8 ISOgrk3" },
-{ 969, "omega","greek small letter omega, U+03C9 ISOgrk3" },
-{ 977, "thetasym","greek small letter theta symbol, U+03D1 NEW" },
-{ 978, "upsih","greek upsilon with hook symbol, U+03D2 NEW" },
-{ 982, "piv", "greek pi symbol, U+03D6 ISOgrk3" },
-
-{ 8194, "ensp", "en space, U+2002 ISOpub" },
-{ 8195, "emsp", "em space, U+2003 ISOpub" },
-{ 8201, "thinsp","thin space, U+2009 ISOpub" },
-{ 8204, "zwnj", "zero width non-joiner, U+200C NEW RFC 2070" },
-{ 8205, "zwj", "zero width joiner, U+200D NEW RFC 2070" },
-{ 8206, "lrm", "left-to-right mark, U+200E NEW RFC 2070" },
-{ 8207, "rlm", "right-to-left mark, U+200F NEW RFC 2070" },
-{ 8211, "ndash","en dash, U+2013 ISOpub" },
-{ 8212, "mdash","em dash, U+2014 ISOpub" },
-{ 8216, "lsquo","left single quotation mark, U+2018 ISOnum" },
-{ 8217, "rsquo","right single quotation mark, U+2019 ISOnum" },
-{ 8218, "sbquo","single low-9 quotation mark, U+201A NEW" },
-{ 8220, "ldquo","left double quotation mark, U+201C ISOnum" },
-{ 8221, "rdquo","right double quotation mark, U+201D ISOnum" },
-{ 8222, "bdquo","double low-9 quotation mark, U+201E NEW" },
-{ 8224, "dagger","dagger, U+2020 ISOpub" },
-{ 8225, "Dagger","double dagger, U+2021 ISOpub" },
-
-{ 8226, "bull", "bullet = black small circle, U+2022 ISOpub" },
-{ 8230, "hellip","horizontal ellipsis = three dot leader, U+2026 ISOpub" },
-
-{ 8240, "permil","per mille sign, U+2030 ISOtech" },
-
-{ 8242, "prime","prime = minutes = feet, U+2032 ISOtech" },
-{ 8243, "Prime","double prime = seconds = inches, U+2033 ISOtech" },
-
-{ 8249, "lsaquo","single left-pointing angle quotation mark, U+2039 ISO proposed" },
-{ 8250, "rsaquo","single right-pointing angle quotation mark, U+203A ISO proposed" },
-
-{ 8254, "oline","overline = spacing overscore, U+203E NEW" },
-{ 8260, "frasl","fraction slash, U+2044 NEW" },
-
-{ 8364, "euro", "euro sign, U+20AC NEW" },
-
-{ 8465, "image","blackletter capital I = imaginary part, U+2111 ISOamso" },
-{ 8472, "weierp","script capital P = power set = Weierstrass p, U+2118 ISOamso" },
-{ 8476, "real", "blackletter capital R = real part symbol, U+211C ISOamso" },
-{ 8482, "trade","trade mark sign, U+2122 ISOnum" },
-{ 8501, "alefsym","alef symbol = first transfinite cardinal, U+2135 NEW" },
-{ 8592, "larr", "leftwards arrow, U+2190 ISOnum" },
-{ 8593, "uarr", "upwards arrow, U+2191 ISOnum" },
-{ 8594, "rarr", "rightwards arrow, U+2192 ISOnum" },
-{ 8595, "darr", "downwards arrow, U+2193 ISOnum" },
-{ 8596, "harr", "left right arrow, U+2194 ISOamsa" },
-{ 8629, "crarr","downwards arrow with corner leftwards = carriage return, U+21B5 NEW" },
-{ 8656, "lArr", "leftwards double arrow, U+21D0 ISOtech" },
-{ 8657, "uArr", "upwards double arrow, U+21D1 ISOamsa" },
-{ 8658, "rArr", "rightwards double arrow, U+21D2 ISOtech" },
-{ 8659, "dArr", "downwards double arrow, U+21D3 ISOamsa" },
-{ 8660, "hArr", "left right double arrow, U+21D4 ISOamsa" },
-
-{ 8704, "forall","for all, U+2200 ISOtech" },
-{ 8706, "part", "partial differential, U+2202 ISOtech" },
-{ 8707, "exist","there exists, U+2203 ISOtech" },
-{ 8709, "empty","empty set = null set = diameter, U+2205 ISOamso" },
-{ 8711, "nabla","nabla = backward difference, U+2207 ISOtech" },
-{ 8712, "isin", "element of, U+2208 ISOtech" },
-{ 8713, "notin","not an element of, U+2209 ISOtech" },
-{ 8715, "ni", "contains as member, U+220B ISOtech" },
-{ 8719, "prod", "n-ary product = product sign, U+220F ISOamsb" },
-{ 8721, "sum", "n-ary summation, U+2211 ISOamsb" },
-{ 8722, "minus","minus sign, U+2212 ISOtech" },
-{ 8727, "lowast","asterisk operator, U+2217 ISOtech" },
-{ 8730, "radic","square root = radical sign, U+221A ISOtech" },
-{ 8733, "prop", "proportional to, U+221D ISOtech" },
-{ 8734, "infin","infinity, U+221E ISOtech" },
-{ 8736, "ang", "angle, U+2220 ISOamso" },
-{ 8743, "and", "logical and = wedge, U+2227 ISOtech" },
-{ 8744, "or", "logical or = vee, U+2228 ISOtech" },
-{ 8745, "cap", "intersection = cap, U+2229 ISOtech" },
-{ 8746, "cup", "union = cup, U+222A ISOtech" },
-{ 8747, "int", "integral, U+222B ISOtech" },
-{ 8756, "there4","therefore, U+2234 ISOtech" },
-{ 8764, "sim", "tilde operator = varies with = similar to, U+223C ISOtech" },
-{ 8773, "cong", "approximately equal to, U+2245 ISOtech" },
-{ 8776, "asymp","almost equal to = asymptotic to, U+2248 ISOamsr" },
-{ 8800, "ne", "not equal to, U+2260 ISOtech" },
-{ 8801, "equiv","identical to, U+2261 ISOtech" },
-{ 8804, "le", "less-than or equal to, U+2264 ISOtech" },
-{ 8805, "ge", "greater-than or equal to, U+2265 ISOtech" },
-{ 8834, "sub", "subset of, U+2282 ISOtech" },
-{ 8835, "sup", "superset of, U+2283 ISOtech" },
-{ 8836, "nsub", "not a subset of, U+2284 ISOamsn" },
-{ 8838, "sube", "subset of or equal to, U+2286 ISOtech" },
-{ 8839, "supe", "superset of or equal to, U+2287 ISOtech" },
-{ 8853, "oplus","circled plus = direct sum, U+2295 ISOamsb" },
-{ 8855, "otimes","circled times = vector product, U+2297 ISOamsb" },
-{ 8869, "perp", "up tack = orthogonal to = perpendicular, U+22A5 ISOtech" },
-{ 8901, "sdot", "dot operator, U+22C5 ISOamsb" },
-{ 8968, "lceil","left ceiling = apl upstile, U+2308 ISOamsc" },
-{ 8969, "rceil","right ceiling, U+2309 ISOamsc" },
-{ 8970, "lfloor","left floor = apl downstile, U+230A ISOamsc" },
-{ 8971, "rfloor","right floor, U+230B ISOamsc" },
-{ 9001, "lang", "left-pointing angle bracket = bra, U+2329 ISOtech" },
-{ 9002, "rang", "right-pointing angle bracket = ket, U+232A ISOtech" },
-{ 9674, "loz", "lozenge, U+25CA ISOpub" },
-
-{ 9824, "spades","black spade suit, U+2660 ISOpub" },
-{ 9827, "clubs","black club suit = shamrock, U+2663 ISOpub" },
-{ 9829, "hearts","black heart suit = valentine, U+2665 ISOpub" },
-{ 9830, "diams","black diamond suit, U+2666 ISOpub" },
-
-};
-
-/************************************************************************
- * *
- * Commodity functions to handle entities *
- * *
- ************************************************************************/
-
-/*
- * Macro used to grow the current buffer.
- */
-#define growBuffer(buffer) { \
- xmlChar *tmp; \
- buffer##_size *= 2; \
- tmp = (xmlChar *) xmlRealloc(buffer, buffer##_size * sizeof(xmlChar)); \
- if (tmp == NULL) { \
- htmlErrMemory(ctxt, "growing buffer\n"); \
- xmlFree(buffer); \
- return(NULL); \
- } \
- buffer = tmp; \
-}
-
-/**
- * htmlEntityLookup:
- * @name: the entity name
- *
- * Lookup the given entity in EntitiesTable
- *
- * TODO: the linear scan is really ugly, an hash table is really needed.
- *
- * Returns the associated htmlEntityDescPtr if found, NULL otherwise.
- */
-const htmlEntityDesc *
-htmlEntityLookup(const xmlChar *name) {
- unsigned int i;
-
- for (i = 0;i < (sizeof(html40EntitiesTable)/
- sizeof(html40EntitiesTable[0]));i++) {
- if (xmlStrEqual(name, BAD_CAST html40EntitiesTable[i].name)) {
- return((htmlEntityDescPtr) &html40EntitiesTable[i]);
- }
- }
- return(NULL);
-}
-
-/**
- * htmlEntityValueLookup:
- * @value: the entity's unicode value
- *
- * Lookup the given entity in EntitiesTable
- *
- * TODO: the linear scan is really ugly, an hash table is really needed.
- *
- * Returns the associated htmlEntityDescPtr if found, NULL otherwise.
- */
-const htmlEntityDesc *
-htmlEntityValueLookup(unsigned int value) {
- unsigned int i;
-
- for (i = 0;i < (sizeof(html40EntitiesTable)/
- sizeof(html40EntitiesTable[0]));i++) {
- if (html40EntitiesTable[i].value >= value) {
- if (html40EntitiesTable[i].value > value)
- break;
- return((htmlEntityDescPtr) &html40EntitiesTable[i]);
- }
- }
- return(NULL);
-}
-
-/**
- * UTF8ToHtml:
- * @out: a pointer to an array of bytes to store the result
- * @outlen: the length of @out
- * @in: a pointer to an array of UTF-8 chars
- * @inlen: the length of @in
- *
- * Take a block of UTF-8 chars in and try to convert it to an ASCII
- * plus HTML entities block of chars out.
- *
- * Returns 0 if success, -2 if the transcoding fails, or -1 otherwise
- * The value of @inlen after return is the number of octets consumed
- * as the return value is positive, else unpredictable.
- * The value of @outlen after return is the number of octets consumed.
- */
-int
-UTF8ToHtml(unsigned char* out, int *outlen,
- const unsigned char* in, int *inlen) {
- const unsigned char* processed = in;
- const unsigned char* outend;
- const unsigned char* outstart = out;
- const unsigned char* instart = in;
- const unsigned char* inend;
- unsigned int c, d;
- int trailing;
-
- if ((out == NULL) || (outlen == NULL) || (inlen == NULL)) return(-1);
- if (in == NULL) {
- /*
- * initialization nothing to do
- */
- *outlen = 0;
- *inlen = 0;
- return(0);
- }
- inend = in + (*inlen);
- outend = out + (*outlen);
- while (in < inend) {
- d = *in++;
- if (d < 0x80) { c= d; trailing= 0; }
- else if (d < 0xC0) {
- /* trailing byte in leading position */
- *outlen = out - outstart;
- *inlen = processed - instart;
- return(-2);
- } else if (d < 0xE0) { c= d & 0x1F; trailing= 1; }
- else if (d < 0xF0) { c= d & 0x0F; trailing= 2; }
- else if (d < 0xF8) { c= d & 0x07; trailing= 3; }
- else {
- /* no chance for this in Ascii */
- *outlen = out - outstart;
- *inlen = processed - instart;
- return(-2);
- }
-
- if (inend - in < trailing) {
- break;
- }
-
- for ( ; trailing; trailing--) {
- if ((in >= inend) || (((d= *in++) & 0xC0) != 0x80))
- break;
- c <<= 6;
- c |= d & 0x3F;
- }
-
- /* assertion: c is a single UTF-4 value */
- if (c < 0x80) {
- if (out + 1 >= outend)
- break;
- *out++ = c;
- } else {
- int len;
- const htmlEntityDesc * ent;
- const char *cp;
- char nbuf[16];
-
- /*
- * Try to lookup a predefined HTML entity for it
- */
-
- ent = htmlEntityValueLookup(c);
- if (ent == NULL) {
- snprintf(nbuf, sizeof(nbuf), "#%u", c);
- cp = nbuf;
- }
- else
- cp = ent->name;
- len = strlen(cp);
- if (out + 2 + len >= outend)
- break;
- *out++ = '&';
- memcpy(out, cp, len);
- out += len;
- *out++ = ';';
- }
- processed = in;
- }
- *outlen = out - outstart;
- *inlen = processed - instart;
- return(0);
-}
-
-/**
- * htmlEncodeEntities:
- * @out: a pointer to an array of bytes to store the result
- * @outlen: the length of @out
- * @in: a pointer to an array of UTF-8 chars
- * @inlen: the length of @in
- * @quoteChar: the quote character to escape (' or ") or zero.
- *
- * Take a block of UTF-8 chars in and try to convert it to an ASCII
- * plus HTML entities block of chars out.
- *
- * Returns 0 if success, -2 if the transcoding fails, or -1 otherwise
- * The value of @inlen after return is the number of octets consumed
- * as the return value is positive, else unpredictable.
- * The value of @outlen after return is the number of octets consumed.
- */
-int
-htmlEncodeEntities(unsigned char* out, int *outlen,
- const unsigned char* in, int *inlen, int quoteChar) {
- const unsigned char* processed = in;
- const unsigned char* outend;
- const unsigned char* outstart = out;
- const unsigned char* instart = in;
- const unsigned char* inend;
- unsigned int c, d;
- int trailing;
-
- if ((out == NULL) || (outlen == NULL) || (inlen == NULL) || (in == NULL))
- return(-1);
- outend = out + (*outlen);
- inend = in + (*inlen);
- while (in < inend) {
- d = *in++;
- if (d < 0x80) { c= d; trailing= 0; }
- else if (d < 0xC0) {
- /* trailing byte in leading position */
- *outlen = out - outstart;
- *inlen = processed - instart;
- return(-2);
- } else if (d < 0xE0) { c= d & 0x1F; trailing= 1; }
- else if (d < 0xF0) { c= d & 0x0F; trailing= 2; }
- else if (d < 0xF8) { c= d & 0x07; trailing= 3; }
- else {
- /* no chance for this in Ascii */
- *outlen = out - outstart;
- *inlen = processed - instart;
- return(-2);
- }
-
- if (inend - in < trailing)
- break;
-
- while (trailing--) {
- if (((d= *in++) & 0xC0) != 0x80) {
- *outlen = out - outstart;
- *inlen = processed - instart;
- return(-2);
- }
- c <<= 6;
- c |= d & 0x3F;
- }
-
- /* assertion: c is a single UTF-4 value */
- if ((c < 0x80) && (c != (unsigned int) quoteChar) &&
- (c != '&') && (c != '<') && (c != '>')) {
- if (out >= outend)
- break;
- *out++ = c;
- } else {
- const htmlEntityDesc * ent;
- const char *cp;
- char nbuf[16];
- int len;
-
- /*
- * Try to lookup a predefined HTML entity for it
- */
- ent = htmlEntityValueLookup(c);
- if (ent == NULL) {
- snprintf(nbuf, sizeof(nbuf), "#%u", c);
- cp = nbuf;
- }
- else
- cp = ent->name;
- len = strlen(cp);
- if (out + 2 + len > outend)
- break;
- *out++ = '&';
- memcpy(out, cp, len);
- out += len;
- *out++ = ';';
- }
- processed = in;
- }
- *outlen = out - outstart;
- *inlen = processed - instart;
- return(0);
-}
-
-/************************************************************************
- * *
- * Commodity functions to handle streams *
- * *
- ************************************************************************/
-
-/**
- * htmlNewInputStream:
- * @ctxt: an HTML parser context
- *
- * Create a new input stream structure
- * Returns the new input stream or NULL
- */
-static htmlParserInputPtr
-htmlNewInputStream(htmlParserCtxtPtr ctxt) {
- htmlParserInputPtr input;
-
- input = (xmlParserInputPtr) xmlMalloc(sizeof(htmlParserInput));
- if (input == NULL) {
- htmlErrMemory(ctxt, "couldn't allocate a new input stream\n");
- return(NULL);
- }
- memset(input, 0, sizeof(htmlParserInput));
- input->filename = NULL;
- input->directory = NULL;
- input->base = NULL;
- input->cur = NULL;
- input->buf = NULL;
- input->line = 1;
- input->col = 1;
- input->buf = NULL;
- input->free = NULL;
- input->version = NULL;
- input->consumed = 0;
- input->length = 0;
- return(input);
-}
-
-
-/************************************************************************
- * *
- * Commodity functions, cleanup needed ? *
- * *
- ************************************************************************/
-/*
- * all tags allowing pc data from the html 4.01 loose dtd
- * NOTE: it might be more apropriate to integrate this information
- * into the html40ElementTable array but I don't want to risk any
- * binary incomptibility
- */
-static const char *allowPCData[] = {
- "a", "abbr", "acronym", "address", "applet", "b", "bdo", "big",
- "blockquote", "body", "button", "caption", "center", "cite", "code",
- "dd", "del", "dfn", "div", "dt", "em", "font", "form", "h1", "h2",
- "h3", "h4", "h5", "h6", "i", "iframe", "ins", "kbd", "label", "legend",
- "li", "noframes", "noscript", "object", "p", "pre", "q", "s", "samp",
- "small", "span", "strike", "strong", "td", "th", "tt", "u", "var"
-};
-
-/**
- * areBlanks:
- * @ctxt: an HTML parser context
- * @str: a xmlChar *
- * @len: the size of @str
- *
- * Is this a sequence of blank chars that one can ignore ?
- *
- * Returns 1 if ignorable 0 otherwise.
- */
-
-static int areBlanks(htmlParserCtxtPtr ctxt, const xmlChar *str, int len) {
- unsigned int i;
- int j;
- xmlNodePtr lastChild;
- xmlDtdPtr dtd;
-
- for (j = 0;j < len;j++)
- if (!(IS_BLANK_CH(str[j]))) return(0);
-
- if (CUR == 0) return(1);
- if (CUR != '<') return(0);
- if (ctxt->name == NULL)
- return(1);
- if (xmlStrEqual(ctxt->name, BAD_CAST"html"))
- return(1);
- if (xmlStrEqual(ctxt->name, BAD_CAST"head"))
- return(1);
-
- /* Only strip CDATA children of the body tag for strict HTML DTDs */
- if (xmlStrEqual(ctxt->name, BAD_CAST "body") && ctxt->myDoc != NULL) {
- dtd = xmlGetIntSubset(ctxt->myDoc);
- if (dtd != NULL && dtd->ExternalID != NULL) {
- if (!xmlStrcasecmp(dtd->ExternalID, BAD_CAST "-//W3C//DTD HTML 4.01//EN") ||
- !xmlStrcasecmp(dtd->ExternalID, BAD_CAST "-//W3C//DTD HTML 4//EN"))
- return(1);
- }
- }
-
- if (ctxt->node == NULL) return(0);
- lastChild = xmlGetLastChild(ctxt->node);
- while ((lastChild) && (lastChild->type == XML_COMMENT_NODE))
- lastChild = lastChild->prev;
- if (lastChild == NULL) {
- if ((ctxt->node->type != XML_ELEMENT_NODE) &&
- (ctxt->node->content != NULL)) return(0);
- /* keep ws in constructs like ...<b> </b>...
- for all tags "b" allowing PCDATA */
- for ( i = 0; i < sizeof(allowPCData)/sizeof(allowPCData[0]); i++ ) {
- if ( xmlStrEqual(ctxt->name, BAD_CAST allowPCData[i]) ) {
- return(0);
- }
- }
- } else if (xmlNodeIsText(lastChild)) {
- return(0);
- } else {
- /* keep ws in constructs like <p><b>xy</b> <i>z</i><p>
- for all tags "p" allowing PCDATA */
- for ( i = 0; i < sizeof(allowPCData)/sizeof(allowPCData[0]); i++ ) {
- if ( xmlStrEqual(lastChild->name, BAD_CAST allowPCData[i]) ) {
- return(0);
- }
- }
- }
- return(1);
-}
-
-/**
- * htmlNewDocNoDtD:
- * @URI: URI for the dtd, or NULL
- * @ExternalID: the external ID of the DTD, or NULL
- *
- * Creates a new HTML document without a DTD node if @URI and @ExternalID
- * are NULL
- *
- * Returns a new document, do not initialize the DTD if not provided
- */
-htmlDocPtr
-htmlNewDocNoDtD(const xmlChar *URI, const xmlChar *ExternalID) {
- xmlDocPtr cur;
-
- /*
- * Allocate a new document and fill the fields.
- */
- cur = (xmlDocPtr) xmlMalloc(sizeof(xmlDoc));
- if (cur == NULL) {
- htmlErrMemory(NULL, "HTML document creation failed\n");
- return(NULL);
- }
- memset(cur, 0, sizeof(xmlDoc));
-
- cur->type = XML_HTML_DOCUMENT_NODE;
- cur->version = NULL;
- cur->intSubset = NULL;
- cur->doc = cur;
- cur->name = NULL;
- cur->children = NULL;
- cur->extSubset = NULL;
- cur->oldNs = NULL;
- cur->encoding = NULL;
- cur->standalone = 1;
- cur->compression = 0;
- cur->ids = NULL;
- cur->refs = NULL;
- cur->_private = NULL;
- cur->charset = XML_CHAR_ENCODING_UTF8;
- cur->properties = XML_DOC_HTML | XML_DOC_USERBUILT;
- if ((ExternalID != NULL) ||
- (URI != NULL))
- xmlCreateIntSubset(cur, BAD_CAST "html", ExternalID, URI);
- return(cur);
-}
-
-/**
- * htmlNewDoc:
- * @URI: URI for the dtd, or NULL
- * @ExternalID: the external ID of the DTD, or NULL
- *
- * Creates a new HTML document
- *
- * Returns a new document
- */
-htmlDocPtr
-htmlNewDoc(const xmlChar *URI, const xmlChar *ExternalID) {
- if ((URI == NULL) && (ExternalID == NULL))
- return(htmlNewDocNoDtD(
- BAD_CAST "http://www.w3.org/TR/REC-html40/loose.dtd",
- BAD_CAST "-//W3C//DTD HTML 4.0 Transitional//EN"));
-
- return(htmlNewDocNoDtD(URI, ExternalID));
-}
-
-
-/************************************************************************
- * *
- * The parser itself *
- * Relates to http://www.w3.org/TR/html40 *
- * *
- ************************************************************************/
-
-/************************************************************************
- * *
- * The parser itself *
- * *
- ************************************************************************/
-
-static const xmlChar * htmlParseNameComplex(xmlParserCtxtPtr ctxt);
-
-/**
- * htmlParseHTMLName:
- * @ctxt: an HTML parser context
- *
- * parse an HTML tag or attribute name, note that we convert it to lowercase
- * since HTML names are not case-sensitive.
- *
- * Returns the Tag Name parsed or NULL
- */
-
-static const xmlChar *
-htmlParseHTMLName(htmlParserCtxtPtr ctxt) {
- int i = 0;
- xmlChar loc[HTML_PARSER_BUFFER_SIZE];
-
- if (!IS_ASCII_LETTER(CUR) && (CUR != '_') &&
- (CUR != ':') && (CUR != '.')) return(NULL);
-
- while ((i < HTML_PARSER_BUFFER_SIZE) &&
- ((IS_ASCII_LETTER(CUR)) || (IS_ASCII_DIGIT(CUR)) ||
- (CUR == ':') || (CUR == '-') || (CUR == '_') ||
- (CUR == '.'))) {
- if ((CUR >= 'A') && (CUR <= 'Z')) loc[i] = CUR + 0x20;
- else loc[i] = CUR;
- i++;
-
- NEXT;
- }
-
- return(xmlDictLookup(ctxt->dict, loc, i));
-}
-
-
-/**
- * htmlParseHTMLName_nonInvasive:
- * @ctxt: an HTML parser context
- *
- * parse an HTML tag or attribute name, note that we convert it to lowercase
- * since HTML names are not case-sensitive, this doesn't consume the data
- * from the stream, it's a look-ahead
- *
- * Returns the Tag Name parsed or NULL
- */
-
-static const xmlChar *
-htmlParseHTMLName_nonInvasive(htmlParserCtxtPtr ctxt) {
- int i = 0;
- xmlChar loc[HTML_PARSER_BUFFER_SIZE];
-
- if (!IS_ASCII_LETTER(NXT(1)) && (NXT(1) != '_') &&
- (NXT(1) != ':')) return(NULL);
-
- while ((i < HTML_PARSER_BUFFER_SIZE) &&
- ((IS_ASCII_LETTER(NXT(1+i))) || (IS_ASCII_DIGIT(NXT(1+i))) ||
- (NXT(1+i) == ':') || (NXT(1+i) == '-') || (NXT(1+i) == '_'))) {
- if ((NXT(1+i) >= 'A') && (NXT(1+i) <= 'Z')) loc[i] = NXT(1+i) + 0x20;
- else loc[i] = NXT(1+i);
- i++;
- }
-
- return(xmlDictLookup(ctxt->dict, loc, i));
-}
-
-
-/**
- * htmlParseName:
- * @ctxt: an HTML parser context
- *
- * parse an HTML name, this routine is case sensitive.
- *
- * Returns the Name parsed or NULL
- */
-
-static const xmlChar *
-htmlParseName(htmlParserCtxtPtr ctxt) {
- const xmlChar *in;
- const xmlChar *ret;
- int count = 0;
-
- GROW;
-
- /*
- * Accelerator for simple ASCII names
- */
- in = ctxt->input->cur;
- if (((*in >= 0x61) && (*in <= 0x7A)) ||
- ((*in >= 0x41) && (*in <= 0x5A)) ||
- (*in == '_') || (*in == ':')) {
- in++;
- while (((*in >= 0x61) && (*in <= 0x7A)) ||
- ((*in >= 0x41) && (*in <= 0x5A)) ||
- ((*in >= 0x30) && (*in <= 0x39)) ||
- (*in == '_') || (*in == '-') ||
- (*in == ':') || (*in == '.'))
- in++;
-
- if (in == ctxt->input->end)
- return(NULL);
-
- if ((*in > 0) && (*in < 0x80)) {
- count = in - ctxt->input->cur;
- ret = xmlDictLookup(ctxt->dict, ctxt->input->cur, count);
- ctxt->input->cur = in;
- ctxt->nbChars += count;
- ctxt->input->col += count;
- return(ret);
- }
- }
- return(htmlParseNameComplex(ctxt));
-}
-
-static const xmlChar *
-htmlParseNameComplex(xmlParserCtxtPtr ctxt) {
- int len = 0, l;
- int c;
- int count = 0;
- const xmlChar *base = ctxt->input->base;
-
- /*
- * Handler for more complex cases
- */
- GROW;
- c = CUR_CHAR(l);
- if ((c == ' ') || (c == '>') || (c == '/') || /* accelerators */
- (!IS_LETTER(c) && (c != '_') &&
- (c != ':'))) {
- return(NULL);
- }
-
- while ((c != ' ') && (c != '>') && (c != '/') && /* test bigname.xml */
- ((IS_LETTER(c)) || (IS_DIGIT(c)) ||
- (c == '.') || (c == '-') ||
- (c == '_') || (c == ':') ||
- (IS_COMBINING(c)) ||
- (IS_EXTENDER(c)))) {
- if (count++ > 100) {
- count = 0;
- GROW;
- }
- len += l;
- NEXTL(l);
- c = CUR_CHAR(l);
- if (ctxt->input->base != base) {
- /*
- * We changed encoding from an unknown encoding
- * Input buffer changed location, so we better start again
- */
- return(htmlParseNameComplex(ctxt));
- }
- }
-
- if (ctxt->input->base > ctxt->input->cur - len)
- return(NULL);
-
- return(xmlDictLookup(ctxt->dict, ctxt->input->cur - len, len));
-}
-
-
-/**
- * htmlParseHTMLAttribute:
- * @ctxt: an HTML parser context
- * @stop: a char stop value
- *
- * parse an HTML attribute value till the stop (quote), if
- * stop is 0 then it stops at the first space
- *
- * Returns the attribute parsed or NULL
- */
-
-static xmlChar *
-htmlParseHTMLAttribute(htmlParserCtxtPtr ctxt, const xmlChar stop) {
- xmlChar *buffer = NULL;
- int buffer_size = 0;
- xmlChar *out = NULL;
- const xmlChar *name = NULL;
- const xmlChar *cur = NULL;
- const htmlEntityDesc * ent;
-
- /*
- * allocate a translation buffer.
- */
- buffer_size = HTML_PARSER_BUFFER_SIZE;
- buffer = (xmlChar *) xmlMallocAtomic(buffer_size * sizeof(xmlChar));
- if (buffer == NULL) {
- htmlErrMemory(ctxt, "buffer allocation failed\n");
- return(NULL);
- }
- out = buffer;
-
- /*
- * Ok loop until we reach one of the ending chars
- */
- while ((CUR != 0) && (CUR != stop)) {
- if ((stop == 0) && (CUR == '>')) break;
- if ((stop == 0) && (IS_BLANK_CH(CUR))) break;
- if (CUR == '&') {
- if (NXT(1) == '#') {
- unsigned int c;
- int bits;
-
- c = htmlParseCharRef(ctxt);
- if (c < 0x80)
- { *out++ = c; bits= -6; }
- else if (c < 0x800)
- { *out++ =((c >> 6) & 0x1F) | 0xC0; bits= 0; }
- else if (c < 0x10000)
- { *out++ =((c >> 12) & 0x0F) | 0xE0; bits= 6; }
- else
- { *out++ =((c >> 18) & 0x07) | 0xF0; bits= 12; }
-
- for ( ; bits >= 0; bits-= 6) {
- *out++ = ((c >> bits) & 0x3F) | 0x80;
- }
-
- if (out - buffer > buffer_size - 100) {
- int indx = out - buffer;
-
- growBuffer(buffer);
- out = &buffer[indx];
- }
- } else {
- ent = htmlParseEntityRef(ctxt, &name);
- if (name == NULL) {
- *out++ = '&';
- if (out - buffer > buffer_size - 100) {
- int indx = out - buffer;
-
- growBuffer(buffer);
- out = &buffer[indx];
- }
- } else if (ent == NULL) {
- *out++ = '&';
- cur = name;
- while (*cur != 0) {
- if (out - buffer > buffer_size - 100) {
- int indx = out - buffer;
-
- growBuffer(buffer);
- out = &buffer[indx];
- }
- *out++ = *cur++;
- }
- } else {
- unsigned int c;
- int bits;
-
- if (out - buffer > buffer_size - 100) {
- int indx = out - buffer;
-
- growBuffer(buffer);
- out = &buffer[indx];
- }
- c = ent->value;
- if (c < 0x80)
- { *out++ = c; bits= -6; }
- else if (c < 0x800)
- { *out++ =((c >> 6) & 0x1F) | 0xC0; bits= 0; }
- else if (c < 0x10000)
- { *out++ =((c >> 12) & 0x0F) | 0xE0; bits= 6; }
- else
- { *out++ =((c >> 18) & 0x07) | 0xF0; bits= 12; }
-
- for ( ; bits >= 0; bits-= 6) {
- *out++ = ((c >> bits) & 0x3F) | 0x80;
- }
- }
- }
- } else {
- unsigned int c;
- int bits, l;
-
- if (out - buffer > buffer_size - 100) {
- int indx = out - buffer;
-
- growBuffer(buffer);
- out = &buffer[indx];
- }
- c = CUR_CHAR(l);
- if (c < 0x80)
- { *out++ = c; bits= -6; }
- else if (c < 0x800)
- { *out++ =((c >> 6) & 0x1F) | 0xC0; bits= 0; }
- else if (c < 0x10000)
- { *out++ =((c >> 12) & 0x0F) | 0xE0; bits= 6; }
- else
- { *out++ =((c >> 18) & 0x07) | 0xF0; bits= 12; }
-
- for ( ; bits >= 0; bits-= 6) {
- *out++ = ((c >> bits) & 0x3F) | 0x80;
- }
- NEXT;
- }
- }
- *out = 0;
- return(buffer);
-}
-
-/**
- * htmlParseEntityRef:
- * @ctxt: an HTML parser context
- * @str: location to store the entity name
- *
- * parse an HTML ENTITY references
- *
- * [68] EntityRef ::= '&' Name ';'
- *
- * Returns the associated htmlEntityDescPtr if found, or NULL otherwise,
- * if non-NULL *str will have to be freed by the caller.
- */
-const htmlEntityDesc *
-htmlParseEntityRef(htmlParserCtxtPtr ctxt, const xmlChar **str) {
- const xmlChar *name;
- const htmlEntityDesc * ent = NULL;
-
- if (str != NULL) *str = NULL;
- if ((ctxt == NULL) || (ctxt->input == NULL)) return(NULL);
-
- if (CUR == '&') {
- NEXT;
- name = htmlParseName(ctxt);
- if (name == NULL) {
- htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
- "htmlParseEntityRef: no name\n", NULL, NULL);
- } else {
- GROW;
- if (CUR == ';') {
- if (str != NULL)
- *str = name;
-
- /*
- * Lookup the entity in the table.
- */
- ent = htmlEntityLookup(name);
- if (ent != NULL) /* OK that's ugly !!! */
- NEXT;
- } else {
- htmlParseErr(ctxt, XML_ERR_ENTITYREF_SEMICOL_MISSING,
- "htmlParseEntityRef: expecting ';'\n",
- NULL, NULL);
- if (str != NULL)
- *str = name;
- }
- }
- }
- return(ent);
-}
-
-/**
- * htmlParseAttValue:
- * @ctxt: an HTML parser context
- *
- * parse a value for an attribute
- * Note: the parser won't do substitution of entities here, this
- * will be handled later in xmlStringGetNodeList, unless it was
- * asked for ctxt->replaceEntities != 0
- *
- * Returns the AttValue parsed or NULL.
- */
-
-static xmlChar *
-htmlParseAttValue(htmlParserCtxtPtr ctxt) {
- xmlChar *ret = NULL;
-
- if (CUR == '"') {
- NEXT;
- ret = htmlParseHTMLAttribute(ctxt, '"');
- if (CUR != '"') {
- htmlParseErr(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED,
- "AttValue: \" expected\n", NULL, NULL);
- } else
- NEXT;
- } else if (CUR == '\'') {
- NEXT;
- ret = htmlParseHTMLAttribute(ctxt, '\'');
- if (CUR != '\'') {
- htmlParseErr(ctxt, XML_ERR_ATTRIBUTE_NOT_FINISHED,
- "AttValue: ' expected\n", NULL, NULL);
- } else
- NEXT;
- } else {
- /*
- * That's an HTMLism, the attribute value may not be quoted
- */
- ret = htmlParseHTMLAttribute(ctxt, 0);
- if (ret == NULL) {
- htmlParseErr(ctxt, XML_ERR_ATTRIBUTE_WITHOUT_VALUE,
- "AttValue: no value found\n", NULL, NULL);
- }
- }
- return(ret);
-}
-
-/**
- * htmlParseSystemLiteral:
- * @ctxt: an HTML parser context
- *
- * parse an HTML Literal
- *
- * [11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'")
- *
- * Returns the SystemLiteral parsed or NULL
- */
-
-static xmlChar *
-htmlParseSystemLiteral(htmlParserCtxtPtr ctxt) {
- size_t len = 0, startPosition = 0;
- xmlChar *ret = NULL;
-
- if (CUR == '"') {
- NEXT;
-
- if (CUR_PTR < BASE_PTR)
- return(ret);
- startPosition = CUR_PTR - BASE_PTR;
-
- while ((IS_CHAR_CH(CUR)) && (CUR != '"')) {
- NEXT;
- len++;
- }
- if (!IS_CHAR_CH(CUR)) {
- htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_FINISHED,
- "Unfinished SystemLiteral\n", NULL, NULL);
- } else {
- ret = xmlStrndup((BASE_PTR+startPosition), len);
- NEXT;
- }
- } else if (CUR == '\'') {
- NEXT;
-
- if (CUR_PTR < BASE_PTR)
- return(ret);
- startPosition = CUR_PTR - BASE_PTR;
-
- while ((IS_CHAR_CH(CUR)) && (CUR != '\'')) {
- NEXT;
- len++;
- }
- if (!IS_CHAR_CH(CUR)) {
- htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_FINISHED,
- "Unfinished SystemLiteral\n", NULL, NULL);
- } else {
- ret = xmlStrndup((BASE_PTR+startPosition), len);
- NEXT;
- }
- } else {
- htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_STARTED,
- " or ' expected\n", NULL, NULL);
- }
-
- return(ret);
-}
-
-/**
- * htmlParsePubidLiteral:
- * @ctxt: an HTML parser context
- *
- * parse an HTML public literal
- *
- * [12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"
- *
- * Returns the PubidLiteral parsed or NULL.
- */
-
-static xmlChar *
-htmlParsePubidLiteral(htmlParserCtxtPtr ctxt) {
- size_t len = 0, startPosition = 0;
- xmlChar *ret = NULL;
- /*
- * Name ::= (Letter | '_') (NameChar)*
- */
- if (CUR == '"') {
- NEXT;
-
- if (CUR_PTR < BASE_PTR)
- return(ret);
- startPosition = CUR_PTR - BASE_PTR;
-
- while (IS_PUBIDCHAR_CH(CUR)) {
- len++;
- NEXT;
- }
-
- if (CUR != '"') {
- htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_FINISHED,
- "Unfinished PubidLiteral\n", NULL, NULL);
- } else {
- ret = xmlStrndup((BASE_PTR + startPosition), len);
- NEXT;
- }
- } else if (CUR == '\'') {
- NEXT;
-
- if (CUR_PTR < BASE_PTR)
- return(ret);
- startPosition = CUR_PTR - BASE_PTR;
-
- while ((IS_PUBIDCHAR_CH(CUR)) && (CUR != '\'')){
- len++;
- NEXT;
- }
-
- if (CUR != '\'') {
- htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_FINISHED,
- "Unfinished PubidLiteral\n", NULL, NULL);
- } else {
- ret = xmlStrndup((BASE_PTR + startPosition), len);
- NEXT;
- }
- } else {
- htmlParseErr(ctxt, XML_ERR_LITERAL_NOT_STARTED,
- "PubidLiteral \" or ' expected\n", NULL, NULL);
- }
-
- return(ret);
-}
-
-/**
- * htmlParseScript:
- * @ctxt: an HTML parser context
- *
- * parse the content of an HTML SCRIPT or STYLE element
- * http://www.w3.org/TR/html4/sgml/dtd.html#Script
- * http://www.w3.org/TR/html4/sgml/dtd.html#StyleSheet
- * http://www.w3.org/TR/html4/types.html#type-script
- * http://www.w3.org/TR/html4/types.html#h-6.15
- * http://www.w3.org/TR/html4/appendix/notes.html#h-B.3.2.1
- *
- * Script data ( %Script; in the DTD) can be the content of the SCRIPT
- * element and the value of intrinsic event attributes. User agents must
- * not evaluate script data as HTML markup but instead must pass it on as
- * data to a script engine.
- * NOTES:
- * - The content is passed like CDATA
- * - the attributes for style and scripting "onXXX" are also described
- * as CDATA but SGML allows entities references in attributes so their
- * processing is identical as other attributes
- */
-static void
-htmlParseScript(htmlParserCtxtPtr ctxt) {
- xmlChar buf[HTML_PARSER_BIG_BUFFER_SIZE + 5];
- int nbchar = 0;
- int cur,l;
-
- SHRINK;
- cur = CUR_CHAR(l);
- while (IS_CHAR_CH(cur)) {
- if ((cur == '<') && (NXT(1) == '/')) {
- /*
- * One should break here, the specification is clear:
- * Authors should therefore escape "</" within the content.
- * Escape mechanisms are specific to each scripting or
- * style sheet language.
- *
- * In recovery mode, only break if end tag match the
- * current tag, effectively ignoring all tags inside the
- * script/style block and treating the entire block as
- * CDATA.
- */
- if (ctxt->recovery) {
- if (xmlStrncasecmp(ctxt->name, ctxt->input->cur+2,
- xmlStrlen(ctxt->name)) == 0)
- {
- break; /* while */
- } else {
- htmlParseErr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
- "Element %s embeds close tag\n",
- ctxt->name, NULL);
- }
- } else {
- if (((NXT(2) >= 'A') && (NXT(2) <= 'Z')) ||
- ((NXT(2) >= 'a') && (NXT(2) <= 'z')))
- {
- break; /* while */
- }
- }
- }
- COPY_BUF(l,buf,nbchar,cur);
- if (nbchar >= HTML_PARSER_BIG_BUFFER_SIZE) {
- if (ctxt->sax->cdataBlock!= NULL) {
- /*
- * Insert as CDATA, which is the same as HTML_PRESERVE_NODE
- */
- ctxt->sax->cdataBlock(ctxt->userData, buf, nbchar);
- } else if (ctxt->sax->characters != NULL) {
- ctxt->sax->characters(ctxt->userData, buf, nbchar);
- }
- nbchar = 0;
- }
- GROW;
- NEXTL(l);
- cur = CUR_CHAR(l);
- }
-
- if ((!(IS_CHAR_CH(cur))) && (!((cur == 0) && (ctxt->progressive)))) {
- htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
- "Invalid char in CDATA 0x%X\n", cur);
- if (ctxt->input->cur < ctxt->input->end) {
- NEXT;
- }
- }
-
- if ((nbchar != 0) && (ctxt->sax != NULL) && (!ctxt->disableSAX)) {
- if (ctxt->sax->cdataBlock!= NULL) {
- /*
- * Insert as CDATA, which is the same as HTML_PRESERVE_NODE
- */
- ctxt->sax->cdataBlock(ctxt->userData, buf, nbchar);
- } else if (ctxt->sax->characters != NULL) {
- ctxt->sax->characters(ctxt->userData, buf, nbchar);
- }
- }
-}
-
-
-/**
- * htmlParseCharDataInternal:
- * @ctxt: an HTML parser context
- * @readahead: optional read ahead character in ascii range
- *
- * parse a CharData section.
- * if we are within a CDATA section ']]>' marks an end of section.
- *
- * [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
- */
-
-static void
-htmlParseCharDataInternal(htmlParserCtxtPtr ctxt, int readahead) {
- xmlChar buf[HTML_PARSER_BIG_BUFFER_SIZE + 6];
- int nbchar = 0;
- int cur, l;
- int chunk = 0;
-
- if (readahead)
- buf[nbchar++] = readahead;
-
- SHRINK;
- cur = CUR_CHAR(l);
- while (((cur != '<') || (ctxt->token == '<')) &&
- ((cur != '&') || (ctxt->token == '&')) &&
- (cur != 0)) {
- if (!(IS_CHAR(cur))) {
- htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
- "Invalid char in CDATA 0x%X\n", cur);
- } else {
- COPY_BUF(l,buf,nbchar,cur);
- }
- if (nbchar >= HTML_PARSER_BIG_BUFFER_SIZE) {
- /*
- * Ok the segment is to be consumed as chars.
- */
- if ((ctxt->sax != NULL) && (!ctxt->disableSAX)) {
- if (areBlanks(ctxt, buf, nbchar)) {
- if (ctxt->keepBlanks) {
- if (ctxt->sax->characters != NULL)
- ctxt->sax->characters(ctxt->userData, buf, nbchar);
- } else {
- if (ctxt->sax->ignorableWhitespace != NULL)
- ctxt->sax->ignorableWhitespace(ctxt->userData,
- buf, nbchar);
- }
- } else {
- htmlCheckParagraph(ctxt);
- if (ctxt->sax->characters != NULL)
- ctxt->sax->characters(ctxt->userData, buf, nbchar);
- }
- }
- nbchar = 0;
- }
- NEXTL(l);
- chunk++;
- if (chunk > HTML_PARSER_BUFFER_SIZE) {
- chunk = 0;
- SHRINK;
- GROW;
- }
- cur = CUR_CHAR(l);
- if (cur == 0) {
- SHRINK;
- GROW;
- cur = CUR_CHAR(l);
- }
- }
- if (nbchar != 0) {
- buf[nbchar] = 0;
-
- /*
- * Ok the segment is to be consumed as chars.
- */
- if ((ctxt->sax != NULL) && (!ctxt->disableSAX)) {
- if (areBlanks(ctxt, buf, nbchar)) {
- if (ctxt->keepBlanks) {
- if (ctxt->sax->characters != NULL)
- ctxt->sax->characters(ctxt->userData, buf, nbchar);
- } else {
- if (ctxt->sax->ignorableWhitespace != NULL)
- ctxt->sax->ignorableWhitespace(ctxt->userData,
- buf, nbchar);
- }
- } else {
- htmlCheckParagraph(ctxt);
- if (ctxt->sax->characters != NULL)
- ctxt->sax->characters(ctxt->userData, buf, nbchar);
- }
- }
- } else {
- /*
- * Loop detection
- */
- if (cur == 0)
- ctxt->instate = XML_PARSER_EOF;
- }
-}
-
-/**
- * htmlParseCharData:
- * @ctxt: an HTML parser context
- *
- * parse a CharData section.
- * if we are within a CDATA section ']]>' marks an end of section.
- *
- * [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
- */
-
-static void
-htmlParseCharData(htmlParserCtxtPtr ctxt) {
- htmlParseCharDataInternal(ctxt, 0);
-}
-
-/**
- * htmlParseExternalID:
- * @ctxt: an HTML parser context
- * @publicID: a xmlChar** receiving PubidLiteral
- *
- * Parse an External ID or a Public ID
- *
- * [75] ExternalID ::= 'SYSTEM' S SystemLiteral
- * | 'PUBLIC' S PubidLiteral S SystemLiteral
- *
- * [83] PublicID ::= 'PUBLIC' S PubidLiteral
- *
- * Returns the function returns SystemLiteral and in the second
- * case publicID receives PubidLiteral, is strict is off
- * it is possible to return NULL and have publicID set.
- */
-
-static xmlChar *
-htmlParseExternalID(htmlParserCtxtPtr ctxt, xmlChar **publicID) {
- xmlChar *URI = NULL;
-
- if ((UPPER == 'S') && (UPP(1) == 'Y') &&
- (UPP(2) == 'S') && (UPP(3) == 'T') &&
- (UPP(4) == 'E') && (UPP(5) == 'M')) {
- SKIP(6);
- if (!IS_BLANK_CH(CUR)) {
- htmlParseErr(ctxt, XML_ERR_SPACE_REQUIRED,
- "Space required after 'SYSTEM'\n", NULL, NULL);
- }
- SKIP_BLANKS;
- URI = htmlParseSystemLiteral(ctxt);
- if (URI == NULL) {
- htmlParseErr(ctxt, XML_ERR_URI_REQUIRED,
- "htmlParseExternalID: SYSTEM, no URI\n", NULL, NULL);
- }
- } else if ((UPPER == 'P') && (UPP(1) == 'U') &&
- (UPP(2) == 'B') && (UPP(3) == 'L') &&
- (UPP(4) == 'I') && (UPP(5) == 'C')) {
- SKIP(6);
- if (!IS_BLANK_CH(CUR)) {
- htmlParseErr(ctxt, XML_ERR_SPACE_REQUIRED,
- "Space required after 'PUBLIC'\n", NULL, NULL);
- }
- SKIP_BLANKS;
- *publicID = htmlParsePubidLiteral(ctxt);
- if (*publicID == NULL) {
- htmlParseErr(ctxt, XML_ERR_PUBID_REQUIRED,
- "htmlParseExternalID: PUBLIC, no Public Identifier\n",
- NULL, NULL);
- }
- SKIP_BLANKS;
- if ((CUR == '"') || (CUR == '\'')) {
- URI = htmlParseSystemLiteral(ctxt);
- }
- }
- return(URI);
-}
-
-/**
- * xmlParsePI:
- * @ctxt: an XML parser context
- *
- * parse an XML Processing Instruction.
- *
- * [16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
- */
-static void
-htmlParsePI(htmlParserCtxtPtr ctxt) {
- xmlChar *buf = NULL;
- int len = 0;
- int size = HTML_PARSER_BUFFER_SIZE;
- int cur, l;
- const xmlChar *target;
- xmlParserInputState state;
- int count = 0;
-
- if ((RAW == '<') && (NXT(1) == '?')) {
- state = ctxt->instate;
- ctxt->instate = XML_PARSER_PI;
- /*
- * this is a Processing Instruction.
- */
- SKIP(2);
- SHRINK;
-
- /*
- * Parse the target name and check for special support like
- * namespace.
- */
- target = htmlParseName(ctxt);
- if (target != NULL) {
- if (RAW == '>') {
- SKIP(1);
-
- /*
- * SAX: PI detected.
- */
- if ((ctxt->sax) && (!ctxt->disableSAX) &&
- (ctxt->sax->processingInstruction != NULL))
- ctxt->sax->processingInstruction(ctxt->userData,
- target, NULL);
- ctxt->instate = state;
- return;
- }
- buf = (xmlChar *) xmlMallocAtomic(size * sizeof(xmlChar));
- if (buf == NULL) {
- htmlErrMemory(ctxt, NULL);
- ctxt->instate = state;
- return;
- }
- cur = CUR;
- if (!IS_BLANK(cur)) {
- htmlParseErr(ctxt, XML_ERR_SPACE_REQUIRED,
- "ParsePI: PI %s space expected\n", target, NULL);
- }
- SKIP_BLANKS;
- cur = CUR_CHAR(l);
- while (IS_CHAR(cur) && (cur != '>')) {
- if (len + 5 >= size) {
- xmlChar *tmp;
-
- size *= 2;
- tmp = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar));
- if (tmp == NULL) {
- htmlErrMemory(ctxt, NULL);
- xmlFree(buf);
- ctxt->instate = state;
- return;
- }
- buf = tmp;
- }
- count++;
- if (count > 50) {
- GROW;
- count = 0;
- }
- COPY_BUF(l,buf,len,cur);
- NEXTL(l);
- cur = CUR_CHAR(l);
- if (cur == 0) {
- SHRINK;
- GROW;
- cur = CUR_CHAR(l);
- }
- }
- buf[len] = 0;
- if (cur != '>') {
- htmlParseErr(ctxt, XML_ERR_PI_NOT_FINISHED,
- "ParsePI: PI %s never end ...\n", target, NULL);
- } else {
- SKIP(1);
-
- /*
- * SAX: PI detected.
- */
- if ((ctxt->sax) && (!ctxt->disableSAX) &&
- (ctxt->sax->processingInstruction != NULL))
- ctxt->sax->processingInstruction(ctxt->userData,
- target, buf);
- }
- xmlFree(buf);
- } else {
- htmlParseErr(ctxt, XML_ERR_PI_NOT_STARTED,
- "PI is not started correctly", NULL, NULL);
- }
- ctxt->instate = state;
- }
-}
-
-/**
- * htmlParseComment:
- * @ctxt: an HTML parser context
- *
- * Parse an XML (SGML) comment <!-- .... -->
- *
- * [15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
- */
-static void
-htmlParseComment(htmlParserCtxtPtr ctxt) {
- xmlChar *buf = NULL;
- int len;
- int size = HTML_PARSER_BUFFER_SIZE;
- int q, ql;
- int r, rl;
- int cur, l;
- xmlParserInputState state;
-
- /*
- * Check that there is a comment right here.
- */
- if ((RAW != '<') || (NXT(1) != '!') ||
- (NXT(2) != '-') || (NXT(3) != '-')) return;
-
- state = ctxt->instate;
- ctxt->instate = XML_PARSER_COMMENT;
- SHRINK;
- SKIP(4);
- buf = (xmlChar *) xmlMallocAtomic(size * sizeof(xmlChar));
- if (buf == NULL) {
- htmlErrMemory(ctxt, "buffer allocation failed\n");
- ctxt->instate = state;
- return;
- }
- len = 0;
- buf[len] = 0;
- q = CUR_CHAR(ql);
- if (!IS_CHAR(q))
- goto unfinished;
- NEXTL(ql);
- r = CUR_CHAR(rl);
- if (!IS_CHAR(r))
- goto unfinished;
- NEXTL(rl);
- cur = CUR_CHAR(l);
- while (IS_CHAR(cur) &&
- ((cur != '>') ||
- (r != '-') || (q != '-'))) {
- if (len + 5 >= size) {
- xmlChar *tmp;
-
- size *= 2;
- tmp = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar));
- if (tmp == NULL) {
- xmlFree(buf);
- htmlErrMemory(ctxt, "growing buffer failed\n");
- ctxt->instate = state;
- return;
- }
- buf = tmp;
- }
- COPY_BUF(ql,buf,len,q);
- q = r;
- ql = rl;
- r = cur;
- rl = l;
- NEXTL(l);
- cur = CUR_CHAR(l);
- if (cur == 0) {
- SHRINK;
- GROW;
- cur = CUR_CHAR(l);
- }
- }
- buf[len] = 0;
- if (IS_CHAR(cur)) {
- NEXT;
- if ((ctxt->sax != NULL) && (ctxt->sax->comment != NULL) &&
- (!ctxt->disableSAX))
- ctxt->sax->comment(ctxt->userData, buf);
- xmlFree(buf);
- ctxt->instate = state;
- return;
- }
-
-unfinished:
- htmlParseErr(ctxt, XML_ERR_COMMENT_NOT_FINISHED,
- "Comment not terminated \n<!--%.50s\n", buf, NULL);
- xmlFree(buf);
-}
-
-/**
- * htmlParseCharRef:
- * @ctxt: an HTML parser context
- *
- * parse Reference declarations
- *
- * [66] CharRef ::= '&#' [0-9]+ ';' |
- * '&#x' [0-9a-fA-F]+ ';'
- *
- * Returns the value parsed (as an int)
- */
-int
-htmlParseCharRef(htmlParserCtxtPtr ctxt) {
- int val = 0;
-
- if ((ctxt == NULL) || (ctxt->input == NULL)) {
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "htmlParseCharRef: context error\n",
- NULL, NULL);
- return(0);
- }
- if ((CUR == '&') && (NXT(1) == '#') &&
- ((NXT(2) == 'x') || NXT(2) == 'X')) {
- SKIP(3);
- while (CUR != ';') {
- if ((CUR >= '0') && (CUR <= '9'))
- val = val * 16 + (CUR - '0');
- else if ((CUR >= 'a') && (CUR <= 'f'))
- val = val * 16 + (CUR - 'a') + 10;
- else if ((CUR >= 'A') && (CUR <= 'F'))
- val = val * 16 + (CUR - 'A') + 10;
- else {
- htmlParseErr(ctxt, XML_ERR_INVALID_HEX_CHARREF,
- "htmlParseCharRef: missing semicolon\n",
- NULL, NULL);
- break;
- }
- NEXT;
- }
- if (CUR == ';')
- NEXT;
- } else if ((CUR == '&') && (NXT(1) == '#')) {
- SKIP(2);
- while (CUR != ';') {
- if ((CUR >= '0') && (CUR <= '9'))
- val = val * 10 + (CUR - '0');
- else {
- htmlParseErr(ctxt, XML_ERR_INVALID_DEC_CHARREF,
- "htmlParseCharRef: missing semicolon\n",
- NULL, NULL);
- break;
- }
- NEXT;
- }
- if (CUR == ';')
- NEXT;
- } else {
- htmlParseErr(ctxt, XML_ERR_INVALID_CHARREF,
- "htmlParseCharRef: invalid value\n", NULL, NULL);
- }
- /*
- * Check the value IS_CHAR ...
- */
- if (IS_CHAR(val)) {
- return(val);
- } else {
- htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR,
- "htmlParseCharRef: invalid xmlChar value %d\n",
- val);
- }
- return(0);
-}
-
-
-/**
- * htmlParseDocTypeDecl:
- * @ctxt: an HTML parser context
- *
- * parse a DOCTYPE declaration
- *
- * [28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S?
- * ('[' (markupdecl | PEReference | S)* ']' S?)? '>'
- */
-
-static void
-htmlParseDocTypeDecl(htmlParserCtxtPtr ctxt) {
- const xmlChar *name;
- xmlChar *ExternalID = NULL;
- xmlChar *URI = NULL;
-
- /*
- * We know that '<!DOCTYPE' has been detected.
- */
- SKIP(9);
-
- SKIP_BLANKS;
-
- /*
- * Parse the DOCTYPE name.
- */
- name = htmlParseName(ctxt);
- if (name == NULL) {
- htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
- "htmlParseDocTypeDecl : no DOCTYPE name !\n",
- NULL, NULL);
- }
- /*
- * Check that upper(name) == "HTML" !!!!!!!!!!!!!
- */
-
- SKIP_BLANKS;
-
- /*
- * Check for SystemID and ExternalID
- */
- URI = htmlParseExternalID(ctxt, &ExternalID);
- SKIP_BLANKS;
-
- /*
- * We should be at the end of the DOCTYPE declaration.
- */
- if (CUR != '>') {
- htmlParseErr(ctxt, XML_ERR_DOCTYPE_NOT_FINISHED,
- "DOCTYPE improperly terminated\n", NULL, NULL);
- /* We shouldn't try to resynchronize ... */
- }
- NEXT;
-
- /*
- * Create or update the document accordingly to the DOCTYPE
- */
- if ((ctxt->sax != NULL) && (ctxt->sax->internalSubset != NULL) &&
- (!ctxt->disableSAX))
- ctxt->sax->internalSubset(ctxt->userData, name, ExternalID, URI);
-
- /*
- * Cleanup, since we don't use all those identifiers
- */
- if (URI != NULL) xmlFree(URI);
- if (ExternalID != NULL) xmlFree(ExternalID);
-}
-
-/**
- * htmlParseAttribute:
- * @ctxt: an HTML parser context
- * @value: a xmlChar ** used to store the value of the attribute
- *
- * parse an attribute
- *
- * [41] Attribute ::= Name Eq AttValue
- *
- * [25] Eq ::= S? '=' S?
- *
- * With namespace:
- *
- * [NS 11] Attribute ::= QName Eq AttValue
- *
- * Also the case QName == xmlns:??? is handled independently as a namespace
- * definition.
- *
- * Returns the attribute name, and the value in *value.
- */
-
-static const xmlChar *
-htmlParseAttribute(htmlParserCtxtPtr ctxt, xmlChar **value) {
- const xmlChar *name;
- xmlChar *val = NULL;
-
- *value = NULL;
- name = htmlParseHTMLName(ctxt);
- if (name == NULL) {
- htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
- "error parsing attribute name\n", NULL, NULL);
- return(NULL);
- }
-
- /*
- * read the value
- */
- SKIP_BLANKS;
- if (CUR == '=') {
- NEXT;
- SKIP_BLANKS;
- val = htmlParseAttValue(ctxt);
- }
-
- *value = val;
- return(name);
-}
-
-/**
- * htmlCheckEncodingDirect:
- * @ctxt: an HTML parser context
- * @attvalue: the attribute value
- *
- * Checks an attribute value to detect
- * the encoding
- * If a new encoding is detected the parser is switched to decode
- * it and pass UTF8
- */
-static void
-htmlCheckEncodingDirect(htmlParserCtxtPtr ctxt, const xmlChar *encoding) {
-
- if ((ctxt == NULL) || (encoding == NULL) ||
- (ctxt->options & HTML_PARSE_IGNORE_ENC))
- return;
-
- /* do not change encoding */
- if (ctxt->input->encoding != NULL)
- return;
-
- if (encoding != NULL) {
- xmlCharEncoding enc;
- xmlCharEncodingHandlerPtr handler;
-
- while ((*encoding == ' ') || (*encoding == '\t')) encoding++;
-
- if (ctxt->input->encoding != NULL)
- xmlFree((xmlChar *) ctxt->input->encoding);
- ctxt->input->encoding = xmlStrdup(encoding);
-
- enc = xmlParseCharEncoding((const char *) encoding);
- /*
- * registered set of known encodings
- */
- if (enc != XML_CHAR_ENCODING_ERROR) {
- if (((enc == XML_CHAR_ENCODING_UTF16LE) ||
- (enc == XML_CHAR_ENCODING_UTF16BE) ||
- (enc == XML_CHAR_ENCODING_UCS4LE) ||
- (enc == XML_CHAR_ENCODING_UCS4BE)) &&
- (ctxt->input->buf != NULL) &&
- (ctxt->input->buf->encoder == NULL)) {
- htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
- "htmlCheckEncoding: wrong encoding meta\n",
- NULL, NULL);
- } else {
- xmlSwitchEncoding(ctxt, enc);
- }
- ctxt->charset = XML_CHAR_ENCODING_UTF8;
- } else {
- /*
- * fallback for unknown encodings
- */
- handler = xmlFindCharEncodingHandler((const char *) encoding);
- if (handler != NULL) {
- xmlSwitchToEncoding(ctxt, handler);
- ctxt->charset = XML_CHAR_ENCODING_UTF8;
- } else {
- htmlParseErr(ctxt, XML_ERR_UNSUPPORTED_ENCODING,
- "htmlCheckEncoding: unknown encoding %s\n",
- encoding, NULL);
- }
- }
-
- if ((ctxt->input->buf != NULL) &&
- (ctxt->input->buf->encoder != NULL) &&
- (ctxt->input->buf->raw != NULL) &&
- (ctxt->input->buf->buffer != NULL)) {
- int nbchars;
- int processed;
-
- /*
- * convert as much as possible to the parser reading buffer.
- */
- processed = ctxt->input->cur - ctxt->input->base;
- xmlBufShrink(ctxt->input->buf->buffer, processed);
- nbchars = xmlCharEncInput(ctxt->input->buf, 1);
- if (nbchars < 0) {
- htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
- "htmlCheckEncoding: encoder error\n",
- NULL, NULL);
- }
- xmlBufResetInput(ctxt->input->buf->buffer, ctxt->input);
- }
- }
-}
-
-/**
- * htmlCheckEncoding:
- * @ctxt: an HTML parser context
- * @attvalue: the attribute value
- *
- * Checks an http-equiv attribute from a Meta tag to detect
- * the encoding
- * If a new encoding is detected the parser is switched to decode
- * it and pass UTF8
- */
-static void
-htmlCheckEncoding(htmlParserCtxtPtr ctxt, const xmlChar *attvalue) {
- const xmlChar *encoding;
-
- if (!attvalue)
- return;
-
- encoding = xmlStrcasestr(attvalue, BAD_CAST"charset");
- if (encoding != NULL) {
- encoding += 7;
- }
- /*
- * skip blank
- */
- if (encoding && IS_BLANK_CH(*encoding))
- encoding = xmlStrcasestr(attvalue, BAD_CAST"=");
- if (encoding && *encoding == '=') {
- encoding ++;
- htmlCheckEncodingDirect(ctxt, encoding);
- }
-}
-
-/**
- * htmlCheckMeta:
- * @ctxt: an HTML parser context
- * @atts: the attributes values
- *
- * Checks an attributes from a Meta tag
- */
-static void
-htmlCheckMeta(htmlParserCtxtPtr ctxt, const xmlChar **atts) {
- int i;
- const xmlChar *att, *value;
- int http = 0;
- const xmlChar *content = NULL;
-
- if ((ctxt == NULL) || (atts == NULL))
- return;
-
- i = 0;
- att = atts[i++];
- while (att != NULL) {
- value = atts[i++];
- if ((value != NULL) && (!xmlStrcasecmp(att, BAD_CAST"http-equiv"))
- && (!xmlStrcasecmp(value, BAD_CAST"Content-Type")))
- http = 1;
- else if ((value != NULL) && (!xmlStrcasecmp(att, BAD_CAST"charset")))
- htmlCheckEncodingDirect(ctxt, value);
- else if ((value != NULL) && (!xmlStrcasecmp(att, BAD_CAST"content")))
- content = value;
- att = atts[i++];
- }
- if ((http) && (content != NULL))
- htmlCheckEncoding(ctxt, content);
-
-}
-
-/**
- * htmlParseStartTag:
- * @ctxt: an HTML parser context
- *
- * parse a start of tag either for rule element or
- * EmptyElement. In both case we don't parse the tag closing chars.
- *
- * [40] STag ::= '<' Name (S Attribute)* S? '>'
- *
- * [44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
- *
- * With namespace:
- *
- * [NS 8] STag ::= '<' QName (S Attribute)* S? '>'
- *
- * [NS 10] EmptyElement ::= '<' QName (S Attribute)* S? '/>'
- *
- * Returns 0 in case of success, -1 in case of error and 1 if discarded
- */
-
-static int
-htmlParseStartTag(htmlParserCtxtPtr ctxt) {
- const xmlChar *name;
- const xmlChar *attname;
- xmlChar *attvalue;
- const xmlChar **atts;
- int nbatts = 0;
- int maxatts;
- int meta = 0;
- int i;
- int discardtag = 0;
-
- if ((ctxt == NULL) || (ctxt->input == NULL)) {
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "htmlParseStartTag: context error\n", NULL, NULL);
- return -1;
- }
- if (ctxt->instate == XML_PARSER_EOF)
- return(-1);
- if (CUR != '<') return -1;
- NEXT;
-
- atts = ctxt->atts;
- maxatts = ctxt->maxatts;
-
- GROW;
- name = htmlParseHTMLName(ctxt);
- if (name == NULL) {
- htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
- "htmlParseStartTag: invalid element name\n",
- NULL, NULL);
- /* if recover preserve text on classic misconstructs */
- if ((ctxt->recovery) && ((IS_BLANK_CH(CUR)) || (CUR == '<') ||
- (CUR == '=') || (CUR == '>') || (((CUR >= '0') && (CUR <= '9'))))) {
- htmlParseCharDataInternal(ctxt, '<');
- return(-1);
- }
-
-
- /* Dump the bogus tag like browsers do */
- while ((IS_CHAR_CH(CUR)) && (CUR != '>') &&
- (ctxt->instate != XML_PARSER_EOF))
- NEXT;
- return -1;
- }
- if (xmlStrEqual(name, BAD_CAST"meta"))
- meta = 1;
-
- /*
- * Check for auto-closure of HTML elements.
- */
- htmlAutoClose(ctxt, name);
-
- /*
- * Check for implied HTML elements.
- */
- htmlCheckImplied(ctxt, name);
-
- /*
- * Avoid html at any level > 0, head at any level != 1
- * or any attempt to recurse body
- */
- if ((ctxt->nameNr > 0) && (xmlStrEqual(name, BAD_CAST"html"))) {
- htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
- "htmlParseStartTag: misplaced <html> tag\n",
- name, NULL);
- discardtag = 1;
- ctxt->depth++;
- }
- if ((ctxt->nameNr != 1) &&
- (xmlStrEqual(name, BAD_CAST"head"))) {
- htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
- "htmlParseStartTag: misplaced <head> tag\n",
- name, NULL);
- discardtag = 1;
- ctxt->depth++;
- }
- if (xmlStrEqual(name, BAD_CAST"body")) {
- int indx;
- for (indx = 0;indx < ctxt->nameNr;indx++) {
- if (xmlStrEqual(ctxt->nameTab[indx], BAD_CAST"body")) {
- htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
- "htmlParseStartTag: misplaced <body> tag\n",
- name, NULL);
- discardtag = 1;
- ctxt->depth++;
- }
- }
- }
-
- /*
- * Now parse the attributes, it ends up with the ending
- *
- * (S Attribute)* S?
- */
- SKIP_BLANKS;
- while ((IS_CHAR_CH(CUR)) &&
- (CUR != '>') &&
- ((CUR != '/') || (NXT(1) != '>'))) {
- long cons = ctxt->nbChars;
-
- GROW;
- attname = htmlParseAttribute(ctxt, &attvalue);
- if (attname != NULL) {
-
- /*
- * Well formedness requires at most one declaration of an attribute
- */
- for (i = 0; i < nbatts;i += 2) {
- if (xmlStrEqual(atts[i], attname)) {
- htmlParseErr(ctxt, XML_ERR_ATTRIBUTE_REDEFINED,
- "Attribute %s redefined\n", attname, NULL);
- if (attvalue != NULL)
- xmlFree(attvalue);
- goto failed;
- }
- }
-
- /*
- * Add the pair to atts
- */
- if (atts == NULL) {
- maxatts = 22; /* allow for 10 attrs by default */
- atts = (const xmlChar **)
- xmlMalloc(maxatts * sizeof(xmlChar *));
- if (atts == NULL) {
- htmlErrMemory(ctxt, NULL);
- if (attvalue != NULL)
- xmlFree(attvalue);
- goto failed;
- }
- ctxt->atts = atts;
- ctxt->maxatts = maxatts;
- } else if (nbatts + 4 > maxatts) {
- const xmlChar **n;
-
- maxatts *= 2;
- n = (const xmlChar **) xmlRealloc((void *) atts,
- maxatts * sizeof(const xmlChar *));
- if (n == NULL) {
- htmlErrMemory(ctxt, NULL);
- if (attvalue != NULL)
- xmlFree(attvalue);
- goto failed;
- }
- atts = n;
- ctxt->atts = atts;
- ctxt->maxatts = maxatts;
- }
- atts[nbatts++] = attname;
- atts[nbatts++] = attvalue;
- atts[nbatts] = NULL;
- atts[nbatts + 1] = NULL;
- }
- else {
- if (attvalue != NULL)
- xmlFree(attvalue);
- /* Dump the bogus attribute string up to the next blank or
- * the end of the tag. */
- while ((IS_CHAR_CH(CUR)) &&
- !(IS_BLANK_CH(CUR)) && (CUR != '>') &&
- ((CUR != '/') || (NXT(1) != '>')))
- NEXT;
- }
-
-failed:
- SKIP_BLANKS;
- if (cons == ctxt->nbChars) {
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "htmlParseStartTag: problem parsing attributes\n",
- NULL, NULL);
- break;
- }
- }
-
- /*
- * Handle specific association to the META tag
- */
- if (meta && (nbatts != 0))
- htmlCheckMeta(ctxt, atts);
-
- /*
- * SAX: Start of Element !
- */
- if (!discardtag) {
- htmlnamePush(ctxt, name);
- if ((ctxt->sax != NULL) && (ctxt->sax->startElement != NULL)) {
- if (nbatts != 0)
- ctxt->sax->startElement(ctxt->userData, name, atts);
- else
- ctxt->sax->startElement(ctxt->userData, name, NULL);
- }
- }
-
- if (atts != NULL) {
- for (i = 1;i < nbatts;i += 2) {
- if (atts[i] != NULL)
- xmlFree((xmlChar *) atts[i]);
- }
- }
-
- return(discardtag);
-}
-
-/**
- * htmlParseEndTag:
- * @ctxt: an HTML parser context
- *
- * parse an end of tag
- *
- * [42] ETag ::= '</' Name S? '>'
- *
- * With namespace
- *
- * [NS 9] ETag ::= '</' QName S? '>'
- *
- * Returns 1 if the current level should be closed.
- */
-
-static int
-htmlParseEndTag(htmlParserCtxtPtr ctxt)
-{
- const xmlChar *name;
- const xmlChar *oldname;
- int i, ret;
-
- if ((CUR != '<') || (NXT(1) != '/')) {
- htmlParseErr(ctxt, XML_ERR_LTSLASH_REQUIRED,
- "htmlParseEndTag: '</' not found\n", NULL, NULL);
- return (0);
- }
- SKIP(2);
-
- name = htmlParseHTMLName(ctxt);
- if (name == NULL)
- return (0);
- /*
- * We should definitely be at the ending "S? '>'" part
- */
- SKIP_BLANKS;
- if ((!IS_CHAR_CH(CUR)) || (CUR != '>')) {
- htmlParseErr(ctxt, XML_ERR_GT_REQUIRED,
- "End tag : expected '>'\n", NULL, NULL);
- if (ctxt->recovery) {
- /*
- * We're not at the ending > !!
- * Error, unless in recover mode where we search forwards
- * until we find a >
- */
- while (CUR != '\0' && CUR != '>') NEXT;
- NEXT;
- }
- } else
- NEXT;
-
- /*
- * if we ignored misplaced tags in htmlParseStartTag don't pop them
- * out now.
- */
- if ((ctxt->depth > 0) &&
- (xmlStrEqual(name, BAD_CAST "html") ||
- xmlStrEqual(name, BAD_CAST "body") ||
- xmlStrEqual(name, BAD_CAST "head"))) {
- ctxt->depth--;
- return (0);
- }
-
- /*
- * If the name read is not one of the element in the parsing stack
- * then return, it's just an error.
- */
- for (i = (ctxt->nameNr - 1); i >= 0; i--) {
- if (xmlStrEqual(name, ctxt->nameTab[i]))
- break;
- }
- if (i < 0) {
- htmlParseErr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
- "Unexpected end tag : %s\n", name, NULL);
- return (0);
- }
-
-
- /*
- * Check for auto-closure of HTML elements.
- */
-
- htmlAutoCloseOnClose(ctxt, name);
-
- /*
- * Well formedness constraints, opening and closing must match.
- * With the exception that the autoclose may have popped stuff out
- * of the stack.
- */
- if (!xmlStrEqual(name, ctxt->name)) {
- if ((ctxt->name != NULL) && (!xmlStrEqual(ctxt->name, name))) {
- htmlParseErr(ctxt, XML_ERR_TAG_NAME_MISMATCH,
- "Opening and ending tag mismatch: %s and %s\n",
- name, ctxt->name);
- }
- }
-
- /*
- * SAX: End of Tag
- */
- oldname = ctxt->name;
- if ((oldname != NULL) && (xmlStrEqual(oldname, name))) {
- if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
- ctxt->sax->endElement(ctxt->userData, name);
- htmlNodeInfoPop(ctxt);
- htmlnamePop(ctxt);
- ret = 1;
- } else {
- ret = 0;
- }
-
- return (ret);
-}
-
-
-/**
- * htmlParseReference:
- * @ctxt: an HTML parser context
- *
- * parse and handle entity references in content,
- * this will end-up in a call to character() since this is either a
- * CharRef, or a predefined entity.
- */
-static void
-htmlParseReference(htmlParserCtxtPtr ctxt) {
- const htmlEntityDesc * ent;
- xmlChar out[6];
- const xmlChar *name;
- if (CUR != '&') return;
-
- if (NXT(1) == '#') {
- unsigned int c;
- int bits, i = 0;
-
- c = htmlParseCharRef(ctxt);
- if (c == 0)
- return;
-
- if (c < 0x80) { out[i++]= c; bits= -6; }
- else if (c < 0x800) { out[i++]=((c >> 6) & 0x1F) | 0xC0; bits= 0; }
- else if (c < 0x10000) { out[i++]=((c >> 12) & 0x0F) | 0xE0; bits= 6; }
- else { out[i++]=((c >> 18) & 0x07) | 0xF0; bits= 12; }
-
- for ( ; bits >= 0; bits-= 6) {
- out[i++]= ((c >> bits) & 0x3F) | 0x80;
- }
- out[i] = 0;
-
- htmlCheckParagraph(ctxt);
- if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL))
- ctxt->sax->characters(ctxt->userData, out, i);
- } else {
- ent = htmlParseEntityRef(ctxt, &name);
- if (name == NULL) {
- htmlCheckParagraph(ctxt);
- if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL))
- ctxt->sax->characters(ctxt->userData, BAD_CAST "&", 1);
- return;
- }
- if ((ent == NULL) || !(ent->value > 0)) {
- htmlCheckParagraph(ctxt);
- if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL)) {
- ctxt->sax->characters(ctxt->userData, BAD_CAST "&", 1);
- ctxt->sax->characters(ctxt->userData, name, xmlStrlen(name));
- /* ctxt->sax->characters(ctxt->userData, BAD_CAST ";", 1); */
- }
- } else {
- unsigned int c;
- int bits, i = 0;
-
- c = ent->value;
- if (c < 0x80)
- { out[i++]= c; bits= -6; }
- else if (c < 0x800)
- { out[i++]=((c >> 6) & 0x1F) | 0xC0; bits= 0; }
- else if (c < 0x10000)
- { out[i++]=((c >> 12) & 0x0F) | 0xE0; bits= 6; }
- else
- { out[i++]=((c >> 18) & 0x07) | 0xF0; bits= 12; }
-
- for ( ; bits >= 0; bits-= 6) {
- out[i++]= ((c >> bits) & 0x3F) | 0x80;
- }
- out[i] = 0;
-
- htmlCheckParagraph(ctxt);
- if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL))
- ctxt->sax->characters(ctxt->userData, out, i);
- }
- }
-}
-
-/**
- * htmlParseContent:
- * @ctxt: an HTML parser context
- *
- * Parse a content: comment, sub-element, reference or text.
- * Kept for compatibility with old code
- */
-
-static void
-htmlParseContent(htmlParserCtxtPtr ctxt) {
- xmlChar *currentNode;
- int depth;
- const xmlChar *name;
-
- currentNode = xmlStrdup(ctxt->name);
- depth = ctxt->nameNr;
- while (1) {
- long cons = ctxt->nbChars;
-
- GROW;
-
- if (ctxt->instate == XML_PARSER_EOF)
- break;
-
- /*
- * Our tag or one of it's parent or children is ending.
- */
- if ((CUR == '<') && (NXT(1) == '/')) {
- if (htmlParseEndTag(ctxt) &&
- ((currentNode != NULL) || (ctxt->nameNr == 0))) {
- if (currentNode != NULL)
- xmlFree(currentNode);
- return;
- }
- continue; /* while */
- }
-
- else if ((CUR == '<') &&
- ((IS_ASCII_LETTER(NXT(1))) ||
- (NXT(1) == '_') || (NXT(1) == ':'))) {
- name = htmlParseHTMLName_nonInvasive(ctxt);
- if (name == NULL) {
- htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
- "htmlParseStartTag: invalid element name\n",
- NULL, NULL);
- /* Dump the bogus tag like browsers do */
- while ((IS_CHAR_CH(CUR)) && (CUR != '>'))
- NEXT;
-
- if (currentNode != NULL)
- xmlFree(currentNode);
- return;
- }
-
- if (ctxt->name != NULL) {
- if (htmlCheckAutoClose(name, ctxt->name) == 1) {
- htmlAutoClose(ctxt, name);
- continue;
- }
- }
- }
-
- /*
- * Has this node been popped out during parsing of
- * the next element
- */
- if ((ctxt->nameNr > 0) && (depth >= ctxt->nameNr) &&
- (!xmlStrEqual(currentNode, ctxt->name)))
- {
- if (currentNode != NULL) xmlFree(currentNode);
- return;
- }
-
- if ((CUR != 0) && ((xmlStrEqual(currentNode, BAD_CAST"script")) ||
- (xmlStrEqual(currentNode, BAD_CAST"style")))) {
- /*
- * Handle SCRIPT/STYLE separately
- */
- htmlParseScript(ctxt);
- } else {
- /*
- * Sometimes DOCTYPE arrives in the middle of the document
- */
- if ((CUR == '<') && (NXT(1) == '!') &&
- (UPP(2) == 'D') && (UPP(3) == 'O') &&
- (UPP(4) == 'C') && (UPP(5) == 'T') &&
- (UPP(6) == 'Y') && (UPP(7) == 'P') &&
- (UPP(8) == 'E')) {
- htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
- "Misplaced DOCTYPE declaration\n",
- BAD_CAST "DOCTYPE" , NULL);
- htmlParseDocTypeDecl(ctxt);
- }
-
- /*
- * First case : a comment
- */
- if ((CUR == '<') && (NXT(1) == '!') &&
- (NXT(2) == '-') && (NXT(3) == '-')) {
- htmlParseComment(ctxt);
- }
-
- /*
- * Second case : a Processing Instruction.
- */
- else if ((CUR == '<') && (NXT(1) == '?')) {
- htmlParsePI(ctxt);
- }
-
- /*
- * Third case : a sub-element.
- */
- else if (CUR == '<') {
- htmlParseElement(ctxt);
- }
-
- /*
- * Fourth case : a reference. If if has not been resolved,
- * parsing returns it's Name, create the node
- */
- else if (CUR == '&') {
- htmlParseReference(ctxt);
- }
-
- /*
- * Fifth case : end of the resource
- */
- else if (CUR == 0) {
- htmlAutoCloseOnEnd(ctxt);
- break;
- }
-
- /*
- * Last case, text. Note that References are handled directly.
- */
- else {
- htmlParseCharData(ctxt);
- }
-
- if (cons == ctxt->nbChars) {
- if (ctxt->node != NULL) {
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "detected an error in element content\n",
- NULL, NULL);
- }
- break;
- }
- }
- GROW;
- }
- if (currentNode != NULL) xmlFree(currentNode);
-}
-
-/**
- * htmlParseElement:
- * @ctxt: an HTML parser context
- *
- * parse an HTML element, this is highly recursive
- * this is kept for compatibility with previous code versions
- *
- * [39] element ::= EmptyElemTag | STag content ETag
- *
- * [41] Attribute ::= Name Eq AttValue
- */
-
-void
-htmlParseElement(htmlParserCtxtPtr ctxt) {
- const xmlChar *name;
- xmlChar *currentNode = NULL;
- const htmlElemDesc * info;
- htmlParserNodeInfo node_info;
- int failed;
- int depth;
- const xmlChar *oldptr;
-
- if ((ctxt == NULL) || (ctxt->input == NULL)) {
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "htmlParseElement: context error\n", NULL, NULL);
- return;
- }
-
- if (ctxt->instate == XML_PARSER_EOF)
- return;
-
- /* Capture start position */
- if (ctxt->record_info) {
- node_info.begin_pos = ctxt->input->consumed +
- (CUR_PTR - ctxt->input->base);
- node_info.begin_line = ctxt->input->line;
- }
-
- failed = htmlParseStartTag(ctxt);
- name = ctxt->name;
- if ((failed == -1) || (name == NULL)) {
- if (CUR == '>')
- NEXT;
- return;
- }
-
- /*
- * Lookup the info for that element.
- */
- info = htmlTagLookup(name);
- if (info == NULL) {
- htmlParseErr(ctxt, XML_HTML_UNKNOWN_TAG,
- "Tag %s invalid\n", name, NULL);
- }
-
- /*
- * Check for an Empty Element labeled the XML/SGML way
- */
- if ((CUR == '/') && (NXT(1) == '>')) {
- SKIP(2);
- if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
- ctxt->sax->endElement(ctxt->userData, name);
- htmlnamePop(ctxt);
- return;
- }
-
- if (CUR == '>') {
- NEXT;
- } else {
- htmlParseErr(ctxt, XML_ERR_GT_REQUIRED,
- "Couldn't find end of Start Tag %s\n", name, NULL);
-
- /*
- * end of parsing of this node.
- */
- if (xmlStrEqual(name, ctxt->name)) {
- nodePop(ctxt);
- htmlnamePop(ctxt);
- }
-
- /*
- * Capture end position and add node
- */
- if (ctxt->record_info) {
- node_info.end_pos = ctxt->input->consumed +
- (CUR_PTR - ctxt->input->base);
- node_info.end_line = ctxt->input->line;
- node_info.node = ctxt->node;
- xmlParserAddNodeInfo(ctxt, &node_info);
- }
- return;
- }
-
- /*
- * Check for an Empty Element from DTD definition
- */
- if ((info != NULL) && (info->empty)) {
- if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
- ctxt->sax->endElement(ctxt->userData, name);
- htmlnamePop(ctxt);
- return;
- }
-
- /*
- * Parse the content of the element:
- */
- currentNode = xmlStrdup(ctxt->name);
- depth = ctxt->nameNr;
- while (IS_CHAR_CH(CUR)) {
- oldptr = ctxt->input->cur;
- htmlParseContent(ctxt);
- if (oldptr==ctxt->input->cur) break;
- if (ctxt->nameNr < depth) break;
- }
-
- /*
- * Capture end position and add node
- */
- if ( currentNode != NULL && ctxt->record_info ) {
- node_info.end_pos = ctxt->input->consumed +
- (CUR_PTR - ctxt->input->base);
- node_info.end_line = ctxt->input->line;
- node_info.node = ctxt->node;
- xmlParserAddNodeInfo(ctxt, &node_info);
- }
- if (!IS_CHAR_CH(CUR)) {
- htmlAutoCloseOnEnd(ctxt);
- }
-
- if (currentNode != NULL)
- xmlFree(currentNode);
-}
-
-static void
-htmlParserFinishElementParsing(htmlParserCtxtPtr ctxt) {
- /*
- * Capture end position and add node
- */
- if ( ctxt->node != NULL && ctxt->record_info ) {
- ctxt->nodeInfo->end_pos = ctxt->input->consumed +
- (CUR_PTR - ctxt->input->base);
- ctxt->nodeInfo->end_line = ctxt->input->line;
- ctxt->nodeInfo->node = ctxt->node;
- xmlParserAddNodeInfo(ctxt, ctxt->nodeInfo);
- htmlNodeInfoPop(ctxt);
- }
- if (!IS_CHAR_CH(CUR)) {
- htmlAutoCloseOnEnd(ctxt);
- }
-}
-
-/**
- * htmlParseElementInternal:
- * @ctxt: an HTML parser context
- *
- * parse an HTML element, new version, non recursive
- *
- * [39] element ::= EmptyElemTag | STag content ETag
- *
- * [41] Attribute ::= Name Eq AttValue
- */
-
-static void
-htmlParseElementInternal(htmlParserCtxtPtr ctxt) {
- const xmlChar *name;
- const htmlElemDesc * info;
- htmlParserNodeInfo node_info = { 0, };
- int failed;
-
- if ((ctxt == NULL) || (ctxt->input == NULL)) {
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "htmlParseElementInternal: context error\n", NULL, NULL);
- return;
- }
-
- if (ctxt->instate == XML_PARSER_EOF)
- return;
-
- /* Capture start position */
- if (ctxt->record_info) {
- node_info.begin_pos = ctxt->input->consumed +
- (CUR_PTR - ctxt->input->base);
- node_info.begin_line = ctxt->input->line;
- }
-
- failed = htmlParseStartTag(ctxt);
- name = ctxt->name;
- if ((failed == -1) || (name == NULL)) {
- if (CUR == '>')
- NEXT;
- return;
- }
-
- /*
- * Lookup the info for that element.
- */
- info = htmlTagLookup(name);
- if (info == NULL) {
- htmlParseErr(ctxt, XML_HTML_UNKNOWN_TAG,
- "Tag %s invalid\n", name, NULL);
- }
-
- /*
- * Check for an Empty Element labeled the XML/SGML way
- */
- if ((CUR == '/') && (NXT(1) == '>')) {
- SKIP(2);
- if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
- ctxt->sax->endElement(ctxt->userData, name);
- htmlnamePop(ctxt);
- return;
- }
-
- if (CUR == '>') {
- NEXT;
- } else {
- htmlParseErr(ctxt, XML_ERR_GT_REQUIRED,
- "Couldn't find end of Start Tag %s\n", name, NULL);
-
- /*
- * end of parsing of this node.
- */
- if (xmlStrEqual(name, ctxt->name)) {
- nodePop(ctxt);
- htmlnamePop(ctxt);
- }
-
- if (ctxt->record_info)
- htmlNodeInfoPush(ctxt, &node_info);
- htmlParserFinishElementParsing(ctxt);
- return;
- }
-
- /*
- * Check for an Empty Element from DTD definition
- */
- if ((info != NULL) && (info->empty)) {
- if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
- ctxt->sax->endElement(ctxt->userData, name);
- htmlnamePop(ctxt);
- return;
- }
-
- if (ctxt->record_info)
- htmlNodeInfoPush(ctxt, &node_info);
-}
-
-/**
- * htmlParseContentInternal:
- * @ctxt: an HTML parser context
- *
- * Parse a content: comment, sub-element, reference or text.
- * New version for non recursive htmlParseElementInternal
- */
-
-static void
-htmlParseContentInternal(htmlParserCtxtPtr ctxt) {
- xmlChar *currentNode;
- int depth;
- const xmlChar *name;
-
- currentNode = xmlStrdup(ctxt->name);
- depth = ctxt->nameNr;
- while (1) {
- long cons = ctxt->nbChars;
-
- GROW;
-
- if (ctxt->instate == XML_PARSER_EOF)
- break;
-
- /*
- * Our tag or one of it's parent or children is ending.
- */
- if ((CUR == '<') && (NXT(1) == '/')) {
- if (htmlParseEndTag(ctxt) &&
- ((currentNode != NULL) || (ctxt->nameNr == 0))) {
- if (currentNode != NULL)
- xmlFree(currentNode);
-
- currentNode = xmlStrdup(ctxt->name);
- depth = ctxt->nameNr;
- }
- continue; /* while */
- }
-
- else if ((CUR == '<') &&
- ((IS_ASCII_LETTER(NXT(1))) ||
- (NXT(1) == '_') || (NXT(1) == ':'))) {
- name = htmlParseHTMLName_nonInvasive(ctxt);
- if (name == NULL) {
- htmlParseErr(ctxt, XML_ERR_NAME_REQUIRED,
- "htmlParseStartTag: invalid element name\n",
- NULL, NULL);
- /* Dump the bogus tag like browsers do */
- while ((IS_CHAR_CH(CUR)) && (CUR != '>'))
- NEXT;
-
- htmlParserFinishElementParsing(ctxt);
- if (currentNode != NULL)
- xmlFree(currentNode);
-
- currentNode = xmlStrdup(ctxt->name);
- depth = ctxt->nameNr;
- continue;
- }
-
- if (ctxt->name != NULL) {
- if (htmlCheckAutoClose(name, ctxt->name) == 1) {
- htmlAutoClose(ctxt, name);
- continue;
- }
- }
- }
-
- /*
- * Has this node been popped out during parsing of
- * the next element
- */
- if ((ctxt->nameNr > 0) && (depth >= ctxt->nameNr) &&
- (!xmlStrEqual(currentNode, ctxt->name)))
- {
- htmlParserFinishElementParsing(ctxt);
- if (currentNode != NULL) xmlFree(currentNode);
-
- currentNode = xmlStrdup(ctxt->name);
- depth = ctxt->nameNr;
- continue;
- }
-
- if ((CUR != 0) && ((xmlStrEqual(currentNode, BAD_CAST"script")) ||
- (xmlStrEqual(currentNode, BAD_CAST"style")))) {
- /*
- * Handle SCRIPT/STYLE separately
- */
- htmlParseScript(ctxt);
- } else {
- /*
- * Sometimes DOCTYPE arrives in the middle of the document
- */
- if ((CUR == '<') && (NXT(1) == '!') &&
- (UPP(2) == 'D') && (UPP(3) == 'O') &&
- (UPP(4) == 'C') && (UPP(5) == 'T') &&
- (UPP(6) == 'Y') && (UPP(7) == 'P') &&
- (UPP(8) == 'E')) {
- htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
- "Misplaced DOCTYPE declaration\n",
- BAD_CAST "DOCTYPE" , NULL);
- htmlParseDocTypeDecl(ctxt);
- }
-
- /*
- * First case : a comment
- */
- if ((CUR == '<') && (NXT(1) == '!') &&
- (NXT(2) == '-') && (NXT(3) == '-')) {
- htmlParseComment(ctxt);
- }
-
- /*
- * Second case : a Processing Instruction.
- */
- else if ((CUR == '<') && (NXT(1) == '?')) {
- htmlParsePI(ctxt);
- }
-
- /*
- * Third case : a sub-element.
- */
- else if (CUR == '<') {
- htmlParseElementInternal(ctxt);
- if (currentNode != NULL) xmlFree(currentNode);
-
- currentNode = xmlStrdup(ctxt->name);
- depth = ctxt->nameNr;
- }
-
- /*
- * Fourth case : a reference. If if has not been resolved,
- * parsing returns it's Name, create the node
- */
- else if (CUR == '&') {
- htmlParseReference(ctxt);
- }
-
- /*
- * Fifth case : end of the resource
- */
- else if (CUR == 0) {
- htmlAutoCloseOnEnd(ctxt);
- break;
- }
-
- /*
- * Last case, text. Note that References are handled directly.
- */
- else {
- htmlParseCharData(ctxt);
- }
-
- if (cons == ctxt->nbChars) {
- if (ctxt->node != NULL) {
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "detected an error in element content\n",
- NULL, NULL);
- }
- break;
- }
- }
- GROW;
- }
- if (currentNode != NULL) xmlFree(currentNode);
-}
-
-/**
- * htmlParseContent:
- * @ctxt: an HTML parser context
- *
- * Parse a content: comment, sub-element, reference or text.
- * This is the entry point when called from parser.c
- */
-
-void
-__htmlParseContent(void *ctxt) {
- if (ctxt != NULL)
- htmlParseContentInternal((htmlParserCtxtPtr) ctxt);
-}
-
-/**
- * htmlParseDocument:
- * @ctxt: an HTML parser context
- *
- * parse an HTML document (and build a tree if using the standard SAX
- * interface).
- *
- * Returns 0, -1 in case of error. the parser context is augmented
- * as a result of the parsing.
- */
-
-int
-htmlParseDocument(htmlParserCtxtPtr ctxt) {
- xmlChar start[4];
- xmlCharEncoding enc;
- xmlDtdPtr dtd;
-
- xmlInitParser();
-
- htmlDefaultSAXHandlerInit();
-
- if ((ctxt == NULL) || (ctxt->input == NULL)) {
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "htmlParseDocument: context error\n", NULL, NULL);
- return(XML_ERR_INTERNAL_ERROR);
- }
- ctxt->html = 1;
- ctxt->linenumbers = 1;
- GROW;
- /*
- * SAX: beginning of the document processing.
- */
- if ((ctxt->sax) && (ctxt->sax->setDocumentLocator))
- ctxt->sax->setDocumentLocator(ctxt->userData, &xmlDefaultSAXLocator);
-
- if ((ctxt->encoding == (const xmlChar *)XML_CHAR_ENCODING_NONE) &&
- ((ctxt->input->end - ctxt->input->cur) >= 4)) {
- /*
- * Get the 4 first bytes and decode the charset
- * if enc != XML_CHAR_ENCODING_NONE
- * plug some encoding conversion routines.
- */
- start[0] = RAW;
- start[1] = NXT(1);
- start[2] = NXT(2);
- start[3] = NXT(3);
- enc = xmlDetectCharEncoding(&start[0], 4);
- if (enc != XML_CHAR_ENCODING_NONE) {
- xmlSwitchEncoding(ctxt, enc);
- }
- }
-
- /*
- * Wipe out everything which is before the first '<'
- */
- SKIP_BLANKS;
- if (CUR == 0) {
- htmlParseErr(ctxt, XML_ERR_DOCUMENT_EMPTY,
- "Document is empty\n", NULL, NULL);
- }
-
- if ((ctxt->sax) && (ctxt->sax->startDocument) && (!ctxt->disableSAX))
- ctxt->sax->startDocument(ctxt->userData);
-
-
- /*
- * Parse possible comments and PIs before any content
- */
- while (((CUR == '<') && (NXT(1) == '!') &&
- (NXT(2) == '-') && (NXT(3) == '-')) ||
- ((CUR == '<') && (NXT(1) == '?'))) {
- htmlParseComment(ctxt);
- htmlParsePI(ctxt);
- SKIP_BLANKS;
- }
-
-
- /*
- * Then possibly doc type declaration(s) and more Misc
- * (doctypedecl Misc*)?
- */
- if ((CUR == '<') && (NXT(1) == '!') &&
- (UPP(2) == 'D') && (UPP(3) == 'O') &&
- (UPP(4) == 'C') && (UPP(5) == 'T') &&
- (UPP(6) == 'Y') && (UPP(7) == 'P') &&
- (UPP(8) == 'E')) {
- htmlParseDocTypeDecl(ctxt);
- }
- SKIP_BLANKS;
-
- /*
- * Parse possible comments and PIs before any content
- */
- while (((CUR == '<') && (NXT(1) == '!') &&
- (NXT(2) == '-') && (NXT(3) == '-')) ||
- ((CUR == '<') && (NXT(1) == '?'))) {
- htmlParseComment(ctxt);
- htmlParsePI(ctxt);
- SKIP_BLANKS;
- }
-
- /*
- * Time to start parsing the tree itself
- */
- htmlParseContentInternal(ctxt);
-
- /*
- * autoclose
- */
- if (CUR == 0)
- htmlAutoCloseOnEnd(ctxt);
-
-
- /*
- * SAX: end of the document processing.
- */
- if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
- ctxt->sax->endDocument(ctxt->userData);
-
- if ((!(ctxt->options & HTML_PARSE_NODEFDTD)) && (ctxt->myDoc != NULL)) {
- dtd = xmlGetIntSubset(ctxt->myDoc);
- if (dtd == NULL)
- ctxt->myDoc->intSubset =
- xmlCreateIntSubset(ctxt->myDoc, BAD_CAST "html",
- BAD_CAST "-//W3C//DTD HTML 4.0 Transitional//EN",
- BAD_CAST "http://www.w3.org/TR/REC-html40/loose.dtd");
- }
- if (! ctxt->wellFormed) return(-1);
- return(0);
-}
-
-
-/************************************************************************
- * *
- * Parser contexts handling *
- * *
- ************************************************************************/
-
-/**
- * htmlInitParserCtxt:
- * @ctxt: an HTML parser context
- *
- * Initialize a parser context
- *
- * Returns 0 in case of success and -1 in case of error
- */
-
-static int
-htmlInitParserCtxt(htmlParserCtxtPtr ctxt)
-{
- htmlSAXHandler *sax;
-
- if (ctxt == NULL) return(-1);
- memset(ctxt, 0, sizeof(htmlParserCtxt));
-
- ctxt->dict = xmlDictCreate();
- if (ctxt->dict == NULL) {
- htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
- return(-1);
- }
- sax = (htmlSAXHandler *) xmlMalloc(sizeof(htmlSAXHandler));
- if (sax == NULL) {
- htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
- return(-1);
- }
- else
- memset(sax, 0, sizeof(htmlSAXHandler));
-
- /* Allocate the Input stack */
- ctxt->inputTab = (htmlParserInputPtr *)
- xmlMalloc(5 * sizeof(htmlParserInputPtr));
- if (ctxt->inputTab == NULL) {
- htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
- ctxt->inputNr = 0;
- ctxt->inputMax = 0;
- ctxt->input = NULL;
- return(-1);
- }
- ctxt->inputNr = 0;
- ctxt->inputMax = 5;
- ctxt->input = NULL;
- ctxt->version = NULL;
- ctxt->encoding = NULL;
- ctxt->standalone = -1;
- ctxt->instate = XML_PARSER_START;
-
- /* Allocate the Node stack */
- ctxt->nodeTab = (htmlNodePtr *) xmlMalloc(10 * sizeof(htmlNodePtr));
- if (ctxt->nodeTab == NULL) {
- htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
- ctxt->nodeNr = 0;
- ctxt->nodeMax = 0;
- ctxt->node = NULL;
- ctxt->inputNr = 0;
- ctxt->inputMax = 0;
- ctxt->input = NULL;
- return(-1);
- }
- ctxt->nodeNr = 0;
- ctxt->nodeMax = 10;
- ctxt->node = NULL;
-
- /* Allocate the Name stack */
- ctxt->nameTab = (const xmlChar **) xmlMalloc(10 * sizeof(xmlChar *));
- if (ctxt->nameTab == NULL) {
- htmlErrMemory(NULL, "htmlInitParserCtxt: out of memory\n");
- ctxt->nameNr = 0;
- ctxt->nameMax = 0;
- ctxt->name = NULL;
- ctxt->nodeNr = 0;
- ctxt->nodeMax = 0;
- ctxt->node = NULL;
- ctxt->inputNr = 0;
- ctxt->inputMax = 0;
- ctxt->input = NULL;
- return(-1);
- }
- ctxt->nameNr = 0;
- ctxt->nameMax = 10;
- ctxt->name = NULL;
-
- ctxt->nodeInfoTab = NULL;
- ctxt->nodeInfoNr = 0;
- ctxt->nodeInfoMax = 0;
-
- if (sax == NULL) ctxt->sax = (xmlSAXHandlerPtr) &htmlDefaultSAXHandler;
- else {
- ctxt->sax = sax;
- memcpy(sax, &htmlDefaultSAXHandler, sizeof(xmlSAXHandlerV1));
- }
- ctxt->userData = ctxt;
- ctxt->myDoc = NULL;
- ctxt->wellFormed = 1;
- ctxt->replaceEntities = 0;
- ctxt->linenumbers = xmlLineNumbersDefaultValue;
- ctxt->html = 1;
- ctxt->vctxt.finishDtd = XML_CTXT_FINISH_DTD_0;
- ctxt->vctxt.userData = ctxt;
- ctxt->vctxt.error = xmlParserValidityError;
- ctxt->vctxt.warning = xmlParserValidityWarning;
- ctxt->record_info = 0;
- ctxt->validate = 0;
- ctxt->nbChars = 0;
- ctxt->checkIndex = 0;
- ctxt->catalogs = NULL;
- xmlInitNodeInfoSeq(&ctxt->node_seq);
- return(0);
-}
-
-/**
- * htmlFreeParserCtxt:
- * @ctxt: an HTML parser context
- *
- * Free all the memory used by a parser context. However the parsed
- * document in ctxt->myDoc is not freed.
- */
-
-void
-htmlFreeParserCtxt(htmlParserCtxtPtr ctxt)
-{
- xmlFreeParserCtxt(ctxt);
-}
-
-/**
- * htmlNewParserCtxt:
- *
- * Allocate and initialize a new parser context.
- *
- * Returns the htmlParserCtxtPtr or NULL in case of allocation error
- */
-
-htmlParserCtxtPtr
-htmlNewParserCtxt(void)
-{
- xmlParserCtxtPtr ctxt;
-
- ctxt = (xmlParserCtxtPtr) xmlMalloc(sizeof(xmlParserCtxt));
- if (ctxt == NULL) {
- htmlErrMemory(NULL, "NewParserCtxt: out of memory\n");
- return(NULL);
- }
- memset(ctxt, 0, sizeof(xmlParserCtxt));
- if (htmlInitParserCtxt(ctxt) < 0) {
- htmlFreeParserCtxt(ctxt);
- return(NULL);
- }
- return(ctxt);
-}
-
-/**
- * htmlCreateMemoryParserCtxt:
- * @buffer: a pointer to a char array
- * @size: the size of the array
- *
- * Create a parser context for an HTML in-memory document.
- *
- * Returns the new parser context or NULL
- */
-htmlParserCtxtPtr
-htmlCreateMemoryParserCtxt(const char *buffer, int size) {
- xmlParserCtxtPtr ctxt;
- xmlParserInputPtr input;
- xmlParserInputBufferPtr buf;
-
- if (buffer == NULL)
- return(NULL);
- if (size <= 0)
- return(NULL);
-
- ctxt = htmlNewParserCtxt();
- if (ctxt == NULL)
- return(NULL);
-
- buf = xmlParserInputBufferCreateMem(buffer, size, XML_CHAR_ENCODING_NONE);
- if (buf == NULL) return(NULL);
-
- input = xmlNewInputStream(ctxt);
- if (input == NULL) {
- xmlFreeParserCtxt(ctxt);
- return(NULL);
- }
-
- input->filename = NULL;
- input->buf = buf;
- xmlBufResetInput(buf->buffer, input);
-
- inputPush(ctxt, input);
- return(ctxt);
-}
-
-/**
- * htmlCreateDocParserCtxt:
- * @cur: a pointer to an array of xmlChar
- * @encoding: a free form C string describing the HTML document encoding, or NULL
- *
- * Create a parser context for an HTML document.
- *
- * TODO: check the need to add encoding handling there
- *
- * Returns the new parser context or NULL
- */
-static htmlParserCtxtPtr
-htmlCreateDocParserCtxt(const xmlChar *cur, const char *encoding) {
- int len;
- htmlParserCtxtPtr ctxt;
-
- if (cur == NULL)
- return(NULL);
- len = xmlStrlen(cur);
- ctxt = htmlCreateMemoryParserCtxt((char *)cur, len);
- if (ctxt == NULL)
- return(NULL);
-
- if (encoding != NULL) {
- xmlCharEncoding enc;
- xmlCharEncodingHandlerPtr handler;
-
- if (ctxt->input->encoding != NULL)
- xmlFree((xmlChar *) ctxt->input->encoding);
- ctxt->input->encoding = xmlStrdup((const xmlChar *) encoding);
-
- enc = xmlParseCharEncoding(encoding);
- /*
- * registered set of known encodings
- */
- if (enc != XML_CHAR_ENCODING_ERROR) {
- xmlSwitchEncoding(ctxt, enc);
- if (ctxt->errNo == XML_ERR_UNSUPPORTED_ENCODING) {
- htmlParseErr(ctxt, XML_ERR_UNSUPPORTED_ENCODING,
- "Unsupported encoding %s\n",
- (const xmlChar *) encoding, NULL);
- }
- } else {
- /*
- * fallback for unknown encodings
- */
- handler = xmlFindCharEncodingHandler((const char *) encoding);
- if (handler != NULL) {
- xmlSwitchToEncoding(ctxt, handler);
- } else {
- htmlParseErr(ctxt, XML_ERR_UNSUPPORTED_ENCODING,
- "Unsupported encoding %s\n",
- (const xmlChar *) encoding, NULL);
- }
- }
- }
- return(ctxt);
-}
-
-#ifdef LIBXML_PUSH_ENABLED
-/************************************************************************
- * *
- * Progressive parsing interfaces *
- * *
- ************************************************************************/
-
-/**
- * htmlParseLookupSequence:
- * @ctxt: an HTML parser context
- * @first: the first char to lookup
- * @next: the next char to lookup or zero
- * @third: the next char to lookup or zero
- * @comment: flag to force checking inside comments
- *
- * Try to find if a sequence (first, next, third) or just (first next) or
- * (first) is available in the input stream.
- * This function has a side effect of (possibly) incrementing ctxt->checkIndex
- * to avoid rescanning sequences of bytes, it DOES change the state of the
- * parser, do not use liberally.
- * This is basically similar to xmlParseLookupSequence()
- *
- * Returns the index to the current parsing point if the full sequence
- * is available, -1 otherwise.
- */
-static int
-htmlParseLookupSequence(htmlParserCtxtPtr ctxt, xmlChar first,
- xmlChar next, xmlChar third, int iscomment,
- int ignoreattrval)
-{
- int base, len;
- htmlParserInputPtr in;
- const xmlChar *buf;
- int incomment = 0;
- int invalue = 0;
- char valdellim = 0x0;
-
- in = ctxt->input;
- if (in == NULL)
- return (-1);
-
- base = in->cur - in->base;
- if (base < 0)
- return (-1);
-
- if (ctxt->checkIndex > base)
- base = ctxt->checkIndex;
-
- if (in->buf == NULL) {
- buf = in->base;
- len = in->length;
- } else {
- buf = xmlBufContent(in->buf->buffer);
- len = xmlBufUse(in->buf->buffer);
- }
-
- /* take into account the sequence length */
- if (third)
- len -= 2;
- else if (next)
- len--;
- for (; base < len; base++) {
- if ((!incomment) && (base + 4 < len) && (!iscomment)) {
- if ((buf[base] == '<') && (buf[base + 1] == '!') &&
- (buf[base + 2] == '-') && (buf[base + 3] == '-')) {
- incomment = 1;
- /* do not increment past <! - some people use <!--> */
- base += 2;
- }
- }
- if (ignoreattrval) {
- if (buf[base] == '"' || buf[base] == '\'') {
- if (invalue) {
- if (buf[base] == valdellim) {
- invalue = 0;
- continue;
- }
- } else {
- valdellim = buf[base];
- invalue = 1;
- continue;
- }
- } else if (invalue) {
- continue;
- }
- }
- if (incomment) {
- if (base + 3 > len)
- return (-1);
- if ((buf[base] == '-') && (buf[base + 1] == '-') &&
- (buf[base + 2] == '>')) {
- incomment = 0;
- base += 2;
- }
- continue;
- }
- if (buf[base] == first) {
- if (third != 0) {
- if ((buf[base + 1] != next) || (buf[base + 2] != third))
- continue;
- } else if (next != 0) {
- if (buf[base + 1] != next)
- continue;
- }
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- if (next == 0)
- xmlGenericError(xmlGenericErrorContext,
- "HPP: lookup '%c' found at %d\n",
- first, base);
- else if (third == 0)
- xmlGenericError(xmlGenericErrorContext,
- "HPP: lookup '%c%c' found at %d\n",
- first, next, base);
- else
- xmlGenericError(xmlGenericErrorContext,
- "HPP: lookup '%c%c%c' found at %d\n",
- first, next, third, base);
-#endif
- return (base - (in->cur - in->base));
- }
- }
- if ((!incomment) && (!invalue))
- ctxt->checkIndex = base;
-#ifdef DEBUG_PUSH
- if (next == 0)
- xmlGenericError(xmlGenericErrorContext,
- "HPP: lookup '%c' failed\n", first);
- else if (third == 0)
- xmlGenericError(xmlGenericErrorContext,
- "HPP: lookup '%c%c' failed\n", first, next);
- else
- xmlGenericError(xmlGenericErrorContext,
- "HPP: lookup '%c%c%c' failed\n", first, next,
- third);
-#endif
- return (-1);
-}
-
-/**
- * htmlParseLookupChars:
- * @ctxt: an HTML parser context
- * @stop: Array of chars, which stop the lookup.
- * @stopLen: Length of stop-Array
- *
- * Try to find if any char of the stop-Array is available in the input
- * stream.
- * This function has a side effect of (possibly) incrementing ctxt->checkIndex
- * to avoid rescanning sequences of bytes, it DOES change the state of the
- * parser, do not use liberally.
- *
- * Returns the index to the current parsing point if a stopChar
- * is available, -1 otherwise.
- */
-static int
-htmlParseLookupChars(htmlParserCtxtPtr ctxt, const xmlChar * stop,
- int stopLen)
-{
- int base, len;
- htmlParserInputPtr in;
- const xmlChar *buf;
- int incomment = 0;
- int i;
-
- in = ctxt->input;
- if (in == NULL)
- return (-1);
-
- base = in->cur - in->base;
- if (base < 0)
- return (-1);
-
- if (ctxt->checkIndex > base)
- base = ctxt->checkIndex;
-
- if (in->buf == NULL) {
- buf = in->base;
- len = in->length;
- } else {
- buf = xmlBufContent(in->buf->buffer);
- len = xmlBufUse(in->buf->buffer);
- }
-
- for (; base < len; base++) {
- if (!incomment && (base + 4 < len)) {
- if ((buf[base] == '<') && (buf[base + 1] == '!') &&
- (buf[base + 2] == '-') && (buf[base + 3] == '-')) {
- incomment = 1;
- /* do not increment past <! - some people use <!--> */
- base += 2;
- }
- }
- if (incomment) {
- if (base + 3 > len)
- return (-1);
- if ((buf[base] == '-') && (buf[base + 1] == '-') &&
- (buf[base + 2] == '>')) {
- incomment = 0;
- base += 2;
- }
- continue;
- }
- for (i = 0; i < stopLen; ++i) {
- if (buf[base] == stop[i]) {
- ctxt->checkIndex = 0;
- return (base - (in->cur - in->base));
- }
- }
- }
- ctxt->checkIndex = base;
- return (-1);
-}
-
-/**
- * htmlParseTryOrFinish:
- * @ctxt: an HTML parser context
- * @terminate: last chunk indicator
- *
- * Try to progress on parsing
- *
- * Returns zero if no parsing was possible
- */
-static int
-htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) {
- int ret = 0;
- htmlParserInputPtr in;
- int avail = 0;
- xmlChar cur, next;
-
- htmlParserNodeInfo node_info;
-
-#ifdef DEBUG_PUSH
- switch (ctxt->instate) {
- case XML_PARSER_EOF:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try EOF\n"); break;
- case XML_PARSER_START:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try START\n"); break;
- case XML_PARSER_MISC:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try MISC\n");break;
- case XML_PARSER_COMMENT:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try COMMENT\n");break;
- case XML_PARSER_PROLOG:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try PROLOG\n");break;
- case XML_PARSER_START_TAG:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try START_TAG\n");break;
- case XML_PARSER_CONTENT:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try CONTENT\n");break;
- case XML_PARSER_CDATA_SECTION:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try CDATA_SECTION\n");break;
- case XML_PARSER_END_TAG:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try END_TAG\n");break;
- case XML_PARSER_ENTITY_DECL:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try ENTITY_DECL\n");break;
- case XML_PARSER_ENTITY_VALUE:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try ENTITY_VALUE\n");break;
- case XML_PARSER_ATTRIBUTE_VALUE:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try ATTRIBUTE_VALUE\n");break;
- case XML_PARSER_DTD:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try DTD\n");break;
- case XML_PARSER_EPILOG:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try EPILOG\n");break;
- case XML_PARSER_PI:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try PI\n");break;
- case XML_PARSER_SYSTEM_LITERAL:
- xmlGenericError(xmlGenericErrorContext,
- "HPP: try SYSTEM_LITERAL\n");break;
- }
-#endif
-
- while (1) {
-
- in = ctxt->input;
- if (in == NULL) break;
- if (in->buf == NULL)
- avail = in->length - (in->cur - in->base);
- else
- avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
- if ((avail == 0) && (terminate)) {
- htmlAutoCloseOnEnd(ctxt);
- if ((ctxt->nameNr == 0) && (ctxt->instate != XML_PARSER_EOF)) {
- /*
- * SAX: end of the document processing.
- */
- ctxt->instate = XML_PARSER_EOF;
- if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
- ctxt->sax->endDocument(ctxt->userData);
- }
- }
- if (avail < 1)
- goto done;
- cur = in->cur[0];
- if (cur == 0) {
- SKIP(1);
- continue;
- }
-
- switch (ctxt->instate) {
- case XML_PARSER_EOF:
- /*
- * Document parsing is done !
- */
- goto done;
- case XML_PARSER_START:
- /*
- * Very first chars read from the document flow.
- */
- cur = in->cur[0];
- if (IS_BLANK_CH(cur)) {
- SKIP_BLANKS;
- if (in->buf == NULL)
- avail = in->length - (in->cur - in->base);
- else
- avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
- }
- if ((ctxt->sax) && (ctxt->sax->setDocumentLocator))
- ctxt->sax->setDocumentLocator(ctxt->userData,
- &xmlDefaultSAXLocator);
- if ((ctxt->sax) && (ctxt->sax->startDocument) &&
- (!ctxt->disableSAX))
- ctxt->sax->startDocument(ctxt->userData);
-
- cur = in->cur[0];
- next = in->cur[1];
- if ((cur == '<') && (next == '!') &&
- (UPP(2) == 'D') && (UPP(3) == 'O') &&
- (UPP(4) == 'C') && (UPP(5) == 'T') &&
- (UPP(6) == 'Y') && (UPP(7) == 'P') &&
- (UPP(8) == 'E')) {
- if ((!terminate) &&
- (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
- goto done;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: Parsing internal subset\n");
-#endif
- htmlParseDocTypeDecl(ctxt);
- ctxt->instate = XML_PARSER_PROLOG;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering PROLOG\n");
-#endif
- } else {
- ctxt->instate = XML_PARSER_MISC;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering MISC\n");
-#endif
- }
- break;
- case XML_PARSER_MISC:
- SKIP_BLANKS;
- if (in->buf == NULL)
- avail = in->length - (in->cur - in->base);
- else
- avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
- /*
- * no chars in buffer
- */
- if (avail < 1)
- goto done;
- /*
- * not enouth chars in buffer
- */
- if (avail < 2) {
- if (!terminate)
- goto done;
- else
- next = ' ';
- } else {
- next = in->cur[1];
- }
- cur = in->cur[0];
- if ((cur == '<') && (next == '!') &&
- (in->cur[2] == '-') && (in->cur[3] == '-')) {
- if ((!terminate) &&
- (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
- goto done;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: Parsing Comment\n");
-#endif
- htmlParseComment(ctxt);
- ctxt->instate = XML_PARSER_MISC;
- } else if ((cur == '<') && (next == '?')) {
- if ((!terminate) &&
- (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
- goto done;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: Parsing PI\n");
-#endif
- htmlParsePI(ctxt);
- ctxt->instate = XML_PARSER_MISC;
- } else if ((cur == '<') && (next == '!') &&
- (UPP(2) == 'D') && (UPP(3) == 'O') &&
- (UPP(4) == 'C') && (UPP(5) == 'T') &&
- (UPP(6) == 'Y') && (UPP(7) == 'P') &&
- (UPP(8) == 'E')) {
- if ((!terminate) &&
- (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
- goto done;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: Parsing internal subset\n");
-#endif
- htmlParseDocTypeDecl(ctxt);
- ctxt->instate = XML_PARSER_PROLOG;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering PROLOG\n");
-#endif
- } else if ((cur == '<') && (next == '!') &&
- (avail < 9)) {
- goto done;
- } else {
- ctxt->instate = XML_PARSER_START_TAG;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering START_TAG\n");
-#endif
- }
- break;
- case XML_PARSER_PROLOG:
- SKIP_BLANKS;
- if (in->buf == NULL)
- avail = in->length - (in->cur - in->base);
- else
- avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
- if (avail < 2)
- goto done;
- cur = in->cur[0];
- next = in->cur[1];
- if ((cur == '<') && (next == '!') &&
- (in->cur[2] == '-') && (in->cur[3] == '-')) {
- if ((!terminate) &&
- (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
- goto done;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: Parsing Comment\n");
-#endif
- htmlParseComment(ctxt);
- ctxt->instate = XML_PARSER_PROLOG;
- } else if ((cur == '<') && (next == '?')) {
- if ((!terminate) &&
- (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
- goto done;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: Parsing PI\n");
-#endif
- htmlParsePI(ctxt);
- ctxt->instate = XML_PARSER_PROLOG;
- } else if ((cur == '<') && (next == '!') &&
- (avail < 4)) {
- goto done;
- } else {
- ctxt->instate = XML_PARSER_START_TAG;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering START_TAG\n");
-#endif
- }
- break;
- case XML_PARSER_EPILOG:
- if (in->buf == NULL)
- avail = in->length - (in->cur - in->base);
- else
- avail = xmlBufUse(in->buf->buffer) - (in->cur - in->base);
- if (avail < 1)
- goto done;
- cur = in->cur[0];
- if (IS_BLANK_CH(cur)) {
- htmlParseCharData(ctxt);
- goto done;
- }
- if (avail < 2)
- goto done;
- next = in->cur[1];
- if ((cur == '<') && (next == '!') &&
- (in->cur[2] == '-') && (in->cur[3] == '-')) {
- if ((!terminate) &&
- (htmlParseLookupSequence(ctxt, '-', '-', '>', 1, 1) < 0))
- goto done;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: Parsing Comment\n");
-#endif
- htmlParseComment(ctxt);
- ctxt->instate = XML_PARSER_EPILOG;
- } else if ((cur == '<') && (next == '?')) {
- if ((!terminate) &&
- (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
- goto done;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: Parsing PI\n");
-#endif
- htmlParsePI(ctxt);
- ctxt->instate = XML_PARSER_EPILOG;
- } else if ((cur == '<') && (next == '!') &&
- (avail < 4)) {
- goto done;
- } else {
- ctxt->errNo = XML_ERR_DOCUMENT_END;
- ctxt->wellFormed = 0;
- ctxt->instate = XML_PARSER_EOF;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering EOF\n");
-#endif
- if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
- ctxt->sax->endDocument(ctxt->userData);
- goto done;
- }
- break;
- case XML_PARSER_START_TAG: {
- const xmlChar *name;
- int failed;
- const htmlElemDesc * info;
-
- /*
- * no chars in buffer
- */
- if (avail < 1)
- goto done;
- /*
- * not enouth chars in buffer
- */
- if (avail < 2) {
- if (!terminate)
- goto done;
- else
- next = ' ';
- } else {
- next = in->cur[1];
- }
- cur = in->cur[0];
- if (cur != '<') {
- ctxt->instate = XML_PARSER_CONTENT;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering CONTENT\n");
-#endif
- break;
- }
- if (next == '/') {
- ctxt->instate = XML_PARSER_END_TAG;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering END_TAG\n");
-#endif
- break;
- }
- if ((!terminate) &&
- (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
- goto done;
-
- /* Capture start position */
- if (ctxt->record_info) {
- node_info.begin_pos = ctxt->input->consumed +
- (CUR_PTR - ctxt->input->base);
- node_info.begin_line = ctxt->input->line;
- }
-
-
- failed = htmlParseStartTag(ctxt);
- name = ctxt->name;
- if ((failed == -1) ||
- (name == NULL)) {
- if (CUR == '>')
- NEXT;
- break;
- }
-
- /*
- * Lookup the info for that element.
- */
- info = htmlTagLookup(name);
- if (info == NULL) {
- htmlParseErr(ctxt, XML_HTML_UNKNOWN_TAG,
- "Tag %s invalid\n", name, NULL);
- }
-
- /*
- * Check for an Empty Element labeled the XML/SGML way
- */
- if ((CUR == '/') && (NXT(1) == '>')) {
- SKIP(2);
- if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
- ctxt->sax->endElement(ctxt->userData, name);
- htmlnamePop(ctxt);
- ctxt->instate = XML_PARSER_CONTENT;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering CONTENT\n");
-#endif
- break;
- }
-
- if (CUR == '>') {
- NEXT;
- } else {
- htmlParseErr(ctxt, XML_ERR_GT_REQUIRED,
- "Couldn't find end of Start Tag %s\n",
- name, NULL);
-
- /*
- * end of parsing of this node.
- */
- if (xmlStrEqual(name, ctxt->name)) {
- nodePop(ctxt);
- htmlnamePop(ctxt);
- }
-
- if (ctxt->record_info)
- htmlNodeInfoPush(ctxt, &node_info);
-
- ctxt->instate = XML_PARSER_CONTENT;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering CONTENT\n");
-#endif
- break;
- }
-
- /*
- * Check for an Empty Element from DTD definition
- */
- if ((info != NULL) && (info->empty)) {
- if ((ctxt->sax != NULL) && (ctxt->sax->endElement != NULL))
- ctxt->sax->endElement(ctxt->userData, name);
- htmlnamePop(ctxt);
- }
-
- if (ctxt->record_info)
- htmlNodeInfoPush(ctxt, &node_info);
-
- ctxt->instate = XML_PARSER_CONTENT;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering CONTENT\n");
-#endif
- break;
- }
- case XML_PARSER_CONTENT: {
- long cons;
- /*
- * Handle preparsed entities and charRef
- */
- if (ctxt->token != 0) {
- xmlChar chr[2] = { 0 , 0 } ;
-
- chr[0] = (xmlChar) ctxt->token;
- htmlCheckParagraph(ctxt);
- if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL))
- ctxt->sax->characters(ctxt->userData, chr, 1);
- ctxt->token = 0;
- ctxt->checkIndex = 0;
- }
- if ((avail == 1) && (terminate)) {
- cur = in->cur[0];
- if ((cur != '<') && (cur != '&')) {
- if (ctxt->sax != NULL) {
- if (IS_BLANK_CH(cur)) {
- if (ctxt->keepBlanks) {
- if (ctxt->sax->characters != NULL)
- ctxt->sax->characters(
- ctxt->userData, &in->cur[0], 1);
- } else {
- if (ctxt->sax->ignorableWhitespace != NULL)
- ctxt->sax->ignorableWhitespace(
- ctxt->userData, &in->cur[0], 1);
- }
- } else {
- htmlCheckParagraph(ctxt);
- if (ctxt->sax->characters != NULL)
- ctxt->sax->characters(
- ctxt->userData, &in->cur[0], 1);
- }
- }
- ctxt->token = 0;
- ctxt->checkIndex = 0;
- in->cur++;
- break;
- }
- }
- if (avail < 2)
- goto done;
- cur = in->cur[0];
- next = in->cur[1];
- cons = ctxt->nbChars;
- if ((xmlStrEqual(ctxt->name, BAD_CAST"script")) ||
- (xmlStrEqual(ctxt->name, BAD_CAST"style"))) {
- /*
- * Handle SCRIPT/STYLE separately
- */
- if (!terminate) {
- int idx;
- xmlChar val;
-
- idx = htmlParseLookupSequence(ctxt, '<', '/', 0, 0, 0);
- if (idx < 0)
- goto done;
- val = in->cur[idx + 2];
- if (val == 0) /* bad cut of input */
- goto done;
- }
- htmlParseScript(ctxt);
- if ((cur == '<') && (next == '/')) {
- ctxt->instate = XML_PARSER_END_TAG;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering END_TAG\n");
-#endif
- break;
- }
- } else {
- /*
- * Sometimes DOCTYPE arrives in the middle of the document
- */
- if ((cur == '<') && (next == '!') &&
- (UPP(2) == 'D') && (UPP(3) == 'O') &&
- (UPP(4) == 'C') && (UPP(5) == 'T') &&
- (UPP(6) == 'Y') && (UPP(7) == 'P') &&
- (UPP(8) == 'E')) {
- if ((!terminate) &&
- (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
- goto done;
- htmlParseErr(ctxt, XML_HTML_STRUCURE_ERROR,
- "Misplaced DOCTYPE declaration\n",
- BAD_CAST "DOCTYPE" , NULL);
- htmlParseDocTypeDecl(ctxt);
- } else if ((cur == '<') && (next == '!') &&
- (in->cur[2] == '-') && (in->cur[3] == '-')) {
- if ((!terminate) &&
- (htmlParseLookupSequence(
- ctxt, '-', '-', '>', 1, 1) < 0))
- goto done;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: Parsing Comment\n");
-#endif
- htmlParseComment(ctxt);
- ctxt->instate = XML_PARSER_CONTENT;
- } else if ((cur == '<') && (next == '?')) {
- if ((!terminate) &&
- (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
- goto done;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: Parsing PI\n");
-#endif
- htmlParsePI(ctxt);
- ctxt->instate = XML_PARSER_CONTENT;
- } else if ((cur == '<') && (next == '!') && (avail < 4)) {
- goto done;
- } else if ((cur == '<') && (next == '/')) {
- ctxt->instate = XML_PARSER_END_TAG;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering END_TAG\n");
-#endif
- break;
- } else if (cur == '<') {
- ctxt->instate = XML_PARSER_START_TAG;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering START_TAG\n");
-#endif
- break;
- } else if (cur == '&') {
- if ((!terminate) &&
- (htmlParseLookupChars(ctxt,
- BAD_CAST "; >/", 4) < 0))
- goto done;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: Parsing Reference\n");
-#endif
- /* TODO: check generation of subtrees if noent !!! */
- htmlParseReference(ctxt);
- } else {
- /*
- * check that the text sequence is complete
- * before handing out the data to the parser
- * to avoid problems with erroneous end of
- * data detection.
- */
- if ((!terminate) &&
- (htmlParseLookupChars(ctxt, BAD_CAST "<&", 2) < 0))
- goto done;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: Parsing char data\n");
-#endif
- htmlParseCharData(ctxt);
- }
- }
- if (cons == ctxt->nbChars) {
- if (ctxt->node != NULL) {
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "detected an error in element content\n",
- NULL, NULL);
- }
- NEXT;
- break;
- }
-
- break;
- }
- case XML_PARSER_END_TAG:
- if (avail < 2)
- goto done;
- if ((!terminate) &&
- (htmlParseLookupSequence(ctxt, '>', 0, 0, 0, 1) < 0))
- goto done;
- htmlParseEndTag(ctxt);
- if (ctxt->nameNr == 0) {
- ctxt->instate = XML_PARSER_EPILOG;
- } else {
- ctxt->instate = XML_PARSER_CONTENT;
- }
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering CONTENT\n");
-#endif
- break;
- case XML_PARSER_CDATA_SECTION:
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "HPP: internal error, state == CDATA\n",
- NULL, NULL);
- ctxt->instate = XML_PARSER_CONTENT;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering CONTENT\n");
-#endif
- break;
- case XML_PARSER_DTD:
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "HPP: internal error, state == DTD\n",
- NULL, NULL);
- ctxt->instate = XML_PARSER_CONTENT;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering CONTENT\n");
-#endif
- break;
- case XML_PARSER_COMMENT:
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "HPP: internal error, state == COMMENT\n",
- NULL, NULL);
- ctxt->instate = XML_PARSER_CONTENT;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering CONTENT\n");
-#endif
- break;
- case XML_PARSER_PI:
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "HPP: internal error, state == PI\n",
- NULL, NULL);
- ctxt->instate = XML_PARSER_CONTENT;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering CONTENT\n");
-#endif
- break;
- case XML_PARSER_ENTITY_DECL:
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "HPP: internal error, state == ENTITY_DECL\n",
- NULL, NULL);
- ctxt->instate = XML_PARSER_CONTENT;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering CONTENT\n");
-#endif
- break;
- case XML_PARSER_ENTITY_VALUE:
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "HPP: internal error, state == ENTITY_VALUE\n",
- NULL, NULL);
- ctxt->instate = XML_PARSER_CONTENT;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering DTD\n");
-#endif
- break;
- case XML_PARSER_ATTRIBUTE_VALUE:
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "HPP: internal error, state == ATTRIBUTE_VALUE\n",
- NULL, NULL);
- ctxt->instate = XML_PARSER_START_TAG;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering START_TAG\n");
-#endif
- break;
- case XML_PARSER_SYSTEM_LITERAL:
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "HPP: internal error, state == XML_PARSER_SYSTEM_LITERAL\n",
- NULL, NULL);
- ctxt->instate = XML_PARSER_CONTENT;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering CONTENT\n");
-#endif
- break;
- case XML_PARSER_IGNORE:
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "HPP: internal error, state == XML_PARSER_IGNORE\n",
- NULL, NULL);
- ctxt->instate = XML_PARSER_CONTENT;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering CONTENT\n");
-#endif
- break;
- case XML_PARSER_PUBLIC_LITERAL:
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "HPP: internal error, state == XML_PARSER_LITERAL\n",
- NULL, NULL);
- ctxt->instate = XML_PARSER_CONTENT;
- ctxt->checkIndex = 0;
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext,
- "HPP: entering CONTENT\n");
-#endif
- break;
-
- }
- }
-done:
- if ((avail == 0) && (terminate)) {
- htmlAutoCloseOnEnd(ctxt);
- if ((ctxt->nameNr == 0) && (ctxt->instate != XML_PARSER_EOF)) {
- /*
- * SAX: end of the document processing.
- */
- ctxt->instate = XML_PARSER_EOF;
- if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
- ctxt->sax->endDocument(ctxt->userData);
- }
- }
- if ((!(ctxt->options & HTML_PARSE_NODEFDTD)) && (ctxt->myDoc != NULL) &&
- ((terminate) || (ctxt->instate == XML_PARSER_EOF) ||
- (ctxt->instate == XML_PARSER_EPILOG))) {
- xmlDtdPtr dtd;
- dtd = xmlGetIntSubset(ctxt->myDoc);
- if (dtd == NULL)
- ctxt->myDoc->intSubset =
- xmlCreateIntSubset(ctxt->myDoc, BAD_CAST "html",
- BAD_CAST "-//W3C//DTD HTML 4.0 Transitional//EN",
- BAD_CAST "http://www.w3.org/TR/REC-html40/loose.dtd");
- }
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext, "HPP: done %d\n", ret);
-#endif
- return(ret);
-}
-
-/**
- * htmlParseChunk:
- * @ctxt: an HTML parser context
- * @chunk: an char array
- * @size: the size in byte of the chunk
- * @terminate: last chunk indicator
- *
- * Parse a Chunk of memory
- *
- * Returns zero if no error, the xmlParserErrors otherwise.
- */
-int
-htmlParseChunk(htmlParserCtxtPtr ctxt, const char *chunk, int size,
- int terminate) {
- if ((ctxt == NULL) || (ctxt->input == NULL)) {
- htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "htmlParseChunk: context error\n", NULL, NULL);
- return(XML_ERR_INTERNAL_ERROR);
- }
- if ((size > 0) && (chunk != NULL) && (ctxt->input != NULL) &&
- (ctxt->input->buf != NULL) && (ctxt->instate != XML_PARSER_EOF)) {
- size_t base = xmlBufGetInputBase(ctxt->input->buf->buffer, ctxt->input);
- size_t cur = ctxt->input->cur - ctxt->input->base;
- int res;
-
- res = xmlParserInputBufferPush(ctxt->input->buf, size, chunk);
- if (res < 0) {
- ctxt->errNo = XML_PARSER_EOF;
- ctxt->disableSAX = 1;
- return (XML_PARSER_EOF);
- }
- xmlBufSetInputBaseCur(ctxt->input->buf->buffer, ctxt->input, base, cur);
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext, "HPP: pushed %d\n", size);
-#endif
-
-#if 0
- if ((terminate) || (ctxt->input->buf->buffer->use > 80))
- htmlParseTryOrFinish(ctxt, terminate);
-#endif
- } else if (ctxt->instate != XML_PARSER_EOF) {
- if ((ctxt->input != NULL) && ctxt->input->buf != NULL) {
- xmlParserInputBufferPtr in = ctxt->input->buf;
- if ((in->encoder != NULL) && (in->buffer != NULL) &&
- (in->raw != NULL)) {
- int nbchars;
- size_t base = xmlBufGetInputBase(in->buffer, ctxt->input);
- size_t current = ctxt->input->cur - ctxt->input->base;
-
- nbchars = xmlCharEncInput(in, terminate);
- if (nbchars < 0) {
- htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
- "encoder error\n", NULL, NULL);
- return(XML_ERR_INVALID_ENCODING);
- }
- xmlBufSetInputBaseCur(in->buffer, ctxt->input, base, current);
- }
- }
- }
- htmlParseTryOrFinish(ctxt, terminate);
- if (terminate) {
- if ((ctxt->instate != XML_PARSER_EOF) &&
- (ctxt->instate != XML_PARSER_EPILOG) &&
- (ctxt->instate != XML_PARSER_MISC)) {
- ctxt->errNo = XML_ERR_DOCUMENT_END;
- ctxt->wellFormed = 0;
- }
- if (ctxt->instate != XML_PARSER_EOF) {
- if ((ctxt->sax) && (ctxt->sax->endDocument != NULL))
- ctxt->sax->endDocument(ctxt->userData);
- }
- ctxt->instate = XML_PARSER_EOF;
- }
- return((xmlParserErrors) ctxt->errNo);
-}
-
-/************************************************************************
- * *
- * User entry points *
- * *
- ************************************************************************/
-
-/**
- * htmlCreatePushParserCtxt:
- * @sax: a SAX handler
- * @user_data: The user data returned on SAX callbacks
- * @chunk: a pointer to an array of chars
- * @size: number of chars in the array
- * @filename: an optional file name or URI
- * @enc: an optional encoding
- *
- * Create a parser context for using the HTML parser in push mode
- * The value of @filename is used for fetching external entities
- * and error/warning reports.
- *
- * Returns the new parser context or NULL
- */
-htmlParserCtxtPtr
-htmlCreatePushParserCtxt(htmlSAXHandlerPtr sax, void *user_data,
- const char *chunk, int size, const char *filename,
- xmlCharEncoding enc) {
- htmlParserCtxtPtr ctxt;
- htmlParserInputPtr inputStream;
- xmlParserInputBufferPtr buf;
-
- xmlInitParser();
-
- buf = xmlAllocParserInputBuffer(enc);
- if (buf == NULL) return(NULL);
-
- ctxt = htmlNewParserCtxt();
- if (ctxt == NULL) {
- xmlFreeParserInputBuffer(buf);
- return(NULL);
- }
- if(enc==XML_CHAR_ENCODING_UTF8 || buf->encoder)
- ctxt->charset=XML_CHAR_ENCODING_UTF8;
- if (sax != NULL) {
- if (ctxt->sax != (xmlSAXHandlerPtr) &htmlDefaultSAXHandler)
- xmlFree(ctxt->sax);
- ctxt->sax = (htmlSAXHandlerPtr) xmlMalloc(sizeof(htmlSAXHandler));
- if (ctxt->sax == NULL) {
- xmlFree(buf);
- xmlFree(ctxt);
- return(NULL);
- }
- memcpy(ctxt->sax, sax, sizeof(htmlSAXHandler));
- if (user_data != NULL)
- ctxt->userData = user_data;
- }
- if (filename == NULL) {
- ctxt->directory = NULL;
- } else {
- ctxt->directory = xmlParserGetDirectory(filename);
- }
-
- inputStream = htmlNewInputStream(ctxt);
- if (inputStream == NULL) {
- xmlFreeParserCtxt(ctxt);
- xmlFree(buf);
- return(NULL);
- }
-
- if (filename == NULL)
- inputStream->filename = NULL;
- else
- inputStream->filename = (char *)
- xmlCanonicPath((const xmlChar *) filename);
- inputStream->buf = buf;
- xmlBufResetInput(buf->buffer, inputStream);
-
- inputPush(ctxt, inputStream);
-
- if ((size > 0) && (chunk != NULL) && (ctxt->input != NULL) &&
- (ctxt->input->buf != NULL)) {
- size_t base = xmlBufGetInputBase(ctxt->input->buf->buffer, ctxt->input);
- size_t cur = ctxt->input->cur - ctxt->input->base;
-
- xmlParserInputBufferPush(ctxt->input->buf, size, chunk);
-
- xmlBufSetInputBaseCur(ctxt->input->buf->buffer, ctxt->input, base, cur);
-#ifdef DEBUG_PUSH
- xmlGenericError(xmlGenericErrorContext, "HPP: pushed %d\n", size);
-#endif
- }
- ctxt->progressive = 1;
-
- return(ctxt);
-}
-#endif /* LIBXML_PUSH_ENABLED */
-
-/**
- * htmlSAXParseDoc:
- * @cur: a pointer to an array of xmlChar
- * @encoding: a free form C string describing the HTML document encoding, or NULL
- * @sax: the SAX handler block
- * @userData: if using SAX, this pointer will be provided on callbacks.
- *
- * Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks
- * to handle parse events. If sax is NULL, fallback to the default DOM
- * behavior and return a tree.
- *
- * Returns the resulting document tree unless SAX is NULL or the document is
- * not well formed.
- */
-
-htmlDocPtr
-htmlSAXParseDoc(xmlChar *cur, const char *encoding, htmlSAXHandlerPtr sax, void *userData) {
- htmlDocPtr ret;
- htmlParserCtxtPtr ctxt;
-
- xmlInitParser();
-
- if (cur == NULL) return(NULL);
-
-
- ctxt = htmlCreateDocParserCtxt(cur, encoding);
- if (ctxt == NULL) return(NULL);
- if (sax != NULL) {
- if (ctxt->sax != NULL) xmlFree (ctxt->sax);
- ctxt->sax = sax;
- ctxt->userData = userData;
- }
-
- htmlParseDocument(ctxt);
- ret = ctxt->myDoc;
- if (sax != NULL) {
- ctxt->sax = NULL;
- ctxt->userData = NULL;
- }
- htmlFreeParserCtxt(ctxt);
-
- return(ret);
-}
-
-/**
- * htmlParseDoc:
- * @cur: a pointer to an array of xmlChar
- * @encoding: a free form C string describing the HTML document encoding, or NULL
- *
- * parse an HTML in-memory document and build a tree.
- *
- * Returns the resulting document tree
- */
-
-htmlDocPtr
-htmlParseDoc(xmlChar *cur, const char *encoding) {
- return(htmlSAXParseDoc(cur, encoding, NULL, NULL));
-}
-
-
-/**
- * htmlCreateFileParserCtxt:
- * @filename: the filename
- * @encoding: a free form C string describing the HTML document encoding, or NULL
- *
- * Create a parser context for a file content.
- * Automatic support for ZLIB/Compress compressed document is provided
- * by default if found at compile-time.
- *
- * Returns the new parser context or NULL
- */
-htmlParserCtxtPtr
-htmlCreateFileParserCtxt(const char *filename, const char *encoding)
-{
- htmlParserCtxtPtr ctxt;
- htmlParserInputPtr inputStream;
- char *canonicFilename;
- /* htmlCharEncoding enc; */
- xmlChar *content, *content_line = (xmlChar *) "charset=";
-
- if (filename == NULL)
- return(NULL);
-
- ctxt = htmlNewParserCtxt();
- if (ctxt == NULL) {
- return(NULL);
- }
- canonicFilename = (char *) xmlCanonicPath((const xmlChar *) filename);
- if (canonicFilename == NULL) {
-#ifdef LIBXML_SAX1_ENABLED
- if (xmlDefaultSAXHandler.error != NULL) {
- xmlDefaultSAXHandler.error(NULL, "out of memory\n");
- }
-#endif
- xmlFreeParserCtxt(ctxt);
- return(NULL);
- }
-
- inputStream = xmlLoadExternalEntity(canonicFilename, NULL, ctxt);
- xmlFree(canonicFilename);
- if (inputStream == NULL) {
- xmlFreeParserCtxt(ctxt);
- return(NULL);
- }
-
- inputPush(ctxt, inputStream);
-
- /* set encoding */
- if (encoding) {
- size_t l = strlen(encoding);
-
- if (l < 1000) {
- content = xmlMallocAtomic (xmlStrlen(content_line) + l + 1);
- if (content) {
- strcpy ((char *)content, (char *)content_line);
- strcat ((char *)content, (char *)encoding);
- htmlCheckEncoding (ctxt, content);
- xmlFree (content);
- }
- }
- }
-
- return(ctxt);
-}
-
-/**
- * htmlSAXParseFile:
- * @filename: the filename
- * @encoding: a free form C string describing the HTML document encoding, or NULL
- * @sax: the SAX handler block
- * @userData: if using SAX, this pointer will be provided on callbacks.
- *
- * parse an HTML file and build a tree. Automatic support for ZLIB/Compress
- * compressed document is provided by default if found at compile-time.
- * It use the given SAX function block to handle the parsing callback.
- * If sax is NULL, fallback to the default DOM tree building routines.
- *
- * Returns the resulting document tree unless SAX is NULL or the document is
- * not well formed.
- */
-
-htmlDocPtr
-htmlSAXParseFile(const char *filename, const char *encoding, htmlSAXHandlerPtr sax,
- void *userData) {
- htmlDocPtr ret;
- htmlParserCtxtPtr ctxt;
- htmlSAXHandlerPtr oldsax = NULL;
-
- xmlInitParser();
-
- ctxt = htmlCreateFileParserCtxt(filename, encoding);
- if (ctxt == NULL) return(NULL);
- if (sax != NULL) {
- oldsax = ctxt->sax;
- ctxt->sax = sax;
- ctxt->userData = userData;
- }
-
- htmlParseDocument(ctxt);
-
- ret = ctxt->myDoc;
- if (sax != NULL) {
- ctxt->sax = oldsax;
- ctxt->userData = NULL;
- }
- htmlFreeParserCtxt(ctxt);
-
- return(ret);
-}
-
-/**
- * htmlParseFile:
- * @filename: the filename
- * @encoding: a free form C string describing the HTML document encoding, or NULL
- *
- * parse an HTML file and build a tree. Automatic support for ZLIB/Compress
- * compressed document is provided by default if found at compile-time.
- *
- * Returns the resulting document tree
- */
-
-htmlDocPtr
-htmlParseFile(const char *filename, const char *encoding) {
- return(htmlSAXParseFile(filename, encoding, NULL, NULL));
-}
-
-/**
- * htmlHandleOmittedElem:
- * @val: int 0 or 1
- *
- * Set and return the previous value for handling HTML omitted tags.
- *
- * Returns the last value for 0 for no handling, 1 for auto insertion.
- */
-
-int
-htmlHandleOmittedElem(int val) {
- int old = htmlOmittedDefaultValue;
-
- htmlOmittedDefaultValue = val;
- return(old);
-}
-
-/**
- * htmlElementAllowedHere:
- * @parent: HTML parent element
- * @elt: HTML element
- *
- * Checks whether an HTML element may be a direct child of a parent element.
- * Note - doesn't check for deprecated elements
- *
- * Returns 1 if allowed; 0 otherwise.
- */
-int
-htmlElementAllowedHere(const htmlElemDesc* parent, const xmlChar* elt) {
- const char** p ;
-
- if ( ! elt || ! parent || ! parent->subelts )
- return 0 ;
-
- for ( p = parent->subelts; *p; ++p )
- if ( !xmlStrcmp((const xmlChar *)*p, elt) )
- return 1 ;
-
- return 0 ;
-}
-/**
- * htmlElementStatusHere:
- * @parent: HTML parent element
- * @elt: HTML element
- *
- * Checks whether an HTML element may be a direct child of a parent element.
- * and if so whether it is valid or deprecated.
- *
- * Returns one of HTML_VALID, HTML_DEPRECATED, HTML_INVALID
- */
-htmlStatus
-htmlElementStatusHere(const htmlElemDesc* parent, const htmlElemDesc* elt) {
- if ( ! parent || ! elt )
- return HTML_INVALID ;
- if ( ! htmlElementAllowedHere(parent, (const xmlChar*) elt->name ) )
- return HTML_INVALID ;
-
- return ( elt->dtd == 0 ) ? HTML_VALID : HTML_DEPRECATED ;
-}
-/**
- * htmlAttrAllowed:
- * @elt: HTML element
- * @attr: HTML attribute
- * @legacy: whether to allow deprecated attributes
- *
- * Checks whether an attribute is valid for an element
- * Has full knowledge of Required and Deprecated attributes
- *
- * Returns one of HTML_REQUIRED, HTML_VALID, HTML_DEPRECATED, HTML_INVALID
- */
-htmlStatus
-htmlAttrAllowed(const htmlElemDesc* elt, const xmlChar* attr, int legacy) {
- const char** p ;
-
- if ( !elt || ! attr )
- return HTML_INVALID ;
-
- if ( elt->attrs_req )
- for ( p = elt->attrs_req; *p; ++p)
- if ( !xmlStrcmp((const xmlChar*)*p, attr) )
- return HTML_REQUIRED ;
-
- if ( elt->attrs_opt )
- for ( p = elt->attrs_opt; *p; ++p)
- if ( !xmlStrcmp((const xmlChar*)*p, attr) )
- return HTML_VALID ;
-
- if ( legacy && elt->attrs_depr )
- for ( p = elt->attrs_depr; *p; ++p)
- if ( !xmlStrcmp((const xmlChar*)*p, attr) )
- return HTML_DEPRECATED ;
-
- return HTML_INVALID ;
-}
-/**
- * htmlNodeStatus:
- * @node: an htmlNodePtr in a tree
- * @legacy: whether to allow deprecated elements (YES is faster here
- * for Element nodes)
- *
- * Checks whether the tree node is valid. Experimental (the author
- * only uses the HTML enhancements in a SAX parser)
- *
- * Return: for Element nodes, a return from htmlElementAllowedHere (if
- * legacy allowed) or htmlElementStatusHere (otherwise).
- * for Attribute nodes, a return from htmlAttrAllowed
- * for other nodes, HTML_NA (no checks performed)
- */
-htmlStatus
-htmlNodeStatus(const htmlNodePtr node, int legacy) {
- if ( ! node )
- return HTML_INVALID ;
-
- switch ( node->type ) {
- case XML_ELEMENT_NODE:
- return legacy
- ? ( htmlElementAllowedHere (
- htmlTagLookup(node->parent->name) , node->name
- ) ? HTML_VALID : HTML_INVALID )
- : htmlElementStatusHere(
- htmlTagLookup(node->parent->name) ,
- htmlTagLookup(node->name) )
- ;
- case XML_ATTRIBUTE_NODE:
- return htmlAttrAllowed(
- htmlTagLookup(node->parent->name) , node->name, legacy) ;
- default: return HTML_NA ;
- }
-}
-/************************************************************************
- * *
- * New set (2.6.0) of simpler and more flexible APIs *
- * *
- ************************************************************************/
-/**
- * DICT_FREE:
- * @str: a string
- *
- * Free a string if it is not owned by the "dict" dictionary in the
- * current scope
- */
-#define DICT_FREE(str) \
- if ((str) && ((!dict) || \
- (xmlDictOwns(dict, (const xmlChar *)(str)) == 0))) \
- xmlFree((char *)(str));
-
-/**
- * htmlCtxtReset:
- * @ctxt: an HTML parser context
- *
- * Reset a parser context
- */
-void
-htmlCtxtReset(htmlParserCtxtPtr ctxt)
-{
- xmlParserInputPtr input;
- xmlDictPtr dict;
-
- if (ctxt == NULL)
- return;
-
- xmlInitParser();
- dict = ctxt->dict;
-
- while ((input = inputPop(ctxt)) != NULL) { /* Non consuming */
- xmlFreeInputStream(input);
- }
- ctxt->inputNr = 0;
- ctxt->input = NULL;
-
- ctxt->spaceNr = 0;
- if (ctxt->spaceTab != NULL) {
- ctxt->spaceTab[0] = -1;
- ctxt->space = &ctxt->spaceTab[0];
- } else {
- ctxt->space = NULL;
- }
-
-
- ctxt->nodeNr = 0;
- ctxt->node = NULL;
-
- ctxt->nameNr = 0;
- ctxt->name = NULL;
-
- DICT_FREE(ctxt->version);
- ctxt->version = NULL;
- DICT_FREE(ctxt->encoding);
- ctxt->encoding = NULL;
- DICT_FREE(ctxt->directory);
- ctxt->directory = NULL;
- DICT_FREE(ctxt->extSubURI);
- ctxt->extSubURI = NULL;
- DICT_FREE(ctxt->extSubSystem);
- ctxt->extSubSystem = NULL;
- if (ctxt->myDoc != NULL)
- xmlFreeDoc(ctxt->myDoc);
- ctxt->myDoc = NULL;
-
- ctxt->standalone = -1;
- ctxt->hasExternalSubset = 0;
- ctxt->hasPErefs = 0;
- ctxt->html = 1;
- ctxt->external = 0;
- ctxt->instate = XML_PARSER_START;
- ctxt->token = 0;
-
- ctxt->wellFormed = 1;
- ctxt->nsWellFormed = 1;
- ctxt->disableSAX = 0;
- ctxt->valid = 1;
- ctxt->vctxt.userData = ctxt;
- ctxt->vctxt.error = xmlParserValidityError;
- ctxt->vctxt.warning = xmlParserValidityWarning;
- ctxt->record_info = 0;
- ctxt->nbChars = 0;
- ctxt->checkIndex = 0;
- ctxt->inSubset = 0;
- ctxt->errNo = XML_ERR_OK;
- ctxt->depth = 0;
- ctxt->charset = XML_CHAR_ENCODING_NONE;
- ctxt->catalogs = NULL;
- xmlInitNodeInfoSeq(&ctxt->node_seq);
-
- if (ctxt->attsDefault != NULL) {
- xmlHashFree(ctxt->attsDefault, (xmlHashDeallocator) xmlFree);
- ctxt->attsDefault = NULL;
- }
- if (ctxt->attsSpecial != NULL) {
- xmlHashFree(ctxt->attsSpecial, NULL);
- ctxt->attsSpecial = NULL;
- }
-}
-
-/**
- * htmlCtxtUseOptions:
- * @ctxt: an HTML parser context
- * @options: a combination of htmlParserOption(s)
- *
- * Applies the options to the parser context
- *
- * Returns 0 in case of success, the set of unknown or unimplemented options
- * in case of error.
- */
-int
-htmlCtxtUseOptions(htmlParserCtxtPtr ctxt, int options)
-{
- if (ctxt == NULL)
- return(-1);
-
- if (options & HTML_PARSE_NOWARNING) {
- ctxt->sax->warning = NULL;
- ctxt->vctxt.warning = NULL;
- options -= XML_PARSE_NOWARNING;
- ctxt->options |= XML_PARSE_NOWARNING;
- }
- if (options & HTML_PARSE_NOERROR) {
- ctxt->sax->error = NULL;
- ctxt->vctxt.error = NULL;
- ctxt->sax->fatalError = NULL;
- options -= XML_PARSE_NOERROR;
- ctxt->options |= XML_PARSE_NOERROR;
- }
- if (options & HTML_PARSE_PEDANTIC) {
- ctxt->pedantic = 1;
- options -= XML_PARSE_PEDANTIC;
- ctxt->options |= XML_PARSE_PEDANTIC;
- } else
- ctxt->pedantic = 0;
- if (options & XML_PARSE_NOBLANKS) {
- ctxt->keepBlanks = 0;
- ctxt->sax->ignorableWhitespace = xmlSAX2IgnorableWhitespace;
- options -= XML_PARSE_NOBLANKS;
- ctxt->options |= XML_PARSE_NOBLANKS;
- } else
- ctxt->keepBlanks = 1;
- if (options & HTML_PARSE_RECOVER) {
- ctxt->recovery = 1;
- options -= HTML_PARSE_RECOVER;
- } else
- ctxt->recovery = 0;
- if (options & HTML_PARSE_COMPACT) {
- ctxt->options |= HTML_PARSE_COMPACT;
- options -= HTML_PARSE_COMPACT;
- }
- if (options & XML_PARSE_HUGE) {
- ctxt->options |= XML_PARSE_HUGE;
- options -= XML_PARSE_HUGE;
- }
- if (options & HTML_PARSE_NODEFDTD) {
- ctxt->options |= HTML_PARSE_NODEFDTD;
- options -= HTML_PARSE_NODEFDTD;
- }
- if (options & HTML_PARSE_IGNORE_ENC) {
- ctxt->options |= HTML_PARSE_IGNORE_ENC;
- options -= HTML_PARSE_IGNORE_ENC;
- }
- if (options & HTML_PARSE_NOIMPLIED) {
- ctxt->options |= HTML_PARSE_NOIMPLIED;
- options -= HTML_PARSE_NOIMPLIED;
- }
- ctxt->dictNames = 0;
- return (options);
-}
-
-/**
- * htmlDoRead:
- * @ctxt: an HTML parser context
- * @URL: the base URL to use for the document
- * @encoding: the document encoding, or NULL
- * @options: a combination of htmlParserOption(s)
- * @reuse: keep the context for reuse
- *
- * Common front-end for the htmlRead functions
- *
- * Returns the resulting document tree or NULL
- */
-static htmlDocPtr
-htmlDoRead(htmlParserCtxtPtr ctxt, const char *URL, const char *encoding,
- int options, int reuse)
-{
- htmlDocPtr ret;
-
- htmlCtxtUseOptions(ctxt, options);
- ctxt->html = 1;
- if (encoding != NULL) {
- xmlCharEncodingHandlerPtr hdlr;
-
- hdlr = xmlFindCharEncodingHandler(encoding);
- if (hdlr != NULL) {
- xmlSwitchToEncoding(ctxt, hdlr);
- if (ctxt->input->encoding != NULL)
- xmlFree((xmlChar *) ctxt->input->encoding);
- ctxt->input->encoding = xmlStrdup((xmlChar *)encoding);
- }
- }
- if ((URL != NULL) && (ctxt->input != NULL) &&
- (ctxt->input->filename == NULL))
- ctxt->input->filename = (char *) xmlStrdup((const xmlChar *) URL);
- htmlParseDocument(ctxt);
- ret = ctxt->myDoc;
- ctxt->myDoc = NULL;
- if (!reuse) {
- if ((ctxt->dictNames) &&
- (ret != NULL) &&
- (ret->dict == ctxt->dict))
- ctxt->dict = NULL;
- xmlFreeParserCtxt(ctxt);
- }
- return (ret);
-}
-
-/**
- * htmlReadDoc:
- * @cur: a pointer to a zero terminated string
- * @URL: the base URL to use for the document
- * @encoding: the document encoding, or NULL
- * @options: a combination of htmlParserOption(s)
- *
- * parse an XML in-memory document and build a tree.
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlReadDoc(const xmlChar * cur, const char *URL, const char *encoding, int options)
-{
- htmlParserCtxtPtr ctxt;
-
- if (cur == NULL)
- return (NULL);
-
- xmlInitParser();
- ctxt = htmlCreateDocParserCtxt(cur, NULL);
- if (ctxt == NULL)
- return (NULL);
- return (htmlDoRead(ctxt, URL, encoding, options, 0));
-}
-
-/**
- * htmlReadFile:
- * @filename: a file or URL
- * @encoding: the document encoding, or NULL
- * @options: a combination of htmlParserOption(s)
- *
- * parse an XML file from the filesystem or the network.
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlReadFile(const char *filename, const char *encoding, int options)
-{
- htmlParserCtxtPtr ctxt;
-
- xmlInitParser();
- ctxt = htmlCreateFileParserCtxt(filename, encoding);
- if (ctxt == NULL)
- return (NULL);
- return (htmlDoRead(ctxt, NULL, NULL, options, 0));
-}
-
-/**
- * htmlReadMemory:
- * @buffer: a pointer to a char array
- * @size: the size of the array
- * @URL: the base URL to use for the document
- * @encoding: the document encoding, or NULL
- * @options: a combination of htmlParserOption(s)
- *
- * parse an XML in-memory document and build a tree.
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlReadMemory(const char *buffer, int size, const char *URL, const char *encoding, int options)
-{
- htmlParserCtxtPtr ctxt;
-
- xmlInitParser();
- ctxt = xmlCreateMemoryParserCtxt(buffer, size);
- if (ctxt == NULL)
- return (NULL);
- htmlDefaultSAXHandlerInit();
- if (ctxt->sax != NULL)
- memcpy(ctxt->sax, &htmlDefaultSAXHandler, sizeof(xmlSAXHandlerV1));
- return (htmlDoRead(ctxt, URL, encoding, options, 0));
-}
-
-/**
- * htmlReadFd:
- * @fd: an open file descriptor
- * @URL: the base URL to use for the document
- * @encoding: the document encoding, or NULL
- * @options: a combination of htmlParserOption(s)
- *
- * parse an XML from a file descriptor and build a tree.
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlReadFd(int fd, const char *URL, const char *encoding, int options)
-{
- htmlParserCtxtPtr ctxt;
- xmlParserInputBufferPtr input;
- xmlParserInputPtr stream;
-
- if (fd < 0)
- return (NULL);
- xmlInitParser();
-
- xmlInitParser();
- input = xmlParserInputBufferCreateFd(fd, XML_CHAR_ENCODING_NONE);
- if (input == NULL)
- return (NULL);
- ctxt = xmlNewParserCtxt();
- if (ctxt == NULL) {
- xmlFreeParserInputBuffer(input);
- return (NULL);
- }
- stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
- if (stream == NULL) {
- xmlFreeParserInputBuffer(input);
- xmlFreeParserCtxt(ctxt);
- return (NULL);
- }
- inputPush(ctxt, stream);
- return (htmlDoRead(ctxt, URL, encoding, options, 0));
-}
-
-/**
- * htmlReadIO:
- * @ioread: an I/O read function
- * @ioclose: an I/O close function
- * @ioctx: an I/O handler
- * @URL: the base URL to use for the document
- * @encoding: the document encoding, or NULL
- * @options: a combination of htmlParserOption(s)
- *
- * parse an HTML document from I/O functions and source and build a tree.
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlReadIO(xmlInputReadCallback ioread, xmlInputCloseCallback ioclose,
- void *ioctx, const char *URL, const char *encoding, int options)
-{
- htmlParserCtxtPtr ctxt;
- xmlParserInputBufferPtr input;
- xmlParserInputPtr stream;
-
- if (ioread == NULL)
- return (NULL);
- xmlInitParser();
-
- input = xmlParserInputBufferCreateIO(ioread, ioclose, ioctx,
- XML_CHAR_ENCODING_NONE);
- if (input == NULL) {
- if (ioclose != NULL)
- ioclose(ioctx);
- return (NULL);
- }
- ctxt = htmlNewParserCtxt();
- if (ctxt == NULL) {
- xmlFreeParserInputBuffer(input);
- return (NULL);
- }
- stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
- if (stream == NULL) {
- xmlFreeParserInputBuffer(input);
- xmlFreeParserCtxt(ctxt);
- return (NULL);
- }
- inputPush(ctxt, stream);
- return (htmlDoRead(ctxt, URL, encoding, options, 0));
-}
-
-/**
- * htmlCtxtReadDoc:
- * @ctxt: an HTML parser context
- * @cur: a pointer to a zero terminated string
- * @URL: the base URL to use for the document
- * @encoding: the document encoding, or NULL
- * @options: a combination of htmlParserOption(s)
- *
- * parse an XML in-memory document and build a tree.
- * This reuses the existing @ctxt parser context
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlCtxtReadDoc(htmlParserCtxtPtr ctxt, const xmlChar * cur,
- const char *URL, const char *encoding, int options)
-{
- xmlParserInputPtr stream;
-
- if (cur == NULL)
- return (NULL);
- if (ctxt == NULL)
- return (NULL);
- xmlInitParser();
-
- htmlCtxtReset(ctxt);
-
- stream = xmlNewStringInputStream(ctxt, cur);
- if (stream == NULL) {
- return (NULL);
- }
- inputPush(ctxt, stream);
- return (htmlDoRead(ctxt, URL, encoding, options, 1));
-}
-
-/**
- * htmlCtxtReadFile:
- * @ctxt: an HTML parser context
- * @filename: a file or URL
- * @encoding: the document encoding, or NULL
- * @options: a combination of htmlParserOption(s)
- *
- * parse an XML file from the filesystem or the network.
- * This reuses the existing @ctxt parser context
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlCtxtReadFile(htmlParserCtxtPtr ctxt, const char *filename,
- const char *encoding, int options)
-{
- xmlParserInputPtr stream;
-
- if (filename == NULL)
- return (NULL);
- if (ctxt == NULL)
- return (NULL);
- xmlInitParser();
-
- htmlCtxtReset(ctxt);
-
- stream = xmlLoadExternalEntity(filename, NULL, ctxt);
- if (stream == NULL) {
- return (NULL);
- }
- inputPush(ctxt, stream);
- return (htmlDoRead(ctxt, NULL, encoding, options, 1));
-}
-
-/**
- * htmlCtxtReadMemory:
- * @ctxt: an HTML parser context
- * @buffer: a pointer to a char array
- * @size: the size of the array
- * @URL: the base URL to use for the document
- * @encoding: the document encoding, or NULL
- * @options: a combination of htmlParserOption(s)
- *
- * parse an XML in-memory document and build a tree.
- * This reuses the existing @ctxt parser context
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlCtxtReadMemory(htmlParserCtxtPtr ctxt, const char *buffer, int size,
- const char *URL, const char *encoding, int options)
-{
- xmlParserInputBufferPtr input;
- xmlParserInputPtr stream;
-
- if (ctxt == NULL)
- return (NULL);
- if (buffer == NULL)
- return (NULL);
- xmlInitParser();
-
- htmlCtxtReset(ctxt);
-
- input = xmlParserInputBufferCreateMem(buffer, size, XML_CHAR_ENCODING_NONE);
- if (input == NULL) {
- return(NULL);
- }
-
- stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
- if (stream == NULL) {
- xmlFreeParserInputBuffer(input);
- return(NULL);
- }
-
- inputPush(ctxt, stream);
- return (htmlDoRead(ctxt, URL, encoding, options, 1));
-}
-
-/**
- * htmlCtxtReadFd:
- * @ctxt: an HTML parser context
- * @fd: an open file descriptor
- * @URL: the base URL to use for the document
- * @encoding: the document encoding, or NULL
- * @options: a combination of htmlParserOption(s)
- *
- * parse an XML from a file descriptor and build a tree.
- * This reuses the existing @ctxt parser context
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlCtxtReadFd(htmlParserCtxtPtr ctxt, int fd,
- const char *URL, const char *encoding, int options)
-{
- xmlParserInputBufferPtr input;
- xmlParserInputPtr stream;
-
- if (fd < 0)
- return (NULL);
- if (ctxt == NULL)
- return (NULL);
- xmlInitParser();
-
- htmlCtxtReset(ctxt);
-
-
- input = xmlParserInputBufferCreateFd(fd, XML_CHAR_ENCODING_NONE);
- if (input == NULL)
- return (NULL);
- stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
- if (stream == NULL) {
- xmlFreeParserInputBuffer(input);
- return (NULL);
- }
- inputPush(ctxt, stream);
- return (htmlDoRead(ctxt, URL, encoding, options, 1));
-}
-
-/**
- * htmlCtxtReadIO:
- * @ctxt: an HTML parser context
- * @ioread: an I/O read function
- * @ioclose: an I/O close function
- * @ioctx: an I/O handler
- * @URL: the base URL to use for the document
- * @encoding: the document encoding, or NULL
- * @options: a combination of htmlParserOption(s)
- *
- * parse an HTML document from I/O functions and source and build a tree.
- * This reuses the existing @ctxt parser context
- *
- * Returns the resulting document tree
- */
-htmlDocPtr
-htmlCtxtReadIO(htmlParserCtxtPtr ctxt, xmlInputReadCallback ioread,
- xmlInputCloseCallback ioclose, void *ioctx,
- const char *URL,
- const char *encoding, int options)
-{
- xmlParserInputBufferPtr input;
- xmlParserInputPtr stream;
-
- if (ioread == NULL)
- return (NULL);
- if (ctxt == NULL)
- return (NULL);
- xmlInitParser();
-
- htmlCtxtReset(ctxt);
-
- input = xmlParserInputBufferCreateIO(ioread, ioclose, ioctx,
- XML_CHAR_ENCODING_NONE);
- if (input == NULL) {
- if (ioclose != NULL)
- ioclose(ioctx);
- return (NULL);
- }
- stream = xmlNewIOInputStream(ctxt, input, XML_CHAR_ENCODING_NONE);
- if (stream == NULL) {
- xmlFreeParserInputBuffer(input);
- return (NULL);
- }
- inputPush(ctxt, stream);
- return (htmlDoRead(ctxt, URL, encoding, options, 1));
-}
-
-#define bottom_HTMLparser
-#include "elfgcchack.h"
-#endif /* LIBXML_HTML_ENABLED */
diff --git a/HTMLtree.c b/HTMLtree.c
deleted file mode 100644
index 2fd0c9c..0000000
--- a/HTMLtree.c
+++ /dev/null
@@ -1,1281 +0,0 @@
-/*
- * HTMLtree.c : implementation of access function for an HTML tree.
- *
- * See Copyright for the status of this software.
- *
- * daniel@veillard.com
- */
-
-
-#define IN_LIBXML
-#include "libxml.h"
-#ifdef LIBXML_HTML_ENABLED
-
-#include <string.h> /* for memset() only ! */
-
-#ifdef HAVE_CTYPE_H
-#include <ctype.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#include <libxml/xmlmemory.h>
-#include <libxml/HTMLparser.h>
-#include <libxml/HTMLtree.h>
-#include <libxml/entities.h>
-#include <libxml/valid.h>
-#include <libxml/xmlerror.h>
-#include <libxml/parserInternals.h>
-#include <libxml/globals.h>
-#include <libxml/uri.h>
-
-#include "buf.h"
-
-/************************************************************************
- * *
- * Getting/Setting encoding meta tags *
- * *
- ************************************************************************/
-
-/**
- * htmlGetMetaEncoding:
- * @doc: the document
- *
- * Encoding definition lookup in the Meta tags
- *
- * Returns the current encoding as flagged in the HTML source
- */
-const xmlChar *
-htmlGetMetaEncoding(htmlDocPtr doc) {
- htmlNodePtr cur;
- const xmlChar *content;
- const xmlChar *encoding;
-
- if (doc == NULL)
- return(NULL);
- cur = doc->children;
-
- /*
- * Search the html
- */
- while (cur != NULL) {
- if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
- if (xmlStrEqual(cur->name, BAD_CAST"html"))
- break;
- if (xmlStrEqual(cur->name, BAD_CAST"head"))
- goto found_head;
- if (xmlStrEqual(cur->name, BAD_CAST"meta"))
- goto found_meta;
- }
- cur = cur->next;
- }
- if (cur == NULL)
- return(NULL);
- cur = cur->children;
-
- /*
- * Search the head
- */
- while (cur != NULL) {
- if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
- if (xmlStrEqual(cur->name, BAD_CAST"head"))
- break;
- if (xmlStrEqual(cur->name, BAD_CAST"meta"))
- goto found_meta;
- }
- cur = cur->next;
- }
- if (cur == NULL)
- return(NULL);
-found_head:
- cur = cur->children;
-
- /*
- * Search the meta elements
- */
-found_meta:
- while (cur != NULL) {
- if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
- if (xmlStrEqual(cur->name, BAD_CAST"meta")) {
- xmlAttrPtr attr = cur->properties;
- int http;
- const xmlChar *value;
-
- content = NULL;
- http = 0;
- while (attr != NULL) {
- if ((attr->children != NULL) &&
- (attr->children->type == XML_TEXT_NODE) &&
- (attr->children->next == NULL)) {
- value = attr->children->content;
- if ((!xmlStrcasecmp(attr->name, BAD_CAST"http-equiv"))
- && (!xmlStrcasecmp(value, BAD_CAST"Content-Type")))
- http = 1;
- else if ((value != NULL)
- && (!xmlStrcasecmp(attr->name, BAD_CAST"content")))
- content = value;
- if ((http != 0) && (content != NULL))
- goto found_content;
- }
- attr = attr->next;
- }
- }
- }
- cur = cur->next;
- }
- return(NULL);
-
-found_content:
- encoding = xmlStrstr(content, BAD_CAST"charset=");
- if (encoding == NULL)
- encoding = xmlStrstr(content, BAD_CAST"Charset=");
- if (encoding == NULL)
- encoding = xmlStrstr(content, BAD_CAST"CHARSET=");
- if (encoding != NULL) {
- encoding += 8;
- } else {
- encoding = xmlStrstr(content, BAD_CAST"charset =");
- if (encoding == NULL)
- encoding = xmlStrstr(content, BAD_CAST"Charset =");
- if (encoding == NULL)
- encoding = xmlStrstr(content, BAD_CAST"CHARSET =");
- if (encoding != NULL)
- encoding += 9;
- }
- if (encoding != NULL) {
- while ((*encoding == ' ') || (*encoding == '\t')) encoding++;
- }
- return(encoding);
-}
-
-/**
- * htmlSetMetaEncoding:
- * @doc: the document
- * @encoding: the encoding string
- *
- * Sets the current encoding in the Meta tags
- * NOTE: this will not change the document content encoding, just
- * the META flag associated.
- *
- * Returns 0 in case of success and -1 in case of error
- */
-int
-htmlSetMetaEncoding(htmlDocPtr doc, const xmlChar *encoding) {
- htmlNodePtr cur, meta = NULL, head = NULL;
- const xmlChar *content = NULL;
- char newcontent[100];
-
- newcontent[0] = 0;
-
- if (doc == NULL)
- return(-1);
-
- /* html isn't a real encoding it's just libxml2 way to get entities */
- if (!xmlStrcasecmp(encoding, BAD_CAST "html"))
- return(-1);
-
- if (encoding != NULL) {
- snprintf(newcontent, sizeof(newcontent), "text/html; charset=%s",
- (char *)encoding);
- newcontent[sizeof(newcontent) - 1] = 0;
- }
-
- cur = doc->children;
-
- /*
- * Search the html
- */
- while (cur != NULL) {
- if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
- if (xmlStrcasecmp(cur->name, BAD_CAST"html") == 0)
- break;
- if (xmlStrcasecmp(cur->name, BAD_CAST"head") == 0)
- goto found_head;
- if (xmlStrcasecmp(cur->name, BAD_CAST"meta") == 0)
- goto found_meta;
- }
- cur = cur->next;
- }
- if (cur == NULL)
- return(-1);
- cur = cur->children;
-
- /*
- * Search the head
- */
- while (cur != NULL) {
- if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
- if (xmlStrcasecmp(cur->name, BAD_CAST"head") == 0)
- break;
- if (xmlStrcasecmp(cur->name, BAD_CAST"meta") == 0) {
- head = cur->parent;
- goto found_meta;
- }
- }
- cur = cur->next;
- }
- if (cur == NULL)
- return(-1);
-found_head:
- head = cur;
- if (cur->children == NULL)
- goto create;
- cur = cur->children;
-
-found_meta:
- /*
- * Search and update all the remaining the meta elements carrying
- * encoding informations
- */
- while (cur != NULL) {
- if ((cur->type == XML_ELEMENT_NODE) && (cur->name != NULL)) {
- if (xmlStrcasecmp(cur->name, BAD_CAST"meta") == 0) {
- xmlAttrPtr attr = cur->properties;
- int http;
- const xmlChar *value;
-
- content = NULL;
- http = 0;
- while (attr != NULL) {
- if ((attr->children != NULL) &&
- (attr->children->type == XML_TEXT_NODE) &&
- (attr->children->next == NULL)) {
- value = attr->children->content;
- if ((!xmlStrcasecmp(attr->name, BAD_CAST"http-equiv"))
- && (!xmlStrcasecmp(value, BAD_CAST"Content-Type")))
- http = 1;
- else
- {
- if ((value != NULL) &&
- (!xmlStrcasecmp(attr->name, BAD_CAST"content")))
- content = value;
- }
- if ((http != 0) && (content != NULL))
- break;
- }
- attr = attr->next;
- }
- if ((http != 0) && (content != NULL)) {
- meta = cur;
- break;
- }
-
- }
- }
- cur = cur->next;
- }
-create:
- if (meta == NULL) {
- if ((encoding != NULL) && (head != NULL)) {
- /*
- * Create a new Meta element with the right attributes
- */
-
- meta = xmlNewDocNode(doc, NULL, BAD_CAST"meta", NULL);
- if (head->children == NULL)
- xmlAddChild(head, meta);
- else
- xmlAddPrevSibling(head->children, meta);
- xmlNewProp(meta, BAD_CAST"http-equiv", BAD_CAST"Content-Type");
- xmlNewProp(meta, BAD_CAST"content", BAD_CAST newcontent);
- }
- } else {
- /* remove the meta tag if NULL is passed */
- if (encoding == NULL) {
- xmlUnlinkNode(meta);
- xmlFreeNode(meta);
- }
- /* change the document only if there is a real encoding change */
- else if (xmlStrcasestr(content, encoding) == NULL) {
- xmlSetProp(meta, BAD_CAST"content", BAD_CAST newcontent);
- }
- }
-
-
- return(0);
-}
-
-/**
- * booleanHTMLAttrs:
- *
- * These are the HTML attributes which will be output
- * in minimized form, i.e. <option selected="selected"> will be
- * output as <option selected>, as per XSLT 1.0 16.2 "HTML Output Method"
- *
- */
-static const char* htmlBooleanAttrs[] = {
- "checked", "compact", "declare", "defer", "disabled", "ismap",
- "multiple", "nohref", "noresize", "noshade", "nowrap", "readonly",
- "selected", NULL
-};
-
-
-/**
- * htmlIsBooleanAttr:
- * @name: the name of the attribute to check
- *
- * Determine if a given attribute is a boolean attribute.
- *
- * returns: false if the attribute is not boolean, true otherwise.
- */
-int
-htmlIsBooleanAttr(const xmlChar *name)
-{
- int i = 0;
-
- while (htmlBooleanAttrs[i] != NULL) {
- if (xmlStrcasecmp((const xmlChar *)htmlBooleanAttrs[i], name) == 0)
- return 1;
- i++;
- }
- return 0;
-}
-
-#ifdef LIBXML_OUTPUT_ENABLED
-/*
- * private routine exported from xmlIO.c
- */
-xmlOutputBufferPtr
-xmlAllocOutputBufferInternal(xmlCharEncodingHandlerPtr encoder);
-/************************************************************************
- * *
- * Output error handlers *
- * *
- ************************************************************************/
-/**
- * htmlSaveErrMemory:
- * @extra: extra informations
- *
- * Handle an out of memory condition
- */
-static void
-htmlSaveErrMemory(const char *extra)
-{
- __xmlSimpleError(XML_FROM_OUTPUT, XML_ERR_NO_MEMORY, NULL, NULL, extra);
-}
-
-/**
- * htmlSaveErr:
- * @code: the error number
- * @node: the location of the error.
- * @extra: extra informations
- *
- * Handle an out of memory condition
- */
-static void
-htmlSaveErr(int code, xmlNodePtr node, const char *extra)
-{
- const char *msg = NULL;
-
- switch(code) {
- case XML_SAVE_NOT_UTF8:
- msg = "string is not in UTF-8\n";
- break;
- case XML_SAVE_CHAR_INVALID:
- msg = "invalid character value\n";
- break;
- case XML_SAVE_UNKNOWN_ENCODING:
- msg = "unknown encoding %s\n";
- break;
- case XML_SAVE_NO_DOCTYPE:
- msg = "HTML has no DOCTYPE\n";
- break;
- default:
- msg = "unexpected error number\n";
- }
- __xmlSimpleError(XML_FROM_OUTPUT, code, node, msg, extra);
-}
-
-/************************************************************************
- * *
- * Dumping HTML tree content to a simple buffer *
- * *
- ************************************************************************/
-
-/**
- * htmlBufNodeDumpFormat:
- * @buf: the xmlBufPtr output
- * @doc: the document
- * @cur: the current node
- * @format: should formatting spaces been added
- *
- * Dump an HTML node, recursive behaviour,children are printed too.
- *
- * Returns the number of byte written or -1 in case of error
- */
-static size_t
-htmlBufNodeDumpFormat(xmlBufPtr buf, xmlDocPtr doc, xmlNodePtr cur,
- int format) {
- size_t use;
- int ret;
- xmlOutputBufferPtr outbuf;
-
- if (cur == NULL) {
- return (-1);
- }
- if (buf == NULL) {
- return (-1);
- }
- outbuf = (xmlOutputBufferPtr) xmlMalloc(sizeof(xmlOutputBuffer));
- if (outbuf == NULL) {
- htmlSaveErrMemory("allocating HTML output buffer");
- return (-1);
- }
- memset(outbuf, 0, (size_t) sizeof(xmlOutputBuffer));
- outbuf->buffer = buf;
- outbuf->encoder = NULL;
- outbuf->writecallback = NULL;
- outbuf->closecallback = NULL;
- outbuf->context = NULL;
- outbuf->written = 0;
-
- use = xmlBufUse(buf);
- htmlNodeDumpFormatOutput(outbuf, doc, cur, NULL, format);
- xmlFree(outbuf);
- ret = xmlBufUse(buf) - use;
- return (ret);
-}
-
-/**
- * htmlNodeDump:
- * @buf: the HTML buffer output
- * @doc: the document
- * @cur: the current node
- *
- * Dump an HTML node, recursive behaviour,children are printed too,
- * and formatting returns are added.
- *
- * Returns the number of byte written or -1 in case of error
- */
-int
-htmlNodeDump(xmlBufferPtr buf, xmlDocPtr doc, xmlNodePtr cur) {
- xmlBufPtr buffer;
- size_t ret;
-
- if ((buf == NULL) || (cur == NULL))
- return(-1);
-
- xmlInitParser();
- buffer = xmlBufFromBuffer(buf);
- if (buffer == NULL)
- return(-1);
-
- ret = htmlBufNodeDumpFormat(buffer, doc, cur, 1);
-
- xmlBufBackToBuffer(buffer);
-
- if (ret > INT_MAX)
- return(-1);
- return((int) ret);
-}
-
-/**
- * htmlNodeDumpFileFormat:
- * @out: the FILE pointer
- * @doc: the document
- * @cur: the current node
- * @encoding: the document encoding
- * @format: should formatting spaces been added
- *
- * Dump an HTML node, recursive behaviour,children are printed too.
- *
- * TODO: if encoding == NULL try to save in the doc encoding
- *
- * returns: the number of byte written or -1 in case of failure.
- */
-int
-htmlNodeDumpFileFormat(FILE *out, xmlDocPtr doc,
- xmlNodePtr cur, const char *encoding, int format) {
- xmlOutputBufferPtr buf;
- xmlCharEncodingHandlerPtr handler = NULL;
- int ret;
-
- xmlInitParser();
-
- if (encoding != NULL) {
- xmlCharEncoding enc;
-
- enc = xmlParseCharEncoding(encoding);
- if (enc != XML_CHAR_ENCODING_UTF8) {
- handler = xmlFindCharEncodingHandler(encoding);
- if (handler == NULL)
- htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
- }
- }
-
- /*
- * Fallback to HTML or ASCII when the encoding is unspecified
- */
- if (handler == NULL)
- handler = xmlFindCharEncodingHandler("HTML");
- if (handler == NULL)
- handler = xmlFindCharEncodingHandler("ascii");
-
- /*
- * save the content to a temp buffer.
- */
- buf = xmlOutputBufferCreateFile(out, handler);
- if (buf == NULL) return(0);
-
- htmlNodeDumpFormatOutput(buf, doc, cur, encoding, format);
-
- ret = xmlOutputBufferClose(buf);
- return(ret);
-}
-
-/**
- * htmlNodeDumpFile:
- * @out: the FILE pointer
- * @doc: the document
- * @cur: the current node
- *
- * Dump an HTML node, recursive behaviour,children are printed too,
- * and formatting returns are added.
- */
-void
-htmlNodeDumpFile(FILE *out, xmlDocPtr doc, xmlNodePtr cur) {
- htmlNodeDumpFileFormat(out, doc, cur, NULL, 1);
-}
-
-/**
- * htmlDocDumpMemoryFormat:
- * @cur: the document
- * @mem: OUT: the memory pointer
- * @size: OUT: the memory length
- * @format: should formatting spaces been added
- *
- * Dump an HTML document in memory and return the xmlChar * and it's size.
- * It's up to the caller to free the memory.
- */
-void
-htmlDocDumpMemoryFormat(xmlDocPtr cur, xmlChar**mem, int *size, int format) {
- xmlOutputBufferPtr buf;
- xmlCharEncodingHandlerPtr handler = NULL;
- const char *encoding;
-
- xmlInitParser();
-
- if ((mem == NULL) || (size == NULL))
- return;
- if (cur == NULL) {
- *mem = NULL;
- *size = 0;
- return;
- }
-
- encoding = (const char *) htmlGetMetaEncoding(cur);
-
- if (encoding != NULL) {
- xmlCharEncoding enc;
-
- enc = xmlParseCharEncoding(encoding);
- if (enc != cur->charset) {
- if (cur->charset != XML_CHAR_ENCODING_UTF8) {
- /*
- * Not supported yet
- */
- *mem = NULL;
- *size = 0;
- return;
- }
-
- handler = xmlFindCharEncodingHandler(encoding);
- if (handler == NULL)
- htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
-
- } else {
- handler = xmlFindCharEncodingHandler(encoding);
- }
- }
-
- /*
- * Fallback to HTML or ASCII when the encoding is unspecified
- */
- if (handler == NULL)
- handler = xmlFindCharEncodingHandler("HTML");
- if (handler == NULL)
- handler = xmlFindCharEncodingHandler("ascii");
-
- buf = xmlAllocOutputBufferInternal(handler);
- if (buf == NULL) {
- *mem = NULL;
- *size = 0;
- return;
- }
-
- htmlDocContentDumpFormatOutput(buf, cur, NULL, format);
-
- xmlOutputBufferFlush(buf);
- if (buf->conv != NULL) {
- *size = xmlBufUse(buf->conv);
- *mem = xmlStrndup(xmlBufContent(buf->conv), *size);
- } else {
- *size = xmlBufUse(buf->buffer);
- *mem = xmlStrndup(xmlBufContent(buf->buffer), *size);
- }
- (void)xmlOutputBufferClose(buf);
-}
-
-/**
- * htmlDocDumpMemory:
- * @cur: the document
- * @mem: OUT: the memory pointer
- * @size: OUT: the memory length
- *
- * Dump an HTML document in memory and return the xmlChar * and it's size.
- * It's up to the caller to free the memory.
- */
-void
-htmlDocDumpMemory(xmlDocPtr cur, xmlChar**mem, int *size) {
- htmlDocDumpMemoryFormat(cur, mem, size, 1);
-}
-
-
-/************************************************************************
- * *
- * Dumping HTML tree content to an I/O output buffer *
- * *
- ************************************************************************/
-
-void xmlNsListDumpOutput(xmlOutputBufferPtr buf, xmlNsPtr cur);
-
-/**
- * htmlDtdDumpOutput:
- * @buf: the HTML buffer output
- * @doc: the document
- * @encoding: the encoding string
- *
- * TODO: check whether encoding is needed
- *
- * Dump the HTML document DTD, if any.
- */
-static void
-htmlDtdDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
- const char *encoding ATTRIBUTE_UNUSED) {
- xmlDtdPtr cur = doc->intSubset;
-
- if (cur == NULL) {
- htmlSaveErr(XML_SAVE_NO_DOCTYPE, (xmlNodePtr) doc, NULL);
- return;
- }
- xmlOutputBufferWriteString(buf, "<!DOCTYPE ");
- xmlOutputBufferWriteString(buf, (const char *)cur->name);
- if (cur->ExternalID != NULL) {
- xmlOutputBufferWriteString(buf, " PUBLIC ");
- xmlBufWriteQuotedString(buf->buffer, cur->ExternalID);
- if (cur->SystemID != NULL) {
- xmlOutputBufferWriteString(buf, " ");
- xmlBufWriteQuotedString(buf->buffer, cur->SystemID);
- }
- } else if (cur->SystemID != NULL &&
- xmlStrcmp(cur->SystemID, BAD_CAST "about:legacy-compat")) {
- xmlOutputBufferWriteString(buf, " SYSTEM ");
- xmlBufWriteQuotedString(buf->buffer, cur->SystemID);
- }
- xmlOutputBufferWriteString(buf, ">\n");
-}
-
-/**
- * htmlAttrDumpOutput:
- * @buf: the HTML buffer output
- * @doc: the document
- * @cur: the attribute pointer
- * @encoding: the encoding string
- *
- * Dump an HTML attribute
- */
-static void
-htmlAttrDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc, xmlAttrPtr cur,
- const char *encoding ATTRIBUTE_UNUSED) {
- xmlChar *value;
-
- /*
- * The html output method should not escape a & character
- * occurring in an attribute value immediately followed by
- * a { character (see Section B.7.1 of the HTML 4.0 Recommendation).
- * This is implemented in xmlEncodeEntitiesReentrant
- */
-
- if (cur == NULL) {
- return;
- }
- xmlOutputBufferWriteString(buf, " ");
- if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) {
- xmlOutputBufferWriteString(buf, (const char *)cur->ns->prefix);
- xmlOutputBufferWriteString(buf, ":");
- }
- xmlOutputBufferWriteString(buf, (const char *)cur->name);
- if ((cur->children != NULL) && (!htmlIsBooleanAttr(cur->name))) {
- value = xmlNodeListGetString(doc, cur->children, 0);
- if (value) {
- xmlOutputBufferWriteString(buf, "=");
- if ((cur->ns == NULL) && (cur->parent != NULL) &&
- (cur->parent->ns == NULL) &&
- ((!xmlStrcasecmp(cur->name, BAD_CAST "href")) ||
- (!xmlStrcasecmp(cur->name, BAD_CAST "action")) ||
- (!xmlStrcasecmp(cur->name, BAD_CAST "src")) ||
- ((!xmlStrcasecmp(cur->name, BAD_CAST "name")) &&
- (!xmlStrcasecmp(cur->parent->name, BAD_CAST "a"))))) {
- xmlChar *tmp = value;
- /* xmlURIEscapeStr() escapes '"' so it can be safely used. */
- xmlBufCCat(buf->buffer, "\"");
-
- while (IS_BLANK_CH(*tmp)) tmp++;
-
- /* URI Escape everything, except server side includes. */
- for ( ; ; ) {
- xmlChar *escaped;
- xmlChar endChar;
- xmlChar *end = NULL;
- xmlChar *start = (xmlChar *)xmlStrstr(tmp, BAD_CAST "<!--");
- if (start != NULL) {
- end = (xmlChar *)xmlStrstr(tmp, BAD_CAST "-->");
- if (end != NULL) {
- *start = '\0';
- }
- }
-
- /* Escape the whole string, or until start (set to '\0'). */
- escaped = xmlURIEscapeStr(tmp, BAD_CAST"@/:=?;#%&,+");
- if (escaped != NULL) {
- xmlBufCat(buf->buffer, escaped);
- xmlFree(escaped);
- } else {
- xmlBufCat(buf->buffer, tmp);
- }
-
- if (end == NULL) { /* Everything has been written. */
- break;
- }
-
- /* Do not escape anything within server side includes. */
- *start = '<'; /* Restore the first character of "<!--". */
- end += 3; /* strlen("-->") */
- endChar = *end;
- *end = '\0';
- xmlBufCat(buf->buffer, start);
- *end = endChar;
- tmp = end;
- }
-
- xmlBufCCat(buf->buffer, "\"");
- } else {
- xmlBufWriteQuotedString(buf->buffer, value);
- }
- xmlFree(value);
- } else {
- xmlOutputBufferWriteString(buf, "=\"\"");
- }
- }
-}
-
-/**
- * htmlAttrListDumpOutput:
- * @buf: the HTML buffer output
- * @doc: the document
- * @cur: the first attribute pointer
- * @encoding: the encoding string
- *
- * Dump a list of HTML attributes
- */
-static void
-htmlAttrListDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc, xmlAttrPtr cur, const char *encoding) {
- if (cur == NULL) {
- return;
- }
- while (cur != NULL) {
- htmlAttrDumpOutput(buf, doc, cur, encoding);
- cur = cur->next;
- }
-}
-
-
-
-/**
- * htmlNodeListDumpOutput:
- * @buf: the HTML buffer output
- * @doc: the document
- * @cur: the first node
- * @encoding: the encoding string
- * @format: should formatting spaces been added
- *
- * Dump an HTML node list, recursive behaviour,children are printed too.
- */
-static void
-htmlNodeListDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
- xmlNodePtr cur, const char *encoding, int format) {
- if (cur == NULL) {
- return;
- }
- while (cur != NULL) {
- htmlNodeDumpFormatOutput(buf, doc, cur, encoding, format);
- cur = cur->next;
- }
-}
-
-/**
- * htmlNodeDumpFormatOutput:
- * @buf: the HTML buffer output
- * @doc: the document
- * @cur: the current node
- * @encoding: the encoding string
- * @format: should formatting spaces been added
- *
- * Dump an HTML node, recursive behaviour,children are printed too.
- */
-void
-htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
- xmlNodePtr cur, const char *encoding, int format) {
- const htmlElemDesc * info;
-
- xmlInitParser();
-
- if ((cur == NULL) || (buf == NULL)) {
- return;
- }
- /*
- * Special cases.
- */
- if (cur->type == XML_DTD_NODE)
- return;
- if ((cur->type == XML_HTML_DOCUMENT_NODE) ||
- (cur->type == XML_DOCUMENT_NODE)){
- htmlDocContentDumpOutput(buf, (xmlDocPtr) cur, encoding);
- return;
- }
- if (cur->type == XML_ATTRIBUTE_NODE) {
- htmlAttrDumpOutput(buf, doc, (xmlAttrPtr) cur, encoding);
- return;
- }
- if (cur->type == HTML_TEXT_NODE) {
- if (cur->content != NULL) {
- if (((cur->name == (const xmlChar *)xmlStringText) ||
- (cur->name != (const xmlChar *)xmlStringTextNoenc)) &&
- ((cur->parent == NULL) ||
- ((xmlStrcasecmp(cur->parent->name, BAD_CAST "script")) &&
- (xmlStrcasecmp(cur->parent->name, BAD_CAST "style"))))) {
- xmlChar *buffer;
-
- buffer = xmlEncodeEntitiesReentrant(doc, cur->content);
- if (buffer != NULL) {
- xmlOutputBufferWriteString(buf, (const char *)buffer);
- xmlFree(buffer);
- }
- } else {
- xmlOutputBufferWriteString(buf, (const char *)cur->content);
- }
- }
- return;
- }
- if (cur->type == HTML_COMMENT_NODE) {
- if (cur->content != NULL) {
- xmlOutputBufferWriteString(buf, "<!--");
- xmlOutputBufferWriteString(buf, (const char *)cur->content);
- xmlOutputBufferWriteString(buf, "-->");
- }
- return;
- }
- if (cur->type == HTML_PI_NODE) {
- if (cur->name == NULL)
- return;
- xmlOutputBufferWriteString(buf, "<?");
- xmlOutputBufferWriteString(buf, (const char *)cur->name);
- if (cur->content != NULL) {
- xmlOutputBufferWriteString(buf, " ");
- xmlOutputBufferWriteString(buf, (const char *)cur->content);
- }
- xmlOutputBufferWriteString(buf, ">");
- return;
- }
- if (cur->type == HTML_ENTITY_REF_NODE) {
- xmlOutputBufferWriteString(buf, "&");
- xmlOutputBufferWriteString(buf, (const char *)cur->name);
- xmlOutputBufferWriteString(buf, ";");
- return;
- }
- if (cur->type == HTML_PRESERVE_NODE) {
- if (cur->content != NULL) {
- xmlOutputBufferWriteString(buf, (const char *)cur->content);
- }
- return;
- }
-
- /*
- * Get specific HTML info for that node.
- */
- if (cur->ns == NULL)
- info = htmlTagLookup(cur->name);
- else
- info = NULL;
-
- xmlOutputBufferWriteString(buf, "<");
- if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) {
- xmlOutputBufferWriteString(buf, (const char *)cur->ns->prefix);
- xmlOutputBufferWriteString(buf, ":");
- }
- xmlOutputBufferWriteString(buf, (const char *)cur->name);
- if (cur->nsDef)
- xmlNsListDumpOutput(buf, cur->nsDef);
- if (cur->properties != NULL)
- htmlAttrListDumpOutput(buf, doc, cur->properties, encoding);
-
- if ((info != NULL) && (info->empty)) {
- xmlOutputBufferWriteString(buf, ">");
- if ((format) && (!info->isinline) && (cur->next != NULL)) {
- if ((cur->next->type != HTML_TEXT_NODE) &&
- (cur->next->type != HTML_ENTITY_REF_NODE) &&
- (cur->parent != NULL) &&
- (cur->parent->name != NULL) &&
- (cur->parent->name[0] != 'p')) /* p, pre, param */
- xmlOutputBufferWriteString(buf, "\n");
- }
- return;
- }
- if (((cur->type == XML_ELEMENT_NODE) || (cur->content == NULL)) &&
- (cur->children == NULL)) {
- if ((info != NULL) && (info->saveEndTag != 0) &&
- (xmlStrcmp(BAD_CAST info->name, BAD_CAST "html")) &&
- (xmlStrcmp(BAD_CAST info->name, BAD_CAST "body"))) {
- xmlOutputBufferWriteString(buf, ">");
- } else {
- xmlOutputBufferWriteString(buf, "></");
- if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) {
- xmlOutputBufferWriteString(buf, (const char *)cur->ns->prefix);
- xmlOutputBufferWriteString(buf, ":");
- }
- xmlOutputBufferWriteString(buf, (const char *)cur->name);
- xmlOutputBufferWriteString(buf, ">");
- }
- if ((format) && (cur->next != NULL) &&
- (info != NULL) && (!info->isinline)) {
- if ((cur->next->type != HTML_TEXT_NODE) &&
- (cur->next->type != HTML_ENTITY_REF_NODE) &&
- (cur->parent != NULL) &&
- (cur->parent->name != NULL) &&
- (cur->parent->name[0] != 'p')) /* p, pre, param */
- xmlOutputBufferWriteString(buf, "\n");
- }
- return;
- }
- xmlOutputBufferWriteString(buf, ">");
- if ((cur->type != XML_ELEMENT_NODE) &&
- (cur->content != NULL)) {
- /*
- * Uses the OutputBuffer property to automatically convert
- * invalids to charrefs
- */
-
- xmlOutputBufferWriteString(buf, (const char *) cur->content);
- }
- if (cur->children != NULL) {
- if ((format) && (info != NULL) && (!info->isinline) &&
- (cur->children->type != HTML_TEXT_NODE) &&
- (cur->children->type != HTML_ENTITY_REF_NODE) &&
- (cur->children != cur->last) &&
- (cur->name != NULL) &&
- (cur->name[0] != 'p')) /* p, pre, param */
- xmlOutputBufferWriteString(buf, "\n");
- htmlNodeListDumpOutput(buf, doc, cur->children, encoding, format);
- if ((format) && (info != NULL) && (!info->isinline) &&
- (cur->last->type != HTML_TEXT_NODE) &&
- (cur->last->type != HTML_ENTITY_REF_NODE) &&
- (cur->children != cur->last) &&
- (cur->name != NULL) &&
- (cur->name[0] != 'p')) /* p, pre, param */
- xmlOutputBufferWriteString(buf, "\n");
- }
- xmlOutputBufferWriteString(buf, "</");
- if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) {
- xmlOutputBufferWriteString(buf, (const char *)cur->ns->prefix);
- xmlOutputBufferWriteString(buf, ":");
- }
- xmlOutputBufferWriteString(buf, (const char *)cur->name);
- xmlOutputBufferWriteString(buf, ">");
- if ((format) && (info != NULL) && (!info->isinline) &&
- (cur->next != NULL)) {
- if ((cur->next->type != HTML_TEXT_NODE) &&
- (cur->next->type != HTML_ENTITY_REF_NODE) &&
- (cur->parent != NULL) &&
- (cur->parent->name != NULL) &&
- (cur->parent->name[0] != 'p')) /* p, pre, param */
- xmlOutputBufferWriteString(buf, "\n");
- }
-}
-
-/**
- * htmlNodeDumpOutput:
- * @buf: the HTML buffer output
- * @doc: the document
- * @cur: the current node
- * @encoding: the encoding string
- *
- * Dump an HTML node, recursive behaviour,children are printed too,
- * and formatting returns/spaces are added.
- */
-void
-htmlNodeDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
- xmlNodePtr cur, const char *encoding) {
- htmlNodeDumpFormatOutput(buf, doc, cur, encoding, 1);
-}
-
-/**
- * htmlDocContentDumpFormatOutput:
- * @buf: the HTML buffer output
- * @cur: the document
- * @encoding: the encoding string
- * @format: should formatting spaces been added
- *
- * Dump an HTML document.
- */
-void
-htmlDocContentDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr cur,
- const char *encoding, int format) {
- int type;
-
- xmlInitParser();
-
- if ((buf == NULL) || (cur == NULL))
- return;
-
- /*
- * force to output the stuff as HTML, especially for entities
- */
- type = cur->type;
- cur->type = XML_HTML_DOCUMENT_NODE;
- if (cur->intSubset != NULL) {
- htmlDtdDumpOutput(buf, cur, NULL);
- }
- if (cur->children != NULL) {
- htmlNodeListDumpOutput(buf, cur, cur->children, encoding, format);
- }
- xmlOutputBufferWriteString(buf, "\n");
- cur->type = (xmlElementType) type;
-}
-
-/**
- * htmlDocContentDumpOutput:
- * @buf: the HTML buffer output
- * @cur: the document
- * @encoding: the encoding string
- *
- * Dump an HTML document. Formating return/spaces are added.
- */
-void
-htmlDocContentDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr cur,
- const char *encoding) {
- htmlDocContentDumpFormatOutput(buf, cur, encoding, 1);
-}
-
-/************************************************************************
- * *
- * Saving functions front-ends *
- * *
- ************************************************************************/
-
-/**
- * htmlDocDump:
- * @f: the FILE*
- * @cur: the document
- *
- * Dump an HTML document to an open FILE.
- *
- * returns: the number of byte written or -1 in case of failure.
- */
-int
-htmlDocDump(FILE *f, xmlDocPtr cur) {
- xmlOutputBufferPtr buf;
- xmlCharEncodingHandlerPtr handler = NULL;
- const char *encoding;
- int ret;
-
- xmlInitParser();
-
- if ((cur == NULL) || (f == NULL)) {
- return(-1);
- }
-
- encoding = (const char *) htmlGetMetaEncoding(cur);
-
- if (encoding != NULL) {
- xmlCharEncoding enc;
-
- enc = xmlParseCharEncoding(encoding);
- if (enc != cur->charset) {
- if (cur->charset != XML_CHAR_ENCODING_UTF8) {
- /*
- * Not supported yet
- */
- return(-1);
- }
-
- handler = xmlFindCharEncodingHandler(encoding);
- if (handler == NULL)
- htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
- } else {
- handler = xmlFindCharEncodingHandler(encoding);
- }
- }
-
- /*
- * Fallback to HTML or ASCII when the encoding is unspecified
- */
- if (handler == NULL)
- handler = xmlFindCharEncodingHandler("HTML");
- if (handler == NULL)
- handler = xmlFindCharEncodingHandler("ascii");
-
- buf = xmlOutputBufferCreateFile(f, handler);
- if (buf == NULL) return(-1);
- htmlDocContentDumpOutput(buf, cur, NULL);
-
- ret = xmlOutputBufferClose(buf);
- return(ret);
-}
-
-/**
- * htmlSaveFile:
- * @filename: the filename (or URL)
- * @cur: the document
- *
- * Dump an HTML document to a file. If @filename is "-" the stdout file is
- * used.
- * returns: the number of byte written or -1 in case of failure.
- */
-int
-htmlSaveFile(const char *filename, xmlDocPtr cur) {
- xmlOutputBufferPtr buf;
- xmlCharEncodingHandlerPtr handler = NULL;
- const char *encoding;
- int ret;
-
- if ((cur == NULL) || (filename == NULL))
- return(-1);
-
- xmlInitParser();
-
- encoding = (const char *) htmlGetMetaEncoding(cur);
-
- if (encoding != NULL) {
- xmlCharEncoding enc;
-
- enc = xmlParseCharEncoding(encoding);
- if (enc != cur->charset) {
- if (cur->charset != XML_CHAR_ENCODING_UTF8) {
- /*
- * Not supported yet
- */
- return(-1);
- }
-
- handler = xmlFindCharEncodingHandler(encoding);
- if (handler == NULL)
- htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
- }
- }
-
- /*
- * Fallback to HTML or ASCII when the encoding is unspecified
- */
- if (handler == NULL)
- handler = xmlFindCharEncodingHandler("HTML");
- if (handler == NULL)
- handler = xmlFindCharEncodingHandler("ascii");
-
- /*
- * save the content to a temp buffer.
- */
- buf = xmlOutputBufferCreateFilename(filename, handler, cur->compression);
- if (buf == NULL) return(0);
-
- htmlDocContentDumpOutput(buf, cur, NULL);
-
- ret = xmlOutputBufferClose(buf);
- return(ret);
-}
-
-/**
- * htmlSaveFileFormat:
- * @filename: the filename
- * @cur: the document
- * @format: should formatting spaces been added
- * @encoding: the document encoding
- *
- * Dump an HTML document to a file using a given encoding.
- *
- * returns: the number of byte written or -1 in case of failure.
- */
-int
-htmlSaveFileFormat(const char *filename, xmlDocPtr cur,
- const char *encoding, int format) {
- xmlOutputBufferPtr buf;
- xmlCharEncodingHandlerPtr handler = NULL;
- int ret;
-
- if ((cur == NULL) || (filename == NULL))
- return(-1);
-
- xmlInitParser();
-
- if (encoding != NULL) {
- xmlCharEncoding enc;
-
- enc = xmlParseCharEncoding(encoding);
- if (enc != cur->charset) {
- if (cur->charset != XML_CHAR_ENCODING_UTF8) {
- /*
- * Not supported yet
- */
- return(-1);
- }
-
- handler = xmlFindCharEncodingHandler(encoding);
- if (handler == NULL)
- htmlSaveErr(XML_SAVE_UNKNOWN_ENCODING, NULL, encoding);
- }
- htmlSetMetaEncoding(cur, (const xmlChar *) encoding);
- } else {
- htmlSetMetaEncoding(cur, (const xmlChar *) "UTF-8");
- }
-
- /*
- * Fallback to HTML or ASCII when the encoding is unspecified
- */
- if (handler == NULL)
- handler = xmlFindCharEncodingHandler("HTML");
- if (handler == NULL)
- handler = xmlFindCharEncodingHandler("ascii");
-
- /*
- * save the content to a temp buffer.
- */
- buf = xmlOutputBufferCreateFilename(filename, handler, 0);
- if (buf == NULL) return(0);
-
- htmlDocContentDumpFormatOutput(buf, cur, encoding, format);
-
- ret = xmlOutputBufferClose(buf);
- return(ret);
-}
-
-/**
- * htmlSaveFileEnc:
- * @filename: the filename
- * @cur: the document
- * @encoding: the document encoding
- *
- * Dump an HTML document to a file using a given encoding
- * and formatting returns/spaces are added.
- *
- * returns: the number of byte written or -1 in case of failure.
- */
-int
-htmlSaveFileEnc(const char *filename, xmlDocPtr cur, const char *encoding) {
- return(htmlSaveFileFormat(filename, cur, encoding, 1));
-}
-
-#endif /* LIBXML_OUTPUT_ENABLED */
-
-#define bottom_HTMLtree
-#include "elfgcchack.h"
-#endif /* LIBXML_HTML_ENABLED */
diff --git a/Makefile.am b/Makefile.am
index 70720f3..9c630be 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -8,12 +8,12 @@
AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/include
-AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS) $(LZMA_CFLAGS)
+AM_CFLAGS = $(EXTRA_CFLAGS) $(THREAD_CFLAGS) $(Z_CFLAGS) $(LZMA_CFLAGS)
-noinst_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \
- testThreads testC14N testAutomata testRegexp \
- testReader testapi testModule runtest runsuite testchar \
- testdict runxmlconf testrecurse testlimits
+check_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \
+ testThreads testC14N testAutomata testRegexp \
+ testReader testapi testModule runtest runsuite testchar \
+ testdict runxmlconf testrecurse testlimits
bin_PROGRAMS = xmllint xmlcatalog
@@ -202,10 +202,16 @@
#testOOM_DEPENDENCIES = $(DEPS)
#testOOM_LDADD= $(LDADDS)
-runtests:
+runtests: runtest$(EXEEXT) testrecurse$(EXEEXT) testapi$(EXEEXT) \
+ testchar$(EXEEXT) testdict$(EXEEXT) runxmlconf$(EXEEXT)
[ -d test ] || $(LN_S) $(srcdir)/test .
[ -d result ] || $(LN_S) $(srcdir)/result .
- $(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
+ $(CHECKER) ./runtest$(EXEEXT) && \
+ $(CHECKER) ./testrecurse$(EXEEXT) && \
+ ASAN_OPTIONS="$$ASAN_OPTIONS:detect_leaks=0" $(CHECKER) ./testapi$(EXEEXT) && \
+ $(CHECKER) ./testchar$(EXEEXT) && \
+ $(CHECKER) ./testdict$(EXEEXT) && \
+ $(CHECKER) ./runxmlconf$(EXEEXT)
@(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \
$(MAKE) tests ; fi)
@@ -216,16 +222,20 @@
@echo '## Go get a cup of coffee it is gonna take a while ...'
$(MAKE) CHECKER='valgrind -q' runtests
+asan:
+ @echo '## rebuilding for ASAN'
+ ./configure CFLAGS="-fsanitize=address,undefined -Wformat -Werror=format-security -Werror=array-bounds -g" CXXFLAGS="-fsanitize=address,undefined -Wformat -Werror=format-security -Werror=array-bounds -g" LDFLAGS="-fsanitize=address,undefined" CC="clang" CXX="clang++" --disable-shared ; OptimOff ; $(MAKE) clean ; $(MAKE)
+
testall : tests SVGtests SAXtests
tests: XMLtests XMLenttests NStests IDtests Errtests APItests $(READER_TEST) $(TEST_SAX) $(TEST_PUSH) $(TEST_HTML) $(TEST_PHTML) $(TEST_VALID) URItests $(TEST_PATTERN) $(TEST_XPATH) $(TEST_XPTR) $(TEST_XINCLUDE) $(TEST_C14N) $(TEST_DEBUG) $(TEST_CATALOG) $(TEST_REGEXPS) $(TEST_SCHEMAS) $(TEST_SCHEMATRON) $(TEST_THREADS) Timingtests $(TEST_VTIME) $(PYTHON_TESTS) $(TEST_MODULES)
@(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \
- $(MAKE) tests ; fi)
- @(cd doc/examples ; $(MAKE) tests)
+ $(MAKE) -s tests ; fi)
+ @(cd doc/examples ; $(MAKE) -s tests)
APItests: testapi$(EXEEXT)
@echo "## Running the API regression tests this may take a little while"
- -@($(CHECKER) $(top_builddir)/testapi -q)
+ -@(ASAN_OPTIONS="$$ASAN_OPTIONS:detect_leaks=0" $(CHECKER) $(top_builddir)/testapi -q)
HTMLtests : testHTML$(EXEEXT)
@(echo > .memdump)
@@ -243,7 +253,7 @@
diff -b $(srcdir)/result/HTML/$$name.err error.$$name ; \
$(CHECKER) $(top_builddir)/testHTML result.$$name > result2.$$name 2>error.$$name ; \
diff result.$$name result2.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name result2.$$name error.$$name ; \
fi ; fi ; done)
@@ -264,7 +274,7 @@
diff -b errorcut.$$name errorcut2.$$name ; \
$(CHECKER) $(top_builddir)/testHTML --push result.$$name > result2.$$name 2>error.$$name ; \
diff result.$$name result2.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name result2.$$name error.$$name errorcut.$$name errorcut2.$$name ; \
fi ; fi ; done)
@echo "## HTML SAX regression tests"
@@ -278,7 +288,7 @@
log=`$(CHECKER) $(top_builddir)/testHTML --sax $$i > result.$$name.sax ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name.sax ; \
fi ; fi ; done)
@echo "## Push HTML SAX regression tests"
@@ -292,7 +302,7 @@
log=`$(CHECKER) $(top_builddir)/testHTML --push --sax $$i 2>&1 > result.$$name.sax ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/HTML/$$name.sax result.$$name.sax` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name.sax ; \
fi ; fi ; done)
@@ -313,7 +323,7 @@
$(CHECKER) $(top_builddir)/xmllint result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
diff result.$$name result2.$$name` ;\
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name result2.$$name ; \
fi ; fi ; done)
@echo "## XML regression tests on memory"
@@ -330,7 +340,7 @@
diff $(srcdir)/result/$$name result.$$name ; \
$(CHECKER) $(top_builddir)/xmllint --memory result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"`; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
diff result.$$name result2.$$name ; \
rm result.$$name result2.$$name ; \
fi ; fi ; done)
@@ -352,7 +362,7 @@
$(CHECKER) $(top_builddir)/xmllint --push result.$$name 2>&1 > result2.$$name | grep -v 'failed to load external entity' ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
diff result.$$name result2.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name result2.$$name ; \
fi ; fi ; done)
@@ -373,7 +383,7 @@
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
diff $(srcdir)/result/namespaces/$$name result.$$name ; \
diff $(srcdir)/result/namespaces/$$name.err error.$$name`; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name error.$$name ; \
fi ; fi ; done)
@@ -394,7 +404,7 @@
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
diff $(srcdir)/result/xmlid/$$name result.$$name ; \
diff $(srcdir)/result/xmlid/$$name.err error.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name error.$$name ; \
fi ; fi ; done)
@@ -415,7 +425,25 @@
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
diff $(srcdir)/result/errors/$$name result.$$name ; \
diff $(srcdir)/result/errors/$$name.err error.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name error.$$name ; \
+ fi ; fi ; done)
+ @echo "## Error cases regression tests (old 1.0)"
+ -@(for i in $(srcdir)/test/errors10/*.xml ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/errors10/$$name ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i \
+ 2> $(srcdir)/result/errors10/$$name.err \
+ > $(srcdir)/result/errors10/$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ else \
+ log=`$(CHECKER) $(top_builddir)/xmllint --oldxml10 $$i 2> error.$$name > result.$$name ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
+ diff $(srcdir)/result/errors10/$$name result.$$name ; \
+ diff $(srcdir)/result/errors10/$$name.err error.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name error.$$name ; \
fi ; fi ; done)
@echo "## Error cases stream regression tests"
@@ -432,7 +460,7 @@
log=`$(CHECKER) $(top_builddir)/xmllint --stream $$i 2> error.$$name > /dev/null ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
diff $(srcdir)/result/errors/$$name.str error.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm error.$$name ; \
fi ; fi ; done)
@@ -455,7 +483,7 @@
$(CHECKER) $(top_builddir)/xmllint --noent result.$$name 2>&1 > result2.$$name ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
diff result.$$name result2.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name result2.$$name ; \
fi ; fi ; done)
@@ -473,7 +501,7 @@
log=`$(CHECKER) $(top_builddir)/testURI -base 'http://foo.com/path/to/index.html?orig#help' < $$i 2>&1 > result.$$name ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/URI/$$name result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done)
-@(for i in $(srcdir)/test/URI/*.uri ; do \
@@ -487,7 +515,7 @@
log=`$(CHECKER) $(top_builddir)/testURI < $$i 2>&1 > result.$$name ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/URI/$$name result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done)
@@ -501,13 +529,13 @@
if [ ! -d $$i ] ; then \
if [ ! -f $(srcdir)/result/XPath/expr/$$name ] ; then \
echo New test file $$name ; \
- $(CHECKER) $(top_builddir)/testXPath -f --expr $$i > $(srcdir)/result/XPath/expr/$$name ; \
+ $(CHECKER) $(top_builddir)/testXPath -f --expr $$i > $(srcdir)/result/XPath/expr/$$name 2> /dev/null ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
else \
- log=`$(CHECKER) $(top_builddir)/testXPath -f --expr $$i 2>&1 > result.$$name ; \
+ log=`$(CHECKER) $(top_builddir)/testXPath -f --expr $$i > result.$$name 2> /dev/null ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/XPath/expr/$$name result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done ; \
for i in $(srcdir)/test/XPath/docs/* ; do \
@@ -522,10 +550,10 @@
$(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j > $(srcdir)/result/XPath/tests/$$name ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
else \
- log=`$(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j 2>&1 > result.$$name ; \
+ log=`$(CHECKER) $(top_builddir)/testXPath -f -i $$i $$j > result.$$name ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/XPath/tests/$$name result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done ; fi ; done)
@@ -543,13 +571,13 @@
if [ ! -d $$j ] ; then \
if [ ! -f $(srcdir)/result/XPath/xptr/$$name ] ; then \
echo New test file $$name ; \
- $(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j > $(srcdir)/result/XPath/xptr/$$name ; \
+ $(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j > $(srcdir)/result/XPath/xptr/$$name 2> /dev/null ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"; \
else \
- log=`$(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j 2>&1 > result.$$name ; \
+ log=`$(CHECKER) $(top_builddir)/testXPath -xptr -f -i $$i $$j > result.$$name 2> /dev/null ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/XPath/xptr/$$name result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done ; fi ; done)
@@ -568,7 +596,7 @@
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/XInclude/$$name result.$$name ; \
diff $(srcdir)/result/XInclude/$$name.err error.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name error.$$name ; \
fi ; fi ; done)
-@(for i in $(srcdir)/test/XInclude/docs/* ; do \
@@ -583,7 +611,7 @@
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/XInclude/$$name result.$$name ; \
diff $(srcdir)/result/XInclude/$$name.err error.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name error.$$name ; \
fi ; fi ; done)
@(echo > .memdump)
@@ -600,7 +628,7 @@
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/XInclude/$$name.err error.$$name ; \
diff $(srcdir)/result/XInclude/$$name.rdr result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name error.$$name ; \
fi ; fi ; done)
-@(for i in $(srcdir)/test/XInclude/docs/* ; do \
@@ -615,7 +643,7 @@
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/XInclude/$$name.err error.$$name ; \
diff $(srcdir)/result/XInclude/$$name.rdr result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name error.$$name ; \
fi ; fi ; done)
@@ -636,7 +664,7 @@
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/scripts/$$name result.$$name ; \
diff $(srcdir)/result/scripts/$$name.err result.$$name.err` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name result.$$name.err ; \
fi ; fi ; done)
@@ -655,7 +683,7 @@
log=`$(CHECKER) $(top_builddir)/xmlcatalog --shell $$xml < $$i 2>&1 > result.$$name ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/catalogs/$$name result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done)
-@(for i in $(srcdir)/test/catalogs/*.script ; do \
@@ -670,7 +698,7 @@
log=`$(CHECKER) $(top_builddir)/xmlcatalog --shell $$sgml < $$i > result.$$name ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/catalogs/$$name result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done)
@echo "## Add and del operations on XML Catalogs"
@@ -734,7 +762,7 @@
log=`$(CHECKER) $(top_builddir)/xmllint --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/$$name.rdr result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done)
@echo "## Reader on memory regression tests"
@@ -749,7 +777,7 @@
log=`$(CHECKER) $(top_builddir)/xmllint --memory --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/$$name.rdr result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done)
@(echo > .memdump)
@@ -765,7 +793,7 @@
log=`$(CHECKER) $(top_builddir)/xmllint --nonet --debug --walker $$i > result.$$name 2>/dev/null ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/$$name.rdr result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done)
@echo "## Reader entities substitution regression tests"
@@ -780,7 +808,7 @@
log=`$(CHECKER) $(top_builddir)/xmllint --noent --nonet --debug --stream $$i > result.$$name 2>/dev/null ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/$$name.rde result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done)
@@ -798,7 +826,7 @@
log=`$(CHECKER) $(top_builddir)/testSAX $$i > result.$$name 2> /dev/null ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/$$name.sax result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done)
@echo "## SAX2 callbacks regression tests"
@@ -813,7 +841,22 @@
log=`$(CHECKER) $(top_builddir)/testSAX --sax2 $$i > result.$$name 2> /dev/null ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/$$name.sax2 result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
+ rm result.$$name ; \
+ fi ; fi ; done)
+ @echo "## SAX2 callbacks regression tests with entity substitution"
+ -@(for i in $(srcdir)/test/* ; do \
+ name=`basename $$i`; \
+ if [ ! -d $$i ] ; then \
+ if [ ! -f $(srcdir)/result/noent/$$name.sax2 ] ; then \
+ echo New test file $$name ; \
+ $(CHECKER) $(top_builddir)/testSAX --sax2 --noent $$i > $(srcdir)/result/noent/$$name.sax2 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ else \
+ log=`$(CHECKER) $(top_builddir)/testSAX --sax2 --noent $$i > result.$$name 2> /dev/null ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ diff $(srcdir)/result/noent/$$name.sax2 result.$$name` ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done)
@@ -825,7 +868,7 @@
if [ ! -d $$i ] ; then \
log=`$(CHECKER) $(top_builddir)/xmllint --valid --noout --nowarning $$i ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0"`;\
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
fi ; done ; exit 0)
@echo "## Validity checking regression tests"
-@(for i in $(srcdir)/test/VC/* ; do \
@@ -839,7 +882,7 @@
log=`$(CHECKER) $(top_builddir)/xmllint --noout --valid $$i 2> result.$$name ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/VC/$$name result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done)
@echo "## General documents valid regression tests"
@@ -855,7 +898,7 @@
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/valid/$$name result.$$name ; \
diff $(srcdir)/result/valid/$$name.err error.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name error.$$name ; \
fi ; fi ; done)
@@ -873,7 +916,7 @@
log=`$(CHECKER) $(top_builddir)/testRegexp -i $$i 2>&1 > result.$$name ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/regexp/$$name result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done)
@echo "## Formal expresssions regression tests"
@@ -888,7 +931,7 @@
log=`$(CHECKER) $(top_builddir)/testRegexp --expr -i $$i 2>&1 > result.$$name ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/expr/$$name result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done)
@@ -906,7 +949,7 @@
log=`$(CHECKER) $(top_builddir)/testAutomata $$i 2>&1 > result.$$name ; \
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
diff $(srcdir)/result/automata/$$name result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done)
@@ -957,7 +1000,7 @@
cmdline="$$cmdline '`cat $(srcdir)/test/c14n/$$m/$$name.ns`'"; \
fi; \
fi; \
- $$cmdline > $(srcdir)/test/c14n/test.tmp; \
+ $$cmdline > $(srcdir)/test/c14n/test.tmp 2> /dev/null; \
if [ $$? -eq 0 ]; then \
diff $(srcdir)/result/c14n/$$m/$$name $(srcdir)/test/c14n/test.tmp; \
if [ $$? -ne 0 ]; then \
@@ -998,7 +1041,7 @@
diff $(srcdir)/result/schemas/"$$name"_"$$sno"_"$$xno".err \
err.$$name;\
grep Unimplemented err.$$name`; \
- if [ -n "$$log" ] ; then echo "$$name"_"$$sno"_"$$xno" result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo "$$name"_"$$sno"_"$$xno" result ; echo "$$log" ; fi ; \
rm res.$$name err.$$name ; \
fi ; fi ;\
done; done)
@@ -1023,7 +1066,7 @@
diff $(srcdir)/result/relaxng/"$$name"_err \
err.$$name | grep -v "error detected at";\
grep Unimplemented err.$$name`; \
- if [ -n "$$log" ] ; then echo schemas $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo schemas $$name result ; echo "$$log" ; fi ; \
rm res.$$name err.$$name ; \
fi; \
for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
@@ -1045,7 +1088,7 @@
diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
err.$$name | grep -v "error detected at";\
grep Unimplemented err.$$name`; \
- if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo "$$log" ; fi ; \
rm res.$$name err.$$name ; \
fi ; fi ; \
done; done)
@@ -1071,7 +1114,7 @@
diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
err.$$name | grep -v "error detected at";\
fi ; grep Unimplemented err.$$name`; \
- if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo "$$log" ; fi ; \
rm res.$$name err.$$name ; \
fi ; fi ; \
done; done)
@@ -1100,7 +1143,7 @@
diff $(srcdir)/result/schematron/"$$name"_"$$xno".err \
err.$$name | grep -v "error detected at";\
grep Unimplemented err.$$name`; \
- if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo "$$name"_"$$xno" result ; echo "$$log" ; fi ; \
rm res.$$name err.$$name ; \
fi ; fi ; \
done; done)
@@ -1149,7 +1192,7 @@
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
done ;\
diff $(srcdir)/result/pattern/$$name result.$$name` ; \
- if [ -n "$$log" ] ; then echo $$name result ; echo $$log ; fi ; \
+ if [ -n "$$log" ] ; then echo $$name result ; echo "$$log" ; fi ; \
rm result.$$name ; \
fi ; fi ; done ;)
@@ -1207,12 +1250,13 @@
check-xsddata-test-suite.py check-xinclude-test-suite.py \
example/Makefile.am example/gjobread.c example/gjobs.xml \
$(man_MANS) libxml-2.0.pc.in libxml-2.0-uninstalled.pc.in \
- libxml2-config.cmake.in \
+ libxml2-config.cmake.in autogen.sh \
trionan.c trionan.h triostr.c triostr.h trio.c trio.h \
triop.h triodef.h libxml.h elfgcchack.h xzlib.h buf.h \
enc.h save.h testThreadsWin32.c genUnicode.py TODO_SCHEMAS \
dbgen.pl dbgenattr.pl regressions.py regressions.xml \
README.tests Makefile.tests libxml2.syms timsort.h \
+ README.zOS \
$(CVS_EXTRA_DIST)
diff --git a/NEWS b/NEWS
index 8027d55..d248c69 100644
--- a/NEWS
+++ b/NEWS
@@ -845,7 +845,7 @@
- Improvement: switch parser to XML-1.0 5th edition, add parsing flags
for old versions, switch URI parsing to RFC 3986,
add xmlSchemaValidCtxtGetParserCtxt (Holger Kaelberer),
- new hashing functions for dictionnaries (based on Stefan Behnel work),
+ new hashing functions for dictionaries (based on Stefan Behnel work),
improve handling of misplaced html/head/body in HTML parser, better
regression test tools and code coverage display, better algorithms
to detect various versions of the billion laughts attacks, make
@@ -1231,7 +1231,7 @@
Bakefile support (Francesco Montorsi), Windows compilation (Joel Reed),
some gcc4 fixes, HP-UX portability fixes (Rick Jones).
- bug fixes: xmlSchemaElementDump namespace (Kasimier Buchcik), push and
- xmlreader stopping on non-fatal errors, thread support for dictionnaries
+ xmlreader stopping on non-fatal errors, thread support for dictionaries
reference counting (Gary Coady), internal subset and push problem, URL
saved in xmlCopyDoc, various schemas bug fixes (Kasimier), Python paths
fixup (Stephane Bidoul), xmlGetNodePath and namespaces, xmlSetNsProp fix
@@ -1244,7 +1244,7 @@
Hendricks), aliasing bug exposed by gcc4 on s390, xmlTextReaderNext bug
(Rob Richards), Schemas decimal type fixes (William Brack),
xmlByteConsumed static buffer (Ben Maurer).
- - improvement: speedup parsing comments and DTDs, dictionnary support for
+ - improvement: speedup parsing comments and DTDs, dictionary support for
hash tables, Schemas Identity constraints (Kasimier), streaming XPath
subset, xmlTextReaderReadString added (Bjorn Reese), Schemas canonical
values handling (Kasimier), add xmlTextReaderByteConsumed (Aron
@@ -1454,7 +1454,7 @@
URI on SYSTEM lookup failure, XInclude parse flags inheritance (William),
XInclude and XPointer fixes for entities (William), XML parser bug
reported by Holger Rauch, nanohttp fd leak (William), regexps char
- groups '-' handling (William), dictionnary reference counting problems,
+ groups '-' handling (William), dictionary reference counting problems,
do not close stderr.
- performance patches from Petr Pajas
- Documentation fixes: XML_CATALOG_FILES in man pages (Mike Hommey)
@@ -1482,7 +1482,7 @@
William) reported by Yuuichi Teranishi
- bugfixes: make test and path issues, xmlWriter attribute serialization
(William Brack), xmlWriter indentation (William), schemas validation
- (Eric Haszlakiewicz), XInclude dictionnaries issues (William and Oleg
+ (Eric Haszlakiewicz), XInclude dictionaries issues (William and Oleg
Paraschenko), XInclude empty fallback (William), HTML warnings (William),
XPointer in XInclude (William), Python namespace serialization,
isolat1ToUTF8 bound error (Alfred Mickautsch), output of parameter
@@ -1503,7 +1503,7 @@
2.6.5: Jan 25 2004:
- - Bugfixes: dictionnaries for schemas (William Brack), regexp segfault
+ - Bugfixes: dictionaries for schemas (William Brack), regexp segfault
(William), xs:all problem (William), a number of XPointer bugfixes
(William), xmllint error go to stderr, DTD validation problem with
namespace, memory leak (William), SAX1 cleanup and minimal options fixes
@@ -1515,14 +1515,14 @@
Fleck), doc (Sven Zimmerman), I/O example.
- Python bindings: fixes (William), enum support (Stéphane Bidoul),
structured error reporting (Stéphane Bidoul)
- - XInclude: various fixes for conformance, problem related to dictionnary
+ - XInclude: various fixes for conformance, problem related to dictionary
references (William & me), recursion (William)
- xmlWriter: indentation (Lucas Brasilino), memory leaks (Alfred
Mickautsch),
- xmlSchemas: normalizedString datatype (John Belmonte)
- code cleanup for strings functions (William)
- Windows: compiler patches (Mark Vakoc)
- - Parser optimizations, a few new XPath and dictionnary APIs for future
+ - Parser optimizations, a few new XPath and dictionary APIs for future
XSLT optimizations.
@@ -1617,8 +1617,8 @@
of change
- Increased the library modularity, far more options can be stripped out,
a --with-minimum configuration will weight around 160KBytes
- - Use per parser and per document dictionnary, allocate names and small
- text nodes from the dictionnary
+ - Use per parser and per document dictionary, allocate names and small
+ text nodes from the dictionary
- Switch to a SAX2 like parser rewrote most of the XML parser core,
provides namespace resolution and defaulted attributes, minimize memory
allocations and copies, namespace checking and specific error handling,
@@ -1665,7 +1665,7 @@
(William), xmlCleanupParser (Marc Liyanage), CDATA output (William), HTTP
error handling.
- xmllint options: --dtdvalidfpi for Tobias Reif, --sax1 for compat
- testing, --nodict for building without tree dictionnary, --nocdata to
+ testing, --nodict for building without tree dictionary, --nocdata to
replace CDATA by text, --nsclean to remove surperfluous namespace
declarations
- added xml2-config --libtool-libs option from Kevin P. Fleming
diff --git a/README.cvs-commits b/README.cvs-commits
index a4bd841..9c7bdd0 100644
--- a/README.cvs-commits
+++ b/README.cvs-commits
@@ -1,4 +1,4 @@
- Please read the HACKING file for instructions
+ Please read the CONTRIBUTING file for instructions
Daniel
diff --git a/README.version b/README.version
new file mode 100644
index 0000000..93127fc
--- /dev/null
+++ b/README.version
@@ -0,0 +1,4 @@
+URL: ftp://xmlsoft.org/libxml2/libxml2-2.9.2.tar.gz
+Version: 2.9.2
+BugComponent: 1351
+AllAdvisories: yes
diff --git a/README.zOS b/README.zOS
new file mode 100644
index 0000000..6b6669a
--- /dev/null
+++ b/README.zOS
@@ -0,0 +1,212 @@
+Notes for compiling on zOS:
+
+- since testapi.c file is huge (over 52000 lines), it's compilation
+ fails: I skipped the problem by removing all references to testapi in the
+ Makefile.in, but it would be neater if one can build without test files
+ (I didn't find an option in configure...)
+
+- since the name of files (or qualifier) in PDS are limited to 8 I had to
+ rename xmlschemas.c and xmlschemastypes.c in (resp.) xmlsche.c xmlschet.c
+ (and I had to modify all occurences of these files accordingly in the
+ rest of the Makefile !!!).
+
+- in order to copy objects to PDS, I had the cp command at line 860
+ of Makefile.in
+
+libxml2.la: $(libxml2_la_OBJECTS) $(libxml2_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libxml2_la_LINK) -rpath $(libdir) $(libxml2_la_OBJECTS) $(libxml2_la_LIBADD) $(LIBS)
+ # Copy objects to PDS
+ @list='$(libxml2_OBJECTS)' ; for p in $$list; do \
+ cp -ACMv $$p "//'<PDS NAME>'"; \
+ done
+
+ with <PDS NAME> stands for the name of my PDS and
+
+libxml2_OBJECTS = SAX.o entities.o encoding.o error.o \
+ parserInternals.o parser.o tree.o hash.o list.o xmlIO.o \
+ xmlmemory.o uri.o valid.o xlink.o HTMLparser.o \
+ HTMLtree.o debugXML.o xpath.o xpointer.o xinclude.o \
+ nanohttp.o nanoftp.o triostr.o trio.o catalog.o globals.o \
+ threads.o c14n.o xmlstring.o buf.o xmlregexp.o \
+ xmlsche.o xmlschet.o xmlunicode.o \
+ xmlreader.o relaxng.o dict.o SAX2.o \
+ xmlwriter.o legacy.o chvalid.o pattern.o xmlsave.o \
+ xmlmodule.o schematron.o xzlib.o
+
+In order to handle the support of zOS without breaking the existing
+Makefile maybe a new option/flag zOs would copy xmlschemas.c and
+xmlschemastypes.c files and use specifics targets rather than existing
+ones with the longer names... A variable to handle the PDS name has to
+be provided also...
+
+See patch below for set of changes to Makefile.in
+
+Stéphane Michaut <smichaut@axway.com>
+July 2017
+
+
+--- Makefile.in 2017-08-01 08:17:15.000000000 +0200
++++ Makefile-new.in 2017-08-01 08:07:26.000000000 +0200
+@@ -41,7 +41,7 @@
+ testSAX$(EXEEXT) testHTML$(EXEEXT) testXPath$(EXEEXT) \
+ testURI$(EXEEXT) testThreads$(EXEEXT) testC14N$(EXEEXT) \
+ testAutomata$(EXEEXT) testRegexp$(EXEEXT) testReader$(EXEEXT) \
+- testapi$(EXEEXT) testModule$(EXEEXT) runtest$(EXEEXT) \
++ testModule$(EXEEXT) runtest$(EXEEXT) \
+ runsuite$(EXEEXT) testchar$(EXEEXT) testdict$(EXEEXT) \
+ runxmlconf$(EXEEXT) testrecurse$(EXEEXT) testlimits$(EXEEXT)
+ bin_PROGRAMS = xmllint$(EXEEXT) xmlcatalog$(EXEEXT)
+@@ -106,6 +106,7 @@
+ debugXML.c xpath.c xpointer.c xinclude.c nanohttp.c nanoftp.c \
+ DOCBparser.c catalog.c globals.c threads.c c14n.c xmlstring.c \
+ buf.c xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
++ xmlsche.c xmlschet.c \
+ triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c \
+ xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c xmlmodule.c \
+ schematron.c xzlib.c
+@@ -118,10 +119,24 @@
+ nanohttp.lo nanoftp.lo $(am__objects_1) catalog.lo globals.lo \
+ threads.lo c14n.lo xmlstring.lo buf.lo xmlregexp.lo \
+ xmlschemas.lo xmlschemastypes.lo xmlunicode.lo \
++ xmlsche.lo xmlschet.lo \
+ $(am__objects_2) xmlreader.lo relaxng.lo dict.lo SAX2.lo \
+ xmlwriter.lo legacy.lo chvalid.lo pattern.lo xmlsave.lo \
+ xmlmodule.lo schematron.lo xzlib.lo
+ libxml2_la_OBJECTS = $(am_libxml2_la_OBJECTS)
++
++libxml2_OBJECTS = SAX.o entities.o encoding.o error.o \
++ parserInternals.o parser.o tree.o hash.o list.o xmlIO.o \
++ xmlmemory.o uri.o valid.o xlink.o HTMLparser.o \
++ HTMLtree.o debugXML.o xpath.o xpointer.o xinclude.o \
++ nanohttp.o nanoftp.o triostr.o trio.o catalog.o globals.o \
++ threads.o c14n.o xmlstring.o buf.o xmlregexp.o \
++ xmlschemas.o xmlschemastypes.o xmlunicode.o \
++ xmlsche.o xmlschemast.o \
++ xmlreader.o relaxng.o dict.o SAX2.o \
++ xmlwriter.o legacy.o chvalid.o pattern.o xmlsave.o \
++ xmlmodule.o schematron.o xzlib.o
++
+ AM_V_lt = $(am__v_lt_$(V))
+ am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+ am__v_lt_0 = --silent
+@@ -216,11 +231,6 @@
+ testXPath_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(testXPath_LDFLAGS) $(LDFLAGS) -o $@
+-am_testapi_OBJECTS = testapi.$(OBJEXT)
+-testapi_OBJECTS = $(am_testapi_OBJECTS)
+-testapi_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+- $(testapi_LDFLAGS) $(LDFLAGS) -o $@
+ am_testchar_OBJECTS = testchar.$(OBJEXT)
+ testchar_OBJECTS = $(am_testchar_OBJECTS)
+ testchar_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+@@ -285,7 +295,7 @@
+ $(testReader_SOURCES) $(testRegexp_SOURCES) \
+ $(testRelax_SOURCES) $(testSAX_SOURCES) $(testSchemas_SOURCES) \
+ $(testThreads_SOURCES) $(testURI_SOURCES) $(testXPath_SOURCES) \
+- $(testapi_SOURCES) $(testchar_SOURCES) $(testdict_SOURCES) \
++ $(testchar_SOURCES) $(testdict_SOURCES) \
+ $(testlimits_SOURCES) $(testrecurse_SOURCES) \
+ $(xmlcatalog_SOURCES) $(xmllint_SOURCES)
+ DIST_SOURCES = $(am__libxml2_la_SOURCES_DIST) $(testdso_la_SOURCES) \
+@@ -295,7 +305,7 @@
+ $(testReader_SOURCES) $(testRegexp_SOURCES) \
+ $(testRelax_SOURCES) $(testSAX_SOURCES) $(testSchemas_SOURCES) \
+ $(am__testThreads_SOURCES_DIST) $(testURI_SOURCES) \
+- $(testXPath_SOURCES) $(testapi_SOURCES) $(testchar_SOURCES) \
++ $(testXPath_SOURCES) $(testchar_SOURCES) \
+ $(testdict_SOURCES) $(testlimits_SOURCES) \
+ $(testrecurse_SOURCES) $(xmlcatalog_SOURCES) \
+ $(xmllint_SOURCES)
+@@ -700,11 +710,6 @@
+ noinst_LTLIBRARIES = testdso.la
+ testdso_la_SOURCES = testdso.c
+ testdso_la_LDFLAGS = -module -no-undefined -avoid-version -rpath $(libdir)
+-BUILT_SOURCES = testapi.c
+-testapi_SOURCES = testapi.c
+-testapi_LDFLAGS =
+-testapi_DEPENDENCIES = $(DEPS)
+-testapi_LDADD = $(LDADDS)
+ runxmlconf_SOURCES = runxmlconf.c
+ runxmlconf_LDFLAGS =
+ runxmlconf_DEPENDENCIES = $(DEPS)
+@@ -854,6 +859,12 @@
+ done
+ libxml2.la: $(libxml2_la_OBJECTS) $(libxml2_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libxml2_la_LINK) -rpath $(libdir) $(libxml2_la_OBJECTS) $(libxml2_la_LIBADD) $(LIBS)
++ # Copie des obj
++ @list='$(libxml2_OBJECTS)' ; for p in $$list; do \
++ echo "copy to PDS: $$p"; \
++ cp -ACMv $$p "//'A009153.XRDEV230.FIC.OBJLIB.LIBXML'"; \
++ done
++
+ testdso.la: $(testdso_la_OBJECTS) $(testdso_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(testdso_la_LINK) $(testdso_la_OBJECTS) $(testdso_la_LIBADD) $(LIBS)
+ install-binPROGRAMS: $(bin_PROGRAMS)
+@@ -953,9 +964,6 @@
+ testXPath$(EXEEXT): $(testXPath_OBJECTS) $(testXPath_DEPENDENCIES)
+ @rm -f testXPath$(EXEEXT)
+ $(AM_V_CCLD)$(testXPath_LINK) $(testXPath_OBJECTS) $(testXPath_LDADD) $(LIBS)
+-testapi$(EXEEXT): $(testapi_OBJECTS) $(testapi_DEPENDENCIES)
+- @rm -f testapi$(EXEEXT)
+- $(AM_V_CCLD)$(testapi_LINK) $(testapi_OBJECTS) $(testapi_LDADD) $(LIBS)
+ testchar$(EXEEXT): $(testchar_OBJECTS) $(testchar_DEPENDENCIES)
+ @rm -f testchar$(EXEEXT)
+ $(AM_V_CCLD)$(testchar_LINK) $(testchar_OBJECTS) $(testchar_LDADD) $(LIBS)
+@@ -1056,7 +1064,6 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testThreadsWin32.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testURI.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testXPath.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testapi.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testchar.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testdict.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testdso.Plo@am__quote@
+@@ -1755,18 +1762,6 @@
+ uninstall-local uninstall-m4dataDATA uninstall-man \
+ uninstall-man1 uninstall-man3 uninstall-pkgconfigDATA
+
+-
+-# that one forces the rebuild when "make rebuild" is run on doc/
+-rebuild_testapi:
+- -@(if [ "$(PYTHON)" != "" ] ; then \
+- $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
+-
+-# that one is just to make sure it is rebuilt if missing
+-# but adding the dependances generate mess
+-testapi.c: $(srcdir)/gentest.py
+- -@(if [ "$(PYTHON)" != "" ] ; then \
+- $(PYTHON) $(srcdir)/gentest.py $(srcdir) ; fi )
+-
+ #testOOM_SOURCES=testOOM.c testOOMlib.h testOOMlib.c
+ #testOOM_LDFLAGS =
+ #testOOM_DEPENDENCIES = $(DEPS)
+@@ -1775,7 +1770,7 @@
+ runtests:
+ [ -d test ] || $(LN_S) $(srcdir)/test .
+ [ -d result ] || $(LN_S) $(srcdir)/result .
+- $(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
++ $(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testrecurse$(EXEEXT) &&$(CHECKER) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
+ @(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \
+ $(MAKE) tests ; fi)
+
+@@ -1797,10 +1792,6 @@
+ $(MAKE) tests ; fi)
+ @(cd doc/examples ; $(MAKE) tests)
+
+-APItests: testapi$(EXEEXT)
+- @echo "## Running the API regression tests this may take a little while"
+- -@($(CHECKER) $(top_builddir)/testapi -q)
+-
+ HTMLtests : testHTML$(EXEEXT)
+ @(echo > .memdump)
+ @echo "## HTML regression tests"
+@@ -2746,7 +2737,7 @@
+ dist-test: distdir
+ (mkdir -p $(distdir))
+ (cd $(srcdir) ; tar -cf - --exclude CVS --exclude .svn --exclude .git xstc/Tests) | (cd $(distdir); tar xf -)
+- tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/testapi.c $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz
++ tar -cf - $(distdir)/test $(distdir)/result $(distdir)/xstc/Tests $(distdir)/Makefile.tests $(distdir)/README $(distdir)/README.tests $(distdir)/AUTHORS $(distdir)/runtest.c $(distdir)/runsuite.c | GZIP=$(GZIP_ENV) gzip -c >`echo "$(distdir)" | sed "s+libxml2+libxml2-tests+"`.tar.gz
+ @(rm -rf $(distdir)/xstc/Test)
+
+ cleantar:
diff --git a/SAX2.c b/SAX2.c
index 5cbb700..0f261b7 100644
--- a/SAX2.c
+++ b/SAX2.c
@@ -12,6 +12,7 @@
#include <stdlib.h>
#include <string.h>
#include <limits.h>
+#include <stddef.h>
#include <libxml/xmlmemory.h>
#include <libxml/tree.h>
#include <libxml/parser.h>
@@ -1181,6 +1182,8 @@
xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElement");
if (name != NULL)
xmlFree(name);
+ if (nval != NULL)
+ xmlFree(nval);
return;
}
} else {
@@ -1242,6 +1245,8 @@
xmlFree(ns);
if (name != NULL)
xmlFree(name);
+ if (nval != NULL)
+ xmlFree(nval);
return;
}
} else {
@@ -1311,6 +1316,8 @@
name, namespace->href);
ctxt->wellFormed = 0;
if (ctxt->recovery == 0) ctxt->disableSAX = 1;
+ if (name != NULL)
+ xmlFree(name);
goto error;
}
}
@@ -1908,7 +1915,7 @@
else {
ret->line = 65535;
if (ctxt->options & XML_PARSE_BIG_LINES)
- ret->psvi = (void *) (long) ctxt->input->line;
+ ret->psvi = (void *) (ptrdiff_t) ctxt->input->line;
}
}
}
@@ -2311,7 +2318,7 @@
} else {
/*
* any out of memory error would already have been raised
- * but we can't be garanteed it's the actual error due to the
+ * but we can't be guaranteed it's the actual error due to the
* API, best is to skip in this case
*/
continue;
@@ -2805,7 +2812,8 @@
xmlTextConcat(lastChild, value, len);
} else {
ret = xmlNewCDataBlock(ctxt->myDoc, value, len);
- xmlAddChild(ctxt->node, ret);
+ if (xmlAddChild(ctxt->node, ret) == NULL)
+ xmlFreeNode(ret);
}
}
diff --git a/bakefile/libxml2.bkl b/bakefile/libxml2.bkl
index f314465..dd6ce2c 100644
--- a/bakefile/libxml2.bkl
+++ b/bakefile/libxml2.bkl
@@ -406,7 +406,6 @@
<!-- some other conditional defines -->
- <set var="ZLIB_DEF"><if cond="WITH_ZLIB=='1'">HAVE_ZLIB_H</if></set>
<set var="DEBUG_DEF"><if cond="BUILD=='debug'">_DEBUG</if></set>
<set var="DEBUG_DEF"><if cond="BUILD=='release'">NDEBUG</if></set>
diff --git a/buf.c b/buf.c
index 07922ff..21cb9d8 100644
--- a/buf.c
+++ b/buf.c
@@ -49,7 +49,7 @@
size_t use; /* The buffer size used */
size_t size; /* The buffer size */
xmlBufferPtr buffer; /* wrapper for an old buffer */
- int error; /* an error code if a failure occured */
+ int error; /* an error code if a failure occurred */
};
#ifdef WITH_BUFFER_COMPAT
@@ -231,7 +231,7 @@
xmlBufCreateStatic(void *mem, size_t size) {
xmlBufPtr ret;
- if ((mem == NULL) || (size == 0))
+ if (mem == NULL)
return(NULL);
ret = (xmlBufPtr) xmlMalloc(sizeof(xmlBuf));
@@ -701,7 +701,7 @@
* used in the buffer. It does not account for the terminating zero
* usually needed
*
- * Returns the amount or 0 if none or an error occured
+ * Returns the amount or 0 if none or an error occurred
*/
size_t
diff --git a/c14n.c b/c14n.c
index ca77f92..c04ce66 100644
--- a/c14n.c
+++ b/c14n.c
@@ -89,7 +89,7 @@
xmlNsPtr ns,
xmlC14NCtxPtr ctx);
-static int xmlC14NIsNodeInNodeset (xmlNodeSetPtr nodes,
+static int xmlC14NIsNodeInNodeset (void *user_data,
xmlNodePtr node,
xmlNodePtr parent);
@@ -252,7 +252,8 @@
#define XML_NAMESPACES_DEFAULT 16
static int
-xmlC14NIsNodeInNodeset(xmlNodeSetPtr nodes, xmlNodePtr node, xmlNodePtr parent) {
+xmlC14NIsNodeInNodeset(void *user_data, xmlNodePtr node, xmlNodePtr parent) {
+ xmlNodeSetPtr nodes = (xmlNodeSetPtr) user_data;
if((nodes != NULL) && (node != NULL)) {
if(node->type != XML_NAMESPACE_DECL) {
return(xmlXPathNodeSetContains(nodes, node));
@@ -513,8 +514,10 @@
* Returns -1 if ns1 < ns2, 0 if ns1 == ns2 or 1 if ns1 > ns2.
*/
static int
-xmlC14NNsCompare(xmlNsPtr ns1, xmlNsPtr ns2)
+xmlC14NNsCompare(const void *data1, const void *data2)
{
+ const xmlNsPtr ns1 = (const xmlNsPtr) data1;
+ const xmlNsPtr ns2 = (const xmlNsPtr) data2;
if (ns1 == ns2)
return (0);
if (ns1 == NULL)
@@ -559,6 +562,11 @@
return (1);
}
+static int
+xmlC14NPrintNamespacesWalker(const void *ns, void *ctx) {
+ return xmlC14NPrintNamespaces((const xmlNsPtr) ns, (xmlC14NCtxPtr) ctx);
+}
+
/**
* xmlC14NProcessNamespacesAxis:
* @ctx: the C14N context
@@ -615,7 +623,7 @@
/*
* Create a sorted list to store element namespaces
*/
- list = xmlListCreate(NULL, (xmlListDataCompare) xmlC14NNsCompare);
+ list = xmlListCreate(NULL, xmlC14NNsCompare);
if (list == NULL) {
xmlC14NErrInternal("creating namespaces list (c14n)");
return (-1);
@@ -663,7 +671,7 @@
/*
* print out all elements from list
*/
- xmlListWalk(list, (xmlListWalker) xmlC14NPrintNamespaces, (const void *) ctx);
+ xmlListWalk(list, xmlC14NPrintNamespacesWalker, (void *) ctx);
/*
* Cleanup
@@ -728,7 +736,7 @@
/*
* Create a sorted list to store element namespaces
*/
- list = xmlListCreate(NULL, (xmlListDataCompare) xmlC14NNsCompare);
+ list = xmlListCreate(NULL, xmlC14NNsCompare);
if (list == NULL) {
xmlC14NErrInternal("creating namespaces list (exc c14n)");
return (-1);
@@ -840,7 +848,7 @@
/*
* print out all elements from list
*/
- xmlListWalk(list, (xmlListWalker) xmlC14NPrintNamespaces, (const void *) ctx);
+ xmlListWalk(list, xmlC14NPrintNamespacesWalker, (void *) ctx);
/*
* Cleanup
@@ -879,8 +887,10 @@
* Returns -1 if attr1 < attr2, 0 if attr1 == attr2 or 1 if attr1 > attr2.
*/
static int
-xmlC14NAttrsCompare(xmlAttrPtr attr1, xmlAttrPtr attr2)
+xmlC14NAttrsCompare(const void *data1, const void *data2)
{
+ const xmlAttrPtr attr1 = (const xmlAttrPtr) data1;
+ const xmlAttrPtr attr2 = (const xmlAttrPtr) data2;
int ret = 0;
/*
@@ -931,8 +941,10 @@
* Returns 1 on success or 0 on fail.
*/
static int
-xmlC14NPrintAttrs(const xmlAttrPtr attr, xmlC14NCtxPtr ctx)
+xmlC14NPrintAttrs(const void *data, void *user)
{
+ const xmlAttrPtr attr = (const xmlAttrPtr) data;
+ xmlC14NCtxPtr ctx = (xmlC14NCtxPtr) user;
xmlChar *value;
xmlChar *buffer;
@@ -1142,7 +1154,7 @@
/*
* Create a sorted list to store element attributes
*/
- list = xmlListCreate(NULL, (xmlListDataCompare) xmlC14NAttrsCompare);
+ list = xmlListCreate(NULL, xmlC14NAttrsCompare);
if (list == NULL) {
xmlC14NErrInternal("creating attributes list");
return (-1);
@@ -1331,7 +1343,7 @@
/*
* print out all elements from list
*/
- xmlListWalk(list, (xmlListWalker) xmlC14NPrintAttrs, (const void *) ctx);
+ xmlListWalk(list, xmlC14NPrintAttrs, (void *) ctx);
/*
* Cleanup
@@ -1375,13 +1387,6 @@
xmlFreeURI(uri);
return (-1);
}
- if ((xmlStrcasecmp((const xmlChar *) uri->scheme, BAD_CAST "urn") != 0)
- && (xmlStrcasecmp((const xmlChar *) uri->scheme, BAD_CAST "dav") !=0)
- && (xmlStrlen((const xmlChar *) uri->server) == 0)) {
- xmlC14NErrRelativeNamespace(uri->scheme);
- xmlFreeURI(uri);
- return (-1);
- }
xmlFreeURI(uri);
}
ns = ns->next;
@@ -1971,7 +1976,7 @@
int mode, xmlChar ** inclusive_ns_prefixes,
int with_comments, xmlOutputBufferPtr buf) {
return(xmlC14NExecute(doc,
- (xmlC14NIsVisibleCallback)xmlC14NIsNodeInNodeset,
+ xmlC14NIsNodeInNodeset,
nodes,
mode,
inclusive_ns_prefixes,
@@ -2084,7 +2089,7 @@
xmlC14NErrParam("saving doc");
return (-1);
}
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if (compression < 0)
compression = xmlGetCompressMode();
#endif
diff --git a/catalog.c b/catalog.c
index 6dfdfbb..f814121 100644
--- a/catalog.c
+++ b/catalog.c
@@ -319,12 +319,13 @@
/**
* xmlFreeCatalogEntry:
- * @ret: a Catalog entry
+ * @payload: a Catalog entry
*
* Free the memory allocated to a Catalog entry
*/
static void
-xmlFreeCatalogEntry(xmlCatalogEntryPtr ret) {
+xmlFreeCatalogEntry(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlCatalogEntryPtr ret = (xmlCatalogEntryPtr) payload;
if (ret == NULL)
return;
/*
@@ -367,20 +368,22 @@
while (ret != NULL) {
next = ret->next;
- xmlFreeCatalogEntry(ret);
+ xmlFreeCatalogEntry(ret, NULL);
ret = next;
}
}
/**
* xmlFreeCatalogHashEntryList:
- * @ret: a Catalog entry list
+ * @payload: a Catalog entry list
*
* Free the memory allocated to list of Catalog entries from the
* catalog file hash.
*/
static void
-xmlFreeCatalogHashEntryList(xmlCatalogEntryPtr catal) {
+xmlFreeCatalogHashEntryList(void *payload,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlCatalogEntryPtr catal = (xmlCatalogEntryPtr) payload;
xmlCatalogEntryPtr children, next;
if (catal == NULL)
@@ -391,11 +394,11 @@
next = children->next;
children->dealloc = 0;
children->children = NULL;
- xmlFreeCatalogEntry(children);
+ xmlFreeCatalogEntry(children, NULL);
children = next;
}
catal->dealloc = 0;
- xmlFreeCatalogEntry(catal);
+ xmlFreeCatalogEntry(catal, NULL);
}
/**
@@ -440,8 +443,7 @@
if (catal->xml != NULL)
xmlFreeCatalogEntryList(catal->xml);
if (catal->sgml != NULL)
- xmlHashFree(catal->sgml,
- (xmlHashDeallocator) xmlFreeCatalogEntry);
+ xmlHashFree(catal->sgml, xmlFreeCatalogEntry);
xmlFree(catal);
}
@@ -460,7 +462,10 @@
* Serialize an SGML Catalog entry
*/
static void
-xmlCatalogDumpEntry(xmlCatalogEntryPtr entry, FILE *out) {
+xmlCatalogDumpEntry(void *payload, void *data,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlCatalogEntryPtr entry = (xmlCatalogEntryPtr) payload;
+ FILE *out = (FILE *) data;
if ((entry == NULL) || (out == NULL))
return;
switch (entry->type) {
@@ -723,7 +728,10 @@
* Convert one entry from the catalog
*/
static void
-xmlCatalogConvertEntry(xmlCatalogEntryPtr entry, xmlCatalogPtr catal) {
+xmlCatalogConvertEntry(void *payload, void *data,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlCatalogEntryPtr entry = (xmlCatalogEntryPtr) payload;
+ xmlCatalogPtr catal = (xmlCatalogPtr) data;
if ((entry == NULL) || (catal == NULL) || (catal->sgml == NULL) ||
(catal->xml == NULL))
return;
@@ -756,8 +764,7 @@
entry->type = XML_CATA_CATALOG;
break;
default:
- xmlHashRemoveEntry(catal->sgml, entry->name,
- (xmlHashDeallocator) xmlFreeCatalogEntry);
+ xmlHashRemoveEntry(catal->sgml, entry->name, xmlFreeCatalogEntry);
return;
}
/*
@@ -797,9 +804,7 @@
xmlGenericError(xmlGenericErrorContext,
"Converting SGML catalog to XML\n");
}
- xmlHashScan(catal->sgml,
- (xmlHashScanner) xmlCatalogConvertEntry,
- &catal);
+ xmlHashScan(catal->sgml, xmlCatalogConvertEntry, &catal);
return(0);
}
@@ -2396,6 +2401,7 @@
case SGML_CATA_ENTITY:
if (*cur == '%')
type = SGML_CATA_PENTITY;
+ /* Falls through. */
case SGML_CATA_PENTITY:
case SGML_CATA_DOCTYPE:
case SGML_CATA_LINKTYPE:
@@ -2485,7 +2491,7 @@
NULL, XML_CATA_PREFER_NONE, NULL);
res = xmlHashAddEntry(catal->sgml, name, entry);
if (res < 0) {
- xmlFreeCatalogEntry(entry);
+ xmlFreeCatalogEntry(entry, NULL);
}
xmlFree(filename);
}
@@ -2498,7 +2504,7 @@
XML_CATA_PREFER_NONE, NULL);
res = xmlHashAddEntry(catal->sgml, sysid, entry);
if (res < 0) {
- xmlFreeCatalogEntry(entry);
+ xmlFreeCatalogEntry(entry, NULL);
}
} else {
xmlChar *filename;
@@ -2936,8 +2942,7 @@
if (catal->type == XML_XML_CATALOG_TYPE) {
xmlDumpXMLCatalog(out, catal->xml);
} else {
- xmlHashScan(catal->sgml,
- (xmlHashScanner) xmlCatalogDumpEntry, out);
+ xmlHashScan(catal->sgml, xmlCatalogDumpEntry, out);
}
}
#endif /* LIBXML_OUTPUT_ENABLED */
@@ -3001,8 +3006,7 @@
if (catal->type == XML_XML_CATALOG_TYPE) {
res = xmlDelXMLCatalog(catal->xml, value);
} else {
- res = xmlHashRemoveEntry(catal->sgml, value,
- (xmlHashDeallocator) xmlFreeCatalogEntry);
+ res = xmlHashRemoveEntry(catal->sgml, value, xmlFreeCatalogEntry);
if (res == 0)
res = 1;
}
@@ -3283,8 +3287,7 @@
xmlGenericError(xmlGenericErrorContext,
"Catalogs cleanup\n");
if (xmlCatalogXMLFiles != NULL)
- xmlHashFree(xmlCatalogXMLFiles,
- (xmlHashDeallocator)xmlFreeCatalogHashEntryList);
+ xmlHashFree(xmlCatalogXMLFiles, xmlFreeCatalogHashEntryList);
xmlCatalogXMLFiles = NULL;
if (xmlDefaultCatalog != NULL)
xmlFreeCatalog(xmlDefaultCatalog);
diff --git a/config.h b/config.h
index 1c74220..7eddb03 100644
--- a/config.h
+++ b/config.h
@@ -110,9 +110,7 @@
/* #undef HAVE_LZMA_H */
/* Define to 1 if you have the <malloc.h> header file. */
-#ifndef HAVE_MALLOC_H /* Already in AndroidConfig.h :-( */
#define HAVE_MALLOC_H 1
-#endif
/* Define to 1 if you have the <math.h> header file. */
#define HAVE_MATH_H 1
diff --git a/configure.ac b/configure.ac
index 14ac0a8..370e2de 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,12 +3,13 @@
AC_INIT
AC_CONFIG_SRCDIR([entities.c])
AC_CONFIG_HEADERS([config.h])
+AM_MAINTAINER_MODE([enable])
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_HOST
LIBXML_MAJOR_VERSION=2
LIBXML_MINOR_VERSION=9
-LIBXML_MICRO_VERSION=2
+LIBXML_MICRO_VERSION=8
LIBXML_MICRO_VERSION_SUFFIX=
LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX
LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION
@@ -158,7 +159,7 @@
if test "$withval" != "no" -a "$withval" != "yes"; then
RDL_DIR=$withval
CPPFLAGS="${CPPFLAGS} -I$withval/include"
- LIBS="${LIBS} -L$withval/lib"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
fi
])
AC_ARG_WITH(regexps,
@@ -194,7 +195,7 @@
if test "$withval" != "no" -a "$withval" != "yes"; then
Z_DIR=$withval
CPPFLAGS="${CPPFLAGS} -I$withval/include"
- LIBS="${LIBS} -L$withval/lib"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
fi
])
AC_ARG_WITH(lzma,
@@ -202,7 +203,7 @@
if test "$withval" != "no" -a "$withval" != "yes"; then
LZMA_DIR=$withval
CPPFLAGS="${CPPFLAGS} -I$withval/include"
- LIBS="${LIBS} -L$withval/lib"
+ LDFLAGS="${LDFLAGS} -L$withval/lib"
fi
])
AC_ARG_WITH(coverage,
@@ -388,26 +389,33 @@
WITH_ZLIB=0
if test "$with_zlib" = "no"; then
- echo "Disabling compression support"
+ echo "Disabling zlib compression support"
else
- AC_CHECK_HEADERS(zlib.h,
- [SAVE_LDFLAGS="${LDFLAGS}"
- LDFLAGS="-L${Z_DIR}/lib"
- AC_CHECK_LIB(z, gzread,[
- AC_DEFINE([HAVE_LIBZ], [1], [Have compression library])
- WITH_ZLIB=1
- if test "x${Z_DIR}" != "x"; then
- Z_CFLAGS="-I${Z_DIR}/include"
- Z_LIBS="-L${Z_DIR}/lib -lz"
- [case ${host} in
- *-*-solaris*)
- Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz"
- ;;
- esac]
- else
- Z_LIBS="-lz"
- fi])
- LDFLAGS="${SAVE_LDFLAGS}"])
+ # Don't run pkg-config if with_zlib contains a path.
+ if test "x$Z_DIR" = "x"; then
+ # Try pkg-config first so that static linking works.
+ PKG_CHECK_MODULES([Z],[zlib],
+ [WITH_ZLIB=1],
+ [ ])
+ fi
+
+ if test "$WITH_ZLIB" = "0"; then
+ AC_CHECK_HEADERS(zlib.h,
+ AC_CHECK_LIB(z, gzread,[
+ WITH_ZLIB=1
+ if test "x${Z_DIR}" != "x"; then
+ Z_CFLAGS="-I${Z_DIR}/include"
+ Z_LIBS="-L${Z_DIR}/lib -lz"
+ [case ${host} in
+ *-*-solaris*)
+ Z_LIBS="-L${Z_DIR}/lib -R${Z_DIR}/lib -lz"
+ ;;
+ esac]
+ else
+ Z_LIBS="-lz"
+ fi])
+ )
+ fi
fi
AC_SUBST(Z_CFLAGS)
@@ -420,37 +428,30 @@
WITH_LZMA=0
if test "$with_lzma" = "no"; then
- echo "Disabling compression support"
+ echo "Disabling lzma compression support"
else
- # Try pkg-config first so that static linking works.
- # If this succeeeds, we ignore the WITH_LZMA directory.
- PKG_CHECK_MODULES([LZMA],[liblzma],
- [have_liblzma=yes],
- [have_liblzma=no])
+ # Don't run pkg-config if with_lzma contains a path.
+ if test "x$LZMA_DIR" = "x"; then
+ # Try pkg-config first so that static linking works.
+ PKG_CHECK_MODULES([LZMA],[liblzma],
+ [WITH_LZMA=1],
+ [ ])
+ fi
- # If pkg-config failed, fall back to AC_CHECK_LIB. This
- # will not pick up the necessary LIBS flags for liblzma's
- # private dependencies, though, so static linking may fail.
- if test "x$have_liblzma" = "xno"; then
- AC_CHECK_HEADERS(lzma.h,
- [SAVE_LDFLAGS="${LDFLAGS}"
- LDFLAGS="-L${LZMA_DIR}/lib"
+ # If pkg-config failed, fall back to AC_CHECK_LIB. This
+ # will not pick up the necessary LIBS flags for liblzma's
+ # private dependencies, though, so static linking may fail.
+ if test "$WITH_LZMA" = "0"; then
+ AC_CHECK_HEADERS(lzma.h,
AC_CHECK_LIB(lzma, lzma_code,[
- have_liblzma=yes
+ WITH_LZMA=1
if test "x${LZMA_DIR}" != "x"; then
LZMA_CFLAGS="-I${LZMA_DIR}/include"
LZMA_LIBS="-L${LZMA_DIR}/lib -llzma"
else
LZMA_LIBS="-llzma"
- fi],
- [have_liblzma=no])
- LDFLAGS="${SAVE_LDFLAGS}"])
- fi
-
- # Found the library via either method?
- if test "x$have_liblzma" = "xyes"; then
- AC_DEFINE([HAVE_LIBLZMA], [1], [Have compression library])
- WITH_LZMA=1
+ fi])
+ )
fi
fi
@@ -478,12 +479,8 @@
AC_CHECK_HEADERS([stdint.h])
AC_CHECK_HEADERS([inttypes.h])
AC_CHECK_HEADERS([time.h])
-AC_CHECK_HEADERS([ansidecl.h])
-AC_CHECK_HEADERS([ieeefp.h])
-AC_CHECK_HEADERS([nan.h])
AC_CHECK_HEADERS([math.h])
AC_CHECK_HEADERS([limits.h])
-AC_CHECK_HEADERS([fp_class.h])
AC_CHECK_HEADERS([float.h])
AC_CHECK_HEADERS([stdlib.h])
AC_CHECK_HEADERS([sys/socket.h], [], [],
@@ -540,10 +537,8 @@
dnl Checks for library functions.
AC_FUNC_STRFTIME
-AC_CHECK_FUNCS(strdup strndup strerror)
-AC_CHECK_FUNCS(finite isnand fp_class class fpclass)
AC_CHECK_FUNCS(strftime localtime gettimeofday ftime)
-AC_CHECK_FUNCS(stat _stat signal)
+AC_CHECK_FUNCS(stat signal)
AC_CHECK_FUNCS(rand rand_r srand time)
AC_CHECK_FUNCS(isascii mmap munmap putenv)
@@ -754,13 +749,13 @@
if test "${GCC}" != "yes" ; then
case "${host}" in
hppa*-*-hpux* )
- CFLAGS="${CFLAGS} -Wp,-H30000"
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wp,-H30000"
;;
*-dec-osf* )
- CFLAGS="${CFLAGS} -ieee"
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
;;
alpha*-*-linux* )
- CFLAGS="${CFLAGS} -ieee"
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -ieee"
;;
esac
else
@@ -770,19 +765,19 @@
# Not activated by default because this inflates the code size
# Used to allow propagation of C++ exceptions through the library
#
- CFLAGS="${CFLAGS} -fexceptions"
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -fexceptions"
fi
# warnings we'd like to see
- CFLAGS="${CFLAGS} -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
# warnings we'd like to supress
- CFLAGS="${CFLAGS} -Wno-long-long"
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -Wno-long-long -Wno-format-extra-args -Wno-array-bounds"
case "${host}" in
alpha*-*-linux* )
- CFLAGS="${CFLAGS} -mieee"
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
;;
alpha*-*-osf* )
- CFLAGS="${CFLAGS} -mieee"
+ EXTRA_CFLAGS="${EXTRA_CFLAGS} -mieee"
;;
esac
fi
@@ -795,13 +790,13 @@
;;
*-*-mingw* | *-*-cygwin* | *-*-msvc* )
# If the host is Windows, and shared libraries are disabled, we
- # need to add -DLIBXML_STATIC to CFLAGS in order for linking to
+ # need to add -DLIBXML_STATIC to EXTRA_CFLAGS in order for linking to
# work properly (without it, xmlexports.h would force the use of
# DLL imports, which obviously aren't present in a static
# library).
if test "x$enable_shared" = "xno"; then
XML_CFLAGS="$XML_CFLAGS -DLIBXML_STATIC"
- CFLAGS="$CFLAGS -DLIBXML_STATIC"
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -DLIBXML_STATIC"
fi
;;
esac
@@ -993,7 +988,7 @@
fi
fi
if test "${GCC}" = "yes" ; then
- CFLAGS="-g -O -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
+ EXTRA_CFLAGS="-g -O -pedantic -W -Wformat -Wno-format-extra-args -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -Wall"
fi
STATIC_BINARIES="-static"
dnl -Wcast-qual -ansi
@@ -1036,9 +1031,9 @@
else
echo Enabling multithreaded support
- dnl Default to native threads on Win32
+ dnl Default to native threads on Windows
case $host_os in
- *mingw32*) if test "$with_threads" != "pthread" && test "$with_threads" != "no"; then
+ *mingw*) if test "$with_threads" != "pthread" && test "$with_threads" != "no"; then
WITH_THREADS="1"
THREADS_W32="1"
THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_WIN32_THREADS"
@@ -1476,8 +1471,6 @@
*) M_LIBS="-lm"
;;
esac
-XML_LIBS="-lxml2 $Z_LIBS $THREAD_LIBS $ICONV_LIBS $M_LIBS $LIBS"
-XML_LIBTOOLLIBS="libxml2.la"
AC_SUBST(WITH_ICONV)
WITH_ICU=0
@@ -1485,18 +1478,64 @@
if test "$with_icu" != "yes" ; then
echo Disabling ICU support
else
- ICU_CONFIG=icu-config
- if ${ICU_CONFIG} --cflags >/dev/null 2>&1
- then
- ICU_LIBS=`${ICU_CONFIG} --ldflags`
+ # Try pkg-config first so that static linking works.
+ # If this succeeeds, we ignore the WITH_ICU directory.
+ PKG_CHECK_MODULES([ICU],[icu-i18n],
+ [have_libicu=yes],
+ [have_libicu=no])
+
+ # If pkg-config failed, fall back to AC_CHECK_LIB. This
+ # will not pick up the necessary LIBS flags for liblzma's
+ # private dependencies, though, so static linking may fail.
+ if test "x$have_libicu" = "xno"; then
+ ICU_CONFIG=icu-config
+ if ${ICU_CONFIG} --cflags >/dev/null 2>&1
+ then
+ ICU_LIBS=`${ICU_CONFIG} --ldflags`
+ have_libicu=yes
+ echo Enabling ICU support
+ else
+ if test "$with_icu" != "yes" -a "$with_iconv" != "" ; then
+ CPPFLAGS="${CPPFLAGS} -I$with_icu"
+ # Export this since our headers include icu.h
+ XML_INCLUDEDIR="${XML_INCLUDEDIR} -I$with_icu"
+ fi
+
+ AC_CHECK_HEADER(unicode/ucnv.h,
+ AC_MSG_CHECKING(for icu)
+ AC_TRY_LINK([#include <unicode/ucnv.h>],[
+ UConverter *utf = ucnv_open("UTF-8", NULL);],[
+ AC_MSG_RESULT(yes)
+ have_libicu=yes],[
+ AC_MSG_RESULT(no)
+ AC_MSG_CHECKING(for icu in -licucore)
+
+ _ldflags="${LDFLAGS}"
+ _libs="${LIBS}"
+ LDFLAGS="${LDFLAGS} ${ICU_LIBS}"
+ LIBS="${LIBS} -licucore"
+
+ AC_TRY_LINK([#include <unicode/ucnv.h>],[
+ UConverter *utf = ucnv_open("UTF-8", NULL);],[
+ AC_MSG_RESULT(yes)
+ have_libicu=yes
+ ICU_LIBS="${ICU_LIBS} -licucore"
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"],[
+ AC_MSG_RESULT(no)
+ LIBS="${_libs}"
+ LDFLAGS="${_ldflags}"])]))
+ fi
+ fi
+
+ # Found the library via either method?
+ if test "x$have_libicu" = "xyes"; then
WITH_ICU=1
- echo Enabling ICU support
- else
- AC_MSG_ERROR([libicu config program icu-config not found])
fi
fi
+XML_LIBS="-lxml2 $Z_LIBS $LZMA_LIBS $THREAD_LIBS $ICONV_LIBS $ICU_LIBS $M_LIBS $LIBS"
+XML_LIBTOOLLIBS="libxml2.la"
AC_SUBST(WITH_ICU)
-AC_SUBST(ICU_LIBS)
WITH_ISO8859X=1
if test "$WITH_ICONV" != "1" ; then
@@ -1579,7 +1618,6 @@
CPPFLAGS="$CPPFLAGS -DWIN32"
WIN32_EXTRA_LIBADD="-lws2_32"
WIN32_EXTRA_LDFLAGS="-no-undefined"
- AC_DEFINE([_WINSOCKAPI_],1,[Using the Win32 Socket implementation])
if test "${PYTHON}" != ""
then
WIN32_EXTRA_PYTHON_LIBADD="-L${pythondir}/../../libs -lpython$(echo ${PYTHON_VERSION} | tr -d .)"
@@ -1620,14 +1658,14 @@
if test "$with_coverage" = "yes" -a "${GCC}" = "yes"
then
echo Enabling code coverage for GCC
- CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -fprofile-arcs -ftest-coverage"
LDFLAGS="$LDFLAGS -fprofile-arcs -ftest-coverage"
else
echo Disabling code coverage for GCC
fi
AC_SUBST(CPPFLAGS)
-AC_SUBST(CFLAGS)
+AC_SUBST(EXTRA_CFLAGS)
AC_SUBST(LDFLAGS)
AC_SUBST(XML_CFLAGS)
@@ -1635,6 +1673,7 @@
AC_SUBST(XML_LIBS)
AC_SUBST(XML_LIBTOOLLIBS)
AC_SUBST(ICONV_LIBS)
+AC_SUBST(ICU_LIBS)
AC_SUBST(XML_INCLUDEDIR)
AC_SUBST(HTML_DIR)
AC_SUBST(HAVE_ISNAN)
diff --git a/debugXML.c b/debugXML.c
index a1b550a..c98db0b 100644
--- a/debugXML.c
+++ b/debugXML.c
@@ -1229,8 +1229,11 @@
}
static void
-xmlCtxtDumpEntityCallback(xmlEntityPtr cur, xmlDebugCtxtPtr ctxt)
+xmlCtxtDumpEntityCallback(void *payload, void *data,
+ const xmlChar *name ATTRIBUTE_UNUSED)
{
+ xmlEntityPtr cur = (xmlEntityPtr) payload;
+ xmlDebugCtxtPtr ctxt = (xmlDebugCtxtPtr) data;
if (cur == NULL) {
if (!ctxt->check)
fprintf(ctxt->output, "Entity is NULL");
@@ -1289,8 +1292,7 @@
if (!ctxt->check)
fprintf(ctxt->output, "Entities in internal subset\n");
- xmlHashScan(table, (xmlHashScanner) xmlCtxtDumpEntityCallback,
- ctxt);
+ xmlHashScan(table, xmlCtxtDumpEntityCallback, ctxt);
} else
fprintf(ctxt->output, "No entities in internal subset\n");
if ((doc->extSubset != NULL) && (doc->extSubset->entities != NULL)) {
@@ -1299,8 +1301,7 @@
if (!ctxt->check)
fprintf(ctxt->output, "Entities in external subset\n");
- xmlHashScan(table, (xmlHashScanner) xmlCtxtDumpEntityCallback,
- ctxt);
+ xmlHashScan(table, xmlCtxtDumpEntityCallback, ctxt);
} else if (!ctxt->check)
fprintf(ctxt->output, "No entities in external subset\n");
}
@@ -2931,7 +2932,7 @@
fprintf(ctxt->output, "\tvalidate check the document for errors\n");
#endif /* LIBXML_VALID_ENABLED */
#ifdef LIBXML_SCHEMAS_ENABLED
- fprintf(ctxt->output, "\trelaxng rng validate the document agaisnt the Relax-NG schemas\n");
+ fprintf(ctxt->output, "\trelaxng rng validate the document against the Relax-NG schemas\n");
#endif
fprintf(ctxt->output, "\tgrep string search for a string in the subtree\n");
#ifdef LIBXML_VALID_ENABLED
diff --git a/dict.c b/dict.c
index c0585fe..0ef3718 100644
--- a/dict.c
+++ b/dict.c
@@ -48,7 +48,7 @@
#else
#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
-#elif defined(WIN32)
+#elif defined(_WIN32)
typedef unsigned __int32 uint32_t;
#endif
#endif
@@ -249,7 +249,7 @@
#endif
pool = dict->strings;
while (pool != NULL) {
- if (pool->end - pool->free > namelen)
+ if ((size_t)(pool->end - pool->free) > namelen)
goto found_pool;
if (pool->size > size) size = pool->size;
limit += pool->size;
@@ -317,7 +317,7 @@
#endif
pool = dict->strings;
while (pool != NULL) {
- if (pool->end - pool->free > namelen + plen + 1)
+ if ((size_t)(pool->end - pool->free) > namelen + plen + 1)
goto found_pool;
if (pool->size > size) size = pool->size;
limit += pool->size;
@@ -453,14 +453,23 @@
}
switch (namelen) {
case 10: value += name[9];
+ /* Falls through. */
case 9: value += name[8];
+ /* Falls through. */
case 8: value += name[7];
+ /* Falls through. */
case 7: value += name[6];
+ /* Falls through. */
case 6: value += name[5];
+ /* Falls through. */
case 5: value += name[4];
+ /* Falls through. */
case 4: value += name[3];
+ /* Falls through. */
case 3: value += name[2];
+ /* Falls through. */
case 2: value += name[1];
+ /* Falls through. */
default: break;
}
return(value);
@@ -496,15 +505,25 @@
}
switch (plen) {
case 10: value += prefix[9];
+ /* Falls through. */
case 9: value += prefix[8];
+ /* Falls through. */
case 8: value += prefix[7];
+ /* Falls through. */
case 7: value += prefix[6];
+ /* Falls through. */
case 6: value += prefix[5];
+ /* Falls through. */
case 5: value += prefix[4];
+ /* Falls through. */
case 4: value += prefix[3];
+ /* Falls through. */
case 3: value += prefix[2];
+ /* Falls through. */
case 2: value += prefix[1];
+ /* Falls through. */
case 1: value += prefix[0];
+ /* Falls through. */
default: break;
}
len -= plen;
@@ -514,15 +533,25 @@
}
switch (len) {
case 10: value += name[9];
+ /* Falls through. */
case 9: value += name[8];
+ /* Falls through. */
case 8: value += name[7];
+ /* Falls through. */
case 7: value += name[6];
+ /* Falls through. */
case 6: value += name[5];
+ /* Falls through. */
case 5: value += name[4];
+ /* Falls through. */
case 4: value += name[3];
+ /* Falls through. */
case 3: value += name[2];
+ /* Falls through. */
case 2: value += name[1];
+ /* Falls through. */
case 1: value += name[0];
+ /* Falls through. */
default: break;
}
return(value);
@@ -533,7 +562,7 @@
*
* Create a new dictionary
*
- * Returns the newly created dictionary, or NULL if an error occured.
+ * Returns the newly created dictionary, or NULL if an error occurred.
*/
xmlDictPtr
xmlDictCreate(void) {
@@ -580,7 +609,7 @@
* new dictionary, then in @sub, and if not found are created in the
* new dictionary.
*
- * Returns the newly created dictionary, or NULL if an error occured.
+ * Returns the newly created dictionary, or NULL if an error occurred.
*/
xmlDictPtr
xmlDictCreateSub(xmlDictPtr sub) {
@@ -699,7 +728,7 @@
} else {
/*
* we don't have much ways to alert from herei
- * result is loosing an entry and unicity garantee
+ * result is losing an entry and unicity guarantee
*/
ret = -1;
}
diff --git a/doc/APIchunk0.html b/doc/APIchunk0.html
index c90e042..f778327 100644
--- a/doc/APIchunk0.html
+++ b/doc/APIchunk0.html
@@ -104,6 +104,7 @@
<a href="html/libxml-globals.html#xmlCleanupGlobals">xmlCleanupGlobals</a><br />
<a href="html/libxml-globals.html#xmlInitGlobals">xmlInitGlobals</a><br />
</dd><dt>AegeanNumbers</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsAegeanNumbers">xmlUCSIsAegeanNumbers</a><br />
+</dd><dt>Alias</dt><dd><a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
</dd><dt>All</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
<a href="html/libxml-nanoftp.html#xmlNanoFTPGet">xmlNanoFTPGet</a><br />
@@ -222,8 +223,6 @@
<a href="html/libxml-parserInternals.html#IS_LETTER">IS_LETTER</a><br />
<a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
</dd><dt>Based</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpExpDerive">xmlExpExpDerive</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
</dd><dt>BasicLatin</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBasicLatin">xmlUCSIsBasicLatin</a><br />
</dd><dt>Basically</dt><dd><a href="html/libxml-valid.html#xmlValidateDtd">xmlValidateDtd</a><br />
</dd><dt>Before</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
@@ -242,6 +241,7 @@
</dd><dt>Bopomofo</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBopomofo">xmlUCSIsBopomofo</a><br />
</dd><dt>BopomofoExtended</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBopomofoExtended">xmlUCSIsBopomofoExtended</a><br />
</dd><dt>Both</dt><dd><a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_BOTH">XML_SUBSTITUTE_BOTH</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
diff --git a/doc/APIchunk12.html b/doc/APIchunk12.html
index de376f7..d7404f8 100644
--- a/doc/APIchunk12.html
+++ b/doc/APIchunk12.html
@@ -865,8 +865,6 @@
</dd><dt>crossed</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
</dd><dt>cshema</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a><br />
-</dd><dt>ctrio</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
</dd><dt>ctxt</dt><dd><a href="html/libxml-xmlregexp.html#xmlExpNewOr">xmlExpNewOr</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpNewRange">xmlExpNewRange</a><br />
<a href="html/libxml-xmlregexp.html#xmlExpNewSeq">xmlExpNewSeq</a><br />
diff --git a/doc/APIchunk13.html b/doc/APIchunk13.html
index b1f069d..5889ebf 100644
--- a/doc/APIchunk13.html
+++ b/doc/APIchunk13.html
@@ -341,8 +341,6 @@
<a href="html/libxml-xmlIO.html#xmlInputMatchCallback">xmlInputMatchCallback</a><br />
<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
</dd><dt>detected</dt><dd><a href="html/libxml-xpathInternals.html#CHECK_ERROR">CHECK_ERROR</a><br />
<a href="html/libxml-xpathInternals.html#CHECK_ERROR0">CHECK_ERROR0</a><br />
<a href="html/libxml-SAX.html#endDocument">endDocument</a><br />
@@ -383,34 +381,6 @@
<a href="html/libxml-xmlregexp.html#xmlRegexpIsDeterminist">xmlRegexpIsDeterminist</a><br />
</dd><dt>dict</dt><dd><a href="html/libxml-tree.html#_xmlDoc">_xmlDoc</a><br />
</dd><dt>dictionaries</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAME_LENGTH">XML_MAX_NAME_LENGTH</a><br />
-</dd><dt>dictionary</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_DICTIONARY_LIMIT">XML_MAX_DICTIONARY_LIMIT</a><br />
-<a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
-<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
-<a href="html/libxml-dict.html#xmlDictCleanup">xmlDictCleanup</a><br />
-<a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
-<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
-<a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
-<a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
-<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
-<a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
-<a href="html/libxml-dict.html#xmlInitializeDict">xmlInitializeDict</a><br />
-<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
-<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
-<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
-<a href="html/libxml-pattern.html#xmlStreamPushNode">xmlStreamPushNode</a><br />
-</dd><dt>dictionnary</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
-<a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
-<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
-<a href="html/libxml-dict.html#xmlDictExists">xmlDictExists</a><br />
-<a href="html/libxml-dict.html#xmlDictFree">xmlDictFree</a><br />
-<a href="html/libxml-dict.html#xmlDictGetUsage">xmlDictGetUsage</a><br />
-<a href="html/libxml-dict.html#xmlDictLookup">xmlDictLookup</a><br />
-<a href="html/libxml-dict.html#xmlDictOwns">xmlDictOwns</a><br />
-<a href="html/libxml-dict.html#xmlDictQLookup">xmlDictQLookup</a><br />
-<a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
-<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
-<a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
-<a href="html/libxml-xmlregexp.html#xmlExpNewCtxt">xmlExpNewCtxt</a><br />
</dd><dt>did</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
@@ -545,6 +515,7 @@
<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
<a href="html/libxml-tree.html#xmlRemoveProp">xmlRemoveProp</a><br />
+<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
<a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathLeading">xmlXPathLeading</a><br />
diff --git a/doc/APIchunk14.html b/doc/APIchunk14.html
index 0e33ddb..835465a 100644
--- a/doc/APIchunk14.html
+++ b/doc/APIchunk14.html
@@ -210,6 +210,7 @@
<a href="html/libxml-catalog.html#xmlCatalogAdd">xmlCatalogAdd</a><br />
<a href="html/libxml-catalog.html#xmlCatalogAddLocal">xmlCatalogAddLocal</a><br />
<a href="html/libxml-catalog.html#xmlCatalogRemove">xmlCatalogRemove</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
<a href="html/libxml-hash.html#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a><br />
@@ -322,7 +323,6 @@
<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
<a href="html/libxml-parser.html#xmlParseBalancedChunkMemoryRecover">xmlParseBalancedChunkMemoryRecover</a><br />
<a href="html/libxml-xmlwriter.html#xmlTextWriterFullEndElement">xmlTextWriterFullEndElement</a><br />
-<a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
</dd><dt>event</dt><dd><a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaSAXUnplug">xmlSchemaSAXUnplug</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaValidateStream">xmlSchemaValidateStream</a><br />
diff --git a/doc/APIchunk16.html b/doc/APIchunk16.html
index 92d3845..e7e236d 100644
--- a/doc/APIchunk16.html
+++ b/doc/APIchunk16.html
@@ -42,7 +42,6 @@
</dd><dt>gMonthDay</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
</dd><dt>gYear</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
</dd><dt>gYearMonth</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaGetCanonValue">xmlSchemaGetCanonValue</a><br />
-</dd><dt>garanteed</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
</dd><dt>garbage</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
</dd><dt>gcc</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
@@ -183,6 +182,7 @@
<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
</dd><dt>guaranteed</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
+<a href="html/libxml-xmlstring.html#xmlUTF8Strsize">xmlUTF8Strsize</a><br />
</dd><dt>guess</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
</dd></dl><h2>Letter h:</h2><dl><dt>had</dt><dd><a href="html/libxml-tree.html#xmlNewGlobalNs">xmlNewGlobalNs</a><br />
@@ -194,6 +194,7 @@
<a href="html/libxml-parserInternals.html#xmlParseElementContentDecl">xmlParseElementContentDecl</a><br />
<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
</dd><dt>handlers</dt><dd><a href="html/libxml-xlink.html#xlinkSetDefaultHandler">xlinkSetDefaultHandler</a><br />
<a href="html/libxml-encoding.html#xmlCleanupCharEncodingHandlers">xmlCleanupCharEncodingHandlers</a><br />
<a href="html/libxml-xmlIO.html#xmlRegisterDefaultInputCallbacks">xmlRegisterDefaultInputCallbacks</a><br />
@@ -339,8 +340,6 @@
<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderNodeType">xmlTextReaderNodeType</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
</dd><dt>human-readable</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
<a href="APIchunk1.html">C-C</a>
diff --git a/doc/APIchunk17.html b/doc/APIchunk17.html
index 070f8ce..e6647e2 100644
--- a/doc/APIchunk17.html
+++ b/doc/APIchunk17.html
@@ -267,6 +267,7 @@
<a href="html/libxml-xmlregexp.html#xmlExpParse">xmlExpParse</a><br />
</dd><dt>infinity</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathCeilingFunction">xmlXPathCeilingFunction</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathFloorFunction">xmlXPathFloorFunction</a><br />
+<a href="html/libxml-xpathInternals.html#xmlXPathRoundFunction">xmlXPathRoundFunction</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
</dd><dt>info</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
@@ -512,9 +513,7 @@
<a href="html/libxml-tree.html#xmlReconciliateNs">xmlReconciliateNs</a><br />
<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
</dd><dt>invited</dt><dd><a href="html/libxml-valid.html#xmlValidGetValidElements">xmlValidGetValidElements</a><br />
-</dd><dt>isinf</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
</dd><dt>isn</dt><dd><a href="html/libxml-encoding.html#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a><br />
-</dd><dt>isnan</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
</dd><dt>issue</dt><dd><a href="html/libxml-entities.html#xmlEncodeEntities">xmlEncodeEntities</a><br />
</dd><dt>issued</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
</dd><dt>issues</dt><dd><a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
diff --git a/doc/APIchunk18.html b/doc/APIchunk18.html
index 90249a1..91566f7 100644
--- a/doc/APIchunk18.html
+++ b/doc/APIchunk18.html
@@ -76,6 +76,7 @@
<a href="html/libxml-HTMLparser.html#htmlIsAutoClosed">htmlIsAutoClosed</a><br />
<a href="html/libxml-HTMLparser.html#htmlParseElement">htmlParseElement</a><br />
<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
+<a href="html/libxml-xpath.html#xmlXPathInit">xmlXPathInit</a><br />
<a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
</dd><dt>keyword</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
</dd><dt>kill</dt><dd><a href="html/libxml-xmlversion.html#xmlCheckVersion">xmlCheckVersion</a><br />
@@ -366,6 +367,7 @@
<a href="html/libxml-parser.html#xmlSetFeature">xmlSetFeature</a><br />
<a href="html/libxml-xmlstring.html#xmlUTF8Strloc">xmlUTF8Strloc</a><br />
<a href="html/libxml-xpointer.html#xmlXPtrLocationSetAdd">xmlXPtrLocationSetAdd</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
</dd><dt>locations</dt><dd><a href="html/libxml-xpointer.html#_xmlLocationSet">_xmlLocationSet</a><br />
</dd><dt>locator</dt><dd><a href="html/libxml-SAX.html#setDocumentLocator">setDocumentLocator</a><br />
<a href="html/libxml-parser.html#setDocumentLocatorSAXFunc">setDocumentLocatorSAXFunc</a><br />
diff --git a/doc/APIchunk2.html b/doc/APIchunk2.html
index 1d10f93..bb6c141 100644
--- a/doc/APIchunk2.html
+++ b/doc/APIchunk2.html
@@ -163,6 +163,7 @@
<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+<a href="html/libxml-xpath.html#xmlXPathInit">xmlXPathInit</a><br />
</dd><dt>Douglas</dt><dd><a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
</dd><dt>Draft</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
</dd><dt>DtD</dt><dd><a href="html/libxml-valid.html#xmlGetDtdAttrDesc">xmlGetDtdAttrDesc</a><br />
@@ -327,7 +328,6 @@
</dd><dt>Ethiopic</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsEthiopic">xmlUCSIsEthiopic</a><br />
</dd><dt>Evaluate</dt><dd><a href="html/libxml-xpath.html#xmlXPathCompiledEval">xmlXPathCompiledEval</a><br />
<a href="html/libxml-xpath.html#xmlXPathEval">xmlXPathEval</a><br />
-<a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
<a href="html/libxml-xpath.html#xmlXPathEvalPredicate">xmlXPathEvalPredicate</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathEvaluatePredicateResult">xmlXPathEvaluatePredicateResult</a><br />
<a href="html/libxml-xpath.html#xmlXPathNodeEval">xmlXPathNodeEval</a><br />
diff --git a/doc/APIchunk20.html b/doc/APIchunk20.html
index 0317066..3559b08 100644
--- a/doc/APIchunk20.html
+++ b/doc/APIchunk20.html
@@ -105,7 +105,6 @@
<a href="html/libxml-xmlschemas.html#xmlSchemaSAXPlug">xmlSchemaSAXPlug</a><br />
<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
-<a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
@@ -147,8 +146,6 @@
<a href="html/libxml-xpathInternals.html#xmlXPathCompareValues">xmlXPathCompareValues</a><br />
</dd><dt>nested</dt><dd><a href="html/libxml-parserInternals.html#xmlParseElementChildrenContentDecl">xmlParseElementChildrenContentDecl</a><br />
<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
-</dd><dt>net</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
</dd><dt>network</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtReadFile">htmlCtxtReadFile</a><br />
<a href="html/libxml-HTMLparser.html#htmlReadFile">htmlReadFile</a><br />
<a href="html/libxml-parser.html#xmlCtxtReadFile">xmlCtxtReadFile</a><br />
@@ -195,6 +192,7 @@
<a href="html/libxml-xmlregexp.html#xmlRegExecPushString2">xmlRegExecPushString2</a><br />
</dd><dt>non-negative</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
<a href="html/libxml-c14n.html#xmlC14NExecute">xmlC14NExecute</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
</dd><dt>non-normative</dt><dd><a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
</dd><dt>non-null</dt><dd><a href="html/libxml-debugXML.html#xmlShellPrintNode">xmlShellPrintNode</a><br />
</dd><dt>non-recursive</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
@@ -254,6 +252,7 @@
<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
</dd><dt>note</dt><dd><a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />
+</dd><dt>nothing</dt><dd><a href="html/libxml-xpath.html#xmlXPathInit">xmlXPathInit</a><br />
</dd><dt>notice</dt><dd><a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
<a href="html/libxml-threads.html#xmlCleanupThreads">xmlCleanupThreads</a><br />
</dd><dt>now</dt><dd><a href="html/libxml-hash.html#XML_CAST_FPTR">XML_CAST_FPTR</a><br />
diff --git a/doc/APIchunk21.html b/doc/APIchunk21.html
index c655198..85fa55e 100644
--- a/doc/APIchunk21.html
+++ b/doc/APIchunk21.html
@@ -59,7 +59,11 @@
</dd><dt>occur</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a><br />
<a href="html/libxml-parserInternals.html#xmlParseComment">xmlParseComment</a><br />
<a href="html/libxml-parserInternals.html#xmlParseMarkupDecl">xmlParseMarkupDecl</a><br />
-</dd><dt>occured</dt><dd><a href="html/libxml-xmlerror.html#xmlCtxtGetLastError">xmlCtxtGetLastError</a><br />
+</dd><dt>occurences</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
+<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
+</dd><dt>occurred</dt><dd><a href="html/libxml-xmlerror.html#xmlCtxtGetLastError">xmlCtxtGetLastError</a><br />
<a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
<a href="html/libxml-xmlerror.html#xmlGetLastError">xmlGetLastError</a><br />
@@ -67,13 +71,9 @@
<a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
<a href="html/libxml-list.html#xmlListRemoveFirst">xmlListRemoveFirst</a><br />
<a href="html/libxml-list.html#xmlListRemoveLast">xmlListRemoveLast</a><br />
-<a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
-</dd><dt>occurences</dt><dd><a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans">xmlAutomataNewCountTrans</a><br />
-<a href="html/libxml-xmlautomata.html#xmlAutomataNewCountTrans2">xmlAutomataNewCountTrans2</a><br />
-<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
-<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
-</dd><dt>occurred</dt><dd><a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
+<a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
</dd><dt>occurrence</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
<a href="html/libxml-xmlstring.html#xmlStrchr">xmlStrchr</a><br />
<a href="html/libxml-xmlstring.html#xmlStrstr">xmlStrstr</a><br />
diff --git a/doc/APIchunk22.html b/doc/APIchunk22.html
index 2f20018..ec9547b 100644
--- a/doc/APIchunk22.html
+++ b/doc/APIchunk22.html
@@ -210,8 +210,6 @@
<a href="html/libxml-nanoftp.html#SOCKET">SOCKET</a><br />
<a href="html/libxml-xmlmodule.html#xmlModuleOpen">xmlModuleOpen</a><br />
<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
-</dd><dt>portable</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
</dd><dt>pos</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Strsub">xmlUTF8Strsub</a><br />
</dd><dt>position:</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
</dd><dt>positioned</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderReadString">xmlTextReaderReadString</a><br />
@@ -471,8 +469,6 @@
<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
<a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
</dd><dt>prohibited</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a><br />
-</dd><dt>projects</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
</dd><dt>prolog</dt><dd><a href="html/libxml-parser.html#xmlParseDocument">xmlParseDocument</a><br />
</dd><dt>prompt</dt><dd><a href="html/libxml-debugXML.html#xmlShellReadlineFunc">xmlShellReadlineFunc</a><br />
</dd><dt>proper</dt><dd><a href="html/libxml-valid.html#xmlValidateAttributeValue">xmlValidateAttributeValue</a><br />
diff --git a/doc/APIchunk23.html b/doc/APIchunk23.html
index 16c7c21..a18be6e 100644
--- a/doc/APIchunk23.html
+++ b/doc/APIchunk23.html
@@ -124,6 +124,7 @@
<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
</dd><dt>ready</dt><dd><a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
<a href="html/libxml-xmlautomata.html#xmlAutomataCompile">xmlAutomataCompile</a><br />
+</dd><dt>real</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
</dd><dt>realloc</dt><dd><a href="html/libxml-tree.html#_xmlBuffer">_xmlBuffer</a><br />
<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
@@ -133,6 +134,7 @@
<a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
</dd><dt>reallocated</dt><dd><a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
+<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
<a href="html/libxml-xmlstring.html#xmlStrncat">xmlStrncat</a><br />
</dd><dt>really</dt><dd><a href="html/libxml-HTMLtree.html#HTML_COMMENT_NODE">HTML_COMMENT_NODE</a><br />
<a href="html/libxml-HTMLtree.html#HTML_ENTITY_REF_NODE">HTML_ENTITY_REF_NODE</a><br />
diff --git a/doc/APIchunk24.html b/doc/APIchunk24.html
index e81f34d..64aac67 100644
--- a/doc/APIchunk24.html
+++ b/doc/APIchunk24.html
@@ -493,8 +493,6 @@
<a href="html/libxml-xmlreader.html#xmlReaderNewIO">xmlReaderNewIO</a><br />
</dd><dt>sourceDoc</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
-</dd><dt>sourceforge</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
</dd><dt>spaces</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
<a href="html/libxml-HTMLtree.html#htmlDocContentDumpFormatOutput">htmlDocContentDumpFormatOutput</a><br />
<a href="html/libxml-HTMLtree.html#htmlDocContentDumpOutput">htmlDocContentDumpOutput</a><br />
@@ -548,6 +546,7 @@
<a href="html/libxml-tree.html#xmlNodeSetContent">xmlNodeSetContent</a><br />
<a href="html/libxml-tree.html#xmlNodeSetContentLen">xmlNodeSetContentLen</a><br />
<a href="html/libxml-xmlwriter.html#xmlTextWriterWriteRawLen">xmlTextWriterWriteRawLen</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
</dd><dt>specialized</dt><dd><a href="html/libxml-tree.html#_xmlDOMWrapCtxt">_xmlDOMWrapCtxt</a><br />
<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
@@ -667,6 +666,7 @@
<a href="html/libxml-valid.html#xmlValidNormalizeAttributeValue">xmlValidNormalizeAttributeValue</a><br />
<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
<a href="html/libxml-valid.html#xmlValidateDtdFinal">xmlValidateDtdFinal</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
</dd><dt>steps</dt><dd><a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
<a href="html/libxml-valid.html#xmlValidateDocumentFinal">xmlValidateDocumentFinal</a><br />
</dd><dt>still</dt><dd><a href="html/libxml-parserInternals.html#xmlCheckLanguageID">xmlCheckLanguageID</a><br />
diff --git a/doc/APIchunk25.html b/doc/APIchunk25.html
index dec65ba..71ba3bd 100644
--- a/doc/APIchunk25.html
+++ b/doc/APIchunk25.html
@@ -343,8 +343,6 @@
<a href="html/libxml-parser.html#xmlSAXParseMemoryWithData">xmlSAXParseMemoryWithData</a><br />
</dd><dt>trio</dt><dd><a href="html/libxml-xmlversion.html#WITHOUT_TRIO">WITHOUT_TRIO</a><br />
<a href="html/libxml-xmlversion.html#WITH_TRIO">WITH_TRIO</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
</dd><dt>troubles</dt><dd><a href="html/libxml-parser.html#_xmlParserInput">_xmlParserInput</a><br />
<a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
</dd><dt>try</dt><dd><a href="html/libxml-xpathInternals.html#CAST_TO_BOOLEAN">CAST_TO_BOOLEAN</a><br />
diff --git a/doc/APIchunk26.html b/doc/APIchunk26.html
index c68ae92..af3b1a5 100644
--- a/doc/APIchunk26.html
+++ b/doc/APIchunk26.html
@@ -143,6 +143,7 @@
<a href="html/libxml-xpathInternals.html#xmlXPathRegisterVariableNS">xmlXPathRegisterVariableNS</a><br />
</dd><dt>unsafe</dt><dd><a href="html/libxml-valid.html#xmlSprintfElementContent">xmlSprintfElementContent</a><br />
</dd><dt>unsigned</dt><dd><a href="">c</a><br />
+<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
</dd><dt>unsupported</dt><dd><a href="html/libxml-tree.html#xmlDOMWrapAdoptNode">xmlDOMWrapAdoptNode</a><br />
<a href="html/libxml-tree.html#xmlDOMWrapCloneNode">xmlDOMWrapCloneNode</a><br />
diff --git a/doc/APIchunk28.html b/doc/APIchunk28.html
index c5993f9..c3f49b2 100644
--- a/doc/APIchunk28.html
+++ b/doc/APIchunk28.html
@@ -198,6 +198,7 @@
<a href="html/libxml-tree.html#xmlGetNoNsProp">xmlGetNoNsProp</a><br />
<a href="html/libxml-tree.html#xmlGetNsProp">xmlGetNsProp</a><br />
<a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
<a href="html/libxml-tree.html#xmlNodeGetBase">xmlNodeGetBase</a><br />
<a href="html/libxml-tree.html#xmlNodeGetContent">xmlNodeGetContent</a><br />
<a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
@@ -480,6 +481,7 @@
<a href="html/libxml-xpath.html#xmlXPathNewContext">xmlXPathNewContext</a><br />
<a href="html/libxml-xpointer.html#xmlXPtrNewContext">xmlXPtrNewContext</a><br />
</dd><dt>xmlXPathError</dt><dd><a href="">err</a><br />
+</dd><dt>xmlXPathEval</dt><dd><a href="html/libxml-xpath.html#xmlXPathEvalExpression">xmlXPathEvalExpression</a><br />
</dd><dt>xmlXPathEvalPredicate</dt><dd><a href="html/libxml-xpointer.html#xmlXPtrEvalRangePredicate">xmlXPtrEvalRangePredicate</a><br />
</dd><dt>xmlXPathFreeObject</dt><dd><a href="html/libxml-xpath.html#xmlXPathFreeNodeSetList">xmlXPathFreeNodeSetList</a><br />
</dd><dt>xmlXPathFunction</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathFunctionLookup">xmlXPathFunctionLookup</a><br />
@@ -531,6 +533,7 @@
<a href="html/libxml-xmlreader.html#xmlReaderWalker">xmlReaderWalker</a><br />
</dd><dt>xpath</dt><dd><a href="html/libxml-debugXML.html#xmlShellPrintXPathError">xmlShellPrintXPathError</a><br />
<a href="html/libxml-debugXML.html#xmlShellPrintXPathResult">xmlShellPrintXPathResult</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
</dd><dt>xpointer</dt><dd><a href="html/libxml-xinclude.html#XINCLUDE_PARSE_XPOINTER">XINCLUDE_PARSE_XPOINTER</a><br />
</dd></dl><h2 align="center"><a href="APIchunk0.html">A-B</a>
<a href="APIchunk1.html">C-C</a>
diff --git a/doc/APIchunk4.html b/doc/APIchunk4.html
index d26883b..6fe8261 100644
--- a/doc/APIchunk4.html
+++ b/doc/APIchunk4.html
@@ -295,7 +295,6 @@
</dd><dt>Normalization</dt><dd><a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
</dd><dt>Normalization:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseAttValue">xmlParseAttValue</a><br />
</dd><dt>Not</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
-</dd><dt>NotaNumber</dt><dd><a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
</dd><dt>Notation</dt><dd><a href="html/libxml-tree.html#_xmlNotation">_xmlNotation</a><br />
<a href="html/libxml-parserInternals.html#xmlParseEntityDecl">xmlParseEntityDecl</a><br />
<a href="html/libxml-parserInternals.html#xmlParseNotationType">xmlParseNotationType</a><br />
diff --git a/doc/APIchunk5.html b/doc/APIchunk5.html
index da60d1a..98da499 100644
--- a/doc/APIchunk5.html
+++ b/doc/APIchunk5.html
@@ -56,6 +56,7 @@
<a href="html/libxml-schemasInternals.html#_xmlSchemaElement">_xmlSchemaElement</a><br />
<a href="html/libxml-schemasInternals.html#_xmlSchemaFacet">_xmlSchemaFacet</a><br />
<a href="html/libxml-schemasInternals.html#_xmlSchemaType">_xmlSchemaType</a><br />
+<a href="html/libxml-xpointer.html#xmlXPtrRangeToFunction">xmlXPtrRangeToFunction</a><br />
</dd><dt>Obtain</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderLocatorBaseURI">xmlTextReaderLocatorBaseURI</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderLocatorLineNumber">xmlTextReaderLocatorLineNumber</a><br />
</dd><dt>Ogham</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsOgham">xmlUCSIsOgham</a><br />
@@ -72,7 +73,8 @@
</dd><dt>Oriya</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsOriya">xmlUCSIsOriya</a><br />
</dd><dt>Osmanya</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsOsmanya">xmlUCSIsOsmanya</a><br />
</dd><dt>Other</dt><dd><a href="html/libxml-xpath.html#xmlXPathContextSetCache">xmlXPathContextSetCache</a><br />
-</dd><dt>Otherwise</dt><dd><a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
+</dd><dt>Otherwise</dt><dd><a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
+<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
<a href="html/libxml-pattern.html#xmlStreamPushAttr">xmlStreamPushAttr</a><br />
</dd><dt>Output</dt><dd><a href="html/libxml-xmlIO.html#xmlOutputCloseCallback">xmlOutputCloseCallback</a><br />
<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
@@ -223,8 +225,6 @@
<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNs">xmlTextReaderGetAttributeNs</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderValue">xmlTextReaderValue</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsInf">xmlXPathIsInf</a><br />
-<a href="html/libxml-xpath.html#xmlXPathIsNaN">xmlXPathIsNaN</a><br />
</dd><dt>Proxy</dt><dd><a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
</dd><dt>Proxy-Authenticate</dt><dd><a href="html/libxml-nanohttp.html#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a><br />
diff --git a/doc/APIfiles.html b/doc/APIfiles.html
index 65e004b..8c29c06 100644
--- a/doc/APIfiles.html
+++ b/doc/APIfiles.html
@@ -340,7 +340,8 @@
<a href="html/libxml-dict.html#xmlDictSetLimit">xmlDictSetLimit</a><br />
<a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
<a href="html/libxml-dict.html#xmlInitializeDict">xmlInitializeDict</a><br />
-</p><h2><a name="encoding" id="encoding">Module encoding</a>:</h2><p><a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
+</p><h2><a name="encoding" id="encoding">Module encoding</a>:</h2><p><a href="html/libxml-encoding.html#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a><br />
+<a href="html/libxml-encoding.html#UTF8Toisolat1">UTF8Toisolat1</a><br />
<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_2022_JP">XML_CHAR_ENCODING_2022_JP</a><br />
<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_1">XML_CHAR_ENCODING_8859_1</a><br />
<a href="html/libxml-encoding.html#XML_CHAR_ENCODING_8859_2">XML_CHAR_ENCODING_8859_2</a><br />
@@ -493,6 +494,7 @@
<a href="html/libxml-hash.html#xmlHashCreate">xmlHashCreate</a><br />
<a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
<a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
<a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br />
<a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br />
<a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br />
@@ -1309,6 +1311,7 @@
<a href="html/libxml-tree.html#XML_ATTRIBUTE_NONE">XML_ATTRIBUTE_NONE</a><br />
<a href="html/libxml-tree.html#XML_ATTRIBUTE_NOTATION">XML_ATTRIBUTE_NOTATION</a><br />
<a href="html/libxml-tree.html#XML_ATTRIBUTE_REQUIRED">XML_ATTRIBUTE_REQUIRED</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_BOUNDED">XML_BUFFER_ALLOC_BOUNDED</a><br />
<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_DOUBLEIT">XML_BUFFER_ALLOC_DOUBLEIT</a><br />
<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_EXACT">XML_BUFFER_ALLOC_EXACT</a><br />
<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a><br />
diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html
index 9027afe..c1d172d 100644
--- a/doc/APIfunctions.html
+++ b/doc/APIfunctions.html
@@ -97,8 +97,6 @@
<a href="html/libxml-encoding.html#xmlDetectCharEncoding">xmlDetectCharEncoding</a><br />
<a href="html/libxml-xmlstring.html#xmlGetUTF8Char">xmlGetUTF8Char</a><br />
</p><h2>Type const void *:</h2><p><a href="html/libxml-list.html#xmlListDataCompare">xmlListDataCompare</a><br />
-<a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br />
-<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br />
<a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br />
</p><h2>Type const xlinkHRef:</h2><p><a href="html/libxml-xlink.html#xlinkSimpleLinkFunk">xlinkSimpleLinkFunk</a><br />
</p><h2>Type const xlinkHRef *:</h2><p><a href="html/libxml-xlink.html#xlinkExtendedLinkFunk">xlinkExtendedLinkFunk</a><br />
@@ -147,7 +145,9 @@
<a href="html/libxml-HTMLparser.html#htmlIsScriptAttribute">htmlIsScriptAttribute</a><br />
<a href="html/libxml-HTMLtree.html#htmlNewDoc">htmlNewDoc</a><br />
<a href="html/libxml-HTMLtree.html#htmlNewDocNoDtD">htmlNewDocNoDtD</a><br />
+<a href="html/libxml-HTMLparser.html#htmlParseDoc">htmlParseDoc</a><br />
<a href="html/libxml-HTMLparser.html#htmlReadDoc">htmlReadDoc</a><br />
+<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
<a href="html/libxml-HTMLtree.html#htmlSetMetaEncoding">htmlSetMetaEncoding</a><br />
<a href="html/libxml-HTMLparser.html#htmlTagLookup">htmlTagLookup</a><br />
<a href="html/libxml-SAX.html#ignorableWhitespace">ignorableWhitespace</a><br />
@@ -247,6 +247,9 @@
<a href="html/libxml-hash.html#xmlHashAddEntry">xmlHashAddEntry</a><br />
<a href="html/libxml-hash.html#xmlHashAddEntry2">xmlHashAddEntry2</a><br />
<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
+<a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br />
+<a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
<a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br />
<a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br />
<a href="html/libxml-hash.html#xmlHashLookup3">xmlHashLookup3</a><br />
@@ -258,6 +261,7 @@
<a href="html/libxml-hash.html#xmlHashRemoveEntry3">xmlHashRemoveEntry3</a><br />
<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
<a href="html/libxml-hash.html#xmlHashScanFull3">xmlHashScanFull3</a><br />
+<a href="html/libxml-hash.html#xmlHashScanner">xmlHashScanner</a><br />
<a href="html/libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a><br />
<a href="html/libxml-hash.html#xmlHashUpdateEntry">xmlHashUpdateEntry</a><br />
<a href="html/libxml-hash.html#xmlHashUpdateEntry2">xmlHashUpdateEntry2</a><br />
@@ -368,9 +372,7 @@
<a href="html/libxml-tree.html#xmlSplitQName2">xmlSplitQName2</a><br />
<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
<a href="html/libxml-xmlstring.html#xmlStrEqual">xmlStrEqual</a><br />
-<a href="html/libxml-xmlstring.html#xmlStrPrintf">xmlStrPrintf</a><br />
<a href="html/libxml-xmlstring.html#xmlStrQEqual">xmlStrQEqual</a><br />
-<a href="html/libxml-xmlstring.html#xmlStrVPrintf">xmlStrVPrintf</a><br />
<a href="html/libxml-xmlstring.html#xmlStrcasecmp">xmlStrcasecmp</a><br />
<a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
<a href="html/libxml-xmlstring.html#xmlStrcat">xmlStrcat</a><br />
@@ -772,6 +774,7 @@
<a href="html/libxml-hash.html#xmlHashAddEntry3">xmlHashAddEntry3</a><br />
<a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br />
<a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
<a href="html/libxml-hash.html#xmlHashScan">xmlHashScan</a><br />
<a href="html/libxml-hash.html#xmlHashScan3">xmlHashScan3</a><br />
<a href="html/libxml-hash.html#xmlHashScanFull">xmlHashScanFull</a><br />
@@ -795,7 +798,10 @@
<a href="html/libxml-list.html#xmlListRemoveFirst">xmlListRemoveFirst</a><br />
<a href="html/libxml-list.html#xmlListRemoveLast">xmlListRemoveLast</a><br />
<a href="html/libxml-list.html#xmlListReverseSearch">xmlListReverseSearch</a><br />
+<a href="html/libxml-list.html#xmlListReverseWalk">xmlListReverseWalk</a><br />
<a href="html/libxml-list.html#xmlListSearch">xmlListSearch</a><br />
+<a href="html/libxml-list.html#xmlListWalk">xmlListWalk</a><br />
+<a href="html/libxml-list.html#xmlListWalker">xmlListWalker</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemFree">xmlMemFree</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
<a href="html/libxml-nanoftp.html#xmlNanoFTPCheckResponse">xmlNanoFTPCheckResponse</a><br />
@@ -1041,14 +1047,9 @@
<a href="html/libxml-DOCBparser.html#docbSAXParseDoc">docbSAXParseDoc</a><br />
<a href="html/libxml-SAX.html#entityDecl">entityDecl</a><br />
<a href="html/libxml-parser.html#entityDeclSAXFunc">entityDeclSAXFunc</a><br />
-<a href="html/libxml-HTMLparser.html#htmlParseDoc">htmlParseDoc</a><br />
-<a href="html/libxml-HTMLparser.html#htmlSAXParseDoc">htmlSAXParseDoc</a><br />
<a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
<a href="html/libxml-parserInternals.html#xmlCopyChar">xmlCopyChar</a><br />
<a href="html/libxml-parserInternals.html#xmlCopyCharMultiByte">xmlCopyCharMultiByte</a><br />
-<a href="html/libxml-hash.html#xmlHashCopier">xmlHashCopier</a><br />
-<a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
-<a href="html/libxml-hash.html#xmlHashScanner">xmlHashScanner</a><br />
<a href="html/libxml-tree.html#xmlNewDocNodeEatName">xmlNewDocNodeEatName</a><br />
<a href="html/libxml-tree.html#xmlNewNodeEatName">xmlNewNodeEatName</a><br />
<a href="html/libxml-tree.html#xmlNewNsPropEatName">xmlNewNsPropEatName</a><br />
diff --git a/doc/APIsymbols.html b/doc/APIsymbols.html
index c2b82e7..a77be6d 100644
--- a/doc/APIsymbols.html
+++ b/doc/APIsymbols.html
@@ -40,7 +40,8 @@
<a href="html/libxml-HTMLparser.html#HTML_REQUIRED">HTML_REQUIRED</a><br />
<a href="html/libxml-HTMLtree.html#HTML_TEXT_NODE">HTML_TEXT_NODE</a><br />
<a href="html/libxml-HTMLparser.html#HTML_VALID">HTML_VALID</a><br />
-</p><h2>Letter I:</h2><p><a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
+</p><h2>Letter I:</h2><p><a href="html/libxml-encoding.html#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a><br />
+<a href="html/libxml-parserInternals.html#INPUT_CHUNK">INPUT_CHUNK</a><br />
<a href="html/libxml-nanoftp.html#INVALID_SOCKET">INVALID_SOCKET</a><br />
<a href="html/libxml-parserInternals.html#IS_ASCII_DIGIT">IS_ASCII_DIGIT</a><br />
<a href="html/libxml-parserInternals.html#IS_ASCII_LETTER">IS_ASCII_LETTER</a><br />
@@ -154,6 +155,7 @@
<a href="html/libxml-tree.html#XML_ATTRIBUTE_NONE">XML_ATTRIBUTE_NONE</a><br />
<a href="html/libxml-tree.html#XML_ATTRIBUTE_NOTATION">XML_ATTRIBUTE_NOTATION</a><br />
<a href="html/libxml-tree.html#XML_ATTRIBUTE_REQUIRED">XML_ATTRIBUTE_REQUIRED</a><br />
+<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_BOUNDED">XML_BUFFER_ALLOC_BOUNDED</a><br />
<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_DOUBLEIT">XML_BUFFER_ALLOC_DOUBLEIT</a><br />
<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_EXACT">XML_BUFFER_ALLOC_EXACT</a><br />
<a href="html/libxml-tree.html#XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a><br />
@@ -2129,6 +2131,7 @@
<a href="html/libxml-hash.html#xmlHashCreate">xmlHashCreate</a><br />
<a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
<a href="html/libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a><br />
+<a href="html/libxml-hash.html#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a><br />
<a href="html/libxml-hash.html#xmlHashFree">xmlHashFree</a><br />
<a href="html/libxml-hash.html#xmlHashLookup">xmlHashLookup</a><br />
<a href="html/libxml-hash.html#xmlHashLookup2">xmlHashLookup2</a><br />
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 0cc0a50..6bda566 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -243,7 +243,7 @@
api: libxml2-api.xml libxml2-refs.xml $(APIPAGES) $(srcdir)/html/index.html $(WIN32_DIR)/libxml2.def.src ../elfgcchack.h $(srcdir)/site.xsl
-web: $(PAGES)
+web: $(PAGES) xmllint.html xmlcatalog_man.html
../elfgcchack.h: $(srcdir)/elfgcchack.xsl $(srcdir)/libxml2-api.xml
-@(if [ -x $(XSLTPROC) ] ; then \
@@ -314,9 +314,15 @@
xmllint.1: xmllint.xml
-@($(XSLTPROC) --nonet xmllint.xml)
+xmllint.html: xmllint.xml
+ -@($(XSLTPROC) --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl xmllint.xml)
+
xmlcatalog.1: xmlcatalog_man.xml
-@($(XSLTPROC) --nonet xmlcatalog_man.xml)
+xmlcatalog_man.html: xmlcatalog_man.xml
+ -@($(XSLTPROC) --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl xmlcatalog_man.xml)
+
check-extra-dist:
for f in $(EXTRA_DIST_wc) ; do echo $$f; done | sort -u >tmp.EXTRA_DIST_wc
for f in $(EXTRA_DIST) ; do echo $$f; done | sort >tmp.EXTRA_DIST
diff --git a/doc/apibuild.py b/doc/apibuild.py
index b5b669a..7a36466 100755
--- a/doc/apibuild.py
+++ b/doc/apibuild.py
@@ -81,6 +81,7 @@
"ATTRIBUTE_PRINTF": (5, "macro for gcc printf args checking extension"),
"LIBXML_ATTR_FORMAT": (5, "macro for gcc printf args checking extension"),
"LIBXML_ATTR_ALLOC_SIZE": (3, "macro for gcc checking extension"),
+ "__XML_EXTERNC": (0, "Special macro added for os400"),
}
def escape(raw):
diff --git a/doc/bugs.html b/doc/bugs.html
index 55ff296..52970d3 100644
--- a/doc/bugs.html
+++ b/doc/bugs.html
@@ -13,7 +13,7 @@
bug tracking database</a> (make sure to use the "libxml2" module name). I
look at reports there regularly and it's good to have a reminder when a bug
is still open. Be sure to specify that the bug is for the package libxml2.</p><p>For small problems you can try to get help on IRC, the #xml channel on
-irc.gnome.org (port 6667) usually have a few person subscribed which may help
+irc.gnome.org (port 6667) usually has a few people subscribed which may help
(but there is no guarantee and if a real issue is raised it should go on the
mailing-list for archival).</p><p>There is also a mailing-list <a href="mailto:xml@gnome.org">xml@gnome.org</a> for libxml, with an <a href="http://mail.gnome.org/archives/xml/">on-line archive</a> (<a href="http://xmlsoft.org/messages">old</a>). To subscribe to this list,
please visit the <a href="http://mail.gnome.org/mailman/listinfo/xml">associated Web</a> page and
diff --git a/doc/devhelp/general.html b/doc/devhelp/general.html
index 68f9380..90f0d39 100644
--- a/doc/devhelp/general.html
+++ b/doc/devhelp/general.html
@@ -33,6 +33,6 @@
<h2>
<span class="refentrytitle">libxml2 API Modules</span>
</h2>
- <p><a href="libxml2-DOCBparser.html">DOCBparser</a> - old DocBook SGML parser<br/><a href="libxml2-HTMLparser.html">HTMLparser</a> - interface for an HTML 4.0 non-verifying parser<br/><a href="libxml2-HTMLtree.html">HTMLtree</a> - specific APIs to process HTML tree, especially serialization<br/><a href="libxml2-SAX.html">SAX</a> - Old SAX version 1 handler, deprecated<br/><a href="libxml2-SAX2.html">SAX2</a> - SAX2 parser interface used to build the DOM tree<br/><a href="libxml2-c14n.html">c14n</a> - Provide Canonical XML and Exclusive XML Canonicalization<br/><a href="libxml2-catalog.html">catalog</a> - interfaces to the Catalog handling system<br/><a href="libxml2-chvalid.html">chvalid</a> - Unicode character range checking<br/><a href="libxml2-debugXML.html">debugXML</a> - Tree debugging APIs<br/><a href="libxml2-dict.html">dict</a> - string dictionnary<br/><a href="libxml2-encoding.html">encoding</a> - interface for the encoding conversion functions<br/><a href="libxml2-entities.html">entities</a> - interface for the XML entities handling<br/><a href="libxml2-globals.html">globals</a> - interface for all global variables of the library<br/><a href="libxml2-hash.html">hash</a> - Chained hash tables<br/><a href="libxml2-list.html">list</a> - lists interfaces<br/><a href="libxml2-nanoftp.html">nanoftp</a> - minimal FTP implementation<br/><a href="libxml2-nanohttp.html">nanohttp</a> - minimal HTTP implementation<br/><a href="libxml2-parser.html">parser</a> - the core parser module<br/><a href="libxml2-parserInternals.html">parserInternals</a> - internals routines and limits exported by the parser.<br/><a href="libxml2-pattern.html">pattern</a> - pattern expression handling<br/><a href="libxml2-relaxng.html">relaxng</a> - implementation of the Relax-NG validation<br/><a href="libxml2-schemasInternals.html">schemasInternals</a> - internal interfaces for XML Schemas<br/><a href="libxml2-schematron.html">schematron</a> - XML Schemastron implementation<br/><a href="libxml2-threads.html">threads</a> - interfaces for thread handling<br/><a href="libxml2-tree.html">tree</a> - interfaces for tree manipulation<br/><a href="libxml2-uri.html">uri</a> - library of generic URI related routines<br/><a href="libxml2-valid.html">valid</a> - The DTD validation<br/><a href="libxml2-xinclude.html">xinclude</a> - implementation of XInclude<br/><a href="libxml2-xlink.html">xlink</a> - unfinished XLink detection module<br/><a href="libxml2-xmlIO.html">xmlIO</a> - interface for the I/O interfaces used by the parser<br/><a href="libxml2-xmlautomata.html">xmlautomata</a> - API to build regexp automata<br/><a href="libxml2-xmlerror.html">xmlerror</a> - error handling<br/><a href="libxml2-xmlexports.html">xmlexports</a> - macros for marking symbols as exportable/importable.<br/><a href="libxml2-xmlmemory.html">xmlmemory</a> - interface for the memory allocator<br/><a href="libxml2-xmlmodule.html">xmlmodule</a> - dynamic module loading<br/><a href="libxml2-xmlreader.html">xmlreader</a> - the XMLReader implementation<br/><a href="libxml2-xmlregexp.html">xmlregexp</a> - regular expressions handling<br/><a href="libxml2-xmlsave.html">xmlsave</a> - the XML document serializer<br/><a href="libxml2-xmlschemas.html">xmlschemas</a> - incomplete XML Schemas structure implementation<br/><a href="libxml2-xmlschemastypes.html">xmlschemastypes</a> - implementation of XML Schema Datatypes<br/><a href="libxml2-xmlstring.html">xmlstring</a> - set of routines to process strings<br/><a href="libxml2-xmlunicode.html">xmlunicode</a> - Unicode character APIs<br/><a href="libxml2-xmlversion.html">xmlversion</a> - compile-time version informations<br/><a href="libxml2-xmlwriter.html">xmlwriter</a> - text writing API for XML<br/><a href="libxml2-xpath.html">xpath</a> - XML Path Language implementation<br/><a href="libxml2-xpathInternals.html">xpathInternals</a> - internal interfaces for XML Path Language implementation<br/><a href="libxml2-xpointer.html">xpointer</a> - API to handle XML Pointers<br/></p>
+ <p><a href="libxml2-DOCBparser.html">DOCBparser</a> - old DocBook SGML parser<br/><a href="libxml2-HTMLparser.html">HTMLparser</a> - interface for an HTML 4.0 non-verifying parser<br/><a href="libxml2-HTMLtree.html">HTMLtree</a> - specific APIs to process HTML tree, especially serialization<br/><a href="libxml2-SAX.html">SAX</a> - Old SAX version 1 handler, deprecated<br/><a href="libxml2-SAX2.html">SAX2</a> - SAX2 parser interface used to build the DOM tree<br/><a href="libxml2-c14n.html">c14n</a> - Provide Canonical XML and Exclusive XML Canonicalization<br/><a href="libxml2-catalog.html">catalog</a> - interfaces to the Catalog handling system<br/><a href="libxml2-chvalid.html">chvalid</a> - Unicode character range checking<br/><a href="libxml2-debugXML.html">debugXML</a> - Tree debugging APIs<br/><a href="libxml2-dict.html">dict</a> - string dictionary<br/><a href="libxml2-encoding.html">encoding</a> - interface for the encoding conversion functions<br/><a href="libxml2-entities.html">entities</a> - interface for the XML entities handling<br/><a href="libxml2-globals.html">globals</a> - interface for all global variables of the library<br/><a href="libxml2-hash.html">hash</a> - Chained hash tables<br/><a href="libxml2-list.html">list</a> - lists interfaces<br/><a href="libxml2-nanoftp.html">nanoftp</a> - minimal FTP implementation<br/><a href="libxml2-nanohttp.html">nanohttp</a> - minimal HTTP implementation<br/><a href="libxml2-parser.html">parser</a> - the core parser module<br/><a href="libxml2-parserInternals.html">parserInternals</a> - internals routines and limits exported by the parser.<br/><a href="libxml2-pattern.html">pattern</a> - pattern expression handling<br/><a href="libxml2-relaxng.html">relaxng</a> - implementation of the Relax-NG validation<br/><a href="libxml2-schemasInternals.html">schemasInternals</a> - internal interfaces for XML Schemas<br/><a href="libxml2-schematron.html">schematron</a> - XML Schemastron implementation<br/><a href="libxml2-threads.html">threads</a> - interfaces for thread handling<br/><a href="libxml2-tree.html">tree</a> - interfaces for tree manipulation<br/><a href="libxml2-uri.html">uri</a> - library of generic URI related routines<br/><a href="libxml2-valid.html">valid</a> - The DTD validation<br/><a href="libxml2-xinclude.html">xinclude</a> - implementation of XInclude<br/><a href="libxml2-xlink.html">xlink</a> - unfinished XLink detection module<br/><a href="libxml2-xmlIO.html">xmlIO</a> - interface for the I/O interfaces used by the parser<br/><a href="libxml2-xmlautomata.html">xmlautomata</a> - API to build regexp automata<br/><a href="libxml2-xmlerror.html">xmlerror</a> - error handling<br/><a href="libxml2-xmlexports.html">xmlexports</a> - macros for marking symbols as exportable/importable.<br/><a href="libxml2-xmlmemory.html">xmlmemory</a> - interface for the memory allocator<br/><a href="libxml2-xmlmodule.html">xmlmodule</a> - dynamic module loading<br/><a href="libxml2-xmlreader.html">xmlreader</a> - the XMLReader implementation<br/><a href="libxml2-xmlregexp.html">xmlregexp</a> - regular expressions handling<br/><a href="libxml2-xmlsave.html">xmlsave</a> - the XML document serializer<br/><a href="libxml2-xmlschemas.html">xmlschemas</a> - incomplete XML Schemas structure implementation<br/><a href="libxml2-xmlschemastypes.html">xmlschemastypes</a> - implementation of XML Schema Datatypes<br/><a href="libxml2-xmlstring.html">xmlstring</a> - set of routines to process strings<br/><a href="libxml2-xmlunicode.html">xmlunicode</a> - Unicode character APIs<br/><a href="libxml2-xmlversion.html">xmlversion</a> - compile-time version informations<br/><a href="libxml2-xmlwriter.html">xmlwriter</a> - text writing API for XML<br/><a href="libxml2-xpath.html">xpath</a> - XML Path Language implementation<br/><a href="libxml2-xpathInternals.html">xpathInternals</a> - internal interfaces for XML Path Language implementation<br/><a href="libxml2-xpointer.html">xpointer</a> - API to handle XML Pointers<br/></p>
</body>
</html>
diff --git a/doc/devhelp/libxml2-HTMLparser.html b/doc/devhelp/libxml2-HTMLparser.html
index 6d8a42a..3af5a9c 100644
--- a/doc/devhelp/libxml2-HTMLparser.html
+++ b/doc/devhelp/libxml2-HTMLparser.html
@@ -96,9 +96,9 @@
<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlCtxtReadFile">htmlCtxtReadFile</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> const char * filename, <br/> const char * encoding, <br/> int options);
int <a href="#htmlParseDocument">htmlParseDocument</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt);
<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> <a href="#htmlNewParserCtxt">htmlNewParserCtxt</a> (void);
-<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlSAXParseDoc">htmlSAXParseDoc</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding, <br/> <a href="libxml2-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br/> void * userData);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlSAXParseDoc">htmlSAXParseDoc</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding, <br/> <a href="libxml2-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br/> void * userData);
int <a href="#htmlCtxtUseOptions">htmlCtxtUseOptions</a> (<a href="libxml2-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br/> int options);
-<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlParseDoc">htmlParseDoc</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding);
+<a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlParseDoc">htmlParseDoc</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding);
</pre>
</div>
<div class="refsect1" lang="en">
@@ -315,7 +315,7 @@
</pre><p>Parse a Chunk of memory</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size in byte of the chunk</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i>:</span></td><td>last chunk indicator</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>zero if no error, the <a href="libxml2-xmlerror.html#xmlParserErrors">xmlParserErrors</a> otherwise.</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="htmlParseDoc"/>htmlParseDoc ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlParseDoc (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding)<br/>
+ <div class="refsect2" lang="en"><h3><a name="htmlParseDoc"/>htmlParseDoc ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlParseDoc (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding)<br/>
</pre><p>parse an HTML in-memory document and build a tree.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
<hr/>
@@ -355,7 +355,7 @@
</pre><p>parse an XML in-memory document and build a tree.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="htmlSAXParseDoc"/>htmlSAXParseDoc ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlSAXParseDoc (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding, <br/> <a href="libxml2-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br/> void * userData)<br/>
+ <div class="refsect2" lang="en"><h3><a name="htmlSAXParseDoc"/>htmlSAXParseDoc ()</h3><pre class="programlisting"><a href="libxml2-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlSAXParseDoc (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const char * encoding, <br/> <a href="libxml2-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br/> void * userData)<br/>
</pre><p>Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks to handle parse events. If sax is NULL, fallback to the default DOM behavior and return a tree.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>if using SAX, this pointer will be provided on callbacks.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree unless SAX is NULL or the document is not well formed.</td></tr></tbody></table></div></div>
<hr/>
diff --git a/doc/devhelp/libxml2-dict.html b/doc/devhelp/libxml2-dict.html
index fd5f6b9..6bff563 100644
--- a/doc/devhelp/libxml2-dict.html
+++ b/doc/devhelp/libxml2-dict.html
@@ -2,7 +2,7 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
- <title>dict: string dictionnary</title>
+ <title>dict: string dictionary</title>
<meta name="generator" content="Libxml2 devhelp stylesheet"/>
<link rel="start" href="index.html" title="libxml2 Reference Manual"/>
<link rel="up" href="general.html" title="API"/>
@@ -38,7 +38,7 @@
<h2>
<span class="refentrytitle">dict</span>
</h2>
- <p>dict - string dictionnary</p>
+ <p>dict - string dictionary</p>
<p>dictionary of reusable strings, just used to avoid allocation and freeing operations. </p>
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
@@ -82,47 +82,47 @@
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictCreate"/>xmlDictCreate ()</h3><pre class="programlisting"><a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> xmlDictCreate (void)<br/>
</pre><p>Create a new dictionary</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionnary, or NULL if an error occured.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occurred.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictCreateSub"/>xmlDictCreateSub ()</h3><pre class="programlisting"><a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> xmlDictCreateSub (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> sub)<br/>
-</pre><p>Create a new dictionary, inheriting strings from the read-only dictionnary @sub. On lookup, strings are first searched in the new dictionnary, then in @sub, and if not found are created in the new dictionnary.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>an existing dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionnary, or NULL if an error occured.</td></tr></tbody></table></div></div>
+</pre><p>Create a new dictionary, inheriting strings from the read-only dictionary @sub. On lookup, strings are first searched in the new dictionary, then in @sub, and if not found are created in the new dictionary.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>an existing dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occurred.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictExists"/>xmlDictExists ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlDictExists (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int len)<br/>
-</pre><p>Check if the @name exists in the dictionnary @dict.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL if not found.</td></tr></tbody></table></div></div>
+</pre><p>Check if the @name exists in the dictionary @dict.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL if not found.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictFree"/>xmlDictFree ()</h3><pre class="programlisting">void xmlDictFree (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
</pre><p>Free the hash @dict and its contents. The userdata is deallocated with @f if provided.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictGetUsage"/>xmlDictGetUsage ()</h3><pre class="programlisting">size_t xmlDictGetUsage (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
</pre><p>Get how much memory is used by a dictionary for strings Added in 2.9.0</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of strings allocated</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of strings allocated</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictLookup"/>xmlDictLookup ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlDictLookup (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int len)<br/>
-</pre><p>Add the @name to the dictionnary @dict if not present.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL in case of internal error</td></tr></tbody></table></div></div>
+</pre><p>Add the @name to the dictionary @dict if not present.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL in case of internal error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictOwns"/>xmlDictOwns ()</h3><pre class="programlisting">int xmlDictOwns (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str)<br/>
</pre><p>check if a string is owned by the disctionary</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error -1 in case of error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error -1 in case of error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictQLookup"/>xmlDictQLookup ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlDictQLookup (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
</pre><p>Add the QName @prefix:@name to the hash @dict if not present.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the QName or NULL in case of internal error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the QName or NULL in case of internal error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictReference"/>xmlDictReference ()</h3><pre class="programlisting">int xmlDictReference (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
</pre><p>Increment the <a href="libxml2-SAX.html#reference">reference</a> counter of a dictionary</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictSetLimit"/>xmlDictSetLimit ()</h3><pre class="programlisting">size_t xmlDictSetLimit (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br/> size_t limit)<br/>
</pre><p>Set a size limit for the dictionary Added in 2.9.0</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>limit</tt></i>:</span></td><td>the limit in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous limit of the dictionary or 0</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>limit</tt></i>:</span></td><td>the limit in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous limit of the dictionary or 0</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlDictSize"/>xmlDictSize ()</h3><pre class="programlisting">int xmlDictSize (<a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
</pre><p>Query the number of elements installed in the hash @dict.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the dictionnary or -1 in case of error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the dictionary or -1 in case of error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlInitializeDict"/>xmlInitializeDict ()</h3><pre class="programlisting">int xmlInitializeDict (void)<br/>
</pre><p>Do the dictionary mutex initialization. this function is deprecated</p>
diff --git a/doc/devhelp/libxml2-encoding.html b/doc/devhelp/libxml2-encoding.html
index 261e50a..b11fbfb 100644
--- a/doc/devhelp/libxml2-encoding.html
+++ b/doc/devhelp/libxml2-encoding.html
@@ -43,7 +43,8 @@
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
- <pre class="synopsis">typedef struct _uconv_t <a href="#uconv_t">uconv_t</a>;
+ <pre class="synopsis">#define <a href="#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a>;
+typedef struct _uconv_t <a href="#uconv_t">uconv_t</a>;
typedef enum <a href="#xmlCharEncoding">xmlCharEncoding</a>;
typedef struct _xmlCharEncodingHandler <a href="#xmlCharEncodingHandler">xmlCharEncodingHandler</a>;
typedef <a href="libxml2-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * <a href="#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a>;
@@ -76,9 +77,16 @@
<div class="refsect1" lang="en">
<h2>Details</h2>
<div class="refsect2" lang="en">
+ <div class="refsect2" lang="en"><h3><a name="ICU_PIVOT_BUF_SIZE">Macro </a>ICU_PIVOT_BUF_SIZE</h3><pre class="programlisting">#define <a href="#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a>;
+</pre><p/>
+</div>
+ <hr/>
<div class="refsect2" lang="en"><h3><a name="uconv_t">Structure </a>uconv_t</h3><pre class="programlisting">struct _uconv_t {
UConverter * uconv : for conversion between an encoding and UTF-16
UConverter * utf8 : for conversion between UTF-8 and UTF-16
+ UCharpivot_buf[ICU_PIVOT_BUF_SIZE] pivot_buf
+ UChar * pivot_source
+ UChar * pivot_target
} uconv_t;
</pre><p/>
</div>
diff --git a/doc/devhelp/libxml2-hash.html b/doc/devhelp/libxml2-hash.html
index c5a9911..e2dd7ab 100644
--- a/doc/devhelp/libxml2-hash.html
+++ b/doc/devhelp/libxml2-hash.html
@@ -55,8 +55,8 @@
void * <a href="#xmlHashQLookup3">xmlHashQLookup3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix3, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3);
void * <a href="#xmlHashQLookup2">xmlHashQLookup2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * prefix2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2);
void <a href="#xmlHashScan3">xmlHashScan3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> <a href="libxml2-hash.html#xmlHashScanner">xmlHashScanner</a> f, <br/> void * data);
-typedef void <a href="#xmlHashScanner">xmlHashScanner</a> (void * payload, <br/> void * data, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
-typedef void <a href="#xmlHashDeallocator">xmlHashDeallocator</a> (void * payload, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+typedef void <a href="#xmlHashScanner">xmlHashScanner</a> (void * payload, <br/> void * data, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+typedef void <a href="#xmlHashDeallocator">xmlHashDeallocator</a> (void * payload, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCreate">xmlHashCreate</a> (int size);
void <a href="#xmlHashFree">xmlHashFree</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f);
void * <a href="#xmlHashLookup">xmlHashLookup</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
@@ -67,10 +67,11 @@
<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCopy">xmlHashCopy</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> <a href="libxml2-hash.html#xmlHashCopier">xmlHashCopier</a> f);
void <a href="#xmlHashScanFull3">xmlHashScanFull3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> <a href="libxml2-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br/> void * data);
int <a href="#xmlHashUpdateEntry3">xmlHashUpdateEntry3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> void * userdata, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f);
+void <a href="#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a> (void * entry, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
void * <a href="#xmlHashLookup3">xmlHashLookup3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3);
void * <a href="#xmlHashLookup2">xmlHashLookup2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2);
int <a href="#xmlHashRemoveEntry">xmlHashRemoveEntry</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f);
-typedef void * <a href="#xmlHashCopier">xmlHashCopier</a> (void * payload, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
+typedef void * <a href="#xmlHashCopier">xmlHashCopier</a> (void * payload, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name);
int <a href="#xmlHashAddEntry2">xmlHashAddEntry2</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> void * userdata);
int <a href="#xmlHashAddEntry3">xmlHashAddEntry3</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name2, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name3, <br/> void * userdata);
int <a href="#xmlHashSize">xmlHashSize</a> (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table);
@@ -96,15 +97,15 @@
</pre><p/>
</div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xmlHashCopier"/>Function type xmlHashCopier</h3><pre class="programlisting">void * xmlHashCopier (void * payload, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashCopier"/>Function type xmlHashCopier</h3><pre class="programlisting">void * xmlHashCopier (void * payload, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
</pre><p>Callback to copy data from a hash.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a copy of the data or NULL in case of error.</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xmlHashDeallocator"/>Function type xmlHashDeallocator</h3><pre class="programlisting">void xmlHashDeallocator (void * payload, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashDeallocator"/>Function type xmlHashDeallocator</h3><pre class="programlisting">void xmlHashDeallocator (void * payload, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
</pre><p>Callback to free data from a hash.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xmlHashScanner"/>Function type xmlHashScanner</h3><pre class="programlisting">void xmlHashScanner (void * payload, <br/> void * data, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashScanner"/>Function type xmlHashScanner</h3><pre class="programlisting">void xmlHashScanner (void * payload, <br/> void * data, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
</pre><p>Callback when scanning data in a hash with the simple scanner.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra scannner data</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div></div>
<hr/>
@@ -130,11 +131,15 @@
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlHashCreate"/>xmlHashCreate ()</h3><pre class="programlisting"><a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCreate (int size)<br/>
</pre><p>Create a new xmlHashTablePtr.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occured.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlHashCreateDict"/>xmlHashCreateDict ()</h3><pre class="programlisting"><a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCreateDict (int size, <br/> <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
</pre><p>Create a new <a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> which will use @dict as the internal dictionary</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>a dictionary to use for the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occured.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>a dictionary to use for the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div></div>
+ <hr/>
+ <div class="refsect2" lang="en"><h3><a name="xmlHashDefaultDeallocator"/>xmlHashDefaultDeallocator ()</h3><pre class="programlisting">void xmlHashDefaultDeallocator (void * entry, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name)<br/>
+</pre><p>Free a hash table entry with xmlFree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>entry</tt></i>:</span></td><td>the hash table entry</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entry's name</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlHashFree"/>xmlHashFree ()</h3><pre class="programlisting">void xmlHashFree (<a href="libxml2-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br/> <a href="libxml2-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br/>
</pre><p>Free the hash @table and its contents. The userdata is deallocated with @f if provided.</p>
diff --git a/doc/devhelp/libxml2-list.html b/doc/devhelp/libxml2-list.html
index 8a4fa73..0ae2f11 100644
--- a/doc/devhelp/libxml2-list.html
+++ b/doc/devhelp/libxml2-list.html
@@ -55,14 +55,14 @@
<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> <a href="#xmlListCreate">xmlListCreate</a> (<a href="libxml2-list.html#xmlListDeallocator">xmlListDeallocator</a> deallocator, <br/> <a href="libxml2-list.html#xmlListDataCompare">xmlListDataCompare</a> compare);
<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> <a href="#xmlListDup">xmlListDup</a> (const <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> old);
int <a href="#xmlListRemoveLast">xmlListRemoveLast</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data);
-void <a href="#xmlListWalk">xmlListWalk</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> const void * user);
+void <a href="#xmlListWalk">xmlListWalk</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> void * user);
int <a href="#xmlListRemoveAll">xmlListRemoveAll</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data);
int <a href="#xmlListCopy">xmlListCopy</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> cur, <br/> const <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> old);
void <a href="#xmlListPopFront">xmlListPopFront</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l);
void * <a href="#xmlListSearch">xmlListSearch</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data);
-typedef int <a href="#xmlListWalker">xmlListWalker</a> (const void * data, <br/> const void * user);
+typedef int <a href="#xmlListWalker">xmlListWalker</a> (const void * data, <br/> void * user);
int <a href="#xmlListRemoveFirst">xmlListRemoveFirst</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data);
-void <a href="#xmlListReverseWalk">xmlListReverseWalk</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> const void * user);
+void <a href="#xmlListReverseWalk">xmlListReverseWalk</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> void * user);
void * <a href="#xmlLinkGetData">xmlLinkGetData</a> (<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> lk);
void <a href="#xmlListClear">xmlListClear</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l);
int <a href="#xmlListAppend">xmlListAppend</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data);
@@ -112,7 +112,7 @@
</pre><p>Callback function used to free data from a list.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>lk</tt></i>:</span></td><td>the data to deallocate</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xmlListWalker"/>Function type xmlListWalker</h3><pre class="programlisting">int xmlListWalker (const void * data, <br/> const void * user)<br/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListWalker"/>Function type xmlListWalker</h3><pre class="programlisting">int xmlListWalker (const void * data, <br/> void * user)<br/>
</pre><p>Callback function used when walking a list with xmlListWalk().</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data found in the list</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>extra user provided data to the walker</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 to stop walking the list, 1 otherwise.</td></tr></tbody></table></div></div>
<hr/>
@@ -186,11 +186,11 @@
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlListRemoveFirst"/>xmlListRemoveFirst ()</h3><pre class="programlisting">int xmlListRemoveFirst (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data)<br/>
</pre><p>Remove the first instance associated to data in the list</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occured, or 0 if not found</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occurred, or 0 if not found</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlListRemoveLast"/>xmlListRemoveLast ()</h3><pre class="programlisting">int xmlListRemoveLast (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> void * data)<br/>
</pre><p>Remove the last instance associated to data in the list</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occured, or 0 if not found</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occurred, or 0 if not found</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlListReverse"/>xmlListReverse ()</h3><pre class="programlisting">void xmlListReverse (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br/>
</pre><p>Reverse the order of the elements in the list</p>
@@ -200,7 +200,7 @@
</pre><p>Search the list in reverse order for an existing value of @data</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>a search value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value associated to @data or NULL in case of error</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xmlListReverseWalk"/>xmlListReverseWalk ()</h3><pre class="programlisting">void xmlListReverseWalk (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> const void * user)<br/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListReverseWalk"/>xmlListReverseWalk ()</h3><pre class="programlisting">void xmlListReverseWalk (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> void * user)<br/>
</pre><p>Walk all the element of the list in reverse order and apply the walker function to it</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div></div>
<hr/>
@@ -216,7 +216,7 @@
</pre><p>Sort all the elements in the list</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xmlListWalk"/>xmlListWalk ()</h3><pre class="programlisting">void xmlListWalk (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> const void * user)<br/>
+ <div class="refsect2" lang="en"><h3><a name="xmlListWalk"/>xmlListWalk ()</h3><pre class="programlisting">void xmlListWalk (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br/> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br/> void * user)<br/>
</pre><p>Walk all the element of the first from first to last and apply the walker function to it</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div></div>
<hr/>
diff --git a/doc/devhelp/libxml2-parser.html b/doc/devhelp/libxml2-parser.html
index 357c14a..c740554 100644
--- a/doc/devhelp/libxml2-parser.html
+++ b/doc/devhelp/libxml2-parser.html
@@ -300,7 +300,7 @@
<a name="XML_PARSE_SAX1">XML_PARSE_SAX1</a> = 512 /* use the SAX1 interface internally */
<a name="XML_PARSE_XINCLUDE">XML_PARSE_XINCLUDE</a> = 1024 /* Implement XInclude substitition */
<a name="XML_PARSE_NONET">XML_PARSE_NONET</a> = 2048 /* Forbid network access */
- <a name="XML_PARSE_NODICT">XML_PARSE_NODICT</a> = 4096 /* Do not reuse the context dictionnary */
+ <a name="XML_PARSE_NODICT">XML_PARSE_NODICT</a> = 4096 /* Do not reuse the context dictionary */
<a name="XML_PARSE_NSCLEAN">XML_PARSE_NSCLEAN</a> = 8192 /* remove redundant namespaces declarations */
<a name="XML_PARSE_NOCDATA">XML_PARSE_NOCDATA</a> = 16384 /* merge CDATA as text nodes */
<a name="XML_PARSE_NOXINCNODE">XML_PARSE_NOXINCNODE</a> = 32768 /* do not generate XINCLUDE START/END nodes */
diff --git a/doc/devhelp/libxml2-schemasInternals.html b/doc/devhelp/libxml2-schemasInternals.html
index 2f9cbc9..ab91754 100644
--- a/doc/devhelp/libxml2-schemasInternals.html
+++ b/doc/devhelp/libxml2-schemasInternals.html
@@ -39,7 +39,7 @@
<span class="refentrytitle">schemasInternals</span>
</h2>
<p>schemasInternals - internal interfaces for XML Schemas</p>
- <p>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not garanteed to be API or ABI stable ! </p>
+ <p>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not guaranteed to be API or ABI stable ! </p>
<p>Author(s): Daniel Veillard </p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
diff --git a/doc/devhelp/libxml2-tree.html b/doc/devhelp/libxml2-tree.html
index 3cc28c7..44e1e03 100644
--- a/doc/devhelp/libxml2-tree.html
+++ b/doc/devhelp/libxml2-tree.html
@@ -409,7 +409,8 @@
<a name="XML_BUFFER_ALLOC_EXACT">XML_BUFFER_ALLOC_EXACT</a> = 2 /* grow only to the minimal size */
<a name="XML_BUFFER_ALLOC_IMMUTABLE">XML_BUFFER_ALLOC_IMMUTABLE</a> = 3 /* immutable buffer */
<a name="XML_BUFFER_ALLOC_IO">XML_BUFFER_ALLOC_IO</a> = 4 /* special allocation scheme used for I/O */
- <a name="XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a> = 5 /* exact up to a threshold, and doubleit thereafter */
+ <a name="XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a> = 5 /* exact up to a threshold, and doubleit thereafter */
+ <a name="XML_BUFFER_ALLOC_BOUNDED">XML_BUFFER_ALLOC_BOUNDED</a> = 6 /* limit the upper size of the buffer */
};
</pre><p/>
</div>
@@ -781,7 +782,7 @@
void * catalogs : document's own catalog
int recovery : run in recovery mode
int progressive : is this a progressive parsing
- <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionnary for the parser
+ <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionary for the parser
const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * * atts : array for the attributes callbacks
int maxatts : the size of the array
int docdict : * pre-interned strings *
@@ -1541,7 +1542,7 @@
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlSplitQName2"/>xmlSplitQName2 ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlSplitQName2 (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** prefix)<br/>
</pre><p>parse an XML qualified name string [NS 5] QName ::= (Prefix ':')? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not a QName, otherwise the local part, and prefix is updated to get the Prefix if any.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if the name doesn't have a prefix. Otherwise, returns the local part, and prefix is updated to get the Prefix. Both the return value and the prefix must be freed by the caller.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlSplitQName3"/>xmlSplitQName3 ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlSplitQName3 (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> int * len)<br/>
</pre><p>parse an XML qualified name string,i</p>
diff --git a/doc/devhelp/libxml2-xmlerror.html b/doc/devhelp/libxml2-xmlerror.html
index 13bab8a..6a93649 100644
--- a/doc/devhelp/libxml2-xmlerror.html
+++ b/doc/devhelp/libxml2-xmlerror.html
@@ -897,7 +897,7 @@
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlCtxtGetLastError"/>xmlCtxtGetLastError ()</h3><pre class="programlisting"><a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> xmlCtxtGetLastError (void * ctx)<br/>
</pre><p>Get the last parsing error registered.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occured or a pointer to the error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occurred or a pointer to the error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlCtxtResetLastError"/>xmlCtxtResetLastError ()</h3><pre class="programlisting">void xmlCtxtResetLastError (void * ctx)<br/>
</pre><p>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</p>
@@ -905,7 +905,7 @@
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlGetLastError"/>xmlGetLastError ()</h3><pre class="programlisting"><a href="libxml2-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> xmlGetLastError (void)<br/>
</pre><p>Get the last global error registered. This is per thread if compiled with thread support.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occured or a pointer to the error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occurred or a pointer to the error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlParserError"/>xmlParserError ()</h3><pre class="programlisting">void xmlParserError (void * ctx, <br/> const char * msg, <br/> ... ...)<br/>
</pre><p>Display and format an error messages, gives file, line, position and extra parameters.</p>
diff --git a/doc/devhelp/libxml2-xmlmemory.html b/doc/devhelp/libxml2-xmlmemory.html
index 8610538..bf400d0 100644
--- a/doc/devhelp/libxml2-xmlmemory.html
+++ b/doc/devhelp/libxml2-xmlmemory.html
@@ -118,7 +118,7 @@
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlMallocAtomicLoc"/>xmlMallocAtomicLoc ()</h3><pre class="programlisting">void * xmlMallocAtomicLoc (size_t size, <br/> const char * file, <br/> int line)<br/>
</pre><p>a malloc() equivalent, with logging of the allocation info.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an unsigned int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlMallocLoc"/>xmlMallocLoc ()</h3><pre class="programlisting">void * xmlMallocLoc (size_t size, <br/> const char * file, <br/> int line)<br/>
</pre><p>a malloc() equivalent, with logging of the allocation info.</p>
diff --git a/doc/devhelp/libxml2-xmlreader.html b/doc/devhelp/libxml2-xmlreader.html
index 3814f43..2051f70 100644
--- a/doc/devhelp/libxml2-xmlreader.html
+++ b/doc/devhelp/libxml2-xmlreader.html
@@ -213,7 +213,7 @@
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlTextReaderErrorFunc"/>Function type xmlTextReaderErrorFunc</h3><pre class="programlisting">void xmlTextReaderErrorFunc (void * arg, <br/> const char * msg, <br/> <a href="libxml2-xmlreader.html#xmlParserSeverities">xmlParserSeverities</a> severity, <br/> <a href="libxml2-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator)<br/>
</pre><p>Signature of an error callback from a reader parser</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>the user argument</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>severity</tt></i>:</span></td><td>the severity of the error</td></tr><tr><td><span class="term"><i><tt>locator</tt></i>:</span></td><td>a locator indicating where the error occured</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>the user argument</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>severity</tt></i>:</span></td><td>the severity of the error</td></tr><tr><td><span class="term"><i><tt>locator</tt></i>:</span></td><td>a locator indicating where the error occurred</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlFreeTextReader"/>xmlFreeTextReader ()</h3><pre class="programlisting">void xmlFreeTextReader (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
</pre><p>Deallocate all the resources associated to the reader</p>
@@ -477,7 +477,7 @@
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlTextReaderPreservePattern"/>xmlTextReaderPreservePattern ()</h3><pre class="programlisting">int xmlTextReaderPreservePattern (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** namespaces)<br/>
</pre><p>This tells the XML Reader to preserve all nodes matched by the pattern. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>an XPath subset pattern</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>the prefix definitions, array of [URI, prefix] or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a positive number in case of success and -1 in case of error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>an XPath subset pattern</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>the prefix definitions, array of [URI, prefix] or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a non-negative number in case of success and -1 in case of error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlTextReaderQuoteChar"/>xmlTextReaderQuoteChar ()</h3><pre class="programlisting">int xmlTextReaderQuoteChar (<a href="libxml2-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br/>
</pre><p>The quotation mark character used to enclose the value of an attribute.</p>
diff --git a/doc/devhelp/libxml2-xmlregexp.html b/doc/devhelp/libxml2-xmlregexp.html
index 9427a34..8d5c80e 100644
--- a/doc/devhelp/libxml2-xmlregexp.html
+++ b/doc/devhelp/libxml2-xmlregexp.html
@@ -200,7 +200,7 @@
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlExpNewCtxt"/>xmlExpNewCtxt ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> xmlExpNewCtxt (int maxNodes, <br/> <a href="libxml2-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br/>
</pre><p>Creates a new context for manipulating expressions</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionnary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlExpNewOr"/>xmlExpNewOr ()</h3><pre class="programlisting"><a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewOr (<a href="libxml2-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br/> <a href="libxml2-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br/>
</pre><p>Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</p>
diff --git a/doc/devhelp/libxml2-xmlstring.html b/doc/devhelp/libxml2-xmlstring.html
index 6dfc70b..95a845f 100644
--- a/doc/devhelp/libxml2-xmlstring.html
+++ b/doc/devhelp/libxml2-xmlstring.html
@@ -49,7 +49,7 @@
<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlCharStrndup">xmlCharStrndup</a> (const char * cur, <br/> int len);
const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrcasestr">xmlStrcasestr</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val);
<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrcat">xmlStrcat</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * add);
-int <a href="#xmlStrPrintf">xmlStrPrintf</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/> ... ...);
+int <a href="#xmlStrPrintf">xmlStrPrintf</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const char * msg, <br/> ... ...);
const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrstr">xmlStrstr</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * val);
int <a href="#xmlUTF8Size">xmlUTF8Size</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf);
int <a href="#xmlStrQEqual">xmlStrQEqual</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * pref, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * name, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str);
@@ -65,7 +65,7 @@
int <a href="#xmlGetUTF8Char">xmlGetUTF8Char</a> (const unsigned char * utf, <br/> int * len);
int <a href="#xmlStrcasecmp">xmlStrcasecmp</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2);
<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrndup">xmlStrndup</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> int len);
-int <a href="#xmlStrVPrintf">xmlStrVPrintf</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/> va_list ap);
+int <a href="#xmlStrVPrintf">xmlStrVPrintf</a> (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const char * msg, <br/> va_list ap);
int <a href="#xmlUTF8Strsize">xmlUTF8Strsize</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/> int len);
int <a href="#xmlCheckUTF8">xmlCheckUTF8</a> (const unsigned char * utf);
int <a href="#xmlStrncasecmp">xmlStrncasecmp</a> (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2, <br/> int len);
@@ -111,7 +111,7 @@
</pre><p>Check if both strings are equal of have same content. Should be a bit more readable and faster than xmlStrcmp()</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xmlStrPrintf"/>xmlStrPrintf ()</h3><pre class="programlisting">int xmlStrPrintf (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/> ... ...)<br/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrPrintf"/>xmlStrPrintf ()</h3><pre class="programlisting">int xmlStrPrintf (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const char * msg, <br/> ... ...)<br/>
</pre><p>Formats @msg and places result into @buf.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml2-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div></div>
<hr/>
@@ -119,7 +119,7 @@
</pre><p>Check if a QName is Equal to a given string</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td>the prefix of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the localname of the QName</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the second <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xmlStrVPrintf"/>xmlStrVPrintf ()</h3><pre class="programlisting">int xmlStrVPrintf (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * msg, <br/> va_list ap)<br/>
+ <div class="refsect2" lang="en"><h3><a name="xmlStrVPrintf"/>xmlStrVPrintf ()</h3><pre class="programlisting">int xmlStrVPrintf (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * buf, <br/> int len, <br/> const char * msg, <br/> va_list ap)<br/>
</pre><p>Formats @msg and places result into @buf.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>ap</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml2-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div></div>
<hr/>
@@ -133,7 +133,7 @@
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlStrcat"/>xmlStrcat ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStrcat (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * add)<br/>
</pre><p>a strcat for array of xmlChar's. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of '0'.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * containing the concatenated string.</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * containing the concatenated string. The original @cur is reallocated and should not be freed.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlStrchr"/>xmlStrchr ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStrchr (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> val)<br/>
</pre><p>a strchr for xmlChar's</p>
@@ -157,7 +157,7 @@
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlStrncat"/>xmlStrncat ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStrncat (<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * cur, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * add, <br/> int len)<br/>
</pre><p>a strncat for array of xmlChar's, it will extend @cur with the len first bytes of @add. Note that if @len < 0 then this is an API error and NULL will be returned.</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of @add</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *, the original @cur is reallocated if needed and should not be freed</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of @add</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> *, the original @cur is reallocated and should not be freed.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlStrncatNew"/>xmlStrncatNew ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlStrncatNew (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str1, <br/> const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str2, <br/> int len)<br/>
</pre><p>same as xmlStrncat, but creates a new string. The original two strings are not freed. If @len is < 0 then the length will be calculated automatically.</p>
@@ -204,7 +204,7 @@
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>the input UTF8 *</td></tr><tr><td><span class="term"><i><tt>pos</tt></i>:</span></td><td>the position of the desired UTF8 char (in chars)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the UTF8 character or NULL</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlUTF8Strsize"/>xmlUTF8Strsize ()</h3><pre class="programlisting">int xmlUTF8Strsize (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/> int len)<br/>
-</pre><p>storage size of an UTF8 string the behaviour is not garanteed if the input string is not UTF-8</p>
+</pre><p>storage size of an UTF8 string the behaviour is not guaranteed if the input string is not UTF-8</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml2-SAX.html#characters">characters</a> in the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the storage size of the first 'len' <a href="libxml2-SAX.html#characters">characters</a> of ARRAY</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlUTF8Strsub"/>xmlUTF8Strsub ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlUTF8Strsub (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * utf, <br/> int start, <br/> int len)<br/>
diff --git a/doc/devhelp/libxml2-xpath.html b/doc/devhelp/libxml2-xpath.html
index 640c715..edf7643 100644
--- a/doc/devhelp/libxml2-xpath.html
+++ b/doc/devhelp/libxml2-xpath.html
@@ -473,7 +473,7 @@
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlXPathEvalExpression"/>xmlXPathEvalExpression ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathEvalExpression (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * str, <br/> <a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br/>
-</pre><p>Evaluate the XPath expression in the given context.</p>
+</pre><p>Alias for xmlXPathEval().</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlXPathEvalPredicate"/>xmlXPathEvalPredicate ()</h3><pre class="programlisting">int xmlXPathEvalPredicate (<a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt, <br/> <a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> res)<br/>
@@ -501,15 +501,15 @@
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>obj</tt></i>:</span></td><td>the object to free</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlXPathInit"/>xmlXPathInit ()</h3><pre class="programlisting">void xmlXPathInit (void)<br/>
-</pre><p>Initialize the XPath environment</p>
+</pre><p>Initialize the XPath environment Does nothing but must be kept as public function.</p>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlXPathIsInf"/>xmlXPathIsInf ()</h3><pre class="programlisting">int xmlXPathIsInf (double val)<br/>
-</pre><p>Provides a portable isinf() function to detect whether a double is a +Infinite or -Infinite. Based on trio code http://sourceforge.net/projects/ctrio/</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 vi the value is +Infinite, -1 if -Infinite, 0 otherwise</td></tr></tbody></table></div></div>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is +Infinite, -1 if -Infinite, 0 otherwise</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlXPathIsNaN"/>xmlXPathIsNaN ()</h3><pre class="programlisting">int xmlXPathIsNaN (double val)<br/>
-</pre><p>Provides a portable isnan() function to detect whether a double is a NotaNumber. Based on trio code http://sourceforge.net/projects/ctrio/</p>
+</pre><p/>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is a NaN, 0 otherwise</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlXPathNewContext"/>xmlXPathNewContext ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> xmlXPathNewContext (<a href="libxml2-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br/>
diff --git a/doc/devhelp/libxml2-xpathInternals.html b/doc/devhelp/libxml2-xpathInternals.html
index 0597343..17d27cd 100644
--- a/doc/devhelp/libxml2-xpathInternals.html
+++ b/doc/devhelp/libxml2-xpathInternals.html
@@ -694,7 +694,7 @@
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlXPathRoundFunction"/>xmlXPathRoundFunction ()</h3><pre class="programlisting">void xmlXPathRoundFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
-</pre><p>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is even is returned.</p>
+</pre><p>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is closest to positive infinity is returned.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlXPathStartsWithFunction"/>xmlXPathStartsWithFunction ()</h3><pre class="programlisting">void xmlXPathStartsWithFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
diff --git a/doc/devhelp/libxml2-xpointer.html b/doc/devhelp/libxml2-xpointer.html
index 807eed7..4d7c337 100644
--- a/doc/devhelp/libxml2-xpointer.html
+++ b/doc/devhelp/libxml2-xpointer.html
@@ -158,7 +158,7 @@
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting point</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlXPtrRangeToFunction"/>xmlXPtrRangeToFunction ()</h3><pre class="programlisting">void xmlXPtrRangeToFunction (<a href="libxml2-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br/> int nargs)<br/>
-</pre><p>Implement the range-to() XPointer function</p>
+</pre><p>Implement the range-to() XPointer function Obsolete. range-to is not a real function but a special type of location step which is handled in xpath.c.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPointer Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of args</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlXPtrWrapLocationSet"/>xmlXPtrWrapLocationSet ()</h3><pre class="programlisting"><a href="libxml2-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrWrapLocationSet (<a href="libxml2-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val)<br/>
diff --git a/doc/devhelp/libxml2.devhelp b/doc/devhelp/libxml2.devhelp
index 282546a..575b222 100644
--- a/doc/devhelp/libxml2.devhelp
+++ b/doc/devhelp/libxml2.devhelp
@@ -70,6 +70,7 @@
<function name="HTML_PI_NODE" link="libxml2-HTMLtree.html#HTML_PI_NODE"/>
<function name="HTML_PRESERVE_NODE" link="libxml2-HTMLtree.html#HTML_PRESERVE_NODE"/>
<function name="HTML_TEXT_NODE" link="libxml2-HTMLtree.html#HTML_TEXT_NODE"/>
+ <function name="ICU_PIVOT_BUF_SIZE" link="libxml2-encoding.html#ICU_PIVOT_BUF_SIZE"/>
<function name="INPUT_CHUNK" link="libxml2-parserInternals.html#INPUT_CHUNK"/>
<function name="INVALID_SOCKET" link="libxml2-nanoftp.html#INVALID_SOCKET"/>
<function name="IS_ASCII_DIGIT" link="libxml2-parserInternals.html#IS_ASCII_DIGIT"/>
@@ -351,6 +352,7 @@
<function name="XML_ATTRIBUTE_NONE" link="libxml2-tree.html#XML_ATTRIBUTE_NONE"/>
<function name="XML_ATTRIBUTE_NOTATION" link="libxml2-tree.html#XML_ATTRIBUTE_NOTATION"/>
<function name="XML_ATTRIBUTE_REQUIRED" link="libxml2-tree.html#XML_ATTRIBUTE_REQUIRED"/>
+ <function name="XML_BUFFER_ALLOC_BOUNDED" link="libxml2-tree.html#XML_BUFFER_ALLOC_BOUNDED"/>
<function name="XML_BUFFER_ALLOC_DOUBLEIT" link="libxml2-tree.html#XML_BUFFER_ALLOC_DOUBLEIT"/>
<function name="XML_BUFFER_ALLOC_EXACT" link="libxml2-tree.html#XML_BUFFER_ALLOC_EXACT"/>
<function name="XML_BUFFER_ALLOC_HYBRID" link="libxml2-tree.html#XML_BUFFER_ALLOC_HYBRID"/>
@@ -2388,6 +2390,7 @@
<function name="xmlHashCopy ()" link="libxml2-hash.html#xmlHashCopy"/>
<function name="xmlHashCreate ()" link="libxml2-hash.html#xmlHashCreate"/>
<function name="xmlHashCreateDict ()" link="libxml2-hash.html#xmlHashCreateDict"/>
+ <function name="xmlHashDefaultDeallocator ()" link="libxml2-hash.html#xmlHashDefaultDeallocator"/>
<function name="xmlHashFree ()" link="libxml2-hash.html#xmlHashFree"/>
<function name="xmlHashLookup ()" link="libxml2-hash.html#xmlHashLookup"/>
<function name="xmlHashLookup2 ()" link="libxml2-hash.html#xmlHashLookup2"/>
diff --git a/doc/docdescr.doc b/doc/docdescr.doc
index 427a1ff..3fec94a 100644
--- a/doc/docdescr.doc
+++ b/doc/docdescr.doc
@@ -29,7 +29,7 @@
w3c.png -
apibuild.py Python script which generates the file libxml2-api.xml
-parsedecl.py Python secipt which generates the file libxml2-refs.xml
+parsedecl.py Python script which generates the file libxml2-refs.xml
api.xsl xslt script to generate API cross-references APIchunk*.html
using information from libxml2-api.xml and libxml2-refs.xml
diff --git a/doc/elfgcchack.xsl b/doc/elfgcchack.xsl
index 9b1a9bc..8dd5c6a 100644
--- a/doc/elfgcchack.xsl
+++ b/doc/elfgcchack.xsl
@@ -18,7 +18,7 @@
#ifdef IN_LIBXML
#ifdef __GNUC__
#ifdef PIC
-#ifdef linux
+#ifdef __linux__
#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
#include "libxml/c14n.h"
diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am
index 57af9c2..ef59fce 100644
--- a/doc/examples/Makefile.am
+++ b/doc/examples/Makefile.am
@@ -13,7 +13,7 @@
rebuild: examples.xml index.html
.PHONY: rebuild
-examples.xml: index.py $(noinst_PROGRAMS:=.c)
+examples.xml: index.py $(check_PROGRAMS:=.c)
cd $(srcdir) && $(PYTHON) index.py
$(MAKE) Makefile
@@ -49,7 +49,7 @@
xpath1.res \
xpath2.res
-noinst_PROGRAMS = \
+check_PROGRAMS = \
io1 \
io2 \
parse1 \
@@ -99,37 +99,38 @@
valgrind:
$(MAKE) CHECKER='valgrind' tests
-tests: $(noinst_PROGRAMS)
- test -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml .
+tests: $(check_PROGRAMS)
+ @test -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml .
@(echo '## examples regression tests')
@(echo > .memdump)
- $(CHECKER) ./io1 > io1.tmp && diff io1.tmp $(srcdir)/io1.res
+ @$(CHECKER) ./io1 > io1.tmp && diff io1.tmp $(srcdir)/io1.res
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
- $(CHECKER) ./io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res
+ @$(CHECKER) ./io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
- $(CHECKER) ./parse1 test1.xml
+ @$(CHECKER) ./parse1 test1.xml
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
- $(CHECKER) ./parse2 test2.xml
+ @$(CHECKER) ./parse2 test2.xml
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
- $(CHECKER) ./parse3
+ @$(CHECKER) ./parse3
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
- $(CHECKER) ./parse4 test3.xml
+ @$(CHECKER) ./parse4 test3.xml
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
- $(CHECKER) ./reader1 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res
+ @$(CHECKER) ./reader1 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
- $(CHECKER) ./reader2 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res
+ @$(CHECKER) ./reader2 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
- $(CHECKER) ./reader3 > reader3.tmp && diff reader3.tmp $(srcdir)/reader3.res
+ @$(CHECKER) ./reader3 > reader3.tmp && diff reader3.tmp $(srcdir)/reader3.res
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
- $(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp && diff reader4.tmp $(srcdir)/reader4.res
+ @$(CHECKER) ./reader4 test1.xml test2.xml test3.xml > reader4.tmp && diff reader4.tmp $(srcdir)/reader4.res
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
- $(CHECKER) ./testWriter && for i in 1 2 3 4 ; do diff $(srcdir)/writer.xml writer$$i.tmp || break ; done
+ @$(CHECKER) ./testWriter && for i in 1 2 3 4 ; do diff $(srcdir)/writer.xml writer$$i.tmp || break ; done
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
- $(CHECKER) ./tree1 test2.xml > tree1.tmp && diff tree1.tmp $(srcdir)/tree1.res
+ @$(CHECKER) ./tree1 test2.xml > tree1.tmp && diff tree1.tmp $(srcdir)/tree1.res
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
- $(CHECKER) ./tree2 > tree2.tmp && diff tree2.tmp $(srcdir)/tree2.res
+ @$(CHECKER) ./tree2 > tree2.tmp && diff tree2.tmp $(srcdir)/tree2.res
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
- $(CHECKER) ./xpath1 test3.xml '//child2' > xpath1.tmp && diff xpath1.tmp $(srcdir)/xpath1.res
+ @$(CHECKER) ./xpath1 test3.xml '//child2' > xpath1.tmp && diff xpath1.tmp $(srcdir)/xpath1.res
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
- $(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp && diff xpath2.tmp $(srcdir)/xpath2.res
+ @$(CHECKER) ./xpath2 test3.xml '//discarded' discarded > xpath2.tmp && diff xpath2.tmp $(srcdir)/xpath2.res
@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0
+ @rm *.tmp
diff --git a/doc/examples/examples.xml b/doc/examples/examples.xml
index 28929cc..d38247b 100644
--- a/doc/examples/examples.xml
+++ b/doc/examples/examples.xml
@@ -1,123 +1,4 @@
<examples>
- <example filename='xpath1.c'>
- <synopsis>Evaluate XPath expression and prints result node set.</synopsis>
- <purpose>Shows how to evaluate XPath expression and register known namespaces in XPath context.</purpose>
- <usage>xpath1 <xml-file> <xpath-expr> [<known-ns-list>]</usage>
- <test>xpath1 test3.xml '//child2' > xpath1.tmp && diff xpath1.tmp $(srcdir)/xpath1.res</test>
- <author>Aleksey Sanin</author>
- <copy>see Copyright for the status of this software. </copy>
- <section>XPath</section>
- <includes>
- <include><libxml/parser.h></include>
- <include><libxml/xpath.h></include>
- <include><libxml/xpathInternals.h></include>
- <include><libxml/tree.h></include>
- </includes>
- <uses>
- <enum line='229' file='tree' name='XML_ELEMENT_NODE'/>
- <typedef line='88' file='xpath' name='xmlXPathObjectPtr'/>
- <function line='54' file='xmlmemory' name='xmlMemoryDump'/>
- <function line='117' file='xpath' name='xmlXPathEvalExpression'/>
- <function line='94' file='parser' name='xmlParseFile'/>
- <function line='186' file='xpathInternals' name='xmlXPathRegisterNs'/>
- <function line='129' file='xpath' name='xmlXPathFreeObject'/>
- <variable line='193' file='globals' name='xmlFree'/>
- <typedef line='218' file='tree' name='xmlNsPtr'/>
- <function line='101' file='xpath' name='xmlXPathNewContext'/>
- <function line='49' file='parser' name='xmlCleanupParser'/>
- <macro line='43' file='xmlversion' name='LIBXML_TEST_VERSION'/>
- <typedef line='87' file='xpath' name='xmlXPathContextPtr'/>
- <function line='130' file='xpath' name='xmlXPathFreeContext'/>
- <function line='39' file='parser' name='xmlInitParser'/>
- <function line='156' file='xmlstring' name='xmlStrdup'/>
- <function line='131' file='tree' name='xmlFreeDoc'/>
- <function line='180' file='xmlstring' name='xmlStrchr'/>
- <typedef line='206' file='tree' name='xmlNodePtr'/>
- <typedef line='86' file='tree' name='xmlDocPtr'/>
- <enum line='217' file='tree' name='XML_NAMESPACE_DECL'/>
- </uses>
- </example>
- <example filename='parse3.c'>
- <synopsis>Parse an XML document in memory to a tree and free it</synopsis>
- <purpose>Demonstrate the use of xmlReadMemory() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
- <usage>parse3</usage>
- <test>parse3</test>
- <author>Daniel Veillard</author>
- <copy>see Copyright for the status of this software. </copy>
- <section>Parsing</section>
- <includes>
- <include><libxml/tree.h></include>
- <include><libxml/parser.h></include>
- </includes>
- <uses>
- <function line='33' file='parser' name='xmlReadMemory'/>
- <function line='58' file='xmlmemory' name='xmlMemoryDump'/>
- <function line='54' file='parser' name='xmlCleanupParser'/>
- <macro line='49' file='xmlversion' name='LIBXML_TEST_VERSION'/>
- <function line='38' file='tree' name='xmlFreeDoc'/>
- <typedef line='27' file='tree' name='xmlDocPtr'/>
- </uses>
- </example>
- <example filename='reader2.c'>
- <synopsis>Parse and validate an XML file with an xmlReader</synopsis>
- <purpose>Demonstrate the use of xmlReaderForFile() to parse an XML file validating the content in the process and activating options like entities substitution, and DTD attributes defaulting. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
- <usage>reader2 <valid_xml_filename></usage>
- <test>reader2 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res</test>
- <author>Daniel Veillard</author>
- <copy>see Copyright for the status of this software. </copy>
- <section>xmlReader</section>
- <includes>
- <include><libxml/xmlreader.h></include>
- </includes>
- <uses>
- <function line='45' file='xmlstring' name='xmlStrlen'/>
- <function line='109' file='parser' name='xmlCleanupParser'/>
- <function line='38' file='xmlreader' name='xmlTextReaderNodeType'/>
- <typedef line='60' file='xmlreader' name='xmlTextReaderPtr'/>
- <function line='113' file='xmlmemory' name='xmlMemoryDump'/>
- <function line='34' file='xmlreader' name='xmlTextReaderConstValue'/>
- <enum line='70' file='parser' name='XML_PARSE_NOENT'/>
- <function line='37' file='xmlreader' name='xmlTextReaderDepth'/>
- <enum line='71' file='parser' name='XML_PARSE_DTDVALID'/>
- <enum line='69' file='parser' name='XML_PARSE_DTDATTR'/>
- <function line='84' file='xmlreader' name='xmlFreeTextReader'/>
- <macro line='104' file='xmlversion' name='LIBXML_TEST_VERSION'/>
- <function line='30' file='xmlreader' name='xmlTextReaderConstName'/>
- <function line='41' file='xmlreader' name='xmlTextReaderHasValue'/>
- <function line='76' file='xmlreader' name='xmlTextReaderRead'/>
- <function line='40' file='xmlreader' name='xmlTextReaderIsEmptyElement'/>
- <function line='68' file='xmlreader' name='xmlReaderForFile'/>
- <function line='81' file='xmlreader' name='xmlTextReaderIsValid'/>
- </uses>
- </example>
- <example filename='tree2.c'>
- <synopsis>Creates a tree</synopsis>
- <purpose>Shows how to create document, nodes and dump it to stdout or file.</purpose>
- <usage>tree2 <filename> -Default output: stdout</usage>
- <test>tree2 > tree2.tmp && diff tree2.tmp $(srcdir)/tree2.res</test>
- <author>Lucas Brasilino <brasilino@recife.pe.gov.br></author>
- <copy>see Copyright for the status of this software </copy>
- <section>Tree</section>
- <includes>
- <include><libxml/tree.h></include>
- <include><libxml/parser.h></include>
- </includes>
- <uses>
- <function line='75' file='tree' name='xmlNewText'/>
- <function line='110' file='xmlmemory' name='xmlMemoryDump'/>
- <function line='96' file='tree' name='xmlSaveFormatFileEnc'/>
- <function line='78' file='tree' name='xmlAddChild'/>
- <function line='41' file='tree' name='xmlDocSetRootElement'/>
- <function line='105' file='parser' name='xmlCleanupParser'/>
- <macro line='34' file='xmlversion' name='LIBXML_TEST_VERSION'/>
- <function line='89' file='tree' name='xmlNewProp'/>
- <function line='88' file='tree' name='xmlNewChild'/>
- <function line='74' file='tree' name='xmlNewNode'/>
- <function line='46' file='tree' name='xmlCreateIntSubset'/>
- <function line='99' file='tree' name='xmlFreeDoc'/>
- <function line='39' file='tree' name='xmlNewDoc'/>
- </uses>
- </example>
<example filename='io1.c'>
<synopsis>Example of custom Input/Output</synopsis>
<purpose>Demonstrate the use of xmlRegisterInputCallbacks to build a custom I/O layer, this is used in an XInclude method context to show how dynamic document can be built in a clean way.</purpose>
@@ -144,6 +25,96 @@
<typedef line='105' file='tree' name='xmlDocPtr'/>
</uses>
</example>
+ <example filename='io2.c'>
+ <synopsis>Output to char buffer</synopsis>
+ <purpose>Demonstrate the use of xmlDocDumpMemory to output document to a character buffer</purpose>
+ <usage>io2</usage>
+ <test>io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res</test>
+ <author>John Fleck</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>InputOutput</section>
+ <includes>
+ <include><libxml/parser.h></include>
+ </includes>
+ <uses>
+ <function line='29' file='tree' name='xmlNodeSetContent'/>
+ <function line='36' file='tree' name='xmlDocDumpFormatMemory'/>
+ <variable line='42' file='globals' name='xmlFree'/>
+ <function line='30' file='tree' name='xmlDocSetRootElement'/>
+ <typedef line='20' file='tree' name='xmlDocPtr'/>
+ <function line='43' file='tree' name='xmlFreeDoc'/>
+ <typedef line='19' file='tree' name='xmlNodePtr'/>
+ <function line='27' file='tree' name='xmlNewDoc'/>
+ <function line='28' file='tree' name='xmlNewNode'/>
+ </uses>
+ </example>
+ <example filename='parse1.c'>
+ <synopsis>Parse an XML file to a tree and free it</synopsis>
+ <purpose>Demonstrate the use of xmlReadFile() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
+ <usage>parse1 test1.xml</usage>
+ <test>parse1 test1.xml</test>
+ <author>Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>Parsing</section>
+ <includes>
+ <include><libxml/tree.h></include>
+ <include><libxml/parser.h></include>
+ </includes>
+ <uses>
+ <function line='54' file='xmlmemory' name='xmlMemoryDump'/>
+ <function line='50' file='parser' name='xmlCleanupParser'/>
+ <macro line='45' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+ <typedef line='24' file='tree' name='xmlDocPtr'/>
+ <function line='31' file='tree' name='xmlFreeDoc'/>
+ <function line='26' file='parser' name='xmlReadFile'/>
+ </uses>
+ </example>
+ <example filename='parse2.c'>
+ <synopsis>Parse and validate an XML file to a tree and free the result</synopsis>
+ <purpose>Create a parser context for an XML file, then parse and validate the file, creating a tree, check the validation result and xmlFreeDoc() to free the resulting tree.</purpose>
+ <usage>parse2 test2.xml</usage>
+ <test>parse2 test2.xml</test>
+ <author>Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>Parsing</section>
+ <includes>
+ <include><libxml/tree.h></include>
+ <include><libxml/parser.h></include>
+ </includes>
+ <uses>
+ <function line='47' file='parser' name='xmlFreeParserCtxt'/>
+ <enum line='35' file='parser' name='XML_PARSE_DTDVALID'/>
+ <function line='29' file='parser' name='xmlNewParserCtxt'/>
+ <typedef line='25' file='tree' name='xmlParserCtxtPtr'/>
+ <function line='35' file='parser' name='xmlCtxtReadFile'/>
+ <function line='66' file='parser' name='xmlCleanupParser'/>
+ <macro line='61' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+ <function line='44' file='tree' name='xmlFreeDoc'/>
+ <typedef line='26' file='tree' name='xmlDocPtr'/>
+ <function line='70' file='xmlmemory' name='xmlMemoryDump'/>
+ </uses>
+ </example>
+ <example filename='parse3.c'>
+ <synopsis>Parse an XML document in memory to a tree and free it</synopsis>
+ <purpose>Demonstrate the use of xmlReadMemory() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
+ <usage>parse3</usage>
+ <test>parse3</test>
+ <author>Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>Parsing</section>
+ <includes>
+ <include><libxml/tree.h></include>
+ <include><libxml/parser.h></include>
+ </includes>
+ <uses>
+ <function line='33' file='parser' name='xmlReadMemory'/>
+ <function line='58' file='xmlmemory' name='xmlMemoryDump'/>
+ <function line='54' file='parser' name='xmlCleanupParser'/>
+ <macro line='49' file='xmlversion' name='LIBXML_TEST_VERSION'/>
+ <function line='38' file='tree' name='xmlFreeDoc'/>
+ <typedef line='27' file='tree' name='xmlDocPtr'/>
+ </uses>
+ </example>
<example filename='parse4.c'>
<synopsis>Parse an XML document chunk by chunk to a tree and free it</synopsis>
<purpose>Demonstrate the use of xmlCreatePushParserCtxt() and xmlParseChunk() to read an XML file progressively into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
@@ -168,58 +139,6 @@
<typedef line='47' file='tree' name='xmlDocPtr'/>
</uses>
</example>
- <example filename='xpath2.c'>
- <synopsis>Load a document, locate subelements with XPath, modify said elements and save the resulting document.</synopsis>
- <purpose>Shows how to make a full round-trip from a load/edit/save</purpose>
- <usage>xpath2 <xml-file> <xpath-expr> <new-value></usage>
- <test>xpath2 test3.xml '//discarded' discarded > xpath2.tmp && diff xpath2.tmp $(srcdir)/xpath2.res</test>
- <author>Aleksey Sanin and Daniel Veillard</author>
- <copy>see Copyright for the status of this software. </copy>
- <section>XPath</section>
- <includes>
- <include><libxml/parser.h></include>
- <include><libxml/xpath.h></include>
- <include><libxml/xpathInternals.h></include>
- <include><libxml/tree.h></include>
- </includes>
- <uses>
- <function line='162' file='tree' name='xmlNodeSetContent'/>
- <function line='127' file='tree' name='xmlDocDump'/>
- <typedef line='88' file='xpath' name='xmlXPathObjectPtr'/>
- <function line='110' file='xpath' name='xmlXPathEvalExpression'/>
- <function line='95' file='parser' name='xmlParseFile'/>
- <function line='123' file='xpath' name='xmlXPathFreeObject'/>
- <function line='102' file='xpath' name='xmlXPathNewContext'/>
- <typedef line='87' file='xpath' name='xmlXPathContextPtr'/>
- <function line='124' file='xpath' name='xmlXPathFreeContext'/>
- <function line='41' file='parser' name='xmlInitParser'/>
- <function line='131' file='tree' name='xmlFreeDoc'/>
- <enum line='180' file='tree' name='XML_NAMESPACE_DECL'/>
- <typedef line='86' file='tree' name='xmlDocPtr'/>
- </uses>
- </example>
- <example filename='io2.c'>
- <synopsis>Output to char buffer</synopsis>
- <purpose>Demonstrate the use of xmlDocDumpMemory to output document to a character buffer</purpose>
- <usage>io2</usage>
- <test>io2 > io2.tmp && diff io2.tmp $(srcdir)/io2.res</test>
- <author>John Fleck</author>
- <copy>see Copyright for the status of this software. </copy>
- <section>InputOutput</section>
- <includes>
- <include><libxml/parser.h></include>
- </includes>
- <uses>
- <function line='29' file='tree' name='xmlNodeSetContent'/>
- <function line='36' file='tree' name='xmlDocDumpFormatMemory'/>
- <variable line='42' file='globals' name='xmlFree'/>
- <function line='30' file='tree' name='xmlDocSetRootElement'/>
- <typedef line='20' file='tree' name='xmlDocPtr'/>
- <typedef line='19' file='tree' name='xmlNodePtr'/>
- <function line='27' file='tree' name='xmlNewDoc'/>
- <function line='28' file='tree' name='xmlNewNode'/>
- </uses>
- </example>
<example filename='reader1.c'>
<synopsis>Parse an XML file with an xmlReader</synopsis>
<purpose>Demonstrate the use of xmlReaderForFile() to parse an XML file and dump the informations about the nodes found in the process. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
@@ -233,11 +152,14 @@
</includes>
<uses>
<function line='44' file='xmlstring' name='xmlStrlen'/>
+ <function line='94' file='parser' name='xmlCleanupParser'/>
<function line='37' file='xmlreader' name='xmlTextReaderNodeType'/>
<typedef line='59' file='xmlreader' name='xmlTextReaderPtr'/>
+ <function line='98' file='xmlmemory' name='xmlMemoryDump'/>
<function line='33' file='xmlreader' name='xmlTextReaderConstValue'/>
<function line='36' file='xmlreader' name='xmlTextReaderDepth'/>
<function line='69' file='xmlreader' name='xmlFreeTextReader'/>
+ <macro line='89' file='xmlversion' name='LIBXML_TEST_VERSION'/>
<function line='29' file='xmlreader' name='xmlTextReaderConstName'/>
<function line='40' file='xmlreader' name='xmlTextReaderHasValue'/>
<function line='67' file='xmlreader' name='xmlTextReaderRead'/>
@@ -245,22 +167,33 @@
<function line='62' file='xmlreader' name='xmlReaderForFile'/>
</uses>
</example>
- <example filename='tree1.c'>
- <synopsis>Navigates a tree to print element names</synopsis>
- <purpose>Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order.</purpose>
- <usage>tree1 filename_or_URL</usage>
- <test>tree1 test2.xml > tree1.tmp && diff tree1.tmp $(srcdir)/tree1.res</test>
- <author>Dodji Seketeli</author>
+ <example filename='reader2.c'>
+ <synopsis>Parse and validate an XML file with an xmlReader</synopsis>
+ <purpose>Demonstrate the use of xmlReaderForFile() to parse an XML file validating the content in the process and activating options like entities substitution, and DTD attributes defaulting. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
+ <usage>reader2 <valid_xml_filename></usage>
+ <test>reader2 test2.xml > reader1.tmp && diff reader1.tmp $(srcdir)/reader1.res</test>
+ <author>Daniel Veillard</author>
<copy>see Copyright for the status of this software. </copy>
- <section>Tree</section>
+ <section>xmlReader</section>
<includes>
- <include><libxml/tree.h></include>
- <include><libxml/parser.h></include>
+ <include><libxml/xmlreader.h></include>
</includes>
<uses>
- <enum line='36' file='tree' name='XML_ELEMENT_NODE'/>
- <function line='74' file='tree' name='xmlDocGetRootElement'/>
- <function line='67' file='parser' name='xmlReadFile'/>
+ <function line='45' file='xmlstring' name='xmlStrlen'/>
+ <function line='38' file='xmlreader' name='xmlTextReaderNodeType'/>
+ <typedef line='60' file='xmlreader' name='xmlTextReaderPtr'/>
+ <function line='34' file='xmlreader' name='xmlTextReaderConstValue'/>
+ <enum line='70' file='parser' name='XML_PARSE_NOENT'/>
+ <function line='37' file='xmlreader' name='xmlTextReaderDepth'/>
+ <enum line='71' file='parser' name='XML_PARSE_DTDVALID'/>
+ <enum line='69' file='parser' name='XML_PARSE_DTDATTR'/>
+ <function line='84' file='xmlreader' name='xmlFreeTextReader'/>
+ <function line='30' file='xmlreader' name='xmlTextReaderConstName'/>
+ <function line='41' file='xmlreader' name='xmlTextReaderHasValue'/>
+ <function line='76' file='xmlreader' name='xmlTextReaderRead'/>
+ <function line='40' file='xmlreader' name='xmlTextReaderIsEmptyElement'/>
+ <function line='68' file='xmlreader' name='xmlReaderForFile'/>
+ <function line='81' file='xmlreader' name='xmlTextReaderIsValid'/>
</uses>
</example>
<example filename='reader3.c'>
@@ -284,42 +217,6 @@
<function line='38' file='xmlreader' name='xmlReaderForFile'/>
</uses>
</example>
- <example filename='parse2.c'>
- <synopsis>Parse and validate an XML file to a tree and free the result</synopsis>
- <purpose>Create a parser context for an XML file, then parse and validate the file, creating a tree, check the validation result and xmlFreeDoc() to free the resulting tree.</purpose>
- <usage>parse2 test2.xml</usage>
- <test>parse2 test2.xml</test>
- <author>Daniel Veillard</author>
- <copy>see Copyright for the status of this software. </copy>
- <section>Parsing</section>
- <includes>
- <include><libxml/tree.h></include>
- <include><libxml/parser.h></include>
- </includes>
- <uses>
- <function line='47' file='parser' name='xmlFreeParserCtxt'/>
- <enum line='35' file='parser' name='XML_PARSE_DTDVALID'/>
- <function line='29' file='parser' name='xmlNewParserCtxt'/>
- <typedef line='25' file='tree' name='xmlParserCtxtPtr'/>
- <function line='35' file='parser' name='xmlCtxtReadFile'/>
- </uses>
- </example>
- <example filename='parse1.c'>
- <synopsis>Parse an XML file to a tree and free it</synopsis>
- <purpose>Demonstrate the use of xmlReadFile() to read an XML file into a tree and and xmlFreeDoc() to free the resulting tree</purpose>
- <usage>parse1 test1.xml</usage>
- <test>parse1 test1.xml</test>
- <author>Daniel Veillard</author>
- <copy>see Copyright for the status of this software. </copy>
- <section>Parsing</section>
- <includes>
- <include><libxml/tree.h></include>
- <include><libxml/parser.h></include>
- </includes>
- <uses>
- <function line='26' file='parser' name='xmlReadFile'/>
- </uses>
- </example>
<example filename='reader4.c'>
<synopsis>Parse multiple XML files reusing an xmlReader</synopsis>
<purpose>Demonstrate the use of xmlReaderForFile() and xmlReaderNewFile to parse XML files while reusing the reader object and parser context. (Note that the XMLReader functions require libxml2 version later than 2.6.)</purpose>
@@ -384,21 +281,124 @@
<function line='885' file='tree' name='xmlNewDoc'/>
</uses>
</example>
+ <example filename='tree1.c'>
+ <synopsis>Navigates a tree to print element names</synopsis>
+ <purpose>Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order.</purpose>
+ <usage>tree1 filename_or_URL</usage>
+ <test>tree1 test2.xml > tree1.tmp && diff tree1.tmp $(srcdir)/tree1.res</test>
+ <author>Dodji Seketeli</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>Tree</section>
+ <includes>
+ <include><libxml/tree.h></include>
+ <include><libxml/parser.h></include>
+ </includes>
+ <uses>
+ <enum line='36' file='tree' name='XML_ELEMENT_NODE'/>
+ <function line='74' file='tree' name='xmlDocGetRootElement'/>
+ <function line='67' file='parser' name='xmlReadFile'/>
+ </uses>
+ </example>
+ <example filename='tree2.c'>
+ <synopsis>Creates a tree</synopsis>
+ <purpose>Shows how to create document, nodes and dump it to stdout or file.</purpose>
+ <usage>tree2 <filename> -Default output: stdout</usage>
+ <test>tree2 > tree2.tmp && diff tree2.tmp $(srcdir)/tree2.res</test>
+ <author>Lucas Brasilino <brasilino@recife.pe.gov.br></author>
+ <copy>see Copyright for the status of this software </copy>
+ <section>Tree</section>
+ <includes>
+ <include><libxml/tree.h></include>
+ <include><libxml/parser.h></include>
+ </includes>
+ <uses>
+ <function line='74' file='tree' name='xmlNewText'/>
+ <function line='95' file='tree' name='xmlSaveFormatFileEnc'/>
+ <function line='77' file='tree' name='xmlAddChild'/>
+ <function line='40' file='tree' name='xmlDocSetRootElement'/>
+ <function line='88' file='tree' name='xmlNewProp'/>
+ <function line='87' file='tree' name='xmlNewChild'/>
+ <function line='73' file='tree' name='xmlNewNode'/>
+ <function line='45' file='tree' name='xmlCreateIntSubset'/>
+ <function line='38' file='tree' name='xmlNewDoc'/>
+ </uses>
+ </example>
+ <example filename='xpath1.c'>
+ <synopsis>Evaluate XPath expression and prints result node set.</synopsis>
+ <purpose>Shows how to evaluate XPath expression and register known namespaces in XPath context.</purpose>
+ <usage>xpath1 <xml-file> <xpath-expr> [<known-ns-list>]</usage>
+ <test>xpath1 test3.xml '//child2' > xpath1.tmp && diff xpath1.tmp $(srcdir)/xpath1.res</test>
+ <author>Aleksey Sanin</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>XPath</section>
+ <includes>
+ <include><libxml/parser.h></include>
+ <include><libxml/xpath.h></include>
+ <include><libxml/xpathInternals.h></include>
+ <include><libxml/tree.h></include>
+ </includes>
+ <uses>
+ <enum line='229' file='tree' name='XML_ELEMENT_NODE'/>
+ <typedef line='88' file='xpath' name='xmlXPathObjectPtr'/>
+ <function line='117' file='xpath' name='xmlXPathEvalExpression'/>
+ <function line='94' file='parser' name='xmlParseFile'/>
+ <function line='186' file='xpathInternals' name='xmlXPathRegisterNs'/>
+ <function line='129' file='xpath' name='xmlXPathFreeObject'/>
+ <variable line='193' file='globals' name='xmlFree'/>
+ <typedef line='218' file='tree' name='xmlNsPtr'/>
+ <function line='101' file='xpath' name='xmlXPathNewContext'/>
+ <typedef line='87' file='xpath' name='xmlXPathContextPtr'/>
+ <function line='130' file='xpath' name='xmlXPathFreeContext'/>
+ <function line='39' file='parser' name='xmlInitParser'/>
+ <function line='156' file='xmlstring' name='xmlStrdup'/>
+ <function line='180' file='xmlstring' name='xmlStrchr'/>
+ <typedef line='206' file='tree' name='xmlNodePtr'/>
+ <enum line='217' file='tree' name='XML_NAMESPACE_DECL'/>
+ </uses>
+ </example>
+ <example filename='xpath2.c'>
+ <synopsis>Load a document, locate subelements with XPath, modify said elements and save the resulting document.</synopsis>
+ <purpose>Shows how to make a full round-trip from a load/edit/save</purpose>
+ <usage>xpath2 <xml-file> <xpath-expr> <new-value></usage>
+ <test>xpath2 test3.xml '//discarded' discarded > xpath2.tmp && diff xpath2.tmp $(srcdir)/xpath2.res</test>
+ <author>Aleksey Sanin and Daniel Veillard</author>
+ <copy>see Copyright for the status of this software. </copy>
+ <section>XPath</section>
+ <includes>
+ <include><libxml/parser.h></include>
+ <include><libxml/xpath.h></include>
+ <include><libxml/xpathInternals.h></include>
+ <include><libxml/tree.h></include>
+ </includes>
+ <uses>
+ <function line='162' file='tree' name='xmlNodeSetContent'/>
+ <function line='127' file='tree' name='xmlDocDump'/>
+ <typedef line='88' file='xpath' name='xmlXPathObjectPtr'/>
+ <function line='110' file='xpath' name='xmlXPathEvalExpression'/>
+ <function line='95' file='parser' name='xmlParseFile'/>
+ <function line='123' file='xpath' name='xmlXPathFreeObject'/>
+ <function line='102' file='xpath' name='xmlXPathNewContext'/>
+ <typedef line='87' file='xpath' name='xmlXPathContextPtr'/>
+ <function line='124' file='xpath' name='xmlXPathFreeContext'/>
+ <function line='41' file='parser' name='xmlInitParser'/>
+ <enum line='180' file='tree' name='XML_NAMESPACE_DECL'/>
+ </uses>
+ </example>
<symbols>
<symbol name='LIBXML_TEST_VERSION'>
- <ref filename='xpath1.c'/>
- <ref filename='parse3.c'/>
- <ref filename='reader2.c'/>
- <ref filename='tree2.c'/>
<ref filename='io1.c'/>
+ <ref filename='parse1.c'/>
+ <ref filename='parse2.c'/>
+ <ref filename='parse3.c'/>
<ref filename='parse4.c'/>
+ <ref filename='reader1.c'/>
</symbol>
<symbol name='XML_DEFAULT_VERSION'>
<ref filename='testWriter.c'/>
</symbol>
<symbol name='XML_ELEMENT_NODE'>
- <ref filename='xpath1.c'/>
<ref filename='tree1.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='XML_NAMESPACE_DECL'>
<ref filename='xpath1.c'/>
@@ -408,8 +408,8 @@
<ref filename='reader2.c'/>
</symbol>
<symbol name='XML_PARSE_DTDVALID'>
- <ref filename='reader2.c'/>
<ref filename='parse2.c'/>
+ <ref filename='reader2.c'/>
</symbol>
<symbol name='XML_PARSE_NOENT'>
<ref filename='reader2.c'/>
@@ -430,12 +430,12 @@
<ref filename='testWriter.c'/>
</symbol>
<symbol name='xmlCleanupParser'>
- <ref filename='xpath1.c'/>
- <ref filename='parse3.c'/>
- <ref filename='reader2.c'/>
- <ref filename='tree2.c'/>
<ref filename='io1.c'/>
+ <ref filename='parse1.c'/>
+ <ref filename='parse2.c'/>
+ <ref filename='parse3.c'/>
<ref filename='parse4.c'/>
+ <ref filename='reader1.c'/>
</symbol>
<symbol name='xmlCreateIntSubset'>
<ref filename='tree2.c'/>
@@ -448,8 +448,8 @@
</symbol>
<symbol name='xmlDocDump'>
<ref filename='io1.c'/>
- <ref filename='xpath2.c'/>
<ref filename='reader3.c'/>
+ <ref filename='xpath2.c'/>
</symbol>
<symbol name='xmlDocDumpFormatMemory'>
<ref filename='io2.c'/>
@@ -458,41 +458,41 @@
<ref filename='tree1.c'/>
</symbol>
<symbol name='xmlDocPtr'>
- <ref filename='xpath1.c'/>
- <ref filename='parse3.c'/>
<ref filename='io1.c'/>
- <ref filename='parse4.c'/>
- <ref filename='xpath2.c'/>
<ref filename='io2.c'/>
+ <ref filename='parse1.c'/>
+ <ref filename='parse2.c'/>
+ <ref filename='parse3.c'/>
+ <ref filename='parse4.c'/>
</symbol>
<symbol name='xmlDocSetRootElement'>
- <ref filename='tree2.c'/>
<ref filename='io2.c'/>
<ref filename='testWriter.c'/>
+ <ref filename='tree2.c'/>
</symbol>
<symbol name='xmlFindCharEncodingHandler'>
<ref filename='testWriter.c'/>
</symbol>
<symbol name='xmlFree'>
- <ref filename='xpath1.c'/>
<ref filename='io2.c'/>
<ref filename='testWriter.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='xmlFreeDoc'>
- <ref filename='xpath1.c'/>
- <ref filename='parse3.c'/>
- <ref filename='tree2.c'/>
<ref filename='io1.c'/>
+ <ref filename='io2.c'/>
+ <ref filename='parse1.c'/>
+ <ref filename='parse2.c'/>
+ <ref filename='parse3.c'/>
<ref filename='parse4.c'/>
- <ref filename='xpath2.c'/>
</symbol>
<symbol name='xmlFreeParserCtxt'>
- <ref filename='parse4.c'/>
<ref filename='parse2.c'/>
+ <ref filename='parse4.c'/>
</symbol>
<symbol name='xmlFreeTextReader'>
- <ref filename='reader2.c'/>
<ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
<ref filename='reader3.c'/>
<ref filename='reader4.c'/>
</symbol>
@@ -507,27 +507,27 @@
<ref filename='testWriter.c'/>
</symbol>
<symbol name='xmlMemoryDump'>
- <ref filename='xpath1.c'/>
- <ref filename='parse3.c'/>
- <ref filename='reader2.c'/>
- <ref filename='tree2.c'/>
<ref filename='io1.c'/>
+ <ref filename='parse1.c'/>
+ <ref filename='parse2.c'/>
+ <ref filename='parse3.c'/>
<ref filename='parse4.c'/>
+ <ref filename='reader1.c'/>
</symbol>
<symbol name='xmlNewChild'>
<ref filename='tree2.c'/>
</symbol>
<symbol name='xmlNewDoc'>
- <ref filename='tree2.c'/>
<ref filename='io2.c'/>
<ref filename='testWriter.c'/>
+ <ref filename='tree2.c'/>
</symbol>
<symbol name='xmlNewDocNode'>
<ref filename='testWriter.c'/>
</symbol>
<symbol name='xmlNewNode'>
- <ref filename='tree2.c'/>
<ref filename='io2.c'/>
+ <ref filename='tree2.c'/>
</symbol>
<symbol name='xmlNewParserCtxt'>
<ref filename='parse2.c'/>
@@ -551,13 +551,13 @@
<ref filename='testWriter.c'/>
</symbol>
<symbol name='xmlNodePtr'>
- <ref filename='xpath1.c'/>
<ref filename='io2.c'/>
<ref filename='testWriter.c'/>
+ <ref filename='xpath1.c'/>
</symbol>
<symbol name='xmlNodeSetContent'>
- <ref filename='xpath2.c'/>
<ref filename='io2.c'/>
+ <ref filename='xpath2.c'/>
</symbol>
<symbol name='xmlNsPtr'>
<ref filename='xpath1.c'/>
@@ -570,20 +570,20 @@
<ref filename='xpath2.c'/>
</symbol>
<symbol name='xmlParserCtxtPtr'>
- <ref filename='parse4.c'/>
<ref filename='parse2.c'/>
+ <ref filename='parse4.c'/>
</symbol>
<symbol name='xmlReadFile'>
- <ref filename='tree1.c'/>
<ref filename='parse1.c'/>
+ <ref filename='tree1.c'/>
</symbol>
<symbol name='xmlReadMemory'>
- <ref filename='parse3.c'/>
<ref filename='io1.c'/>
+ <ref filename='parse3.c'/>
</symbol>
<symbol name='xmlReaderForFile'>
- <ref filename='reader2.c'/>
<ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
<ref filename='reader3.c'/>
<ref filename='reader4.c'/>
</symbol>
@@ -609,52 +609,52 @@
<ref filename='xpath1.c'/>
</symbol>
<symbol name='xmlStrlen'>
- <ref filename='reader2.c'/>
<ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
</symbol>
<symbol name='xmlTextReaderConstName'>
- <ref filename='reader2.c'/>
<ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
</symbol>
<symbol name='xmlTextReaderConstValue'>
- <ref filename='reader2.c'/>
<ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
</symbol>
<symbol name='xmlTextReaderCurrentDoc'>
<ref filename='reader3.c'/>
<ref filename='reader4.c'/>
</symbol>
<symbol name='xmlTextReaderDepth'>
- <ref filename='reader2.c'/>
<ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
</symbol>
<symbol name='xmlTextReaderHasValue'>
- <ref filename='reader2.c'/>
<ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
</symbol>
<symbol name='xmlTextReaderIsEmptyElement'>
- <ref filename='reader2.c'/>
<ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
</symbol>
<symbol name='xmlTextReaderIsValid'>
<ref filename='reader2.c'/>
</symbol>
<symbol name='xmlTextReaderNodeType'>
- <ref filename='reader2.c'/>
<ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
</symbol>
<symbol name='xmlTextReaderPreservePattern'>
<ref filename='reader3.c'/>
</symbol>
<symbol name='xmlTextReaderPtr'>
- <ref filename='reader2.c'/>
<ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
<ref filename='reader3.c'/>
<ref filename='reader4.c'/>
</symbol>
<symbol name='xmlTextReaderRead'>
- <ref filename='reader2.c'/>
<ref filename='reader1.c'/>
+ <ref filename='reader2.c'/>
<ref filename='reader3.c'/>
<ref filename='reader4.c'/>
</symbol>
@@ -725,22 +725,22 @@
<example filename='io2.c'/>
</section>
<section name='Parsing'>
+ <example filename='parse1.c'/>
+ <example filename='parse2.c'/>
<example filename='parse3.c'/>
<example filename='parse4.c'/>
- <example filename='parse2.c'/>
- <example filename='parse1.c'/>
</section>
<section name='Tree'>
- <example filename='tree2.c'/>
<example filename='tree1.c'/>
+ <example filename='tree2.c'/>
</section>
<section name='XPath'>
<example filename='xpath1.c'/>
<example filename='xpath2.c'/>
</section>
<section name='xmlReader'>
- <example filename='reader2.c'/>
<example filename='reader1.c'/>
+ <example filename='reader2.c'/>
<example filename='reader3.c'/>
<example filename='reader4.c'/>
</section>
diff --git a/doc/examples/index.py b/doc/examples/index.py
index 7e0efaa..ac44ec5 100755
--- a/doc/examples/index.py
+++ b/doc/examples/index.py
@@ -235,7 +235,7 @@
rebuild: examples.xml index.html
.PHONY: rebuild
-examples.xml: index.py $(noinst_PROGRAMS:=.c)
+examples.xml: index.py $(check_PROGRAMS:=.c)
cd $(srcdir) && $(PYTHON) index.py
$(MAKE) Makefile
@@ -259,20 +259,21 @@
for extra in extras:
EXTRA_DIST = EXTRA_DIST + " \\\n\t" + extra
Makefile = Makefile + "EXTRA_DIST =%s\n\n" % (EXTRA_DIST)
- noinst_PROGRAMS=""
+ check_PROGRAMS=""
for example in examples:
- noinst_PROGRAMS = noinst_PROGRAMS + " \\\n\t" + example
- Makefile = Makefile + "noinst_PROGRAMS =%s\n\n" % (noinst_PROGRAMS)
+ check_PROGRAMS = check_PROGRAMS + " \\\n\t" + example
+ Makefile = Makefile + "check_PROGRAMS =%s\n\n" % (check_PROGRAMS)
for example in examples:
Makefile = Makefile + "%s_SOURCES = %s.c\n\n" % (example, example)
Makefile = Makefile + "valgrind: \n\t$(MAKE) CHECKER='valgrind' tests\n\n"
- Makefile = Makefile + "tests: $(noinst_PROGRAMS)\n"
- Makefile = Makefile + "\ttest -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml .\n"
+ Makefile = Makefile + "tests: $(check_PROGRAMS)\n"
+ Makefile = Makefile + "\t@test -f Makefile.am || test -f test1.xml || $(LN_S) $(srcdir)/test?.xml .\n"
Makefile = Makefile + "\t@(echo '## examples regression tests')\n"
Makefile = Makefile + "\t@(echo > .memdump)\n"
for test in tests:
- Makefile = Makefile + "\t$(CHECKER) %s\n" % (test)
+ Makefile = Makefile + "\t@$(CHECKER) %s\n" % (test)
Makefile = Makefile + '\t@grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0" ; exit 0\n'
+ Makefile = Makefile + "\t@rm *.tmp\n"
try:
old = open("Makefile.am", "r").read()
if old != Makefile:
@@ -302,7 +303,7 @@
output = open("examples.xml", "w")
output.write("<examples>\n")
- for file in glob.glob('*.c'):
+ for file in sorted(glob.glob('*.c')):
parse(file, output)
examples.append(file[:-2])
diff --git a/doc/examples/io1.res b/doc/examples/io1.res
index adf65c7..4a4c036 100644
--- a/doc/examples/io1.res
+++ b/doc/examples/io1.res
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
<document xmlns:xi="http://www.w3.org/2003/XInclude">
<p>List of people:</p>
- <list xml:base="sql://select_name_from_people"><people>a</people><people>b</people></list>
+ <list><people>a</people><people>b</people></list>
</document>
diff --git a/doc/examples/testWriter.c b/doc/examples/testWriter.c
index f662f76..82e8d3a 100644
--- a/doc/examples/testWriter.c
+++ b/doc/examples/testWriter.c
@@ -102,7 +102,7 @@
* Please observe, that the input to the xmlTextWriter functions
* HAS to be in UTF-8, even if the output XML is encoded
* in iso-8859-1 */
- tmp = ConvertInput("This is a comment with special chars: <äöü>",
+ tmp = ConvertInput("This is a comment with special chars: <\xE4\xF6\xFC>",
MY_ENCODING);
rc = xmlTextWriterWriteComment(writer, tmp);
if (rc < 0) {
@@ -139,7 +139,7 @@
}
/* Write a comment as child of ORDER */
- tmp = ConvertInput("<äöü>", MY_ENCODING);
+ tmp = ConvertInput("<\xE4\xF6\xFC>", MY_ENCODING);
rc = xmlTextWriterWriteFormatComment(writer,
"This is another comment with special chars: %s",
tmp);
@@ -177,7 +177,7 @@
}
/* Write an element named "NAME_1" as child of HEADER. */
- tmp = ConvertInput("Müller", MY_ENCODING);
+ tmp = ConvertInput("M\xFCller", MY_ENCODING);
rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_1", tmp);
if (rc < 0) {
printf
@@ -187,7 +187,7 @@
if (tmp != NULL) xmlFree(tmp);
/* Write an element named "NAME_2" as child of HEADER. */
- tmp = ConvertInput("Jörg", MY_ENCODING);
+ tmp = ConvertInput("J\xF6rg", MY_ENCODING);
rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_2", tmp);
if (rc < 0) {
printf
@@ -381,7 +381,7 @@
* Please observe, that the input to the xmlTextWriter functions
* HAS to be in UTF-8, even if the output XML is encoded
* in iso-8859-1 */
- tmp = ConvertInput("This is a comment with special chars: <äöü>",
+ tmp = ConvertInput("This is a comment with special chars: <\xE4\xF6\xFC>",
MY_ENCODING);
rc = xmlTextWriterWriteComment(writer, tmp);
if (rc < 0) {
@@ -418,7 +418,7 @@
}
/* Write a comment as child of ORDER */
- tmp = ConvertInput("<äöü>", MY_ENCODING);
+ tmp = ConvertInput("<\xE4\xF6\xFC>", MY_ENCODING);
rc = xmlTextWriterWriteFormatComment(writer,
"This is another comment with special chars: %s",
tmp);
@@ -456,7 +456,7 @@
}
/* Write an element named "NAME_1" as child of HEADER. */
- tmp = ConvertInput("Müller", MY_ENCODING);
+ tmp = ConvertInput("M\xFCller", MY_ENCODING);
rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_1", tmp);
if (rc < 0) {
printf
@@ -466,7 +466,7 @@
if (tmp != NULL) xmlFree(tmp);
/* Write an element named "NAME_2" as child of HEADER. */
- tmp = ConvertInput("Jörg", MY_ENCODING);
+ tmp = ConvertInput("J\xF6rg", MY_ENCODING);
rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_2", tmp);
if (rc < 0) {
@@ -656,7 +656,7 @@
* Please observe, that the input to the xmlTextWriter functions
* HAS to be in UTF-8, even if the output XML is encoded
* in iso-8859-1 */
- tmp = ConvertInput("This is a comment with special chars: <äöü>",
+ tmp = ConvertInput("This is a comment with special chars: <\xE4\xF6\xFC>",
MY_ENCODING);
rc = xmlTextWriterWriteComment(writer, tmp);
if (rc < 0) {
@@ -689,7 +689,7 @@
}
/* Write a comment as child of ORDER */
- tmp = ConvertInput("<äöü>", MY_ENCODING);
+ tmp = ConvertInput("<\xE4\xF6\xFC>", MY_ENCODING);
rc = xmlTextWriterWriteFormatComment(writer,
"This is another comment with special chars: %s",
tmp);
@@ -726,7 +726,7 @@
}
/* Write an element named "NAME_1" as child of HEADER. */
- tmp = ConvertInput("Müller", MY_ENCODING);
+ tmp = ConvertInput("M\xFCller", MY_ENCODING);
rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_1", tmp);
if (rc < 0) {
printf("testXmlwriterDoc: Error at xmlTextWriterWriteElement\n");
@@ -735,7 +735,7 @@
if (tmp != NULL) xmlFree(tmp);
/* Write an element named "NAME_2" as child of HEADER. */
- tmp = ConvertInput("Jörg", MY_ENCODING);
+ tmp = ConvertInput("J\xF6rg", MY_ENCODING);
rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_2", tmp);
if (rc < 0) {
printf("testXmlwriterDoc: Error at xmlTextWriterWriteElement\n");
@@ -920,7 +920,7 @@
* Please observe, that the input to the xmlTextWriter functions
* HAS to be in UTF-8, even if the output XML is encoded
* in iso-8859-1 */
- tmp = ConvertInput("This is a comment with special chars: <äöü>",
+ tmp = ConvertInput("This is a comment with special chars: <\xE4\xF6\xFC>",
MY_ENCODING);
rc = xmlTextWriterWriteComment(writer, tmp);
if (rc < 0) {
@@ -955,7 +955,7 @@
}
/* Write a comment as child of ORDER */
- tmp = ConvertInput("<äöü>", MY_ENCODING);
+ tmp = ConvertInput("<\xE4\xF6\xFC>", MY_ENCODING);
rc = xmlTextWriterWriteFormatComment(writer,
"This is another comment with special chars: %s",
tmp);
@@ -992,7 +992,7 @@
}
/* Write an element named "NAME_1" as child of HEADER. */
- tmp = ConvertInput("Müller", MY_ENCODING);
+ tmp = ConvertInput("M\xFCller", MY_ENCODING);
rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_1", tmp);
if (rc < 0) {
printf("testXmlwriterTree: Error at xmlTextWriterWriteElement\n");
@@ -1001,7 +1001,7 @@
if (tmp != NULL) xmlFree(tmp);
/* Write an element named "NAME_2" as child of HEADER. */
- tmp = ConvertInput("Jörg", MY_ENCODING);
+ tmp = ConvertInput("J\xF6rg", MY_ENCODING);
rc = xmlTextWriterWriteElement(writer, BAD_CAST "NAME_2", tmp);
if (rc < 0) {
printf("testXmlwriterTree: Error at xmlTextWriterWriteElement\n");
diff --git a/doc/examples/tree2.c b/doc/examples/tree2.c
index 1cd1abe..6548e29 100644
--- a/doc/examples/tree2.c
+++ b/doc/examples/tree2.c
@@ -27,7 +27,6 @@
{
xmlDocPtr doc = NULL; /* document pointer */
xmlNodePtr root_node = NULL, node = NULL, node1 = NULL;/* node pointers */
- xmlDtdPtr dtd = NULL; /* DTD pointer */
char buff[256];
int i, j;
@@ -43,7 +42,7 @@
/*
* Creates a DTD declaration. Isn't mandatory.
*/
- dtd = xmlCreateIntSubset(doc, BAD_CAST "root", NULL, BAD_CAST "tree2.dtd");
+ xmlCreateIntSubset(doc, BAD_CAST "root", NULL, BAD_CAST "tree2.dtd");
/*
* xmlNewChild() creates a new node, which is "attached" as child node
diff --git a/doc/html/book1.html b/doc/html/book1.html
index 1a58210..42d71a6 100644
--- a/doc/html/book1.html
+++ b/doc/html/book1.html
@@ -10,4 +10,4 @@
</style><style type="text/css">
div.deprecated pre.programlisting {border-style: double;border-color:red}
pre.programlisting {border-style: double;background: #EECFA1}
- </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionnary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
+ </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/index.html b/doc/html/index.html
index 1a58210..42d71a6 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -10,4 +10,4 @@
</style><style type="text/css">
div.deprecated pre.programlisting {border-style: double;border-color:red}
pre.programlisting {border-style: double;background: #EECFA1}
- </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionnary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
+ </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/libxml-HTMLparser.html b/doc/html/libxml-HTMLparser.html
index f5f77af..7d9d299 100644
--- a/doc/html/libxml-HTMLparser.html
+++ b/doc/html/libxml-HTMLparser.html
@@ -50,7 +50,7 @@
<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlStatus">htmlStatus</a> <a href="#htmlNodeStatus">htmlNodeStatus</a> (const <a href="libxml-HTMLparser.html#htmlNodePtr">htmlNodePtr</a> node, <br /> int legacy)</pre>
<pre class="programlisting">int <a href="#htmlParseCharRef">htmlParseCharRef</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)</pre>
<pre class="programlisting">int <a href="#htmlParseChunk">htmlParseChunk</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> const char * chunk, <br /> int size, <br /> int terminate)</pre>
-<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlParseDoc">htmlParseDoc</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlParseDoc">htmlParseDoc</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding)</pre>
<pre class="programlisting">int <a href="#htmlParseDocument">htmlParseDocument</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)</pre>
<pre class="programlisting">void <a href="#htmlParseElement">htmlParseElement</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)</pre>
<pre class="programlisting">const <a href="libxml-HTMLparser.html#htmlEntityDesc">htmlEntityDesc</a> * <a href="#htmlParseEntityRef">htmlParseEntityRef</a> (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** str)</pre>
@@ -60,7 +60,7 @@
<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlReadFile">htmlReadFile</a> (const char * filename, <br /> const char * encoding, <br /> int options)</pre>
<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlReadIO">htmlReadIO</a> (<a href="libxml-xmlIO.html#xmlInputReadCallback">xmlInputReadCallback</a> ioread, <br /> <a href="libxml-xmlIO.html#xmlInputCloseCallback">xmlInputCloseCallback</a> ioclose, <br /> void * ioctx, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlReadMemory">htmlReadMemory</a> (const char * buffer, <br /> int size, <br /> const char * URL, <br /> const char * encoding, <br /> int options)</pre>
-<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlSAXParseDoc">htmlSAXParseDoc</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding, <br /> <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br /> void * userData)</pre>
+<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlSAXParseDoc">htmlSAXParseDoc</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding, <br /> <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br /> void * userData)</pre>
<pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> <a href="#htmlSAXParseFile">htmlSAXParseFile</a> (const char * filename, <br /> const char * encoding, <br /> <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br /> void * userData)</pre>
<pre class="programlisting">const <a href="libxml-HTMLparser.html#htmlElemDesc">htmlElemDesc</a> * <a href="#htmlTagLookup">htmlTagLookup</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * tag)</pre>
<h2>Description</h2>
@@ -155,7 +155,7 @@
</pre><p>parse Reference declarations [66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value parsed (as an int)</td></tr></tbody></table></div><h3><a name="htmlParseChunk" id="htmlParseChunk"></a>Function: htmlParseChunk</h3><pre class="programlisting">int htmlParseChunk (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt, <br /> const char * chunk, <br /> int size, <br /> int terminate)<br />
</pre><p>Parse a Chunk of memory</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size in byte of the chunk</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i>:</span></td><td>last chunk indicator</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>zero if no error, the <a href="libxml-xmlerror.html#xmlParserErrors">xmlParserErrors</a> otherwise.</td></tr></tbody></table></div><h3><a name="htmlParseDoc" id="htmlParseDoc"></a>Function: htmlParseDoc</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlParseDoc (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an HTML parser context</td></tr><tr><td><span class="term"><i><tt>chunk</tt></i>:</span></td><td>an char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size in byte of the chunk</td></tr><tr><td><span class="term"><i><tt>terminate</tt></i>:</span></td><td>last chunk indicator</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>zero if no error, the <a href="libxml-xmlerror.html#xmlParserErrors">xmlParserErrors</a> otherwise.</td></tr></tbody></table></div><h3><a name="htmlParseDoc" id="htmlParseDoc"></a>Function: htmlParseDoc</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlParseDoc (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding)<br />
</pre><p>parse an HTML in-memory document and build a tree.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlParseDocument" id="htmlParseDocument"></a>Function: htmlParseDocument</h3><pre class="programlisting">int htmlParseDocument (<a href="libxml-HTMLparser.html#htmlParserCtxtPtr">htmlParserCtxtPtr</a> ctxt)<br />
</pre><p>parse an HTML document (and build a tree if using the standard SAX interface).</p>
@@ -175,7 +175,7 @@
</pre><p>parse an HTML document from I/O functions and source and build a tree.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ioread</tt></i>:</span></td><td>an I/O read function</td></tr><tr><td><span class="term"><i><tt>ioclose</tt></i>:</span></td><td>an I/O close function</td></tr><tr><td><span class="term"><i><tt>ioctx</tt></i>:</span></td><td>an I/O handler</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlReadMemory" id="htmlReadMemory"></a>Function: htmlReadMemory</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlReadMemory (const char * buffer, <br /> int size, <br /> const char * URL, <br /> const char * encoding, <br /> int options)<br />
</pre><p>parse an XML in-memory document and build a tree.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlSAXParseDoc" id="htmlSAXParseDoc"></a>Function: htmlSAXParseDoc</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlSAXParseDoc (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding, <br /> <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br /> void * userData)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buffer</tt></i>:</span></td><td>a pointer to a char array</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the array</td></tr><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>the base URL to use for the document</td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>the document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>a combination of htmlParserOption(s)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree</td></tr></tbody></table></div><h3><a name="htmlSAXParseDoc" id="htmlSAXParseDoc"></a>Function: htmlSAXParseDoc</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlSAXParseDoc (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const char * encoding, <br /> <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br /> void * userData)<br />
</pre><p>Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks to handle parse events. If sax is NULL, fallback to the default DOM behavior and return a tree.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>a pointer to an array of <a href="libxml-xmlstring.html#xmlChar">xmlChar</a></td></tr><tr><td><span class="term"><i><tt>encoding</tt></i>:</span></td><td>a free form C string describing the HTML document encoding, or NULL</td></tr><tr><td><span class="term"><i><tt>sax</tt></i>:</span></td><td>the SAX handler block</td></tr><tr><td><span class="term"><i><tt>userData</tt></i>:</span></td><td>if using SAX, this pointer will be provided on callbacks.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the resulting document tree unless SAX is NULL or the document is not well formed.</td></tr></tbody></table></div><h3><a name="htmlSAXParseFile" id="htmlSAXParseFile"></a>Function: htmlSAXParseFile</h3><pre class="programlisting"><a href="libxml-HTMLparser.html#htmlDocPtr">htmlDocPtr</a> htmlSAXParseFile (const char * filename, <br /> const char * encoding, <br /> <a href="libxml-HTMLparser.html#htmlSAXHandlerPtr">htmlSAXHandlerPtr</a> sax, <br /> void * userData)<br />
</pre><p>parse an HTML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time. It use the given SAX function block to handle the parsing callback. If sax is NULL, fallback to the default DOM tree building routines.</p>
diff --git a/doc/html/libxml-dict.html b/doc/html/libxml-dict.html
index bdd21f4..0854d29 100644
--- a/doc/html/libxml-dict.html
+++ b/doc/html/libxml-dict.html
@@ -33,26 +33,26 @@
</pre><p>Free the dictionary mutex. Do not call unless sure the library is not in use anymore !</p>
<h3><a name="xmlDictCreate" id="xmlDictCreate"></a>Function: xmlDictCreate</h3><pre class="programlisting"><a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> xmlDictCreate (void)<br />
</pre><p>Create a new dictionary</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionnary, or NULL if an error occured.</td></tr></tbody></table></div><h3><a name="xmlDictCreateSub" id="xmlDictCreateSub"></a>Function: xmlDictCreateSub</h3><pre class="programlisting"><a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> xmlDictCreateSub (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> sub)<br />
-</pre><p>Create a new dictionary, inheriting strings from the read-only dictionnary @sub. On lookup, strings are first searched in the new dictionnary, then in @sub, and if not found are created in the new dictionnary.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>an existing dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionnary, or NULL if an error occured.</td></tr></tbody></table></div><h3><a name="xmlDictExists" id="xmlDictExists"></a>Function: xmlDictExists</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictExists (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)<br />
-</pre><p>Check if the @name exists in the dictionnary @dict.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL if not found.</td></tr></tbody></table></div><h3><a name="xmlDictFree" id="xmlDictFree"></a>Function: xmlDictFree</h3><pre class="programlisting">void xmlDictFree (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occurred.</td></tr></tbody></table></div><h3><a name="xmlDictCreateSub" id="xmlDictCreateSub"></a>Function: xmlDictCreateSub</h3><pre class="programlisting"><a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> xmlDictCreateSub (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> sub)<br />
+</pre><p>Create a new dictionary, inheriting strings from the read-only dictionary @sub. On lookup, strings are first searched in the new dictionary, then in @sub, and if not found are created in the new dictionary.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>sub</tt></i>:</span></td><td>an existing dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created dictionary, or NULL if an error occurred.</td></tr></tbody></table></div><h3><a name="xmlDictExists" id="xmlDictExists"></a>Function: xmlDictExists</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictExists (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)<br />
+</pre><p>Check if the @name exists in the dictionary @dict.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL if not found.</td></tr></tbody></table></div><h3><a name="xmlDictFree" id="xmlDictFree"></a>Function: xmlDictFree</h3><pre class="programlisting">void xmlDictFree (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
</pre><p>Free the hash @dict and its contents. The userdata is deallocated with @f if provided.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr></tbody></table></div><h3><a name="xmlDictGetUsage" id="xmlDictGetUsage"></a>Function: xmlDictGetUsage</h3><pre class="programlisting">size_t xmlDictGetUsage (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr></tbody></table></div><h3><a name="xmlDictGetUsage" id="xmlDictGetUsage"></a>Function: xmlDictGetUsage</h3><pre class="programlisting">size_t xmlDictGetUsage (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
</pre><p>Get how much memory is used by a dictionary for strings Added in 2.9.0</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of strings allocated</td></tr></tbody></table></div><h3><a name="xmlDictLookup" id="xmlDictLookup"></a>Function: xmlDictLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictLookup (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)<br />
-</pre><p>Add the @name to the dictionnary @dict if not present.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlDictOwns" id="xmlDictOwns"></a>Function: xmlDictOwns</h3><pre class="programlisting">int xmlDictOwns (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the amount of strings allocated</td></tr></tbody></table></div><h3><a name="xmlDictLookup" id="xmlDictLookup"></a>Function: xmlDictLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictLookup (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int len)<br />
+</pre><p>Add the @name to the dictionary @dict if not present.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of the name, if -1 it is recomputed</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the name or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlDictOwns" id="xmlDictOwns"></a>Function: xmlDictOwns</h3><pre class="programlisting">int xmlDictOwns (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
</pre><p>check if a string is owned by the disctionary</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDictQLookup" id="xmlDictQLookup"></a>Function: xmlDictQLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictQLookup (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the string</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if true, 0 if false and -1 in case of error -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDictQLookup" id="xmlDictQLookup"></a>Function: xmlDictQLookup</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlDictQLookup (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * prefix, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
</pre><p>Add the QName @prefix:@name to the hash @dict if not present.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the QName or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlDictReference" id="xmlDictReference"></a>Function: xmlDictReference</h3><pre class="programlisting">int xmlDictReference (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the internal copy of the QName or NULL in case of internal error</td></tr></tbody></table></div><h3><a name="xmlDictReference" id="xmlDictReference"></a>Function: xmlDictReference</h3><pre class="programlisting">int xmlDictReference (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
</pre><p>Increment the <a href="libxml-SAX.html#reference">reference</a> counter of a dictionary</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDictSetLimit" id="xmlDictSetLimit"></a>Function: xmlDictSetLimit</h3><pre class="programlisting">size_t xmlDictSetLimit (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> size_t limit)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlDictSetLimit" id="xmlDictSetLimit"></a>Function: xmlDictSetLimit</h3><pre class="programlisting">size_t xmlDictSetLimit (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict, <br /> size_t limit)<br />
</pre><p>Set a size limit for the dictionary Added in 2.9.0</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>limit</tt></i>:</span></td><td>the limit in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous limit of the dictionary or 0</td></tr></tbody></table></div><h3><a name="xmlDictSize" id="xmlDictSize"></a>Function: xmlDictSize</h3><pre class="programlisting">int xmlDictSize (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>limit</tt></i>:</span></td><td>the limit in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous limit of the dictionary or 0</td></tr></tbody></table></div><h3><a name="xmlDictSize" id="xmlDictSize"></a>Function: xmlDictSize</h3><pre class="programlisting">int xmlDictSize (<a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
</pre><p>Query the number of elements installed in the hash @dict.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionnary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the dictionnary or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlInitializeDict" id="xmlInitializeDict"></a>Function: xmlInitializeDict</h3><pre class="programlisting">int xmlInitializeDict (void)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the dictionary or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlInitializeDict" id="xmlInitializeDict"></a>Function: xmlInitializeDict</h3><pre class="programlisting">int xmlInitializeDict (void)<br />
</pre><p>Do the dictionary mutex initialization. this function is deprecated</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if initialization was already done, and 1 if that call led to the initialization</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/libxml-encoding.html b/doc/html/libxml-encoding.html
index 70f56f8..0ebfb14 100644
--- a/doc/html/libxml-encoding.html
+++ b/doc/html/libxml-encoding.html
@@ -10,7 +10,7 @@
</style><style type="text/css">
div.deprecated pre.programlisting {border-style: double;border-color:red}
pre.programlisting {border-style: double;background: #EECFA1}
- </style><title>Module encoding from libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Module encoding from libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-dict.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-dict.html">dict</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-entities.html">entities</a></th><td><a accesskey="n" href="libxml-entities.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>interface for the encoding conversion functions needed for XML basic encoding and iconv() support. Related specs are rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646] UTF-8 and UTF-16 in Annexes [ISO-8859-1] ISO Latin-1 characters codes. [UNICODE] The Unicode Consortium, "The Unicode Standard -- Worldwide Character Encoding -- Version 1.0", Addison- Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is described in Unicode Technical Report #4. [US-ASCII] Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. </p><h2>Table of Contents</h2><pre class="programlisting">Structure <a href="#uconv_t">uconv_t</a><br />struct _uconv_t
+ </style><title>Module encoding from libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Module encoding from libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-dict.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-dict.html">dict</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-entities.html">entities</a></th><td><a accesskey="n" href="libxml-entities.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>interface for the encoding conversion functions needed for XML basic encoding and iconv() support. Related specs are rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646] UTF-8 and UTF-16 in Annexes [ISO-8859-1] ISO Latin-1 characters codes. [UNICODE] The Unicode Consortium, "The Unicode Standard -- Worldwide Character Encoding -- Version 1.0", Addison- Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is described in Unicode Technical Report #4. [US-ASCII] Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#ICU_PIVOT_BUF_SIZE">ICU_PIVOT_BUF_SIZE</a></pre><pre class="programlisting">Structure <a href="#uconv_t">uconv_t</a><br />struct _uconv_t
</pre><pre class="programlisting">Enum <a href="#xmlCharEncoding">xmlCharEncoding</a>
</pre><pre class="programlisting">Structure <a href="#xmlCharEncodingHandler">xmlCharEncodingHandler</a><br />struct _xmlCharEncodingHandler
</pre><pre class="programlisting">Typedef <a href="libxml-encoding.html#xmlCharEncodingHandler">xmlCharEncodingHandler</a> * <a name="xmlCharEncodingHandlerPtr" id="xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a>
@@ -40,9 +40,13 @@
<pre class="programlisting"><a href="libxml-encoding.html#xmlCharEncoding">xmlCharEncoding</a> <a href="#xmlParseCharEncoding">xmlParseCharEncoding</a> (const char * name)</pre>
<pre class="programlisting">void <a href="#xmlRegisterCharEncodingHandler">xmlRegisterCharEncodingHandler</a> (<a href="libxml-encoding.html#xmlCharEncodingHandlerPtr">xmlCharEncodingHandlerPtr</a> handler)</pre>
<h2>Description</h2>
+<h3><a name="ICU_PIVOT_BUF_SIZE" id="ICU_PIVOT_BUF_SIZE"></a>Macro: ICU_PIVOT_BUF_SIZE</h3><pre>#define ICU_PIVOT_BUF_SIZE</pre><p></p>
<h3><a name="uconv_t" id="uconv_t">Structure uconv_t</a></h3><pre class="programlisting">Structure uconv_t<br />struct _uconv_t {
UConverter * uconv : for conversion between an encoding and
UConverter * utf8 : for conversion between UTF-8 and UTF-16
+ UCharpivot_buf[ICU_PIVOT_BUF_SIZE] pivot_buf
+ UChar * pivot_source
+ UChar * pivot_target
}</pre><h3>Enum <a name="xmlCharEncoding" id="xmlCharEncoding">xmlCharEncoding</a></h3><pre class="programlisting">Enum xmlCharEncoding {
<a name="XML_CHAR_ENCODING_ERROR" id="XML_CHAR_ENCODING_ERROR">XML_CHAR_ENCODING_ERROR</a> = -1 : No char encoding detected
<a name="XML_CHAR_ENCODING_NONE" id="XML_CHAR_ENCODING_NONE">XML_CHAR_ENCODING_NONE</a> = 0 : No char encoding detected
diff --git a/doc/html/libxml-hash.html b/doc/html/libxml-hash.html
index 922e3f1..021adb8 100644
--- a/doc/html/libxml-hash.html
+++ b/doc/html/libxml-hash.html
@@ -17,14 +17,15 @@
<pre class="programlisting">int <a href="#xmlHashAddEntry2">xmlHashAddEntry2</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> void * userdata)</pre>
<pre class="programlisting">int <a href="#xmlHashAddEntry3">xmlHashAddEntry3</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> void * userdata)</pre>
<pre class="programlisting">Function type: <a href="#xmlHashCopier">xmlHashCopier</a>
-void * <a href="#xmlHashCopier">xmlHashCopier</a> (void * payload, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+void * <a href="#xmlHashCopier">xmlHashCopier</a> (void * payload, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
</pre>
<pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCopy">xmlHashCopy</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashCopier">xmlHashCopier</a> f)</pre>
<pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCreate">xmlHashCreate</a> (int size)</pre>
<pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> <a href="#xmlHashCreateDict">xmlHashCreateDict</a> (int size, <br /> <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)</pre>
<pre class="programlisting">Function type: <a href="#xmlHashDeallocator">xmlHashDeallocator</a>
-void <a href="#xmlHashDeallocator">xmlHashDeallocator</a> (void * payload, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+void <a href="#xmlHashDeallocator">xmlHashDeallocator</a> (void * payload, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
</pre>
+<pre class="programlisting">void <a href="#xmlHashDefaultDeallocator">xmlHashDefaultDeallocator</a> (void * entry, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
<pre class="programlisting">void <a href="#xmlHashFree">xmlHashFree</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)</pre>
<pre class="programlisting">void * <a href="#xmlHashLookup">xmlHashLookup</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)</pre>
<pre class="programlisting">void * <a href="#xmlHashLookup2">xmlHashLookup2</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2)</pre>
@@ -40,7 +41,7 @@
<pre class="programlisting">void <a href="#xmlHashScanFull">xmlHashScanFull</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br /> void * data)</pre>
<pre class="programlisting">void <a href="#xmlHashScanFull3">xmlHashScanFull3</a> (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> <a href="libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br /> void * data)</pre>
<pre class="programlisting">Function type: <a href="#xmlHashScanner">xmlHashScanner</a>
-void <a href="#xmlHashScanner">xmlHashScanner</a> (void * payload, <br /> void * data, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+void <a href="#xmlHashScanner">xmlHashScanner</a> (void * payload, <br /> void * data, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
</pre>
<pre class="programlisting">Function type: <a href="#xmlHashScannerFull">xmlHashScannerFull</a>
void <a href="#xmlHashScannerFull">xmlHashScannerFull</a> (void * payload, <br /> void * data, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3)
@@ -60,18 +61,20 @@
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlHashAddEntry3" id="xmlHashAddEntry3"></a>Function: xmlHashAddEntry3</h3><pre class="programlisting">int xmlHashAddEntry3 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> void * userdata)<br />
</pre><p>Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Duplicate entries generate errors.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata</td></tr><tr><td><span class="term"><i><tt>userdata</tt></i>:</span></td><td>a pointer to the userdata</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 the addition succeeded and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlHashCopier" id="xmlHashCopier"></a>Function type: xmlHashCopier</h3><pre class="programlisting">Function type: xmlHashCopier
-void * xmlHashCopier (void * payload, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+void * xmlHashCopier (void * payload, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
</pre><p>Callback to copy data from a hash.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a copy of the data or NULL in case of error.</td></tr></tbody></table></div><br />
<h3><a name="xmlHashCopy" id="xmlHashCopy"></a>Function: xmlHashCopy</h3><pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCopy (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashCopier">xmlHashCopier</a> f)<br />
</pre><p>Scan the hash @table and applied @f to each value.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the copier function for items in the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new table or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlHashCreate" id="xmlHashCreate"></a>Function: xmlHashCreate</h3><pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCreate (int size)<br />
</pre><p>Create a new xmlHashTablePtr.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occured.</td></tr></tbody></table></div><h3><a name="xmlHashCreateDict" id="xmlHashCreateDict"></a>Function: xmlHashCreateDict</h3><pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCreateDict (int size, <br /> <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div><h3><a name="xmlHashCreateDict" id="xmlHashCreateDict"></a>Function: xmlHashCreateDict</h3><pre class="programlisting"><a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> xmlHashCreateDict (int size, <br /> <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
</pre><p>Create a new <a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> which will use @dict as the internal dictionary</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>a dictionary to use for the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occured.</td></tr></tbody></table></div><h3><a name="xmlHashDeallocator" id="xmlHashDeallocator"></a>Function type: xmlHashDeallocator</h3><pre class="programlisting">Function type: xmlHashDeallocator
-void xmlHashDeallocator (void * payload, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size of the hash table</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>a dictionary to use for the hash</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object, or NULL if an error occurred.</td></tr></tbody></table></div><h3><a name="xmlHashDeallocator" id="xmlHashDeallocator"></a>Function type: xmlHashDeallocator</h3><pre class="programlisting">Function type: xmlHashDeallocator
+void xmlHashDeallocator (void * payload, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
</pre><p>Callback to free data from a hash.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div><br />
-<h3><a name="xmlHashFree" id="xmlHashFree"></a>Function: xmlHashFree</h3><pre class="programlisting">void xmlHashFree (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br />
+<h3><a name="xmlHashDefaultDeallocator" id="xmlHashDefaultDeallocator"></a>Function: xmlHashDefaultDeallocator</h3><pre class="programlisting">void xmlHashDefaultDeallocator (void * entry, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
+</pre><p>Free a hash table entry with xmlFree.</p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>entry</tt></i>:</span></td><td>the hash table entry</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the entry's name</td></tr></tbody></table></div><h3><a name="xmlHashFree" id="xmlHashFree"></a>Function: xmlHashFree</h3><pre class="programlisting">void xmlHashFree (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> <a href="libxml-hash.html#xmlHashDeallocator">xmlHashDeallocator</a> f)<br />
</pre><p>Free the hash @table and its contents. The userdata is deallocated with @f if provided.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the deallocator function for items in the hash</td></tr></tbody></table></div><h3><a name="xmlHashLookup" id="xmlHashLookup"></a>Function: xmlHashLookup</h3><pre class="programlisting">void * xmlHashLookup (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
</pre><p>Find the userdata specified by the @name.</p>
@@ -100,7 +103,7 @@
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the scanner function for items in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra data passed to f</td></tr></tbody></table></div><h3><a name="xmlHashScanFull3" id="xmlHashScanFull3"></a>Function: xmlHashScanFull3</h3><pre class="programlisting">void xmlHashScanFull3 (<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> table, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3, <br /> <a href="libxml-hash.html#xmlHashScannerFull">xmlHashScannerFull</a> f, <br /> void * data)<br />
</pre><p>Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>table</tt></i>:</span></td><td>the hash table</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>name2</tt></i>:</span></td><td>a second name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>name3</tt></i>:</span></td><td>a third name of the userdata or NULL</td></tr><tr><td><span class="term"><i><tt>f</tt></i>:</span></td><td>the scanner function for items in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra data passed to f</td></tr></tbody></table></div><h3><a name="xmlHashScanner" id="xmlHashScanner"></a>Function type: xmlHashScanner</h3><pre class="programlisting">Function type: xmlHashScanner
-void xmlHashScanner (void * payload, <br /> void * data, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
+void xmlHashScanner (void * payload, <br /> void * data, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)
</pre><p>Callback when scanning data in a hash with the simple scanner.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>payload</tt></i>:</span></td><td>the data in the hash</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>extra scannner data</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the name associated</td></tr></tbody></table></div><br />
<h3><a name="xmlHashScannerFull" id="xmlHashScannerFull"></a>Function type: xmlHashScannerFull</h3><pre class="programlisting">Function type: xmlHashScannerFull
void xmlHashScannerFull (void * payload, <br /> void * data, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name2, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name3)
diff --git a/doc/html/libxml-lib.html b/doc/html/libxml-lib.html
index 1a58210..42d71a6 100644
--- a/doc/html/libxml-lib.html
+++ b/doc/html/libxml-lib.html
@@ -10,4 +10,4 @@
</style><style type="text/css">
div.deprecated pre.programlisting {border-style: double;border-color:red}
pre.programlisting {border-style: double;background: #EECFA1}
- </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionnary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
+ </style><title>Reference Manual for libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Reference Manual for libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><h2>Table of Contents</h2><ul><li><a href="libxml-DOCBparser.html">DOCBparser</a>: old DocBook SGML parser</li><li><a href="libxml-HTMLparser.html">HTMLparser</a>: interface for an HTML 4.0 non-verifying parser</li><li><a href="libxml-HTMLtree.html">HTMLtree</a>: specific APIs to process HTML tree, especially serialization</li><li><a href="libxml-SAX.html">SAX</a>: Old SAX version 1 handler, deprecated</li><li><a href="libxml-SAX2.html">SAX2</a>: SAX2 parser interface used to build the DOM tree</li><li><a href="libxml-c14n.html">c14n</a>: Provide Canonical XML and Exclusive XML Canonicalization</li><li><a href="libxml-catalog.html">catalog</a>: interfaces to the Catalog handling system</li><li><a href="libxml-chvalid.html">chvalid</a>: Unicode character range checking</li><li><a href="libxml-debugXML.html">debugXML</a>: Tree debugging APIs</li><li><a href="libxml-dict.html">dict</a>: string dictionary</li><li><a href="libxml-encoding.html">encoding</a>: interface for the encoding conversion functions</li><li><a href="libxml-entities.html">entities</a>: interface for the XML entities handling</li><li><a href="libxml-globals.html">globals</a>: interface for all global variables of the library</li><li><a href="libxml-hash.html">hash</a>: Chained hash tables</li><li><a href="libxml-list.html">list</a>: lists interfaces</li><li><a href="libxml-nanoftp.html">nanoftp</a>: minimal FTP implementation</li><li><a href="libxml-nanohttp.html">nanohttp</a>: minimal HTTP implementation</li><li><a href="libxml-parser.html">parser</a>: the core parser module</li><li><a href="libxml-parserInternals.html">parserInternals</a>: internals routines and limits exported by the parser.</li><li><a href="libxml-pattern.html">pattern</a>: pattern expression handling</li><li><a href="libxml-relaxng.html">relaxng</a>: implementation of the Relax-NG validation</li><li><a href="libxml-schemasInternals.html">schemasInternals</a>: internal interfaces for XML Schemas</li><li><a href="libxml-schematron.html">schematron</a>: XML Schemastron implementation</li><li><a href="libxml-threads.html">threads</a>: interfaces for thread handling</li><li><a href="libxml-tree.html">tree</a>: interfaces for tree manipulation</li><li><a href="libxml-uri.html">uri</a>: library of generic URI related routines</li><li><a href="libxml-valid.html">valid</a>: The DTD validation</li><li><a href="libxml-xinclude.html">xinclude</a>: implementation of XInclude</li><li><a href="libxml-xlink.html">xlink</a>: unfinished XLink detection module</li><li><a href="libxml-xmlIO.html">xmlIO</a>: interface for the I/O interfaces used by the parser</li><li><a href="libxml-xmlautomata.html">xmlautomata</a>: API to build regexp automata</li><li><a href="libxml-xmlerror.html">xmlerror</a>: error handling</li><li><a href="libxml-xmlexports.html">xmlexports</a>: macros for marking symbols as exportable/importable.</li><li><a href="libxml-xmlmemory.html">xmlmemory</a>: interface for the memory allocator</li><li><a href="libxml-xmlmodule.html">xmlmodule</a>: dynamic module loading</li><li><a href="libxml-xmlreader.html">xmlreader</a>: the XMLReader implementation</li><li><a href="libxml-xmlregexp.html">xmlregexp</a>: regular expressions handling</li><li><a href="libxml-xmlsave.html">xmlsave</a>: the XML document serializer</li><li><a href="libxml-xmlschemas.html">xmlschemas</a>: incomplete XML Schemas structure implementation</li><li><a href="libxml-xmlschemastypes.html">xmlschemastypes</a>: implementation of XML Schema Datatypes</li><li><a href="libxml-xmlstring.html">xmlstring</a>: set of routines to process strings</li><li><a href="libxml-xmlunicode.html">xmlunicode</a>: Unicode character APIs</li><li><a href="libxml-xmlversion.html">xmlversion</a>: compile-time version informations</li><li><a href="libxml-xmlwriter.html">xmlwriter</a>: text writing API for XML</li><li><a href="libxml-xpath.html">xpath</a>: XML Path Language implementation</li><li><a href="libxml-xpathInternals.html">xpathInternals</a>: internal interfaces for XML Path Language implementation</li><li><a href="libxml-xpointer.html">xpointer</a>: API to handle XML Pointers</li></ul><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/libxml-list.html b/doc/html/libxml-list.html
index 33e60d1..1738afc 100644
--- a/doc/html/libxml-list.html
+++ b/doc/html/libxml-list.html
@@ -43,13 +43,13 @@
<pre class="programlisting">int <a href="#xmlListRemoveLast">xmlListRemoveLast</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre>
<pre class="programlisting">void <a href="#xmlListReverse">xmlListReverse</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
<pre class="programlisting">void * <a href="#xmlListReverseSearch">xmlListReverseSearch</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre>
-<pre class="programlisting">void <a href="#xmlListReverseWalk">xmlListReverseWalk</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> const void * user)</pre>
+<pre class="programlisting">void <a href="#xmlListReverseWalk">xmlListReverseWalk</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> void * user)</pre>
<pre class="programlisting">void * <a href="#xmlListSearch">xmlListSearch</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)</pre>
<pre class="programlisting">int <a href="#xmlListSize">xmlListSize</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
<pre class="programlisting">void <a href="#xmlListSort">xmlListSort</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)</pre>
-<pre class="programlisting">void <a href="#xmlListWalk">xmlListWalk</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> const void * user)</pre>
+<pre class="programlisting">void <a href="#xmlListWalk">xmlListWalk</a> (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> void * user)</pre>
<pre class="programlisting">Function type: <a href="#xmlListWalker">xmlListWalker</a>
-int <a href="#xmlListWalker">xmlListWalker</a> (const void * data, <br /> const void * user)
+int <a href="#xmlListWalker">xmlListWalker</a> (const void * data, <br /> void * user)
</pre>
<h2>Description</h2>
<h3><a name="xmlLink" id="xmlLink">Structure xmlLink</a></h3><pre class="programlisting">Structure xmlLink<br />struct _xmlLink {
@@ -98,13 +98,13 @@
</pre><p>Remove the all instance associated to data in the list</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of deallocation, or 0 if not found</td></tr></tbody></table></div><h3><a name="xmlListRemoveFirst" id="xmlListRemoveFirst"></a>Function: xmlListRemoveFirst</h3><pre class="programlisting">int xmlListRemoveFirst (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br />
</pre><p>Remove the first instance associated to data in the list</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occured, or 0 if not found</td></tr></tbody></table></div><h3><a name="xmlListRemoveLast" id="xmlListRemoveLast"></a>Function: xmlListRemoveLast</h3><pre class="programlisting">int xmlListRemoveLast (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occurred, or 0 if not found</td></tr></tbody></table></div><h3><a name="xmlListRemoveLast" id="xmlListRemoveLast"></a>Function: xmlListRemoveLast</h3><pre class="programlisting">int xmlListRemoveLast (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br />
</pre><p>Remove the last instance associated to data in the list</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occured, or 0 if not found</td></tr></tbody></table></div><h3><a name="xmlListReverse" id="xmlListReverse"></a>Function: xmlListReverse</h3><pre class="programlisting">void xmlListReverse (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>list data</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if a deallocation occurred, or 0 if not found</td></tr></tbody></table></div><h3><a name="xmlListReverse" id="xmlListReverse"></a>Function: xmlListReverse</h3><pre class="programlisting">void xmlListReverse (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
</pre><p>Reverse the order of the elements in the list</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListReverseSearch" id="xmlListReverseSearch"></a>Function: xmlListReverseSearch</h3><pre class="programlisting">void * xmlListReverseSearch (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br />
</pre><p>Search the list in reverse order for an existing value of @data</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>a search value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value associated to @data or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlListReverseWalk" id="xmlListReverseWalk"></a>Function: xmlListReverseWalk</h3><pre class="programlisting">void xmlListReverseWalk (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> const void * user)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>a search value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value associated to @data or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlListReverseWalk" id="xmlListReverseWalk"></a>Function: xmlListReverseWalk</h3><pre class="programlisting">void xmlListReverseWalk (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> void * user)<br />
</pre><p>Walk all the element of the list in reverse order and apply the walker function to it</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div><h3><a name="xmlListSearch" id="xmlListSearch"></a>Function: xmlListSearch</h3><pre class="programlisting">void * xmlListSearch (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> void * data)<br />
</pre><p>Search the list for an existing value of @data</p>
@@ -112,9 +112,9 @@
</pre><p>Get the number of elements in the list</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of elements in the list or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlListSort" id="xmlListSort"></a>Function: xmlListSort</h3><pre class="programlisting">void xmlListSort (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l)<br />
</pre><p>Sort all the elements in the list</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListWalk" id="xmlListWalk"></a>Function: xmlListWalk</h3><pre class="programlisting">void xmlListWalk (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> const void * user)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr></tbody></table></div><h3><a name="xmlListWalk" id="xmlListWalk"></a>Function: xmlListWalk</h3><pre class="programlisting">void xmlListWalk (<a href="libxml-list.html#xmlListPtr">xmlListPtr</a> l, <br /> <a href="libxml-list.html#xmlListWalker">xmlListWalker</a> walker, <br /> void * user)<br />
</pre><p>Walk all the element of the first from first to last and apply the walker function to it</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>l</tt></i>:</span></td><td>a list</td></tr><tr><td><span class="term"><i><tt>walker</tt></i>:</span></td><td>a processing function</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>a user parameter passed to the walker function</td></tr></tbody></table></div><h3><a name="xmlListWalker" id="xmlListWalker"></a>Function type: xmlListWalker</h3><pre class="programlisting">Function type: xmlListWalker
-int xmlListWalker (const void * data, <br /> const void * user)
+int xmlListWalker (const void * data, <br /> void * user)
</pre><p>Callback function used when walking a list with xmlListWalk().</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>the data found in the list</td></tr><tr><td><span class="term"><i><tt>user</tt></i>:</span></td><td>extra user provided data to the walker</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 to stop walking the list, 1 otherwise.</td></tr></tbody></table></div><br />
<p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/libxml-parser.html b/doc/html/libxml-parser.html
index 98123f7..4d890c6 100644
--- a/doc/html/libxml-parser.html
+++ b/doc/html/libxml-parser.html
@@ -279,7 +279,7 @@
<a name="XML_PARSE_SAX1" id="XML_PARSE_SAX1">XML_PARSE_SAX1</a> = 512 : use the SAX1 interface internally
<a name="XML_PARSE_XINCLUDE" id="XML_PARSE_XINCLUDE">XML_PARSE_XINCLUDE</a> = 1024 : Implement XInclude substitition
<a name="XML_PARSE_NONET" id="XML_PARSE_NONET">XML_PARSE_NONET</a> = 2048 : Forbid network access
- <a name="XML_PARSE_NODICT" id="XML_PARSE_NODICT">XML_PARSE_NODICT</a> = 4096 : Do not reuse the context dictionnary
+ <a name="XML_PARSE_NODICT" id="XML_PARSE_NODICT">XML_PARSE_NODICT</a> = 4096 : Do not reuse the context dictionary
<a name="XML_PARSE_NSCLEAN" id="XML_PARSE_NSCLEAN">XML_PARSE_NSCLEAN</a> = 8192 : remove redundant namespaces declarations
<a name="XML_PARSE_NOCDATA" id="XML_PARSE_NOCDATA">XML_PARSE_NOCDATA</a> = 16384 : merge CDATA as text nodes
<a name="XML_PARSE_NOXINCNODE" id="XML_PARSE_NOXINCNODE">XML_PARSE_NOXINCNODE</a> = 32768 : do not generate XINCLUDE START/END nodes
diff --git a/doc/html/libxml-schemasInternals.html b/doc/html/libxml-schemasInternals.html
index db4a5a1..954f0d2 100644
--- a/doc/html/libxml-schemasInternals.html
+++ b/doc/html/libxml-schemasInternals.html
@@ -10,7 +10,7 @@
</style><style type="text/css">
div.deprecated pre.programlisting {border-style: double;border-color:red}
pre.programlisting {border-style: double;background: #EECFA1}
- </style><title>Module schemasInternals from libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Module schemasInternals from libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-relaxng.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-relaxng.html">relaxng</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-schematron.html">schematron</a></th><td><a accesskey="n" href="libxml-schematron.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not garanteed to be API or ABI stable ! </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_SKIP">XML_SCHEMAS_ANY_SKIP</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_GLOBAL">XML_SCHEMAS_ATTRGROUP_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_HAS_REFS">XML_SCHEMAS_ATTRGROUP_HAS_REFS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_REDEFINED">XML_SCHEMAS_ATTRGROUP_REDEFINED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_FIXED">XML_SCHEMAS_ATTR_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_OPTIONAL">XML_SCHEMAS_ATTR_USE_OPTIONAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_REQUIRED">XML_SCHEMAS_ATTR_USE_REQUIRED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_ABSENT">XML_SCHEMAS_ELEM_BLOCK_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_REF">XML_SCHEMAS_ELEM_REF</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD">XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FIXUP_1">XML_SCHEMAS_TYPE_FIXUP_1</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_HAS_FACETS">XML_SCHEMAS_TYPE_HAS_FACETS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_REDEFINED">XML_SCHEMAS_TYPE_REDEFINED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ATOMIC">XML_SCHEMAS_TYPE_VARIETY_ATOMIC</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_LIST">XML_SCHEMAS_TYPE_VARIETY_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_UNION">XML_SCHEMAS_TYPE_VARIETY_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE">XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE">XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_WILDCARD_COMPLETE">XML_SCHEMAS_WILDCARD_COMPLETE</a></pre><pre class="programlisting">Structure <a href="#xmlSchemaAnnot">xmlSchemaAnnot</a><br />struct _xmlSchemaAnnot
+ </style><title>Module schemasInternals from libxml2</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="../epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="../gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="../w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="../redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="../Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1></h1><h2>Module schemasInternals from libxml2</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="../search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a style="font-weight:bold" href="../index.html">Main Menu</a></li><li><a style="font-weight:bold" href="../docs.html">Developer Menu</a></li><li><a style="font-weight:bold" href="../examples/index.html">Code Examples</a></li><li><a style="font-weight:bold" href="index.html">API Menu</a></li><li><a href="libxml-parser.html">Parser API</a></li><li><a href="libxml-tree.html">Tree API</a></li><li><a href="libxml-xmlreader.html">Reader API</a></li><li><a href="../guidelines.html">XML Guidelines</a></li><li><a href="../ChangeLog.html">ChangeLog</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>API Indexes</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="../APIchunk0.html">Alphabetic</a></li><li><a href="../APIconstructors.html">Constructors</a></li><li><a href="../APIfunctions.html">Functions/Types</a></li><li><a href="../APIfiles.html">Modules</a></li><li><a href="../APIsymbols.html">Symbols</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-relaxng.html"><img src="left.png" width="24" height="24" border="0" alt="Prev" /></a></td><th align="left"><a href="libxml-relaxng.html">relaxng</a></th><td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up" /></a></td><th align="left"><a href="index.html">API documentation</a></th><td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home" /></a></td><th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th><th align="right"><a href="libxml-schematron.html">schematron</a></th><td><a accesskey="n" href="libxml-schematron.html"><img src="right.png" width="24" height="24" border="0" alt="Next" /></a></td></tr></table><p>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not guaranteed to be API or ABI stable ! </p><h2>Table of Contents</h2><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_LAX">XML_SCHEMAS_ANYATTR_LAX</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_SKIP">XML_SCHEMAS_ANYATTR_SKIP</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_SKIP">XML_SCHEMAS_ANY_SKIP</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ANY_STRICT">XML_SCHEMAS_ANY_STRICT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_GLOBAL">XML_SCHEMAS_ATTRGROUP_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_HAS_REFS">XML_SCHEMAS_ATTRGROUP_HAS_REFS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_REDEFINED">XML_SCHEMAS_ATTRGROUP_REDEFINED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED">XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_FIXED">XML_SCHEMAS_ATTR_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_GLOBAL">XML_SCHEMAS_ATTR_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_INTERNAL_RESOLVED">XML_SCHEMAS_ATTR_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_NSDEFAULT">XML_SCHEMAS_ATTR_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_OPTIONAL">XML_SCHEMAS_ATTR_USE_OPTIONAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_PROHIBITED">XML_SCHEMAS_ATTR_USE_PROHIBITED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ATTR_USE_REQUIRED">XML_SCHEMAS_ATTR_USE_REQUIRED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION">XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION">XML_SCHEMAS_BLOCK_DEFAULT_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_ABSTRACT">XML_SCHEMAS_ELEM_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_ABSENT">XML_SCHEMAS_ELEM_BLOCK_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_EXTENSION">XML_SCHEMAS_ELEM_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_RESTRICTION">XML_SCHEMAS_ELEM_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION">XML_SCHEMAS_ELEM_BLOCK_SUBSTITUTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_CIRCULAR">XML_SCHEMAS_ELEM_CIRCULAR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_DEFAULT">XML_SCHEMAS_ELEM_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_ABSENT">XML_SCHEMAS_ELEM_FINAL_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FINAL_RESTRICTION">XML_SCHEMAS_ELEM_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_FIXED">XML_SCHEMAS_ELEM_FIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_GLOBAL">XML_SCHEMAS_ELEM_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_CHECKED">XML_SCHEMAS_ELEM_INTERNAL_CHECKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_INTERNAL_RESOLVED">XML_SCHEMAS_ELEM_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NILLABLE">XML_SCHEMAS_ELEM_NILLABLE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_NSDEFAULT">XML_SCHEMAS_ELEM_NSDEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_REF">XML_SCHEMAS_ELEM_REF</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD">XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_ELEM_TOPLEVEL">XML_SCHEMAS_ELEM_TOPLEVEL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_COLLAPSE">XML_SCHEMAS_FACET_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_PRESERVE">XML_SCHEMAS_FACET_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_REPLACE">XML_SCHEMAS_FACET_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FACET_UNKNOWN">XML_SCHEMAS_FACET_UNKNOWN</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_LIST">XML_SCHEMAS_FINAL_DEFAULT_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION">XML_SCHEMAS_FINAL_DEFAULT_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_FINAL_DEFAULT_UNION">XML_SCHEMAS_FINAL_DEFAULT_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ATTR">XML_SCHEMAS_QUALIF_ATTR</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_QUALIF_ELEM">XML_SCHEMAS_QUALIF_ELEM</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_ABSTRACT">XML_SCHEMAS_TYPE_ABSTRACT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BLOCK_RESTRICTION">XML_SCHEMAS_TYPE_BLOCK_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_RESTRICTION">XML_SCHEMAS_TYPE_FINAL_RESTRICTION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FINAL_UNION">XML_SCHEMAS_TYPE_FINAL_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_FIXUP_1">XML_SCHEMAS_TYPE_FIXUP_1</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_GLOBAL">XML_SCHEMAS_TYPE_GLOBAL</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_HAS_FACETS">XML_SCHEMAS_TYPE_HAS_FACETS</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_INVALID">XML_SCHEMAS_TYPE_INTERNAL_INVALID</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_INTERNAL_RESOLVED">XML_SCHEMAS_TYPE_INTERNAL_RESOLVED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MARKED">XML_SCHEMAS_TYPE_MARKED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_MIXED">XML_SCHEMAS_TYPE_MIXED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_NORMVALUENEEDED">XML_SCHEMAS_TYPE_NORMVALUENEEDED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD">XML_SCHEMAS_TYPE_OWNED_ATTR_WILDCARD</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_REDEFINED">XML_SCHEMAS_TYPE_REDEFINED</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ABSENT">XML_SCHEMAS_TYPE_VARIETY_ABSENT</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_ATOMIC">XML_SCHEMAS_TYPE_VARIETY_ATOMIC</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_LIST">XML_SCHEMAS_TYPE_VARIETY_LIST</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_VARIETY_UNION">XML_SCHEMAS_TYPE_VARIETY_UNION</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE">XML_SCHEMAS_TYPE_WHITESPACE_COLLAPSE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE">XML_SCHEMAS_TYPE_WHITESPACE_PRESERVE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_TYPE_WHITESPACE_REPLACE">XML_SCHEMAS_TYPE_WHITESPACE_REPLACE</a></pre><pre class="programlisting">#define <a href="#XML_SCHEMAS_WILDCARD_COMPLETE">XML_SCHEMAS_WILDCARD_COMPLETE</a></pre><pre class="programlisting">Structure <a href="#xmlSchemaAnnot">xmlSchemaAnnot</a><br />struct _xmlSchemaAnnot
</pre><pre class="programlisting">Typedef <a href="libxml-schemasInternals.html#xmlSchemaAnnot">xmlSchemaAnnot</a> * <a name="xmlSchemaAnnotPtr" id="xmlSchemaAnnotPtr">xmlSchemaAnnotPtr</a>
</pre><pre class="programlisting">Structure <a href="#xmlSchemaAttribute">xmlSchemaAttribute</a><br />struct _xmlSchemaAttribute
</pre><pre class="programlisting">Structure <a href="#xmlSchemaAttributeGroup">xmlSchemaAttributeGroup</a><br />struct _xmlSchemaAttributeGroup
diff --git a/doc/html/libxml-tree.html b/doc/html/libxml-tree.html
index e2081cc..09e7bdc 100644
--- a/doc/html/libxml-tree.html
+++ b/doc/html/libxml-tree.html
@@ -305,6 +305,7 @@
<a name="XML_BUFFER_ALLOC_IMMUTABLE" id="XML_BUFFER_ALLOC_IMMUTABLE">XML_BUFFER_ALLOC_IMMUTABLE</a> = 3 : immutable buffer
<a name="XML_BUFFER_ALLOC_IO" id="XML_BUFFER_ALLOC_IO">XML_BUFFER_ALLOC_IO</a> = 4 : special allocation scheme used for I/O
<a name="XML_BUFFER_ALLOC_HYBRID" id="XML_BUFFER_ALLOC_HYBRID">XML_BUFFER_ALLOC_HYBRID</a> = 5 : exact up to a threshold, and doubleit thereafter
+ <a name="XML_BUFFER_ALLOC_BOUNDED" id="XML_BUFFER_ALLOC_BOUNDED">XML_BUFFER_ALLOC_BOUNDED</a> = 6 : limit the upper size of the buffer
}
</pre><h3><a name="xmlDOMWrapCtxt" id="xmlDOMWrapCtxt">Structure xmlDOMWrapCtxt</a></h3><pre class="programlisting">Structure xmlDOMWrapCtxt<br />struct _xmlDOMWrapCtxt {
void * _private : * The type of this context, just in case
@@ -554,7 +555,7 @@
void * catalogs : document's own catalog
int recovery : run in recovery mode
int progressive : is this a progressive parsing
- <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionnary for the parser
+ <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict : dictionary for the parser
const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * * atts : array for the attributes callbacks
int maxatts : the size of the array
int docdict : * pre-interned strings *
@@ -963,7 +964,7 @@
</pre><p>update all nodes under the tree to point to the right document</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>tree</tt></i>:</span></td><td>the top element</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr></tbody></table></div><h3><a name="xmlSplitQName2" id="xmlSplitQName2"></a>Function: xmlSplitQName2</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlSplitQName2 (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** prefix)<br />
</pre><p>parse an XML qualified name string [NS 5] QName ::= (Prefix ':')? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not a QName, otherwise the local part, and prefix is updated to get the Prefix if any.</td></tr></tbody></table></div><h3><a name="xmlSplitQName3" id="xmlSplitQName3"></a>Function: xmlSplitQName3</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlSplitQName3 (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int * len)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>prefix</tt></i>:</span></td><td>a <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> **</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if the name doesn't have a prefix. Otherwise, returns the local part, and prefix is updated to get the Prefix. Both the return value and the prefix must be freed by the caller.</td></tr></tbody></table></div><h3><a name="xmlSplitQName3" id="xmlSplitQName3"></a>Function: xmlSplitQName3</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlSplitQName3 (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> int * len)<br />
</pre><p>parse an XML qualified name string,i</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>an int *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if it is not a Qualified Name, otherwise, update len with the length in byte of the prefix and return a pointer to the start of the name without the prefix</td></tr></tbody></table></div><h3><a name="xmlStringGetNodeList" id="xmlStringGetNodeList"></a>Function: xmlStringGetNodeList</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlStringGetNodeList (const <a href="libxml-tree.html#xmlDoc">xmlDoc</a> * doc, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
</pre><p>Parse the value string and build the node list associated. Should produce a flat tree with only TEXTs and ENTITY_REFs.</p>
diff --git a/doc/html/libxml-xmlerror.html b/doc/html/libxml-xmlerror.html
index 5c3a104..2550ac0 100644
--- a/doc/html/libxml-xmlerror.html
+++ b/doc/html/libxml-xmlerror.html
@@ -832,14 +832,14 @@
</pre><p>Save the original error to the new place.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>from</tt></i>:</span></td><td>a source error</td></tr><tr><td><span class="term"><i><tt>to</tt></i>:</span></td><td>a target error</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of error.</td></tr></tbody></table></div><h3><a name="xmlCtxtGetLastError" id="xmlCtxtGetLastError"></a>Function: xmlCtxtGetLastError</h3><pre class="programlisting"><a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> xmlCtxtGetLastError (void * ctx)<br />
</pre><p>Get the last parsing error registered.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occured or a pointer to the error</td></tr></tbody></table></div><h3><a name="xmlCtxtResetLastError" id="xmlCtxtResetLastError"></a>Function: xmlCtxtResetLastError</h3><pre class="programlisting">void xmlCtxtResetLastError (void * ctx)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occurred or a pointer to the error</td></tr></tbody></table></div><h3><a name="xmlCtxtResetLastError" id="xmlCtxtResetLastError"></a>Function: xmlCtxtResetLastError</h3><pre class="programlisting">void xmlCtxtResetLastError (void * ctx)<br />
</pre><p>Cleanup the last global error registered. For parsing error this does not change the well-formedness result.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr></tbody></table></div><h3><a name="xmlGenericErrorFunc" id="xmlGenericErrorFunc"></a>Function type: xmlGenericErrorFunc</h3><pre class="programlisting">Function type: xmlGenericErrorFunc
void xmlGenericErrorFunc (void * ctx, <br /> const char * msg, <br /> ... ...)
</pre><p>Signature of the function to use when there is an error and no parsing or validity context available .</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>a parsing context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>the extra arguments of the varags to format the message</td></tr></tbody></table></div><br />
<h3><a name="xmlGetLastError" id="xmlGetLastError"></a>Function: xmlGetLastError</h3><pre class="programlisting"><a href="libxml-xmlerror.html#xmlErrorPtr">xmlErrorPtr</a> xmlGetLastError (void)<br />
</pre><p>Get the last global error registered. This is per thread if compiled with thread support.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occured or a pointer to the error</td></tr></tbody></table></div><h3><a name="xmlParserError" id="xmlParserError"></a>Function: xmlParserError</h3><pre class="programlisting">void xmlParserError (void * ctx, <br /> const char * msg, <br /> ... ...)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if no error occurred or a pointer to the error</td></tr></tbody></table></div><h3><a name="xmlParserError" id="xmlParserError"></a>Function: xmlParserError</h3><pre class="programlisting">void xmlParserError (void * ctx, <br /> const char * msg, <br /> ... ...)<br />
</pre><p>Display and format an error messages, gives file, line, position and extra parameters.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message display</td></tr></tbody></table></div><h3><a name="xmlParserPrintFileContext" id="xmlParserPrintFileContext"></a>Function: xmlParserPrintFileContext</h3><pre class="programlisting">void xmlParserPrintFileContext (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)<br />
</pre><p>Displays current context within the input content for error tracking</p>
diff --git a/doc/html/libxml-xmlmemory.html b/doc/html/libxml-xmlmemory.html
index d653775..3406e09 100644
--- a/doc/html/libxml-xmlmemory.html
+++ b/doc/html/libxml-xmlmemory.html
@@ -65,7 +65,7 @@
</pre><p>Initialize the memory layer.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div><h3><a name="xmlMallocAtomicLoc" id="xmlMallocAtomicLoc"></a>Function: xmlMallocAtomicLoc</h3><pre class="programlisting">void * xmlMallocAtomicLoc (size_t size, <br /> const char * file, <br /> int line)<br />
</pre><p>a malloc() equivalent, with logging of the allocation info.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMallocFunc" id="xmlMallocFunc"></a>Function type: xmlMallocFunc</h3><pre class="programlisting">Function type: xmlMallocFunc
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an unsigned int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMallocFunc" id="xmlMallocFunc"></a>Function type: xmlMallocFunc</h3><pre class="programlisting">Function type: xmlMallocFunc
void * xmlMallocFunc (size_t size)
</pre><p>Signature for a malloc() implementation.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size requested in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the newly allocated block or NULL in case of error.</td></tr></tbody></table></div><br />
<h3><a name="xmlMallocLoc" id="xmlMallocLoc"></a>Function: xmlMallocLoc</h3><pre class="programlisting">void * xmlMallocLoc (size_t size, <br /> const char * file, <br /> int line)<br />
diff --git a/doc/html/libxml-xmlreader.html b/doc/html/libxml-xmlreader.html
index f7e00fb..b9bd032 100644
--- a/doc/html/libxml-xmlreader.html
+++ b/doc/html/libxml-xmlreader.html
@@ -218,7 +218,7 @@
</pre><p>The depth of the node in the tree.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the depth or -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderErrorFunc" id="xmlTextReaderErrorFunc"></a>Function type: xmlTextReaderErrorFunc</h3><pre class="programlisting">Function type: xmlTextReaderErrorFunc
void xmlTextReaderErrorFunc (void * arg, <br /> const char * msg, <br /> <a href="libxml-xmlreader.html#xmlParserSeverities">xmlParserSeverities</a> severity, <br /> <a href="libxml-xmlreader.html#xmlTextReaderLocatorPtr">xmlTextReaderLocatorPtr</a> locator)
-</pre><p>Signature of an error callback from a reader parser</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>the user argument</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>severity</tt></i>:</span></td><td>the severity of the error</td></tr><tr><td><span class="term"><i><tt>locator</tt></i>:</span></td><td>a locator indicating where the error occured</td></tr></tbody></table></div><br />
+</pre><p>Signature of an error callback from a reader parser</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>arg</tt></i>:</span></td><td>the user argument</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message</td></tr><tr><td><span class="term"><i><tt>severity</tt></i>:</span></td><td>the severity of the error</td></tr><tr><td><span class="term"><i><tt>locator</tt></i>:</span></td><td>a locator indicating where the error occurred</td></tr></tbody></table></div><br />
<h3><a name="xmlTextReaderExpand" id="xmlTextReaderExpand"></a>Function: xmlTextReaderExpand</h3><pre class="programlisting"><a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> xmlTextReaderExpand (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
</pre><p>Reads the contents of the current node and the full subtree. It then makes the subtree available until the next xmlTextReaderRead() call</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a node pointer valid until the next xmlTextReaderRead() call or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderGetAttribute" id="xmlTextReaderGetAttribute"></a>Function: xmlTextReaderGetAttribute</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlTextReaderGetAttribute (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name)<br />
@@ -287,7 +287,7 @@
</pre><p>This tells the XML Reader to preserve the current node. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> or NULL in case of error.</td></tr></tbody></table></div><h3><a name="xmlTextReaderPreservePattern" id="xmlTextReaderPreservePattern"></a>Function: xmlTextReaderPreservePattern</h3><pre class="programlisting">int xmlTextReaderPreservePattern (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pattern, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> ** namespaces)<br />
</pre><p>This tells the XML Reader to preserve all nodes matched by the pattern. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>an XPath subset pattern</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>the prefix definitions, array of [URI, prefix] or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a positive number in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderQuoteChar" id="xmlTextReaderQuoteChar"></a>Function: xmlTextReaderQuoteChar</h3><pre class="programlisting">int xmlTextReaderQuoteChar (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>pattern</tt></i>:</span></td><td>an XPath subset pattern</td></tr><tr><td><span class="term"><i><tt>namespaces</tt></i>:</span></td><td>the prefix definitions, array of [URI, prefix] or NULL</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a non-negative number in case of success and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderQuoteChar" id="xmlTextReaderQuoteChar"></a>Function: xmlTextReaderQuoteChar</h3><pre class="programlisting">int xmlTextReaderQuoteChar (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
</pre><p>The quotation mark character used to enclose the value of an attribute.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>reader</tt></i>:</span></td><td>the <a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> used</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>" or ' and -1 in case of error</td></tr></tbody></table></div><h3><a name="xmlTextReaderRead" id="xmlTextReaderRead"></a>Function: xmlTextReaderRead</h3><pre class="programlisting">int xmlTextReaderRead (<a href="libxml-xmlreader.html#xmlTextReaderPtr">xmlTextReaderPtr</a> reader)<br />
</pre><p>Moves the position of the current instance to the next node in the stream, exposing its properties.</p>
diff --git a/doc/html/libxml-xmlregexp.html b/doc/html/libxml-xmlregexp.html
index 8dda699..564f65e 100644
--- a/doc/html/libxml-xmlregexp.html
+++ b/doc/html/libxml-xmlregexp.html
@@ -101,7 +101,7 @@
</pre><p>Get the atom associated to this name from that context</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the atom name</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the atom name length in byte (or -1);</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewCtxt" id="xmlExpNewCtxt"></a>Function: xmlExpNewCtxt</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> xmlExpNewCtxt (int maxNodes, <br /> <a href="libxml-dict.html#xmlDictPtr">xmlDictPtr</a> dict)<br />
</pre><p>Creates a new context for manipulating expressions</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionnary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewOr" id="xmlExpNewOr"></a>Function: xmlExpNewOr</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewOr (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>maxNodes</tt></i>:</span></td><td>the maximum number of nodes</td></tr><tr><td><span class="term"><i><tt>dict</tt></i>:</span></td><td>optional dictionary to use internally</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the context or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewOr" id="xmlExpNewOr"></a>Function: xmlExpNewOr</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewOr (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> left, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> right)<br />
</pre><p>Get the atom associated to the choice @left | @right Note that @left and @right are consumed in the operation, to keep an handle on them use xmlExpRef() and use xmlExpFree() to release them, this is true even in case of failure (unless ctxt == NULL).</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the expression context</td></tr><tr><td><span class="term"><i><tt>left</tt></i>:</span></td><td>left expression</td></tr><tr><td><span class="term"><i><tt>right</tt></i>:</span></td><td>right expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node or NULL in case of error</td></tr></tbody></table></div><h3><a name="xmlExpNewRange" id="xmlExpNewRange"></a>Function: xmlExpNewRange</h3><pre class="programlisting"><a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> xmlExpNewRange (<a href="libxml-xmlregexp.html#xmlExpCtxtPtr">xmlExpCtxtPtr</a> ctxt, <br /> <a href="libxml-xmlregexp.html#xmlExpNodePtr">xmlExpNodePtr</a> subset, <br /> int min, <br /> int max)<br />
</pre><p>Get the atom associated to the range (@subset){@min, @max} Note that @subset is consumed in the operation, to keep an handle on it use xmlExpRef() and use xmlExpFree() to release it, this is true even in case of failure (unless ctxt == NULL).</p>
diff --git a/doc/html/libxml-xmlstring.html b/doc/html/libxml-xmlstring.html
index 4f12cc7..dc8248c 100644
--- a/doc/html/libxml-xmlstring.html
+++ b/doc/html/libxml-xmlstring.html
@@ -16,9 +16,9 @@
<pre class="programlisting">int <a href="#xmlCheckUTF8">xmlCheckUTF8</a> (const unsigned char * utf)</pre>
<pre class="programlisting">int <a href="#xmlGetUTF8Char">xmlGetUTF8Char</a> (const unsigned char * utf, <br /> int * len)</pre>
<pre class="programlisting">int <a href="#xmlStrEqual">xmlStrEqual</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)</pre>
-<pre class="programlisting">int <a href="#xmlStrPrintf">xmlStrPrintf</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br /> ... ...)</pre>
+<pre class="programlisting">int <a href="#xmlStrPrintf">xmlStrPrintf</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const char * msg, <br /> ... ...)</pre>
<pre class="programlisting">int <a href="#xmlStrQEqual">xmlStrQEqual</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pref, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)</pre>
-<pre class="programlisting">int <a href="#xmlStrVPrintf">xmlStrVPrintf</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br /> va_list ap)</pre>
+<pre class="programlisting">int <a href="#xmlStrVPrintf">xmlStrVPrintf</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const char * msg, <br /> va_list ap)</pre>
<pre class="programlisting">int <a href="#xmlStrcasecmp">xmlStrcasecmp</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)</pre>
<pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrcasestr">xmlStrcasestr</a> (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * val)</pre>
<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlStrcat">xmlStrcat</a> (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * add)</pre>
@@ -55,11 +55,11 @@
</pre><p>Read the first UTF8 character from @utf</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>a pointer to the minimum number of bytes present in the sequence. This is used to assure the next character is completely contained within the sequence.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the char value or -1 in case of error, and sets *len to the actual number of bytes consumed (0 in case of error)</td></tr></tbody></table></div><h3><a name="xmlStrEqual" id="xmlStrEqual"></a>Function: xmlStrEqual</h3><pre class="programlisting">int xmlStrEqual (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)<br />
</pre><p>Check if both strings are equal of have same content. Should be a bit more readable and faster than xmlStrcmp()</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrPrintf" id="xmlStrPrintf"></a>Function: xmlStrPrintf</h3><pre class="programlisting">int xmlStrPrintf (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br /> ... ...)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrPrintf" id="xmlStrPrintf"></a>Function: xmlStrPrintf</h3><pre class="programlisting">int xmlStrPrintf (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const char * msg, <br /> ... ...)<br />
</pre><p>Formats @msg and places result into @buf.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div><h3><a name="xmlStrQEqual" id="xmlStrQEqual"></a>Function: xmlStrQEqual</h3><pre class="programlisting">int xmlStrQEqual (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * pref, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * name, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
</pre><p>Check if a QName is Equal to a given string</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td>the prefix of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the localname of the QName</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrVPrintf" id="xmlStrVPrintf"></a>Function: xmlStrVPrintf</h3><pre class="programlisting">int xmlStrVPrintf (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * msg, <br /> va_list ap)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>pref</tt></i>:</span></td><td>the prefix of the QName</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the localname of the QName</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if they are equal, 0 if they are different</td></tr></tbody></table></div><h3><a name="xmlStrVPrintf" id="xmlStrVPrintf"></a>Function: xmlStrVPrintf</h3><pre class="programlisting">int xmlStrVPrintf (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * buf, <br /> int len, <br /> const char * msg, <br /> va_list ap)<br />
</pre><p>Formats @msg and places result into @buf.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>buf</tt></i>:</span></td><td>the result buffer.</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the result buffer length.</td></tr><tr><td><span class="term"><i><tt>msg</tt></i>:</span></td><td>the message with printf formatting.</td></tr><tr><td><span class="term"><i><tt>ap</tt></i>:</span></td><td>extra parameters for the message.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of <a href="libxml-SAX.html#characters">characters</a> written to @buf or -1 if an error occurs.</td></tr></tbody></table></div><h3><a name="xmlStrcasecmp" id="xmlStrcasecmp"></a>Function: xmlStrcasecmp</h3><pre class="programlisting">int xmlStrcasecmp (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)<br />
</pre><p>a strcasecmp for xmlChar's</p>
@@ -67,7 +67,7 @@
</pre><p>a case-ignoring strstr for xmlChar's</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array (haystack)</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> to search (needle)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * for the first occurrence or NULL.</td></tr></tbody></table></div><h3><a name="xmlStrcat" id="xmlStrcat"></a>Function: xmlStrcat</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrcat (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * add)<br />
</pre><p>a strcat for array of xmlChar's. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of '0'.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * containing the concatenated string.</td></tr></tbody></table></div><h3><a name="xmlStrchr" id="xmlStrchr"></a>Function: xmlStrchr</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrchr (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> val)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * containing the concatenated string. The original @cur is reallocated and should not be freed.</td></tr></tbody></table></div><h3><a name="xmlStrchr" id="xmlStrchr"></a>Function: xmlStrchr</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrchr (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> val)<br />
</pre><p>a strchr for xmlChar's</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> to search</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * for the first occurrence or NULL.</td></tr></tbody></table></div><h3><a name="xmlStrcmp" id="xmlStrcmp"></a>Function: xmlStrcmp</h3><pre class="programlisting">int xmlStrcmp (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2)<br />
</pre><p>a strcmp for xmlChar's</p>
@@ -79,7 +79,7 @@
</pre><p>a strncasecmp for xmlChar's</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>the first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>the second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the max comparison length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the integer result of the comparison</td></tr></tbody></table></div><h3><a name="xmlStrncat" id="xmlStrncat"></a>Function: xmlStrncat</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrncat (<a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * cur, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * add, <br /> int len)<br />
</pre><p>a strncat for array of xmlChar's, it will extend @cur with the len first bytes of @add. Note that if @len < 0 then this is an API error and NULL will be returned.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of @add</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *, the original @cur is reallocated if needed and should not be freed</td></tr></tbody></table></div><h3><a name="xmlStrncatNew" id="xmlStrncatNew"></a>Function: xmlStrncatNew</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrncatNew (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2, <br /> int len)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>cur</tt></i>:</span></td><td>the original <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array</td></tr><tr><td><span class="term"><i><tt>add</tt></i>:</span></td><td>the <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * array added</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the length of @add</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> *, the original @cur is reallocated and should not be freed.</td></tr></tbody></table></div><h3><a name="xmlStrncatNew" id="xmlStrncatNew"></a>Function: xmlStrncatNew</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlStrncatNew (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2, <br /> int len)<br />
</pre><p>same as xmlStrncat, but creates a new string. The original two strings are not freed. If @len is < 0 then the length will be calculated automatically.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str1</tt></i>:</span></td><td>first <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>str2</tt></i>:</span></td><td>second <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> string</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the len of @str2 or < 0</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * or NULL</td></tr></tbody></table></div><h3><a name="xmlStrncmp" id="xmlStrncmp"></a>Function: xmlStrncmp</h3><pre class="programlisting">int xmlStrncmp (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str1, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str2, <br /> int len)<br />
</pre><p>a strncmp for xmlChar's</p>
@@ -102,7 +102,7 @@
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>the input UTF8 *</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the len of @utf (in chars)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new UTF8 * or NULL</td></tr></tbody></table></div><h3><a name="xmlUTF8Strpos" id="xmlUTF8Strpos"></a>Function: xmlUTF8Strpos</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlUTF8Strpos (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br /> int pos)<br />
</pre><p>a function to provide the equivalent of fetching a character from a string array</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>the input UTF8 *</td></tr><tr><td><span class="term"><i><tt>pos</tt></i>:</span></td><td>the position of the desired UTF8 char (in chars)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the UTF8 character or NULL</td></tr></tbody></table></div><h3><a name="xmlUTF8Strsize" id="xmlUTF8Strsize"></a>Function: xmlUTF8Strsize</h3><pre class="programlisting">int xmlUTF8Strsize (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br /> int len)<br />
-</pre><p>storage size of an UTF8 string the behaviour is not garanteed if the input string is not UTF-8</p>
+</pre><p>storage size of an UTF8 string the behaviour is not guaranteed if the input string is not UTF-8</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the number of <a href="libxml-SAX.html#characters">characters</a> in the array</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the storage size of the first 'len' <a href="libxml-SAX.html#characters">characters</a> of ARRAY</td></tr></tbody></table></div><h3><a name="xmlUTF8Strsub" id="xmlUTF8Strsub"></a>Function: xmlUTF8Strsub</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlUTF8Strsub (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * utf, <br /> int start, <br /> int len)<br />
</pre><p>Create a substring from a given UTF-8 string Note: positions are given in units of UTF-8 chars</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>relative pos of first char</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>total number to copy</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to a newly created string or NULL if any problem</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/html/libxml-xpath.html b/doc/html/libxml-xpath.html
index e47e600..482a983 100644
--- a/doc/html/libxml-xpath.html
+++ b/doc/html/libxml-xpath.html
@@ -270,7 +270,7 @@
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath context</td></tr><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathCompExprPtr">xmlXPathCompExprPtr</a> resulting from the compilation or NULL. the caller has to free the object.</td></tr></tbody></table></div><h3><a name="xmlXPathEval" id="xmlXPathEval"></a>Function: xmlXPathEval</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathEval (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br />
</pre><p>Evaluate the XPath Location Path in the given context.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div><h3><a name="xmlXPathEvalExpression" id="xmlXPathEvalExpression"></a>Function: xmlXPathEvalExpression</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathEvalExpression (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctxt)<br />
-</pre><p>Evaluate the XPath expression in the given context.</p>
+</pre><p>Alias for xmlXPathEval().</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> resulting from the evaluation or NULL. the caller has to free the object.</td></tr></tbody></table></div><h3><a name="xmlXPathEvalFunc" id="xmlXPathEvalFunc"></a>Function type: xmlXPathEvalFunc</h3><pre class="programlisting">Function type: xmlXPathEvalFunc
void xmlXPathEvalFunc (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)
</pre><p>An XPath evaluation function, the parameters are on the XPath context stack.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments passed to the function</td></tr></tbody></table></div><br />
@@ -293,11 +293,11 @@
void xmlXPathFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)
</pre><p>An XPath function. The arguments (if any) are popped out from the context stack and the result is pushed on the stack.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath interprestation context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><br />
<h3><a name="xmlXPathInit" id="xmlXPathInit"></a>Function: xmlXPathInit</h3><pre class="programlisting">void xmlXPathInit (void)<br />
-</pre><p>Initialize the XPath environment</p>
+</pre><p>Initialize the XPath environment Does nothing but must be kept as public function.</p>
<h3><a name="xmlXPathIsInf" id="xmlXPathIsInf"></a>Function: xmlXPathIsInf</h3><pre class="programlisting">int xmlXPathIsInf (double val)<br />
-</pre><p>Provides a portable isinf() function to detect whether a double is a +Infinite or -Infinite. Based on trio code http://sourceforge.net/projects/ctrio/</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 vi the value is +Infinite, -1 if -Infinite, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathIsNaN" id="xmlXPathIsNaN"></a>Function: xmlXPathIsNaN</h3><pre class="programlisting">int xmlXPathIsNaN (double val)<br />
-</pre><p>Provides a portable isnan() function to detect whether a double is a NotaNumber. Based on trio code http://sourceforge.net/projects/ctrio/</p>
+</pre><p></p>
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is +Infinite, -1 if -Infinite, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathIsNaN" id="xmlXPathIsNaN"></a>Function: xmlXPathIsNaN</h3><pre class="programlisting">int xmlXPathIsNaN (double val)<br />
+</pre><p></p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>a double value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the value is a NaN, 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlXPathNewContext" id="xmlXPathNewContext"></a>Function: xmlXPathNewContext</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> xmlXPathNewContext (<a href="libxml-tree.html#xmlDocPtr">xmlDocPtr</a> doc)<br />
</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathContext">xmlXPathContext</a></p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>the XML document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a href="libxml-xpath.html#xmlXPathContext">xmlXPathContext</a> just allocated. The caller will need to free it.</td></tr></tbody></table></div><h3><a name="xmlXPathNodeEval" id="xmlXPathNodeEval"></a>Function: xmlXPathNodeEval</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPathNodeEval (<a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> node, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str, <br /> <a href="libxml-xpath.html#xmlXPathContextPtr">xmlXPathContextPtr</a> ctx)<br />
diff --git a/doc/html/libxml-xpathInternals.html b/doc/html/libxml-xpathInternals.html
index f12d808..49546ab 100644
--- a/doc/html/libxml-xpathInternals.html
+++ b/doc/html/libxml-xpathInternals.html
@@ -348,7 +348,7 @@
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr></tbody></table></div><h3><a name="xmlXPathRoot" id="xmlXPathRoot"></a>Function: xmlXPathRoot</h3><pre class="programlisting">void xmlXPathRoot (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt)<br />
</pre><p>Initialize the context to the root of the document</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr></tbody></table></div><h3><a name="xmlXPathRoundFunction" id="xmlXPathRoundFunction"></a>Function: xmlXPathRoundFunction</h3><pre class="programlisting">void xmlXPathRoundFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
-</pre><p>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is even is returned.</p>
+</pre><p>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is closest to positive infinity is returned.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathStartsWithFunction" id="xmlXPathStartsWithFunction"></a>Function: xmlXPathStartsWithFunction</h3><pre class="programlisting">void xmlXPathStartsWithFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
</pre><p>Implement the starts-with() XPath function boolean starts-with(string, string) The starts-with function returns true if the first argument string starts with the second argument string, and otherwise returns false.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of arguments</td></tr></tbody></table></div><h3><a name="xmlXPathStringEvalNumber" id="xmlXPathStringEvalNumber"></a>Function: xmlXPathStringEvalNumber</h3><pre class="programlisting">double xmlXPathStringEvalNumber (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * str)<br />
diff --git a/doc/html/libxml-xpointer.html b/doc/html/libxml-xpointer.html
index 45526de..66eb80b 100644
--- a/doc/html/libxml-xpointer.html
+++ b/doc/html/libxml-xpointer.html
@@ -77,7 +77,7 @@
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting point</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPtrNewRangePoints" id="xmlXPtrNewRangePoints"></a>Function: xmlXPtrNewRangePoints</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrNewRangePoints (<a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> start, <br /> <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> end)<br />
</pre><p>Create a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> of type range using 2 Points</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>start</tt></i>:</span></td><td>the starting point</td></tr><tr><td><span class="term"><i><tt>end</tt></i>:</span></td><td>the ending point</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><h3><a name="xmlXPtrRangeToFunction" id="xmlXPtrRangeToFunction"></a>Function: xmlXPtrRangeToFunction</h3><pre class="programlisting">void xmlXPtrRangeToFunction (<a href="libxml-xpath.html#xmlXPathParserContextPtr">xmlXPathParserContextPtr</a> ctxt, <br /> int nargs)<br />
-</pre><p>Implement the range-to() XPointer function</p>
+</pre><p>Implement the range-to() XPointer function Obsolete. range-to is not a real function but a special type of location step which is handled in xpath.c.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPointer Parser context</td></tr><tr><td><span class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of args</td></tr></tbody></table></div><h3><a name="xmlXPtrWrapLocationSet" id="xmlXPtrWrapLocationSet"></a>Function: xmlXPtrWrapLocationSet</h3><pre class="programlisting"><a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a> xmlXPtrWrapLocationSet (<a href="libxml-xpointer.html#xmlLocationSetPtr">xmlLocationSetPtr</a> val)<br />
</pre><p>Wrap the LocationSet @val in a new <a href="libxml-xpath.html#xmlXPathObjectPtr">xmlXPathObjectPtr</a></p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the LocationSet value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly created object.</td></tr></tbody></table></div><p><a href="../bugs.html">Daniel Veillard</a></p></td></tr></table></td></tr></table></td></tr></table></td></tr></table></td></tr></table></body></html>
diff --git a/doc/index.py b/doc/index.py
index 578f288..1895d84 100755
--- a/doc/index.py
+++ b/doc/index.py
@@ -49,7 +49,7 @@
libxml2.registerErrorHandler(callback, None)
#
-# The dictionnary of tables required and the SQL command needed
+# The dictionary of tables required and the SQL command needed
# to create them
#
TABLES={
@@ -438,12 +438,12 @@
print """UPDATE wordsArchive SET relevance='%d' where name='%s' and ID='%d'""" % (relevance, name, id)
print sys.exc_type, sys.exc_value
return -1
-
+
return ret
#########################################################################
# #
-# Word dictionnary and analysis routines #
+# Word dictionary and analysis routines #
# #
#########################################################################
diff --git a/doc/libxml2-api.xml b/doc/libxml2-api.xml
index f83d14f..9cf6c72 100644
--- a/doc/libxml2-api.xml
+++ b/doc/libxml2-api.xml
@@ -367,7 +367,7 @@
<exports symbol='xmlShell' type='function'/>
</file>
<file name='dict'>
- <summary>string dictionnary</summary>
+ <summary>string dictionary</summary>
<description>dictionary of reusable strings, just used to avoid allocation and freeing operations. </description>
<author>Daniel Veillard </author>
<exports symbol='xmlDict' type='typedef'/>
@@ -390,6 +390,7 @@
<summary>interface for the encoding conversion functions</summary>
<description>interface for the encoding conversion functions needed for XML basic encoding and iconv() support. Related specs are rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies [ISO-10646] UTF-8 and UTF-16 in Annexes [ISO-8859-1] ISO Latin-1 characters codes. [UNICODE] The Unicode Consortium, "The Unicode Standard -- Worldwide Character Encoding -- Version 1.0", Addison- Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is described in Unicode Technical Report #4. [US-ASCII] Coded Character Set--7-bit American Standard Code for Information Interchange, ANSI X3.4-1986. </description>
<author>Daniel Veillard </author>
+ <exports symbol='ICU_PIVOT_BUF_SIZE' type='macro'/>
<exports symbol='XML_CHAR_ENCODING_UCS4LE' type='enum'/>
<exports symbol='XML_CHAR_ENCODING_ERROR' type='enum'/>
<exports symbol='XML_CHAR_ENCODING_8859_5' type='enum'/>
@@ -573,6 +574,7 @@
<exports symbol='xmlHashCopy' type='function'/>
<exports symbol='xmlHashScanFull3' type='function'/>
<exports symbol='xmlHashUpdateEntry3' type='function'/>
+ <exports symbol='xmlHashDefaultDeallocator' type='function'/>
<exports symbol='xmlHashLookup3' type='function'/>
<exports symbol='xmlHashLookup2' type='function'/>
<exports symbol='xmlHashRemoveEntry' type='function'/>
@@ -1127,7 +1129,7 @@
</file>
<file name='schemasInternals'>
<summary>internal interfaces for XML Schemas</summary>
- <description>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not garanteed to be API or ABI stable ! </description>
+ <description>internal interfaces for the XML Schemas handling and schema validity checking The Schemas development is a Work In Progress. Some of those interfaces are not guaranteed to be API or ABI stable ! </description>
<author>Daniel Veillard </author>
<exports symbol='XML_SCHEMAS_BLOCK_DEFAULT_RESTRICTION' type='macro'/>
<exports symbol='XML_SCHEMAS_FINAL_DEFAULT_EXTENSION' type='macro'/>
@@ -1441,12 +1443,12 @@
<exports symbol='XML_DOC_DTDVALID' type='enum'/>
<exports symbol='XML_ELEMENT_TYPE_ANY' type='enum'/>
<exports symbol='XML_DOC_NSVALID' type='enum'/>
- <exports symbol='XML_ELEMENT_CONTENT_ONCE' type='enum'/>
+ <exports symbol='XML_BUFFER_ALLOC_BOUNDED' type='enum'/>
<exports symbol='XML_ELEMENT_CONTENT_PCDATA' type='enum'/>
<exports symbol='XML_ATTRIBUTE_FIXED' type='enum'/>
<exports symbol='XML_DOCUMENT_TYPE_NODE' type='enum'/>
<exports symbol='XML_DOC_HTML' type='enum'/>
- <exports symbol='XML_ELEMENT_CONTENT_OPT' type='enum'/>
+ <exports symbol='XML_ELEMENT_CONTENT_ONCE' type='enum'/>
<exports symbol='XML_NAMESPACE_DECL' type='enum'/>
<exports symbol='XML_ATTRIBUTE_NOTATION' type='enum'/>
<exports symbol='XML_ELEMENT_TYPE_MIXED' type='enum'/>
@@ -1459,6 +1461,7 @@
<exports symbol='XML_NOTATION_NODE' type='enum'/>
<exports symbol='XML_ELEMENT_CONTENT_SEQ' type='enum'/>
<exports symbol='XML_ELEMENT_TYPE_EMPTY' type='enum'/>
+ <exports symbol='XML_ELEMENT_CONTENT_OPT' type='enum'/>
<exports symbol='XML_ATTRIBUTE_ENUMERATION' type='enum'/>
<exports symbol='XML_DOC_OLD10' type='enum'/>
<exports symbol='XML_HTML_DOCUMENT_NODE' type='enum'/>
@@ -3877,6 +3880,8 @@
<macro name='HTML_TEXT_NODE' file='HTMLtree'>
<info>Macro. A text node in a HTML document is really implemented the same way as a text node in an XML document.</info>
</macro>
+ <macro name='ICU_PIVOT_BUF_SIZE' file='encoding'>
+ </macro>
<macro name='INPUT_CHUNK' file='parserInternals'>
<info>The parser tries to always have that amount of input ready. One of the point is providing context when reporting errors.</info>
</macro>
@@ -4702,9 +4707,10 @@
<enum name='XML_ATTRIBUTE_NONE' file='tree' value='1' type='xmlAttributeDefault'/>
<enum name='XML_ATTRIBUTE_NOTATION' file='tree' value='10' type='xmlAttributeType'/>
<enum name='XML_ATTRIBUTE_REQUIRED' file='tree' value='2' type='xmlAttributeDefault'/>
+ <enum name='XML_BUFFER_ALLOC_BOUNDED' file='tree' value='6' type='xmlBufferAllocationScheme' info=' limit the upper size of the buffer'/>
<enum name='XML_BUFFER_ALLOC_DOUBLEIT' file='tree' value='1' type='xmlBufferAllocationScheme' info='double each time one need to grow'/>
<enum name='XML_BUFFER_ALLOC_EXACT' file='tree' value='2' type='xmlBufferAllocationScheme' info='grow only to the minimal size'/>
- <enum name='XML_BUFFER_ALLOC_HYBRID' file='tree' value='5' type='xmlBufferAllocationScheme' info=' exact up to a threshold, and doubleit thereafter'/>
+ <enum name='XML_BUFFER_ALLOC_HYBRID' file='tree' value='5' type='xmlBufferAllocationScheme' info='exact up to a threshold, and doubleit thereafter'/>
<enum name='XML_BUFFER_ALLOC_IMMUTABLE' file='tree' value='3' type='xmlBufferAllocationScheme' info='immutable buffer'/>
<enum name='XML_BUFFER_ALLOC_IO' file='tree' value='4' type='xmlBufferAllocationScheme' info='special allocation scheme used for I/O'/>
<enum name='XML_BUF_OVERFLOW' file='xmlerror' value='7000' type='xmlParserErrors'/>
@@ -5140,7 +5146,7 @@
<enum name='XML_PARSE_NOBASEFIX' file='parser' value='262144' type='xmlParserOption' info='do not fixup XINCLUDE xml:base uris'/>
<enum name='XML_PARSE_NOBLANKS' file='parser' value='256' type='xmlParserOption' info='remove blank nodes'/>
<enum name='XML_PARSE_NOCDATA' file='parser' value='16384' type='xmlParserOption' info='merge CDATA as text nodes'/>
- <enum name='XML_PARSE_NODICT' file='parser' value='4096' type='xmlParserOption' info='Do not reuse the context dictionnary'/>
+ <enum name='XML_PARSE_NODICT' file='parser' value='4096' type='xmlParserOption' info='Do not reuse the context dictionary'/>
<enum name='XML_PARSE_NOENT' file='parser' value='2' type='xmlParserOption' info='substitute entities'/>
<enum name='XML_PARSE_NOERROR' file='parser' value='32' type='xmlParserOption' info='suppress error reports'/>
<enum name='XML_PARSE_NONET' file='parser' value='2048' type='xmlParserOption' info='Forbid network access'/>
@@ -5959,6 +5965,9 @@
<struct name='uconv_t' file='encoding' type='struct _uconv_t'>
<field name='uconv' type='UConverter *' info=' for conversion between an encoding and UTF-16'/>
<field name='utf8' type='UConverter *' info=' for conversion between UTF-8 and UTF-16'/>
+ <field name='pivot_buf' type='UCharpivot_buf[ICU_PIVOT_BUF_SIZE]' info=''/>
+ <field name='pivot_source' type='UChar *' info=''/>
+ <field name='pivot_target' type='UChar *' info=''/>
</struct>
<typedef name='xlinkActuate' file='xlink' type='enum'/>
<typedef name='xlinkHRef' file='xlink' type='xmlChar *'/>
@@ -6408,7 +6417,7 @@
<field name='catalogs' type='void *' info=' document's own catalog'/>
<field name='recovery' type='int' info=' run in recovery mode'/>
<field name='progressive' type='int' info=' is this a progressive parsing'/>
- <field name='dict' type='xmlDictPtr' info=' dictionnary for the parser'/>
+ <field name='dict' type='xmlDictPtr' info=' dictionary for the parser'/>
<field name='atts' type='const xmlChar * *' info=' array for the attributes callbacks'/>
<field name='maxatts' type='int' info=' the size of the array'/>
<field name='docdict' type='int' info='* pre-interned strings
@@ -7741,7 +7750,7 @@
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>parse an HTML in-memory document and build a tree.</info>
<return type='htmlDocPtr' info='the resulting document tree'/>
- <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
<arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
</function>
<function name='htmlParseDocument' file='HTMLparser' module='HTMLparser'>
@@ -7821,7 +7830,7 @@
<cond>defined(LIBXML_HTML_ENABLED)</cond>
<info>Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks to handle parse events. If sax is NULL, fallback to the default DOM behavior and return a tree.</info>
<return type='htmlDocPtr' info='the resulting document tree unless SAX is NULL or the document is not well formed.'/>
- <arg name='cur' type='xmlChar *' info='a pointer to an array of xmlChar'/>
+ <arg name='cur' type='const xmlChar *' info='a pointer to an array of xmlChar'/>
<arg name='encoding' type='const char *' info='a free form C string describing the HTML document encoding, or NULL'/>
<arg name='sax' type='htmlSAXHandlerPtr' info='the SAX handler block'/>
<arg name='userData' type='void *' info='if using SAX, this pointer will be provided on callbacks.'/>
@@ -9243,7 +9252,7 @@
</function>
<function name='xmlCtxtGetLastError' file='xmlerror' module='error'>
<info>Get the last parsing error registered.</info>
- <return type='xmlErrorPtr' info='NULL if no error occured or a pointer to the error'/>
+ <return type='xmlErrorPtr' info='NULL if no error occurred or a pointer to the error'/>
<arg name='ctx' type='void *' info='an XML parser context'/>
</function>
<function name='xmlCtxtReadDoc' file='parser' module='parser'>
@@ -9502,65 +9511,65 @@
</function>
<function name='xmlDictCreate' file='dict' module='dict'>
<info>Create a new dictionary</info>
- <return type='xmlDictPtr' info='the newly created dictionnary, or NULL if an error occured.'/>
+ <return type='xmlDictPtr' info='the newly created dictionary, or NULL if an error occurred.'/>
</function>
<function name='xmlDictCreateSub' file='dict' module='dict'>
- <info>Create a new dictionary, inheriting strings from the read-only dictionnary @sub. On lookup, strings are first searched in the new dictionnary, then in @sub, and if not found are created in the new dictionnary.</info>
- <return type='xmlDictPtr' info='the newly created dictionnary, or NULL if an error occured.'/>
- <arg name='sub' type='xmlDictPtr' info='an existing dictionnary'/>
+ <info>Create a new dictionary, inheriting strings from the read-only dictionary @sub. On lookup, strings are first searched in the new dictionary, then in @sub, and if not found are created in the new dictionary.</info>
+ <return type='xmlDictPtr' info='the newly created dictionary, or NULL if an error occurred.'/>
+ <arg name='sub' type='xmlDictPtr' info='an existing dictionary'/>
</function>
<function name='xmlDictExists' file='dict' module='dict'>
- <info>Check if the @name exists in the dictionnary @dict.</info>
+ <info>Check if the @name exists in the dictionary @dict.</info>
<return type='const xmlChar *' info='the internal copy of the name or NULL if not found.'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
<arg name='name' type='const xmlChar *' info='the name of the userdata'/>
<arg name='len' type='int' info='the length of the name, if -1 it is recomputed'/>
</function>
<function name='xmlDictFree' file='dict' module='dict'>
<info>Free the hash @dict and its contents. The userdata is deallocated with @f if provided.</info>
<return type='void'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
</function>
<function name='xmlDictGetUsage' file='dict' module='dict'>
<info>Get how much memory is used by a dictionary for strings Added in 2.9.0</info>
<return type='size_t' info='the amount of strings allocated'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
</function>
<function name='xmlDictLookup' file='dict' module='dict'>
- <info>Add the @name to the dictionnary @dict if not present.</info>
+ <info>Add the @name to the dictionary @dict if not present.</info>
<return type='const xmlChar *' info='the internal copy of the name or NULL in case of internal error'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
<arg name='name' type='const xmlChar *' info='the name of the userdata'/>
<arg name='len' type='int' info='the length of the name, if -1 it is recomputed'/>
</function>
<function name='xmlDictOwns' file='dict' module='dict'>
<info>check if a string is owned by the disctionary</info>
<return type='int' info='1 if true, 0 if false and -1 in case of error -1 in case of error'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
<arg name='str' type='const xmlChar *' info='the string'/>
</function>
<function name='xmlDictQLookup' file='dict' module='dict'>
<info>Add the QName @prefix:@name to the hash @dict if not present.</info>
<return type='const xmlChar *' info='the internal copy of the QName or NULL in case of internal error'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
<arg name='prefix' type='const xmlChar *' info='the prefix'/>
<arg name='name' type='const xmlChar *' info='the name'/>
</function>
<function name='xmlDictReference' file='dict' module='dict'>
<info>Increment the reference counter of a dictionary</info>
<return type='int' info='0 in case of success and -1 in case of error'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
</function>
<function name='xmlDictSetLimit' file='dict' module='dict'>
<info>Set a size limit for the dictionary Added in 2.9.0</info>
<return type='size_t' info='the previous limit of the dictionary or 0'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
<arg name='limit' type='size_t' info='the limit in bytes'/>
</function>
<function name='xmlDictSize' file='dict' module='dict'>
<info>Query the number of elements installed in the hash @dict.</info>
- <return type='int' info='the number of elements in the dictionnary or -1 in case of error'/>
- <arg name='dict' type='xmlDictPtr' info='the dictionnary'/>
+ <return type='int' info='the number of elements in the dictionary or -1 in case of error'/>
+ <arg name='dict' type='xmlDictPtr' info='the dictionary'/>
</function>
<function name='xmlDllMain' file='threads' module='threads'>
<info></info>
@@ -9825,7 +9834,7 @@
<info>Creates a new context for manipulating expressions</info>
<return type='xmlExpCtxtPtr' info='the context or NULL in case of error'/>
<arg name='maxNodes' type='int' info='the maximum number of nodes'/>
- <arg name='dict' type='xmlDictPtr' info='optional dictionnary to use internally'/>
+ <arg name='dict' type='xmlDictPtr' info='optional dictionary to use internally'/>
</function>
<function name='xmlExpNewOr' file='xmlregexp' module='xmlregexp'>
<cond>defined(LIBXML_REGEXP_ENABLED) && defined(LIBXML_EXPR_ENABLED)</cond>
@@ -10231,7 +10240,7 @@
</function>
<function name='xmlGetLastError' file='xmlerror' module='error'>
<info>Get the last global error registered. This is per thread if compiled with thread support.</info>
- <return type='xmlErrorPtr' info='NULL if no error occured or a pointer to the error'/>
+ <return type='xmlErrorPtr' info='NULL if no error occurred or a pointer to the error'/>
</function>
<function name='xmlGetLineNo' file='tree' module='tree'>
<info>Get line number of @node. Try to override the limitation of lines being store in 16 bits ints if XML_PARSE_BIG_LINES parser option was used</info>
@@ -10350,7 +10359,7 @@
<info>Callback to copy data from a hash.</info>
<return type='void *' info='a copy of the data or NULL in case of error.'/>
<arg name='payload' type='void *' info='the data in the hash'/>
- <arg name='name' type='xmlChar *' info='the name associated'/>
+ <arg name='name' type='const xmlChar *' info='the name associated'/>
</functype>
<function name='xmlHashCopy' file='hash' module='hash'>
<info>Scan the hash @table and applied @f to each value.</info>
@@ -10360,12 +10369,12 @@
</function>
<function name='xmlHashCreate' file='hash' module='hash'>
<info>Create a new xmlHashTablePtr.</info>
- <return type='xmlHashTablePtr' info='the newly created object, or NULL if an error occured.'/>
+ <return type='xmlHashTablePtr' info='the newly created object, or NULL if an error occurred.'/>
<arg name='size' type='int' info='the size of the hash table'/>
</function>
<function name='xmlHashCreateDict' file='hash' module='hash'>
<info>Create a new xmlHashTablePtr which will use @dict as the internal dictionary</info>
- <return type='xmlHashTablePtr' info='the newly created object, or NULL if an error occured.'/>
+ <return type='xmlHashTablePtr' info='the newly created object, or NULL if an error occurred.'/>
<arg name='size' type='int' info='the size of the hash table'/>
<arg name='dict' type='xmlDictPtr' info='a dictionary to use for the hash'/>
</function>
@@ -10373,8 +10382,14 @@
<info>Callback to free data from a hash.</info>
<return type='void'/>
<arg name='payload' type='void *' info='the data in the hash'/>
- <arg name='name' type='xmlChar *' info='the name associated'/>
+ <arg name='name' type='const xmlChar *' info='the name associated'/>
</functype>
+ <function name='xmlHashDefaultDeallocator' file='hash' module='hash'>
+ <info>Free a hash table entry with xmlFree.</info>
+ <return type='void'/>
+ <arg name='entry' type='void *' info='the hash table entry'/>
+ <arg name='name' type='const xmlChar *' info='the entry's name'/>
+ </function>
<function name='xmlHashFree' file='hash' module='hash'>
<info>Free the hash @table and its contents. The userdata is deallocated with @f if provided.</info>
<return type='void'/>
@@ -10492,7 +10507,7 @@
<return type='void'/>
<arg name='payload' type='void *' info='the data in the hash'/>
<arg name='data' type='void *' info='extra scannner data'/>
- <arg name='name' type='xmlChar *' info='the name associated'/>
+ <arg name='name' type='const xmlChar *' info='the name associated'/>
</functype>
<functype name='xmlHashScannerFull' file='hash' module='hash'>
<info>Callback when scanning data in a hash with the full scanner.</info>
@@ -10875,13 +10890,13 @@
</function>
<function name='xmlListRemoveFirst' file='list' module='list'>
<info>Remove the first instance associated to data in the list</info>
- <return type='int' info='1 if a deallocation occured, or 0 if not found'/>
+ <return type='int' info='1 if a deallocation occurred, or 0 if not found'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='data' type='void *' info='list data'/>
</function>
<function name='xmlListRemoveLast' file='list' module='list'>
<info>Remove the last instance associated to data in the list</info>
- <return type='int' info='1 if a deallocation occured, or 0 if not found'/>
+ <return type='int' info='1 if a deallocation occurred, or 0 if not found'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='data' type='void *' info='list data'/>
</function>
@@ -10901,7 +10916,7 @@
<return type='void'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='walker' type='xmlListWalker' info='a processing function'/>
- <arg name='user' type='const void *' info='a user parameter passed to the walker function'/>
+ <arg name='user' type='void *' info='a user parameter passed to the walker function'/>
</function>
<function name='xmlListSearch' file='list' module='list'>
<info>Search the list for an existing value of @data</info>
@@ -10924,13 +10939,13 @@
<return type='void'/>
<arg name='l' type='xmlListPtr' info='a list'/>
<arg name='walker' type='xmlListWalker' info='a processing function'/>
- <arg name='user' type='const void *' info='a user parameter passed to the walker function'/>
+ <arg name='user' type='void *' info='a user parameter passed to the walker function'/>
</function>
<functype name='xmlListWalker' file='list' module='list'>
<info>Callback function used when walking a list with xmlListWalk().</info>
<return type='int' info='0 to stop walking the list, 1 otherwise.'/>
<arg name='data' type='const void *' info='the data found in the list'/>
- <arg name='user' type='const void *' info='extra user provided data to the walker'/>
+ <arg name='user' type='void *' info='extra user provided data to the walker'/>
</functype>
<function name='xmlLoadACatalog' file='catalog' module='catalog'>
<cond>defined(LIBXML_CATALOG_ENABLED)</cond>
@@ -10983,7 +10998,7 @@
<function name='xmlMallocAtomicLoc' file='xmlmemory' module='xmlmemory'>
<info>a malloc() equivalent, with logging of the allocation info.</info>
<return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
- <arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
+ <arg name='size' type='size_t' info='an unsigned int specifying the size in byte to allocate.'/>
<arg name='file' type='const char *' info='the file name or NULL'/>
<arg name='line' type='int' info='the line number'/>
</function>
@@ -14451,7 +14466,7 @@
</function>
<function name='xmlSplitQName2' file='tree' module='tree'>
<info>parse an XML qualified name string [NS 5] QName ::= (Prefix ':')? LocalPart [NS 6] Prefix ::= NCName [NS 7] LocalPart ::= NCName</info>
- <return type='xmlChar *' info='NULL if not a QName, otherwise the local part, and prefix is updated to get the Prefix if any.'/>
+ <return type='xmlChar *' info='NULL if the name doesn't have a prefix. Otherwise, returns the local part, and prefix is updated to get the Prefix. Both the return value and the prefix must be freed by the caller.'/>
<arg name='name' type='const xmlChar *' info='the full QName'/>
<arg name='prefix' type='xmlChar **' info='a xmlChar **'/>
</function>
@@ -14485,7 +14500,7 @@
<return type='int' info='the number of characters written to @buf or -1 if an error occurs.'/>
<arg name='buf' type='xmlChar *' info='the result buffer.'/>
<arg name='len' type='int' info='the result buffer length.'/>
- <arg name='msg' type='const xmlChar *' info='the message with printf formatting.'/>
+ <arg name='msg' type='const char *' info='the message with printf formatting.'/>
<arg name='...' type='...' info='extra parameters for the message.'/>
</function>
<function name='xmlStrQEqual' file='xmlstring' module='xmlstring'>
@@ -14500,7 +14515,7 @@
<return type='int' info='the number of characters written to @buf or -1 if an error occurs.'/>
<arg name='buf' type='xmlChar *' info='the result buffer.'/>
<arg name='len' type='int' info='the result buffer length.'/>
- <arg name='msg' type='const xmlChar *' info='the message with printf formatting.'/>
+ <arg name='msg' type='const char *' info='the message with printf formatting.'/>
<arg name='ap' type='va_list' info='extra parameters for the message.'/>
</function>
<function name='xmlStrcasecmp' file='xmlstring' module='xmlstring'>
@@ -14517,7 +14532,7 @@
</function>
<function name='xmlStrcat' file='xmlstring' module='xmlstring'>
<info>a strcat for array of xmlChar's. Since they are supposed to be encoded in UTF-8 or an encoding with 8bit based chars, we assume a termination mark of '0'.</info>
- <return type='xmlChar *' info='a new xmlChar * containing the concatenated string.'/>
+ <return type='xmlChar *' info='a new xmlChar * containing the concatenated string. The original @cur is reallocated and should not be freed.'/>
<arg name='cur' type='xmlChar *' info='the original xmlChar * array'/>
<arg name='add' type='const xmlChar *' info='the xmlChar * array added'/>
</function>
@@ -14635,7 +14650,7 @@
</function>
<function name='xmlStrncat' file='xmlstring' module='xmlstring'>
<info>a strncat for array of xmlChar's, it will extend @cur with the len first bytes of @add. Note that if @len < 0 then this is an API error and NULL will be returned.</info>
- <return type='xmlChar *' info='a new xmlChar *, the original @cur is reallocated if needed and should not be freed'/>
+ <return type='xmlChar *' info='a new xmlChar *, the original @cur is reallocated and should not be freed.'/>
<arg name='cur' type='xmlChar *' info='the original xmlChar * array'/>
<arg name='add' type='const xmlChar *' info='the xmlChar * array added'/>
<arg name='len' type='int' info='the length of @add'/>
@@ -14826,7 +14841,7 @@
<arg name='arg' type='void *' info='the user argument'/>
<arg name='msg' type='const char *' info='the message'/>
<arg name='severity' type='xmlParserSeverities' info='the severity of the error'/>
- <arg name='locator' type='xmlTextReaderLocatorPtr' info='a locator indicating where the error occured'/>
+ <arg name='locator' type='xmlTextReaderLocatorPtr' info='a locator indicating where the error occurred'/>
</functype>
<function name='xmlTextReaderExpand' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED)</cond>
@@ -15041,7 +15056,7 @@
<function name='xmlTextReaderPreservePattern' file='xmlreader' module='xmlreader'>
<cond>defined(LIBXML_READER_ENABLED) && defined(LIBXML_PATTERN_ENABLED)</cond>
<info>This tells the XML Reader to preserve all nodes matched by the pattern. The caller must also use xmlTextReaderCurrentDoc() to keep an handle on the resulting document once parsing has finished</info>
- <return type='int' info='a positive number in case of success and -1 in case of error'/>
+ <return type='int' info='a non-negative number in case of success and -1 in case of error'/>
<arg name='reader' type='xmlTextReaderPtr' info='the xmlTextReaderPtr used'/>
<arg name='pattern' type='const xmlChar *' info='an XPath subset pattern'/>
<arg name='namespaces' type='const xmlChar **' info='the prefix definitions, array of [URI, prefix] or NULL'/>
@@ -16930,7 +16945,7 @@
<arg name='pos' type='int' info='the position of the desired UTF8 char (in chars)'/>
</function>
<function name='xmlUTF8Strsize' file='xmlstring' module='xmlstring'>
- <info>storage size of an UTF8 string the behaviour is not garanteed if the input string is not UTF-8</info>
+ <info>storage size of an UTF8 string the behaviour is not guaranteed if the input string is not UTF-8</info>
<return type='int' info='the storage size of the first 'len' characters of ARRAY'/>
<arg name='utf' type='const xmlChar *' info='a sequence of UTF-8 encoded bytes'/>
<arg name='len' type='int' info='the number of characters in the array'/>
@@ -17559,7 +17574,7 @@
</function>
<function name='xmlXPathEvalExpression' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
- <info>Evaluate the XPath expression in the given context.</info>
+ <info>Alias for xmlXPathEval().</info>
<return type='xmlXPathObjectPtr' info='the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.'/>
<arg name='str' type='const xmlChar *' info='the XPath expression'/>
<arg name='ctxt' type='xmlXPathContextPtr' info='the XPath context'/>
@@ -17681,7 +17696,7 @@
</function>
<function name='xmlXPathInit' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
- <info>Initialize the XPath environment</info>
+ <info>Initialize the XPath environment Does nothing but must be kept as public function.</info>
<return type='void'/>
</function>
<function name='xmlXPathIntersection' file='xpathInternals' module='xpath'>
@@ -17693,13 +17708,13 @@
</function>
<function name='xmlXPathIsInf' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
- <info>Provides a portable isinf() function to detect whether a double is a +Infinite or -Infinite. Based on trio code http://sourceforge.net/projects/ctrio/</info>
- <return type='int' info='1 vi the value is +Infinite, -1 if -Infinite, 0 otherwise'/>
+ <info></info>
+ <return type='int' info='1 if the value is +Infinite, -1 if -Infinite, 0 otherwise'/>
<arg name='val' type='double' info='a double value'/>
</function>
<function name='xmlXPathIsNaN' file='xpath' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)</cond>
- <info>Provides a portable isnan() function to detect whether a double is a NotaNumber. Based on trio code http://sourceforge.net/projects/ctrio/</info>
+ <info></info>
<return type='int' info='1 if the value is a NaN, 0 otherwise'/>
<arg name='val' type='double' info='a double value'/>
</function>
@@ -18198,7 +18213,7 @@
</function>
<function name='xmlXPathRoundFunction' file='xpathInternals' module='xpath'>
<cond>defined(LIBXML_XPATH_ENABLED)</cond>
- <info>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is even is returned.</info>
+ <info>Implement the round() XPath function number round(number) The round function returns the number that is closest to the argument and that is an integer. If there are two such numbers, then the one that is closest to positive infinity is returned.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
<arg name='nargs' type='int' info='the number of arguments'/>
@@ -18493,7 +18508,7 @@
</function>
<function name='xmlXPtrRangeToFunction' file='xpointer' module='xpointer'>
<cond>defined(LIBXML_XPTR_ENABLED)</cond>
- <info>Implement the range-to() XPointer function</info>
+ <info>Implement the range-to() XPointer function Obsolete. range-to is not a real function but a special type of location step which is handled in xpath.c.</info>
<return type='void'/>
<arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPointer Parser context'/>
<arg name='nargs' type='int' info='the number of args'/>
diff --git a/doc/libxml2-refs.xml b/doc/libxml2-refs.xml
index f42fab4..3fe0876 100644
--- a/doc/libxml2-refs.xml
+++ b/doc/libxml2-refs.xml
@@ -34,6 +34,7 @@
<reference name='HTML_REQUIRED' href='html/libxml-HTMLparser.html#HTML_REQUIRED'/>
<reference name='HTML_TEXT_NODE' href='html/libxml-HTMLtree.html#HTML_TEXT_NODE'/>
<reference name='HTML_VALID' href='html/libxml-HTMLparser.html#HTML_VALID'/>
+ <reference name='ICU_PIVOT_BUF_SIZE' href='html/libxml-encoding.html#ICU_PIVOT_BUF_SIZE'/>
<reference name='INPUT_CHUNK' href='html/libxml-parserInternals.html#INPUT_CHUNK'/>
<reference name='INVALID_SOCKET' href='html/libxml-nanoftp.html#INVALID_SOCKET'/>
<reference name='IS_ASCII_DIGIT' href='html/libxml-parserInternals.html#IS_ASCII_DIGIT'/>
@@ -148,6 +149,7 @@
<reference name='XML_ATTRIBUTE_NONE' href='html/libxml-tree.html#XML_ATTRIBUTE_NONE'/>
<reference name='XML_ATTRIBUTE_NOTATION' href='html/libxml-tree.html#XML_ATTRIBUTE_NOTATION'/>
<reference name='XML_ATTRIBUTE_REQUIRED' href='html/libxml-tree.html#XML_ATTRIBUTE_REQUIRED'/>
+ <reference name='XML_BUFFER_ALLOC_BOUNDED' href='html/libxml-tree.html#XML_BUFFER_ALLOC_BOUNDED'/>
<reference name='XML_BUFFER_ALLOC_DOUBLEIT' href='html/libxml-tree.html#XML_BUFFER_ALLOC_DOUBLEIT'/>
<reference name='XML_BUFFER_ALLOC_EXACT' href='html/libxml-tree.html#XML_BUFFER_ALLOC_EXACT'/>
<reference name='XML_BUFFER_ALLOC_HYBRID' href='html/libxml-tree.html#XML_BUFFER_ALLOC_HYBRID'/>
@@ -2123,6 +2125,7 @@
<reference name='xmlHashCreate' href='html/libxml-hash.html#xmlHashCreate'/>
<reference name='xmlHashCreateDict' href='html/libxml-hash.html#xmlHashCreateDict'/>
<reference name='xmlHashDeallocator' href='html/libxml-hash.html#xmlHashDeallocator'/>
+ <reference name='xmlHashDefaultDeallocator' href='html/libxml-hash.html#xmlHashDefaultDeallocator'/>
<reference name='xmlHashFree' href='html/libxml-hash.html#xmlHashFree'/>
<reference name='xmlHashLookup' href='html/libxml-hash.html#xmlHashLookup'/>
<reference name='xmlHashLookup2' href='html/libxml-hash.html#xmlHashLookup2'/>
@@ -3623,6 +3626,7 @@
<ref name='HTML_VALID'/>
</letter>
<letter name='I'>
+ <ref name='ICU_PIVOT_BUF_SIZE'/>
<ref name='INPUT_CHUNK'/>
<ref name='INVALID_SOCKET'/>
<ref name='IS_ASCII_DIGIT'/>
@@ -3749,6 +3753,7 @@
<ref name='XML_ATTRIBUTE_NONE'/>
<ref name='XML_ATTRIBUTE_NOTATION'/>
<ref name='XML_ATTRIBUTE_REQUIRED'/>
+ <ref name='XML_BUFFER_ALLOC_BOUNDED'/>
<ref name='XML_BUFFER_ALLOC_DOUBLEIT'/>
<ref name='XML_BUFFER_ALLOC_EXACT'/>
<ref name='XML_BUFFER_ALLOC_HYBRID'/>
@@ -5760,6 +5765,7 @@
<ref name='xmlHashCreate'/>
<ref name='xmlHashCreateDict'/>
<ref name='xmlHashDeallocator'/>
+ <ref name='xmlHashDefaultDeallocator'/>
<ref name='xmlHashFree'/>
<ref name='xmlHashLookup'/>
<ref name='xmlHashLookup2'/>
@@ -8111,8 +8117,6 @@
</type>
<type name='const void *'>
<ref name='xmlListDataCompare'/>
- <ref name='xmlListReverseWalk'/>
- <ref name='xmlListWalk'/>
<ref name='xmlListWalker'/>
</type>
<type name='const xlinkHRef'>
@@ -8183,7 +8187,9 @@
<ref name='htmlIsScriptAttribute'/>
<ref name='htmlNewDoc'/>
<ref name='htmlNewDocNoDtD'/>
+ <ref name='htmlParseDoc'/>
<ref name='htmlReadDoc'/>
+ <ref name='htmlSAXParseDoc'/>
<ref name='htmlSetMetaEncoding'/>
<ref name='htmlTagLookup'/>
<ref name='ignorableWhitespace'/>
@@ -8283,6 +8289,9 @@
<ref name='xmlHashAddEntry'/>
<ref name='xmlHashAddEntry2'/>
<ref name='xmlHashAddEntry3'/>
+ <ref name='xmlHashCopier'/>
+ <ref name='xmlHashDeallocator'/>
+ <ref name='xmlHashDefaultDeallocator'/>
<ref name='xmlHashLookup'/>
<ref name='xmlHashLookup2'/>
<ref name='xmlHashLookup3'/>
@@ -8294,6 +8303,7 @@
<ref name='xmlHashRemoveEntry3'/>
<ref name='xmlHashScan3'/>
<ref name='xmlHashScanFull3'/>
+ <ref name='xmlHashScanner'/>
<ref name='xmlHashScannerFull'/>
<ref name='xmlHashUpdateEntry'/>
<ref name='xmlHashUpdateEntry2'/>
@@ -8404,9 +8414,7 @@
<ref name='xmlSplitQName2'/>
<ref name='xmlSplitQName3'/>
<ref name='xmlStrEqual'/>
- <ref name='xmlStrPrintf'/>
<ref name='xmlStrQEqual'/>
- <ref name='xmlStrVPrintf'/>
<ref name='xmlStrcasecmp'/>
<ref name='xmlStrcasestr'/>
<ref name='xmlStrcat'/>
@@ -8860,6 +8868,7 @@
<ref name='xmlHashAddEntry3'/>
<ref name='xmlHashCopier'/>
<ref name='xmlHashDeallocator'/>
+ <ref name='xmlHashDefaultDeallocator'/>
<ref name='xmlHashScan'/>
<ref name='xmlHashScan3'/>
<ref name='xmlHashScanFull'/>
@@ -8883,7 +8892,10 @@
<ref name='xmlListRemoveFirst'/>
<ref name='xmlListRemoveLast'/>
<ref name='xmlListReverseSearch'/>
+ <ref name='xmlListReverseWalk'/>
<ref name='xmlListSearch'/>
+ <ref name='xmlListWalk'/>
+ <ref name='xmlListWalker'/>
<ref name='xmlMemFree'/>
<ref name='xmlMemRealloc'/>
<ref name='xmlNanoFTPCheckResponse'/>
@@ -9171,14 +9183,9 @@
<ref name='docbSAXParseDoc'/>
<ref name='entityDecl'/>
<ref name='entityDeclSAXFunc'/>
- <ref name='htmlParseDoc'/>
- <ref name='htmlSAXParseDoc'/>
<ref name='xmlBuildQName'/>
<ref name='xmlCopyChar'/>
<ref name='xmlCopyCharMultiByte'/>
- <ref name='xmlHashCopier'/>
- <ref name='xmlHashDeallocator'/>
- <ref name='xmlHashScanner'/>
<ref name='xmlNewDocNodeEatName'/>
<ref name='xmlNewNodeEatName'/>
<ref name='xmlNewNsPropEatName'/>
@@ -11103,6 +11110,7 @@
<ref name='xmlInitializeDict'/>
</file>
<file name='encoding'>
+ <ref name='ICU_PIVOT_BUF_SIZE'/>
<ref name='UTF8Toisolat1'/>
<ref name='XML_CHAR_ENCODING_2022_JP'/>
<ref name='XML_CHAR_ENCODING_8859_1'/>
@@ -11262,6 +11270,7 @@
<ref name='xmlHashCreate'/>
<ref name='xmlHashCreateDict'/>
<ref name='xmlHashDeallocator'/>
+ <ref name='xmlHashDefaultDeallocator'/>
<ref name='xmlHashFree'/>
<ref name='xmlHashLookup'/>
<ref name='xmlHashLookup2'/>
@@ -12100,6 +12109,7 @@
<ref name='XML_ATTRIBUTE_NONE'/>
<ref name='XML_ATTRIBUTE_NOTATION'/>
<ref name='XML_ATTRIBUTE_REQUIRED'/>
+ <ref name='XML_BUFFER_ALLOC_BOUNDED'/>
<ref name='XML_BUFFER_ALLOC_DOUBLEIT'/>
<ref name='XML_BUFFER_ALLOC_EXACT'/>
<ref name='XML_BUFFER_ALLOC_HYBRID'/>
@@ -14534,6 +14544,9 @@
<word name='AegeanNumbers'>
<ref name='xmlUCSIsAegeanNumbers'/>
</word>
+ <word name='Alias'>
+ <ref name='xmlXPathEvalExpression'/>
+ </word>
<word name='All'>
<ref name='_xmlSchema'/>
<ref name='_xmlSchemaType'/>
@@ -14725,8 +14738,6 @@
</word>
<word name='Based'>
<ref name='xmlExpExpDerive'/>
- <ref name='xmlXPathIsInf'/>
- <ref name='xmlXPathIsNaN'/>
</word>
<word name='BasicLatin'>
<ref name='xmlUCSIsBasicLatin'/>
@@ -14773,6 +14784,7 @@
</word>
<word name='Both'>
<ref name='XML_SUBSTITUTE_BOTH'/>
+ <ref name='xmlSplitQName2'/>
<ref name='xmlStreamPush'/>
<ref name='xmlStreamPushAttr'/>
<ref name='xmlStreamPushNode'/>
@@ -15501,6 +15513,7 @@
<ref name='xmlValidNormalizeAttributeValue'/>
<ref name='xmlValidateDocumentFinal'/>
<ref name='xmlValidateDtdFinal'/>
+ <ref name='xmlXPathInit'/>
</word>
<word name='Douglas'>
<ref name='xmlURIEscape'/>
@@ -15757,7 +15770,6 @@
<word name='Evaluate'>
<ref name='xmlXPathCompiledEval'/>
<ref name='xmlXPathEval'/>
- <ref name='xmlXPathEvalExpression'/>
<ref name='xmlXPathEvalPredicate'/>
<ref name='xmlXPathEvaluatePredicateResult'/>
<ref name='xmlXPathNodeEval'/>
@@ -16864,9 +16876,6 @@
<word name='Not'>
<ref name='_xmlSchemaElement'/>
</word>
- <word name='NotaNumber'>
- <ref name='xmlXPathIsNaN'/>
- </word>
<word name='Notation'>
<ref name='_xmlNotation'/>
<ref name='xmlParseEntityDecl'/>
@@ -16935,6 +16944,7 @@
<ref name='_xmlSchemaElement'/>
<ref name='_xmlSchemaFacet'/>
<ref name='_xmlSchemaType'/>
+ <ref name='xmlXPtrRangeToFunction'/>
</word>
<word name='Obtain'>
<ref name='xmlTextReaderLocatorBaseURI'/>
@@ -16975,6 +16985,7 @@
<ref name='xmlXPathContextSetCache'/>
</word>
<word name='Otherwise'>
+ <ref name='xmlSplitQName2'/>
<ref name='xmlStreamPush'/>
<ref name='xmlStreamPushAttr'/>
</word>
@@ -17228,8 +17239,6 @@
<ref name='xmlTextReaderGetAttributeNo'/>
<ref name='xmlTextReaderGetAttributeNs'/>
<ref name='xmlTextReaderValue'/>
- <ref name='xmlXPathIsInf'/>
- <ref name='xmlXPathIsNaN'/>
</word>
<word name='Proxy'>
<ref name='xmlNanoFTPScanProxy'/>
@@ -21298,10 +21307,6 @@
<word name='cshema'>
<ref name='XML_SCHEMAS_FINAL_DEFAULT_LIST'/>
</word>
- <word name='ctrio'>
- <ref name='xmlXPathIsInf'/>
- <ref name='xmlXPathIsNaN'/>
- </word>
<word name='ctxt'>
<ref name='xmlExpNewOr'/>
<ref name='xmlExpNewRange'/>
@@ -21762,8 +21767,6 @@
<ref name='xmlInputMatchCallback'/>
<ref name='xmlKeepBlanksDefault'/>
<ref name='xmlOutputMatchCallback'/>
- <ref name='xmlXPathIsInf'/>
- <ref name='xmlXPathIsNaN'/>
</word>
<word name='detected'>
<ref name='CHECK_ERROR'/>
@@ -21819,38 +21822,6 @@
<word name='dictionaries'>
<ref name='XML_MAX_NAME_LENGTH'/>
</word>
- <word name='dictionary'>
- <ref name='XML_MAX_DICTIONARY_LIMIT'/>
- <ref name='_xmlParserCtxt'/>
- <ref name='_xmlXPathContext'/>
- <ref name='xmlDictCleanup'/>
- <ref name='xmlDictCreate'/>
- <ref name='xmlDictCreateSub'/>
- <ref name='xmlDictGetUsage'/>
- <ref name='xmlDictReference'/>
- <ref name='xmlDictSetLimit'/>
- <ref name='xmlHashCreateDict'/>
- <ref name='xmlInitializeDict'/>
- <ref name='xmlPatterncompile'/>
- <ref name='xmlStreamPush'/>
- <ref name='xmlStreamPushAttr'/>
- <ref name='xmlStreamPushNode'/>
- </word>
- <word name='dictionnary'>
- <ref name='_xmlParserCtxt'/>
- <ref name='xmlDictCreate'/>
- <ref name='xmlDictCreateSub'/>
- <ref name='xmlDictExists'/>
- <ref name='xmlDictFree'/>
- <ref name='xmlDictGetUsage'/>
- <ref name='xmlDictLookup'/>
- <ref name='xmlDictOwns'/>
- <ref name='xmlDictQLookup'/>
- <ref name='xmlDictReference'/>
- <ref name='xmlDictSetLimit'/>
- <ref name='xmlDictSize'/>
- <ref name='xmlExpNewCtxt'/>
- </word>
<word name='did'>
<ref name='XML_SCHEMAS_TYPE_BLOCK_DEFAULT'/>
<ref name='xmlTextReaderGetRemainder'/>
@@ -22054,6 +22025,7 @@
<ref name='xmlNodeListGetRawString'/>
<ref name='xmlPatternMatch'/>
<ref name='xmlRemoveProp'/>
+ <ref name='xmlSplitQName2'/>
<ref name='xmlUTF8Strlen'/>
<ref name='xmlValidateRoot'/>
<ref name='xmlXPathLeading'/>
@@ -22486,6 +22458,7 @@
<ref name='xmlCatalogAdd'/>
<ref name='xmlCatalogAddLocal'/>
<ref name='xmlCatalogRemove'/>
+ <ref name='xmlHashDefaultDeallocator'/>
<ref name='xmlHashUpdateEntry'/>
<ref name='xmlHashUpdateEntry2'/>
<ref name='xmlHashUpdateEntry3'/>
@@ -22638,7 +22611,6 @@
<ref name='xmlNodeGetBase'/>
<ref name='xmlParseBalancedChunkMemoryRecover'/>
<ref name='xmlTextWriterFullEndElement'/>
- <ref name='xmlXPathRoundFunction'/>
</word>
<word name='event'>
<ref name='xmlSchemaSAXPlug'/>
@@ -23421,9 +23393,6 @@
<word name='gYearMonth'>
<ref name='xmlSchemaGetCanonValue'/>
</word>
- <word name='garanteed'>
- <ref name='xmlUTF8Strsize'/>
- </word>
<word name='garbage'>
<ref name='xmlGcMemGet'/>
<ref name='xmlGcMemSetup'/>
@@ -23625,6 +23594,7 @@
<word name='guaranteed'>
<ref name='xmlModuleOpen'/>
<ref name='xmlModuleSymbol'/>
+ <ref name='xmlUTF8Strsize'/>
</word>
<word name='guess'>
<ref name='xmlCleanupParser'/>
@@ -23646,6 +23616,7 @@
<ref name='xmlParseElementContentDecl'/>
<ref name='xmlParsePEReference'/>
<ref name='xmlParserHandlePEReference'/>
+ <ref name='xmlXPtrRangeToFunction'/>
</word>
<word name='handlers'>
<ref name='xlinkSetDefaultHandler'/>
@@ -23875,8 +23846,6 @@
<ref name='xmlSAX2GetSystemId'/>
<ref name='xmlSchemaGetPredefinedType'/>
<ref name='xmlTextReaderNodeType'/>
- <ref name='xmlXPathIsInf'/>
- <ref name='xmlXPathIsNaN'/>
</word>
<word name='human-readable'>
<ref name='_xmlError'/>
@@ -24222,6 +24191,7 @@
<word name='infinity'>
<ref name='xmlXPathCeilingFunction'/>
<ref name='xmlXPathFloorFunction'/>
+ <ref name='xmlXPathRoundFunction'/>
<ref name='xmlXPathStringFunction'/>
</word>
<word name='info'>
@@ -24568,15 +24538,9 @@
<word name='invited'>
<ref name='xmlValidGetValidElements'/>
</word>
- <word name='isinf'>
- <ref name='xmlXPathIsInf'/>
- </word>
<word name='isn'>
<ref name='xmlRegisterCharEncodingHandler'/>
</word>
- <word name='isnan'>
- <ref name='xmlXPathIsNaN'/>
- </word>
<word name='issue'>
<ref name='xmlEncodeEntities'/>
</word>
@@ -24673,6 +24637,7 @@
<ref name='htmlIsAutoClosed'/>
<ref name='htmlParseElement'/>
<ref name='xmlKeepBlanksDefault'/>
+ <ref name='xmlXPathInit'/>
<ref name='xmlXPathOrderDocElems'/>
</word>
<word name='keyword'>
@@ -25089,6 +25054,7 @@
<ref name='xmlSetFeature'/>
<ref name='xmlUTF8Strloc'/>
<ref name='xmlXPtrLocationSetAdd'/>
+ <ref name='xmlXPtrRangeToFunction'/>
</word>
<word name='locations'>
<ref name='_xmlLocationSet'/>
@@ -25764,7 +25730,6 @@
<ref name='xmlSchemaSAXPlug'/>
<ref name='xmlSetBufferAllocationScheme'/>
<ref name='xmlShellPwd'/>
- <ref name='xmlStrncat'/>
<ref name='xmlTextReaderCurrentDoc'/>
<ref name='xmlValidCtxtNormalizeAttributeValue'/>
<ref name='xmlValidNormalizeAttributeValue'/>
@@ -25821,10 +25786,6 @@
<ref name='xmlParseElementChildrenContentDecl'/>
<ref name='xmlParseMarkupDecl'/>
</word>
- <word name='net'>
- <ref name='xmlXPathIsInf'/>
- <ref name='xmlXPathIsNaN'/>
- </word>
<word name='network'>
<ref name='htmlCtxtReadFile'/>
<ref name='htmlReadFile'/>
@@ -25912,6 +25873,7 @@
<word name='non-negative'>
<ref name='xmlC14NDocSaveTo'/>
<ref name='xmlC14NExecute'/>
+ <ref name='xmlTextReaderPreservePattern'/>
</word>
<word name='non-normative'>
<ref name='xmlDetectCharEncoding'/>
@@ -26010,6 +25972,9 @@
<ref name='xmlCheckUTF8'/>
<ref name='xmlLoadExternalEntity'/>
</word>
+ <word name='nothing'>
+ <ref name='xmlXPathInit'/>
+ </word>
<word name='notice'>
<ref name='xmlCleanupParser'/>
<ref name='xmlCleanupThreads'/>
@@ -26119,7 +26084,13 @@
<ref name='xmlParseComment'/>
<ref name='xmlParseMarkupDecl'/>
</word>
- <word name='occured'>
+ <word name='occurences'>
+ <ref name='xmlAutomataNewCountTrans'/>
+ <ref name='xmlAutomataNewCountTrans2'/>
+ <ref name='xmlAutomataNewOnceTrans'/>
+ <ref name='xmlAutomataNewOnceTrans2'/>
+ </word>
+ <word name='occurred'>
<ref name='xmlCtxtGetLastError'/>
<ref name='xmlDictCreate'/>
<ref name='xmlDictCreateSub'/>
@@ -26128,17 +26099,9 @@
<ref name='xmlHashCreateDict'/>
<ref name='xmlListRemoveFirst'/>
<ref name='xmlListRemoveLast'/>
- <ref name='xmlTextReaderErrorFunc'/>
- </word>
- <word name='occurences'>
- <ref name='xmlAutomataNewCountTrans'/>
- <ref name='xmlAutomataNewCountTrans2'/>
- <ref name='xmlAutomataNewOnceTrans'/>
- <ref name='xmlAutomataNewOnceTrans2'/>
- </word>
- <word name='occurred'>
<ref name='xmlMemStrdupLoc'/>
<ref name='xmlMemoryStrdup'/>
+ <ref name='xmlTextReaderErrorFunc'/>
</word>
<word name='occurrence'>
<ref name='xmlStrcasestr'/>
@@ -26813,10 +26776,6 @@
<ref name='xmlModuleOpen'/>
<ref name='xmlModuleSymbol'/>
</word>
- <word name='portable'>
- <ref name='xmlXPathIsInf'/>
- <ref name='xmlXPathIsNaN'/>
- </word>
<word name='pos'>
<ref name='xmlUTF8Strsub'/>
</word>
@@ -27200,10 +27159,6 @@
<word name='prohibited'>
<ref name='XML_SCHEMAS_ATTR_USE_PROHIBITED'/>
</word>
- <word name='projects'>
- <ref name='xmlXPathIsInf'/>
- <ref name='xmlXPathIsNaN'/>
- </word>
<word name='prolog'>
<ref name='xmlParseDocument'/>
</word>
@@ -27498,6 +27453,9 @@
<ref name='INPUT_CHUNK'/>
<ref name='xmlAutomataCompile'/>
</word>
+ <word name='real'>
+ <ref name='xmlXPtrRangeToFunction'/>
+ </word>
<word name='realloc'>
<ref name='_xmlBuffer'/>
<ref name='xmlGcMemGet'/>
@@ -27510,6 +27468,7 @@
</word>
<word name='reallocated'>
<ref name='xmlReallocFunc'/>
+ <ref name='xmlStrcat'/>
<ref name='xmlStrncat'/>
</word>
<word name='really'>
@@ -28933,10 +28892,6 @@
<ref name='xmlDOMWrapAdoptNode'/>
<ref name='xmlDOMWrapCloneNode'/>
</word>
- <word name='sourceforge'>
- <ref name='xmlXPathIsInf'/>
- <ref name='xmlXPathIsNaN'/>
- </word>
<word name='spaces'>
<ref name='_xmlParserCtxt'/>
<ref name='htmlDocContentDumpFormatOutput'/>
@@ -28999,6 +28954,7 @@
<ref name='xmlNodeSetContent'/>
<ref name='xmlNodeSetContentLen'/>
<ref name='xmlTextWriterWriteRawLen'/>
+ <ref name='xmlXPtrRangeToFunction'/>
</word>
<word name='specialized'>
<ref name='_xmlDOMWrapCtxt'/>
@@ -29184,6 +29140,7 @@
<ref name='xmlValidNormalizeAttributeValue'/>
<ref name='xmlValidateDocumentFinal'/>
<ref name='xmlValidateDtdFinal'/>
+ <ref name='xmlXPtrRangeToFunction'/>
</word>
<word name='steps'>
<ref name='xmlNormalizeURIPath'/>
@@ -30101,8 +30058,6 @@
<word name='trio'>
<ref name='WITHOUT_TRIO'/>
<ref name='WITH_TRIO'/>
- <ref name='xmlXPathIsInf'/>
- <ref name='xmlXPathIsNaN'/>
</word>
<word name='troubles'>
<ref name='_xmlParserInput'/>
@@ -30378,6 +30333,7 @@
</word>
<word name='unsigned'>
<ref name='c'/>
+ <ref name='xmlMallocAtomicLoc'/>
<ref name='xmlURIUnescapeString'/>
</word>
<word name='unsupported'>
@@ -31340,6 +31296,7 @@
<ref name='xmlGetNoNsProp'/>
<ref name='xmlGetNsProp'/>
<ref name='xmlGetProp'/>
+ <ref name='xmlHashDefaultDeallocator'/>
<ref name='xmlNodeGetBase'/>
<ref name='xmlNodeGetContent'/>
<ref name='xmlNodeGetLang'/>
@@ -31971,6 +31928,9 @@
<word name='xmlXPathError'>
<ref name='err'/>
</word>
+ <word name='xmlXPathEval'>
+ <ref name='xmlXPathEvalExpression'/>
+ </word>
<word name='xmlXPathEvalPredicate'>
<ref name='xmlXPtrEvalRangePredicate'/>
</word>
@@ -32045,6 +32005,7 @@
<word name='xpath'>
<ref name='xmlShellPrintXPathError'/>
<ref name='xmlShellPrintXPathResult'/>
+ <ref name='xmlXPtrRangeToFunction'/>
</word>
<word name='xpointer'>
<ref name='XINCLUDE_PARSE_XPOINTER'/>
diff --git a/doc/libxml2.xsa b/doc/libxml2.xsa
index da61d57..33f3848 100644
--- a/doc/libxml2.xsa
+++ b/doc/libxml2.xsa
@@ -8,95 +8,45 @@
</vendor>
<product id="libxml2">
<name>libxml2</name>
- <version>2.9.1</version>
- <last-release> Apr 19 2013</last-release>
+ <version>2.9.7</version>
+ <last-release> Nov 02 2017</last-release>
<info-url>http://xmlsoft.org/</info-url>
- <changes> - Features:
- Support for Python3 (Daniel Veillard),
- Add xmlXPathSetContextNode and xmlXPathNodeEval (Alex Bligh)
+ <changes> - Documentation:
+ xmlcatalog: refresh man page wrt. quering system catalog easily (Jan Pokorný)
- - Documentation:
- Add documentation for xmllint --xpath (Daniel Veillard),
- Fix the URL of the SAX documentation from James (Daniel Veillard),
- Fix spelling of "length". (Michael Wood)
+ - Portability:
+ Fix deprecated Travis compiler flag (Nick Wellnhofer),
+ Add declaration for DllMain (J. Peter Mugaas),
+ Fix preprocessor conditional in threads.h (J. Peter Mugaas),
+ Fix pointer comparison warnings on 64-bit Windows (J. Peter Mugaas),
+ Fix macro redefinition warning (J. Peter Mugaas),
+ Default to native threads on MinGW-w64 (Nick Wellnhofer),
+ Simplify Windows IO functions (Nick Wellnhofer),
+ Fix runtest on Windows (Nick Wellnhofer),
+ socklen_t is always int on Windows (Nick Wellnhofer),
+ Don't redefine socket error codes on Windows (Nick Wellnhofer),
+ Fix pointer/int cast warnings on 64-bit Windows (Nick Wellnhofer),
+ Fix Windows compiler warnings in xmlCanonicPath (Nick Wellnhofer)
- - Portability:
- Fix python bindings with versions older than 2.7 (Daniel Veillard),
- rebuild docs:Makefile.am (Roumen Petrov),
- elfgcchack.h after rebuild in doc (Roumen Petrov),
- elfgcchack for buf module (Roumen Petrov),
- Fix a uneeded and wrong extra link parameter (Daniel Veillard),
- Few cleanup patches for Windows (Denis Pauk),
- Fix rpmbuild --nocheck (Mark Salter),
- Fix for win32/configure.js and WITH_THREAD_ALLOC (Daniel Richard),
- Fix Broken multi-arch support in xml2-config (Daniel Veillard),
- Fix a portability issue for GCC < 3.4.0 (Daniel Veillard),
- Windows build fixes (Daniel Richard),
- Fix a thread portability problem (Friedrich Haubensak),
- Downgrade autoconf requirement to 2.63 (Daniel Veillard)
+ - Bug Fixes:
+ xmlcatalog: restore ability to query system catalog easily (Jan Pokorný),
+ Fix comparison of nodesets to strings (Nick Wellnhofer)
- - Bug Fixes:
- Fix a linking error for python bindings (Daniel Veillard),
- Fix a couple of return without value (Jüri Aedla),
- Improve the hashing functions (Daniel Franke),
- Improve handling of xmlStopParser() (Daniel Veillard),
- Remove risk of lockup in dictionary initialization (Daniel Veillard),
- Activate detection of encoding in external subset (Daniel Veillard),
- Fix an output buffer flushing conversion bug (Mikhail Titov),
- Fix an old bug in xmlSchemaValidateOneElement (Csaba László),
- Fix configure cannot remove messages (Gilles Espinasse),
- fix schema validation in combination with xsi:nil (Daniel Veillard),
- xmlCtxtReadFile doesn't work with literal IPv6 URLs (Steve Wolf),
- Fix a few problems with setEntityLoader (Alexey Neyman),
- Detect excessive entities expansion upon replacement (Daniel Veillard),
- Fix the flushing out of raw buffers on encoding conversions (Daniel,
-Veillard),
- Fix some buffer conversion issues (Daniel Veillard),
- When calling xmlNodeDump make sure we grow the buffer quickly (Daniel,
-Veillard),
- Fix an error in the progressive DTD parsing code (Dan Winship),
- xmllint should not load DTD by default when using the reader (Daniel,
-Veillard),
- Try IBM-037 when looking for EBCDIC handlers (Petr Sumbera),
- Fix potential out of bound access (Daniel Veillard),
- Fix large parse of file from memory (Daniel Veillard),
- Fix a bug in the nsclean option of the parser (Daniel Veillard),
- Fix a regression in 2.9.0 breaking validation while streaming (Daniel,
-Veillard),
- Remove potential calls to exit() (Daniel Veillard)
-
- - Improvements:
- Regenerated API, and testapi, rebuild documentation (Daniel Veillard),
- Fix tree iterators broken by 2to3 script (Daniel Veillard),
- update all tests for Python3 and Python2 (Daniel Veillard),
- A few more fixes for python 3 affecting libxml2.py (Daniel Veillard),
- Fix compilation on Python3 (Daniel Veillard),
- Converting apibuild.py to python3 (Daniel Veillard),
- First pass at starting porting to python3 (Daniel Veillard),
- updated configure.in for python3 (Daniel Veillard),
- Add support for xpathRegisterVariable in Python (Shaun McCance),
- Added a regression tests from bug 694228 data (Daniel Veillard),
- Cache presence of '<' in entities content (Daniel Veillard),
- Avoid extra processing on entities (Daniel Veillard),
- Python binding for xmlRegisterInputCallback (Alexey Neyman),
- Python bindings: DOM casts everything to xmlNode (Alexey Neyman),
- Define LIBXML_THREAD_ALLOC_ENABLED via xmlversion.h (Tim Starling),
- Adding streaming validation to runtest checks (Daniel Veillard),
- Add a --pushsmall option to xmllint (Daniel Veillard)
-
- - Cleanups:
- Switched comment in file to UTF-8 encoding (Daniel Veillard),
- Extend gitignore (Daniel Veillard),
- Silent the new python test on input (Alexey Neyman),
- Cleanup of a duplicate test (Daniel Veillard),
- Cleanup on duplicate test expressions (Daniel Veillard),
- Fix compiler warning after 153cf15905cf4ec080612ada6703757d10caba1e (Patrick,
-Gansterer),
- Spec cleanups and a fix for multiarch support (Daniel Veillard),
- Silence a clang warning (Daniel Veillard),
- Cleanup the Copyright to be pure MIT Licence wording (Daniel Veillard),
- rand_seed should be static in dict.c (Wouter Van Rooy),
- Fix typos in parser comments (Jan Pokorný)
+ - Improvements:
+ Add Makefile rules to rebuild HTML man pages (Nick Wellnhofer),
+ Fix mixed decls and code in timsort.h (Nick Wellnhofer),
+ Rework handling of return values in thread tests (Nick Wellnhofer),
+ Fix unused variable warnings in testrecurse (Nick Wellnhofer),
+ Fix -Wimplicit-fallthrough warnings (J. Peter Mugaas),
+ Upgrade timsort.h to latest revision (Nick Wellnhofer),
+ Increase warning level to /W3 under MSVC (Nick Wellnhofer),
+ Fix a couple of warnings in dict.c and threads.c (Nick Wellnhofer),
+ Update .gitignore for Windows (Nick Wellnhofer),
+ Fix unused variable warnings in nanohttp.c (Nick Wellnhofer),
+ Fix the Windows header mess (Nick Wellnhofer),
+ Don't include winsock2.h in xmllint.c (Nick Wellnhofer),
+ Remove generated file python/setup.py from version control (Nick Wellnhofer),
+ Use __linux__ macro in generated code (Nick Wellnhofer)
</changes>
diff --git a/doc/news.html b/doc/news.html
index 5c03ba3..65839ad 100644
--- a/doc/news.html
+++ b/doc/news.html
@@ -8,7 +8,398 @@
H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline }
</style><title>Releases</title></head><body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"><table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"><tr><td width="120"><a href="http://swpat.ffii.org/"><img src="epatents.png" alt="Action against software patents" /></a></td><td width="180"><a href="http://www.gnome.org/"><img src="gnome2.png" alt="Gnome2 Logo" /></a><a href="http://www.w3.org/Status"><img src="w3c.png" alt="W3C Logo" /></a><a href="http://www.redhat.com/"><img src="redhat.gif" alt="Red Hat Logo" /></a><div align="left"><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo" /></a></div></td><td><table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"><tr><td align="center"><h1>The XML C parser and toolkit of Gnome</h1><h2>Releases</h2></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"><tr><td bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="2" width="100%"><tr><td valign="top" width="200" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Main Menu</b></center></td></tr><tr><td bgcolor="#fffacd"><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="20" value="" /><input name="submit" type="submit" value="Search ..." /></form><ul><li><a href="index.html">Home</a></li><li><a href="html/index.html">Reference Manual</a></li><li><a href="intro.html">Introduction</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="docs.html" style="font-weight:bold">Developer Menu</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="help.html">How to help</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="news.html">Releases</a></li><li><a href="XMLinfo.html">XML</a></li><li><a href="XSLT.html">XSLT</a></li><li><a href="xmldtd.html">Validation & DTDs</a></li><li><a href="encoding.html">Encodings support</a></li><li><a href="catalog.html">Catalog support</a></li><li><a href="namespaces.html">Namespaces</a></li><li><a href="contribs.html">Contributions</a></li><li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li><li><a href="html/index.html" style="font-weight:bold">API Menu</a></li><li><a href="guidelines.html">XML Guidelines</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></td></tr></table><table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td colspan="1" bgcolor="#eecfa1" align="center"><center><b>Related links</b></center></td></tr><tr><td bgcolor="#fffacd"><ul><li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li><li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li><li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li><li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li><li><a href="ftp://xmlsoft.org/">FTP</a></li><li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li><li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li><li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li><li><a href="http://lxml.de/">lxml Python bindings</a></li><li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li><li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li><li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li><li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li><li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li><li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li><li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li></ul></td></tr></table></td></tr></table></td><td valign="top" bgcolor="#8b7765"><table border="0" cellspacing="0" cellpadding="1" width="100%"><tr><td><table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"><tr><td><table border="0" cellpadding="3" cellspacing="1" width="100%"><tr><td bgcolor="#fffacd"><p>The <a href="ChangeLog.html">change log</a> describes the recents commits
-to the <a href="http://git.gnome.org/browse/libxml2/">GIT</a> code base.</p><p>Here is the list of public releases:</p><h3>2.9.2: Oct 16 2014</h3><ul>
+to the <a href="http://git.gnome.org/browse/libxml2/">GIT</a> code base.</p><p>Here is the list of public releases:</p><h3>v2.9.8: Mar 05 2018</h3><ul>
+ <li>Portability:<br />
+ python: remove single use of _PyVerify_fd (Patrick Welche),<br />
+ Build more test executables on Windows/MSVC (Nick Wellnhofer),<br />
+ Stop including ansidecl.h (Nick Wellnhofer),<br />
+ Fix libz and liblzma detection (Nick Wellnhofer),<br />
+ Revert "Compile testapi with -Wno-unused-function" (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Fix xmlParserEntityCheck (Nick Wellnhofer),<br />
+ Halt parser in case of encoding error (Nick Wellnhofer),<br />
+ Clear entity content in case of errors (Nick Wellnhofer),<br />
+ Change calls to xmlCharEncInput to set flush false when not final call. Having flush incorrectly set to true causes errors for ICU. (Joel Hockey),<br />
+ Fix buffer over-read in xmlParseNCNameComplex (Nick Wellnhofer),<br />
+ Fix ICU library filenames on Windows/MSVC (Nick Wellnhofer),<br />
+ Fix xmlXPathIsNaN broken by recent commit (Nick Wellnhofer),<br />
+ Fix -Wenum-compare warnings (Nick Wellnhofer),<br />
+ Fix callback signature in testapi.c (Nick Wellnhofer),<br />
+ Fix unused parameter warning without ICU (Nick Wellnhofer),<br />
+ Fix IO callback signatures (Nick Wellnhofer),<br />
+ Fix misc callback signatures (Nick Wellnhofer),<br />
+ Fix list callback signatures (Nick Wellnhofer),<br />
+ Fix hash callback signatures (Nick Wellnhofer),<br />
+ Refactor name and type signature for xmlNop (Vlad Tsyrklevich),<br />
+ Fixed ICU to set flush correctly and provide pivot buffer. (Joel Hockey),<br />
+ Skip EBCDIC tests if EBCDIC isn't supported (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Disable pointer-overflow UBSan checks under Travis (Nick Wellnhofer),<br />
+ Improve handling of context input_id (Daniel Veillard),<br />
+ Add resource file to Windows DLL (ccpaging),<br />
+ Run Travis tests with -Werror (Nick Wellnhofer),<br />
+ Build with "-Wall -Wextra" (Nick Wellnhofer),<br />
+ Fix -Wtautological-pointer-compare warnings (Nick Wellnhofer),<br />
+ Remove unused AC_CHECKs (Nick Wellnhofer),<br />
+ Update information about contributing (Nick Wellnhofer),<br />
+ Fix -Wmisleading-indentation warnings (Nick Wellnhofer),<br />
+ Don't touch CFLAGS in configure.ac (Nick Wellnhofer),<br />
+ Ignore function pointer cast warnings (Nick Wellnhofer),<br />
+ Simplify XPath NaN, inf and -0 handling (Nick Wellnhofer),<br />
+ Introduce xmlPosixStrdup and update xmlMemStrdup (Nick Wellnhofer),<br />
+ Add test for ICU flush and pivot buffer (Nick Wellnhofer),<br />
+ Compile testapi with -Wno-unused-function (Nick Wellnhofer)<br />
+ </li>
+</ul><h3>2.9.7: Nov 02 2017</h3><ul>
+ <li>Documentation:<br />
+ xmlcatalog: refresh man page wrt. quering system catalog easily (Jan Pokorný)<br />
+ </li>
+
+ <li>Portability:<br />
+ Fix deprecated Travis compiler flag (Nick Wellnhofer),<br />
+ Add declaration for DllMain (J. Peter Mugaas),<br />
+ Fix preprocessor conditional in threads.h (J. Peter Mugaas),<br />
+ Fix pointer comparison warnings on 64-bit Windows (J. Peter Mugaas),<br />
+ Fix macro redefinition warning (J. Peter Mugaas),<br />
+ Default to native threads on MinGW-w64 (Nick Wellnhofer),<br />
+ Simplify Windows IO functions (Nick Wellnhofer),<br />
+ Fix runtest on Windows (Nick Wellnhofer),<br />
+ socklen_t is always int on Windows (Nick Wellnhofer),<br />
+ Don't redefine socket error codes on Windows (Nick Wellnhofer),<br />
+ Fix pointer/int cast warnings on 64-bit Windows (Nick Wellnhofer),<br />
+ Fix Windows compiler warnings in xmlCanonicPath (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ xmlcatalog: restore ability to query system catalog easily (Jan Pokorný),<br />
+ Fix comparison of nodesets to strings (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Add Makefile rules to rebuild HTML man pages (Nick Wellnhofer),<br />
+ Fix mixed decls and code in timsort.h (Nick Wellnhofer),<br />
+ Rework handling of return values in thread tests (Nick Wellnhofer),<br />
+ Fix unused variable warnings in testrecurse (Nick Wellnhofer),<br />
+ Fix -Wimplicit-fallthrough warnings (J. Peter Mugaas),<br />
+ Upgrade timsort.h to latest revision (Nick Wellnhofer),<br />
+ Increase warning level to /W3 under MSVC (Nick Wellnhofer),<br />
+ Fix a couple of warnings in dict.c and threads.c (Nick Wellnhofer),<br />
+ Update .gitignore for Windows (Nick Wellnhofer),<br />
+ Fix unused variable warnings in nanohttp.c (Nick Wellnhofer),<br />
+ Fix the Windows header mess (Nick Wellnhofer),<br />
+ Don't include winsock2.h in xmllint.c (Nick Wellnhofer),<br />
+ Remove generated file python/setup.py from version control (Nick Wellnhofer),<br />
+ Use __linux__ macro in generated code (Nick Wellnhofer)<br />
+ </li>
+
+</ul><h3>v2.9.6: Oct 06 2017</h3><ul>
+ <li>Portability:<br />
+ Change preprocessor OS tests to __linux__ (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Fix XPath stack frame logic (Nick Wellnhofer),<br />
+ Report undefined XPath variable error message (Nick Wellnhofer),<br />
+ Fix regression with librsvg (Nick Wellnhofer),<br />
+ Handle more invalid entity values in recovery mode (Nick Wellnhofer),<br />
+ Fix structured validation errors (Nick Wellnhofer),<br />
+ Fix memory leak in LZMA decompressor (Nick Wellnhofer),<br />
+ Set memory limit for LZMA decompression (Nick Wellnhofer),<br />
+ Handle illegal entity values in recovery mode (Nick Wellnhofer),<br />
+ Fix debug dump of streaming XPath expressions (Nick Wellnhofer),<br />
+ Fix memory leak in nanoftp (Nick Wellnhofer),<br />
+ Fix memory leaks in SAX1 parser (Nick Wellnhofer)<br />
+ </li>
+</ul><h3>v2.9.5: Sep 04 2017</h3><ul>
+
+ <li>Security:<br />
+ Detect infinite recursion in parameter entities (Nick Wellnhofer),<br />
+ Fix handling of parameter-entity references (Nick Wellnhofer),<br />
+ Disallow namespace nodes in XPointer ranges (Nick Wellnhofer),<br />
+ Fix XPointer paths beginning with range-to (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Documentation:<br />
+ Documentation fixes (Nick Wellnhofer),<br />
+ Spelling and grammar fixes (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Portability:<br />
+ Adding README.zOS to list of extra files for the release (Daniel Veillard),<br />
+ Description of work needed to compile on zOS (Stéphane Michaut),<br />
+ Porting libxml2 on zOS encoding of code (Stéphane Michaut),<br />
+ small changes for OS/400 (Patrick Monnerat),<br />
+ relaxng.c, xmlschemas.c: Fix build on pre-C99 compilers (Chun-wei Fan)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Problem resolving relative URIs (Daniel Veillard),<br />
+ Fix unwanted warnings when switching encodings (Nick Wellnhofer),<br />
+ Fix signature of xmlSchemaAugmentImportedIDC (Daniel Veillard),<br />
+ Heap-buffer-overflow read of size 1 in xmlFAParsePosCharGroup (David Kilzer),<br />
+ Fix NULL pointer deref in xmlFAParseCharClassEsc (Nick Wellnhofer),<br />
+ Fix infinite loops with push parser in recovery mode (Nick Wellnhofer),<br />
+ Send xmllint usage error to stderr (Nick Wellnhofer),<br />
+ Fix NULL deref in xmlParseExternalEntityPrivate (Nick Wellnhofer),<br />
+ Make sure not to call IS_BLANK_CH when parsing the DTD (Nick Wellnhofer),<br />
+ Fix xmlHaltParser (Nick Wellnhofer),<br />
+ Fix pathological performance when outputting charrefs (Nick Wellnhofer),<br />
+ Fix invalid-source-encoding warnings in testWriter.c (Nick Wellnhofer),<br />
+ Fix duplicate SAX callbacks for entity content (David Kilzer),<br />
+ Treat URIs with scheme as absolute in C14N (Nick Wellnhofer),<br />
+ Fix copy-paste errors in error messages (Nick Wellnhofer),<br />
+ Fix sanity check in htmlParseNameComplex (Nick Wellnhofer),<br />
+ Fix potential infinite loop in xmlStringLenDecodeEntities (Nick Wellnhofer),<br />
+ Reset parser input pointers on encoding failure (Nick Wellnhofer),<br />
+ Fix memory leak in xmlParseEntityDecl error path (Nick Wellnhofer),<br />
+ Fix xmlBuildRelativeURI for URIs starting with './' (Nick Wellnhofer),<br />
+ Fix type confusion in xmlValidateOneNamespace (Nick Wellnhofer),<br />
+ Fix memory leak in xmlStringLenGetNodeList (Nick Wellnhofer),<br />
+ Fix NULL pointer deref in xmlDumpElementContent (Daniel Veillard),<br />
+ Fix memory leak in xmlBufAttrSerializeTxtContent (Nick Wellnhofer),<br />
+ Stop parser on unsupported encodings (Nick Wellnhofer),<br />
+ Check for integer overflow in memory debug code (Nick Wellnhofer),<br />
+ Fix buffer size checks in xmlSnprintfElementContent (Nick Wellnhofer),<br />
+ Avoid reparsing in xmlParseStartTag2 (Nick Wellnhofer),<br />
+ Fix undefined behavior in xmlRegExecPushStringInternal (Nick Wellnhofer),<br />
+ Check XPath exponents for overflow (Nick Wellnhofer),<br />
+ Check for overflow in xmlXPathIsPositionalPredicate (Nick Wellnhofer),<br />
+ Fix spurious error message (Nick Wellnhofer),<br />
+ Fix memory leak in xmlCanonicPath (Nick Wellnhofer),<br />
+ Fix memory leak in xmlXPathCompareNodeSetValue (Nick Wellnhofer),<br />
+ Fix memory leak in pattern error path (Nick Wellnhofer),<br />
+ Fix memory leak in parser error path (Nick Wellnhofer),<br />
+ Fix memory leaks in XPointer error paths (Nick Wellnhofer),<br />
+ Fix memory leak in xmlXPathNodeSetMergeAndClear (Nick Wellnhofer),<br />
+ Fix memory leak in XPath filter optimizations (Nick Wellnhofer),<br />
+ Fix memory leaks in XPath error paths (Nick Wellnhofer),<br />
+ Do not leak the new CData node if adding fails (David Tardon),<br />
+ Prevent unwanted external entity reference (Neel Mehta),<br />
+ Increase buffer space for port in HTTP redirect support (Daniel Veillard),<br />
+ Fix more NULL pointer derefs in xpointer.c (Nick Wellnhofer),<br />
+ Avoid function/data pointer conversion in xpath.c (Nick Wellnhofer),<br />
+ Fix format string warnings (Nick Wellnhofer),<br />
+ Disallow namespace nodes in XPointer points (Nick Wellnhofer),<br />
+ Fix comparison with root node in xmlXPathCmpNodes (Nick Wellnhofer),<br />
+ Fix attribute decoding during XML schema validation (Alex Henrie),<br />
+ Fix NULL pointer deref in XPointer range-to (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Updating the spec file to reflect Fedora 24 (Daniel Veillard),<br />
+ Add const in five places to move 1 KiB to .rdata (Bruce Dawson),<br />
+ Fix missing part of comment for function xmlXPathEvalExpression() (Daniel Veillard),<br />
+ Get rid of "blanks wrapper" for parameter entities (Nick Wellnhofer),<br />
+ Simplify handling of parameter entity references (Nick Wellnhofer),<br />
+ Deduplicate code in encoding.c (Nick Wellnhofer),<br />
+ Make HTML parser functions take const pointers (Nick Wellnhofer),<br />
+ Build test programs only when needed (Nick Wellnhofer),<br />
+ Fix doc/examples/index.py (Nick Wellnhofer),<br />
+ Fix compiler warnings in threads.c (Nick Wellnhofer),<br />
+ Fix empty-body warning in nanohttp.c (Nick Wellnhofer),<br />
+ Fix cast-align warnings (Nick Wellnhofer),<br />
+ Fix unused-parameter warnings (Nick Wellnhofer),<br />
+ Rework entity boundary checks (Nick Wellnhofer),<br />
+ Don't switch encoding for internal parameter entities (Nick Wellnhofer),<br />
+ Merge duplicate code paths handling PE references (Nick Wellnhofer),<br />
+ Test SAX2 callbacks with entity substitution (Nick Wellnhofer),<br />
+ Support catalog and threads tests under --without-sax1 (Nick Wellnhofer),<br />
+ Misc fixes for 'make tests' (Nick Wellnhofer),<br />
+ Initialize keepBlanks in HTML parser (Nick Wellnhofer),<br />
+ Add test cases for bug 758518 (David Kilzer),<br />
+ Fix compiler warning in htmlParseElementInternal (Nick Wellnhofer),<br />
+ Remove useless check in xmlParseAttributeListDecl (Nick Wellnhofer),<br />
+ Allow zero sized memory input buffers (Nick Wellnhofer),<br />
+ Add TODO comment in xmlSwitchEncoding (Nick Wellnhofer),<br />
+ Check for integer overflow in xmlXPathFormatNumber (Nick Wellnhofer),<br />
+ Make Travis print UBSan stacktraces (Nick Wellnhofer),<br />
+ Add .travis.yml (Nick Wellnhofer),<br />
+ Fix expected error output in Python tests (Nick Wellnhofer),<br />
+ Simplify control flow in xmlParseStartTag2 (Nick Wellnhofer),<br />
+ Disable LeakSanitizer when running API tests (Nick Wellnhofer),<br />
+ Avoid out-of-bound array access in API tests (Nick Wellnhofer),<br />
+ Avoid spurious UBSan errors in parser.c (Nick Wellnhofer),<br />
+ Parse small XPath numbers more accurately (Nick Wellnhofer),<br />
+ Rework XPath rounding functions (Nick Wellnhofer),<br />
+ Fix white space in test output (Nick Wellnhofer),<br />
+ Fix axis traversal from attribute and namespace nodes (Nick Wellnhofer),<br />
+ Check for trailing characters in XPath expressions earlier (Nick Wellnhofer),<br />
+ Rework final handling of XPath results (Nick Wellnhofer),<br />
+ Make xmlXPathEvalExpression call xmlXPathEval (Nick Wellnhofer),<br />
+ Remove unused variables (Nick Wellnhofer),<br />
+ Don't print generic error messages in XPath tests (Nick Wellnhofer)<br />
+ </li>
+
+ <li>Cleanups:<br />
+ Fix a couple of misleading indentation errors (Daniel Veillard),<br />
+ Remove unnecessary calls to xmlPopInput (Nick Wellnhofer)<br />
+ </li>
+</ul><h3>2.9.4: May 23 2016</h3><ul>
+ <li>Security:<br />
+ More format string warnings with possible format string vulnerability (David Kilzer),<br />
+ Avoid building recursive entities (Daniel Veillard),<br />
+ Heap-based buffer overread in htmlCurrentChar (Pranjal Jumde),<br />
+ Heap-based buffer-underreads due to xmlParseName (David Kilzer),<br />
+ Heap use-after-free in xmlSAX2AttributeNs (Pranjal Jumde),<br />
+ Heap use-after-free in htmlParsePubidLiteral and htmlParseSystemiteral (Pranjal Jumde),<br />
+ Fix some format string warnings with possible format string vulnerability (David Kilzer),<br />
+ Detect change of encoding when parsing HTML names (Hugh Davenport),<br />
+ Fix inappropriate fetch of entities content (Daniel Veillard),<br />
+ Bug 759398: Heap use-after-free in xmlDictComputeFastKey <https://bugzilla.gnome.org/show_bug.cgi?id=759398> (Pranjal Jumde),<br />
+ Bug 758605: Heap-based buffer overread in xmlDictAddString <https://bugzilla.gnome.org/show_bug.cgi?id=758605> (Pranjal Jumde),<br />
+ Bug 758588: Heap-based buffer overread in xmlParserPrintFileContextInternal <https://bugzilla.gnome.org/show_bug.cgi?id=758588> (David Kilzer),<br />
+ Bug 757711: heap-buffer-overflow in xmlFAParsePosCharGroup <https://bugzilla.gnome.org/show_bug.cgi?id=757711> (Pranjal Jumde),<br />
+ Add missing increments of recursion depth counter to XML parser. (Peter Simons)<br />
+ </li>
+
+ <li>Documentation:<br />
+ Fix typo: s{ ec -> cr }cipt (Jan Pokorný),<br />
+ Fix typos: dictio{ nn -> n }ar{y,ies} (Jan Pokorný),<br />
+ Fix typos: PATH_{ SEAPARATOR -> SEPARATOR } (Jan Pokorný),<br />
+ Correct a typo. (Shlomi Fish)<br />
+ </li>
+
+ <li>Portability:<br />
+ Correct the usage of LDFLAGS (Mattias Hansson),<br />
+ Revert the use of SAVE_LDFLAGS in configure.ac (Mattias Hansson),<br />
+ libxml2 hardcodes -L/lib in zlib/lzma tests which breaks cross-compiles (Mike Frysinger),<br />
+ Fix apibuild for a recently added construct (Daniel Veillard),<br />
+ Use pkg-config to locate zlib when possible (Stewart Brodie),<br />
+ Use pkg-config to locate ICU when possible (Stewart Brodie),<br />
+ Portability to non C99 compliant compilers (Patrick Monnerat),<br />
+ dict.h: Move xmlDictPtr definition before includes to allow direct inclusion. (Patrick Monnerat),<br />
+ os400: tell about xmllint and xmlcatalog in README400. (Patrick Monnerat),<br />
+ os400: properly process SGML add in XMLCATALOG command. (Patrick Monnerat),<br />
+ os400: implement CL command XMLCATALOG. (Patrick Monnerat),<br />
+ os400: compile and install program xmlcatalog (qshell-only). (Patrick Monnerat),<br />
+ os400: expand tabs in sources, strip trailing blanks. (Patrick Monnerat),<br />
+ os400: implement CL command XMLLINT. (Patrick Monnerat),<br />
+ os400: compile and install program xmllint (qshell-only). (Patrick Monnerat),<br />
+ os400: initscript make_module(): Use options instead of positional parameters. (Patrick Monnerat),<br />
+ os400: c14n.rpgle: allow *omit for nullable reference parameters. (Patrick Monnerat),<br />
+ os400: use like() for double type. (Patrick Monnerat),<br />
+ os400: use like() for int type. (Patrick Monnerat),<br />
+ os400: use like() for unsigned int type. (Patrick Monnerat),<br />
+ os400: use like() for enum types. (Patrick Monnerat),<br />
+ Add xz to xml2-config --libs output (Baruch Siach),<br />
+ Bug 760190: configure.ac should be able to build --with-icu without icu-config tool <https://bugzilla.gnome.org/show_bug.cgi?id=760190> (David Kilzer),<br />
+ win32\VC10\config.h and VS 2015 (Bruce Dawson),<br />
+ Add configure maintainer mode (orzen)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Avoid an out of bound access when serializing malformed strings (Daniel Veillard),<br />
+ Unsigned addition may overflow in xmlMallocAtomicLoc() (David Kilzer),<br />
+ Integer signed/unsigned type mismatch in xmlParserInputGrow() (David Kilzer),<br />
+ Bug 763071: heap-buffer-overflow in xmlStrncat <https://bugzilla.gnome.org/show_bug.cgi?id=763071> (Pranjal Jumde),<br />
+ Integer overflow parsing port number in URI (Michael Paddon),<br />
+ Fix an error with regexp on nullable counted char transition (Daniel Veillard),<br />
+ Fix memory leak with XPath namespace nodes (Nick Wellnhofer),<br />
+ Fix namespace axis traversal (Nick Wellnhofer),<br />
+ Fix null pointer deref in docs with no root element (Hugh Davenport),<br />
+ Fix XSD validation of URIs with ampersands (Alex Henrie),<br />
+ xmlschemastypes.c: accept endOfDayFrag Times set to "24:00:00" mean "end of day" and should not cause an error. (Patrick Monnerat),<br />
+ xmlcatalog: flush stdout before interactive shell input. (Patrick Monnerat),<br />
+ xmllint: flush stdout before interactive shell input. (Patrick Monnerat),<br />
+ Don't recurse into OP_VALUEs in xmlXPathOptimizeExpression (Nick Wellnhofer),<br />
+ Fix namespace::node() XPath expression (Nick Wellnhofer),<br />
+ Fix OOB write in xmlXPathEmptyNodeSet (Nick Wellnhofer),<br />
+ Fix parsing of NCNames in XPath (Nick Wellnhofer),<br />
+ Fix OOB read with invalid UTF-8 in xmlUTF8Strsize (Nick Wellnhofer),<br />
+ Do normalize string-based datatype value in RelaxNG facet checking (Audric Schiltknecht),<br />
+ Bug 760921: REGRESSION (8eb55d78): doc/examples/io1 test fails after fix for "xmlSaveUri() incorrectly recomposes URIs with rootless paths" <https://bugzilla.gnome.org/show_bug.cgi?id=760921> (David Kilzer),<br />
+ Bug 760861: REGRESSION (bf9c1dad): Missing results for test/schemas/regexp-char-ref_[01].xsd <https://bugzilla.gnome.org/show_bug.cgi?id=760861> (David Kilzer),<br />
+ error.c: *input->cur == 0 does not mean no error (Pavel Raiskup),<br />
+ Add missing RNG test files (David Kilzer),<br />
+ Bug 760183: REGRESSION (v2.9.3): XML push parser fails with bogus UTF-8 encoding error when multi-byte character in large CDATA section is split across buffer <https://bugzilla.gnome.org/show_bug.cgi?id=760183> (David Kilzer),<br />
+ Bug 758572: ASAN crash in make check <https://bugzilla.gnome.org/show_bug.cgi?id=758572> (David Kilzer),<br />
+ Bug 721158: Missing ICU string when doing --version on xmllint <https://bugzilla.gnome.org/show_bug.cgi?id=721158> (David Kilzer),<br />
+ python 3: libxml2.c wrappers create Unicode str already (Michael Stahl),<br />
+ Add autogen.sh to distrib (orzen),<br />
+ Heap-based buffer overread in xmlNextChar (Daniel Veillard)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Add more debugging info to runtest (Daniel Veillard),<br />
+ Implement "runtest -u" mode (David Kilzer),<br />
+ Add a make rule to rebuild for ASAN (Daniel Veillard)<br />
+ </li>
+</ul><h3>v2.9.3: Nov 20 2015</h3><ul>
+ <li>Security:<br />
+ CVE-2015-8242 Buffer overead with HTML parser in push mode (Hugh Davenport),<br />
+ CVE-2015-7500 Fix memory access error due to incorrect entities boundaries (Daniel Veillard),<br />
+ CVE-2015-7499-2 Detect incoherency on GROW (Daniel Veillard),<br />
+ CVE-2015-7499-1 Add xmlHaltParser() to stop the parser (Daniel Veillard),<br />
+ CVE-2015-5312 Another entity expansion issue (David Drysdale),<br />
+ CVE-2015-7497 Avoid an heap buffer overflow in xmlDictComputeFastQKey (David Drysdale),<br />
+ CVE-2015-7498 Avoid processing entities after encoding conversion failures (Daniel Veillard),<br />
+ CVE-2015-8035 Fix XZ compression support loop (Daniel Veillard),<br />
+ CVE-2015-7942-2 Fix an error in previous Conditional section patch (Daniel Veillard),<br />
+ CVE-2015-7942 Another variation of overflow in Conditional sections (Daniel Veillard),<br />
+ CVE-2015-1819 Enforce the reader to run in constant memory (Daniel Veillard)<br />
+ CVE-2015-7941_2 Cleanup conditional section error handling (Daniel Veillard),<br />
+ CVE-2015-7941_1 Stop parsing on entities boundaries errors (Daniel Veillard),<br />
+ </li>
+
+ <li>Documentation:<br />
+ Correct spelling of "calling" (Alex Henrie),<br />
+ Fix a small error in xmllint --format description (Fabien Degomme),<br />
+ Avoid XSS on the search of xmlsoft.org (Daniel Veillard)<br />
+ </li>
+
+ <li>Portability:<br />
+ threads: use forward declarations only for glibc (Michael Heimpold),<br />
+ Update Win32 configure.js to search for configure.ac (Daniel Veillard)<br />
+ </li>
+
+ <li>Bug Fixes:<br />
+ Bug on creating new stream from entity (Daniel Veillard),<br />
+ Fix some loop issues embedding NEXT (Daniel Veillard),<br />
+ Do not print error context when there is none (Daniel Veillard),<br />
+ Avoid extra processing of MarkupDecl when EOF (Hugh Davenport),<br />
+ Fix parsing short unclosed comment uninitialized access (Daniel Veillard),<br />
+ Add missing Null check in xmlParseExternalEntityPrivate (Gaurav Gupta),<br />
+ Fix a bug in CData error handling in the push parser (Daniel Veillard),<br />
+ Fix a bug on name parsing at the end of current input buffer (Daniel Veillard),<br />
+ Fix the spurious ID already defined error (Daniel Veillard),<br />
+ Fix previous change to node sort order (Nick Wellnhofer),<br />
+ Fix a self assignment issue raised by clang (Scott Graham),<br />
+ Fail parsing early on if encoding conversion failed (Daniel Veillard),<br />
+ Do not process encoding values if the declaration if broken (Daniel Veillard),<br />
+ Silence clang's -Wunknown-attribute (Michael Catanzaro),<br />
+ xmlMemUsed is not thread-safe (Martin von Gagern),<br />
+ Fix support for except in nameclasses (Daniel Veillard),<br />
+ Fix order of root nodes (Nick Wellnhofer),<br />
+ Allow attributes on descendant-or-self axis (Nick Wellnhofer),<br />
+ Fix the fix to Windows locking (Steve Nairn),<br />
+ Fix timsort invariant loop re: Envisage article (Christopher Swenson),<br />
+ Don't add IDs in xmlSetTreeDoc (Nick Wellnhofer),<br />
+ Account for ID attributes in xmlSetTreeDoc (Nick Wellnhofer),<br />
+ Remove various unused value assignments (Philip Withnall),<br />
+ Fix missing entities after CVE-2014-3660 fix (Daniel Veillard),<br />
+ Revert "Missing initialization for the catalog module" (Daniel Veillard)<br />
+ </li>
+
+ <li>Improvements:<br />
+ Reuse xmlHaltParser() where it makes sense (Daniel Veillard),<br />
+ xmlStopParser reset errNo (Daniel Veillard),<br />
+ Reenable xz support by default (Daniel Veillard),<br />
+ Recover unescaped less-than character in HTML recovery parsing (Daniel Veillard),<br />
+ Allow HTML serializer to output HTML5 DOCTYPE (Shaun McCance),<br />
+ Regression test for bug #695699 (Nick Wellnhofer),<br />
+ Add a couple of XPath tests (Nick Wellnhofer),<br />
+ Add Python 3 rpm subpackage (Tomas Radej),<br />
+ libxml2-config.cmake.in: update include directories (Samuel Martin),<br />
+ Adding example from bugs 738805 to regression tests (Daniel Veillard)<br />
+ </li>
+
+ <li>Cleanups:<br />
+ </li>
+</ul><h3>2.9.2: Oct 16 2014</h3><ul>
<li>Security:<br />
Fix for CVE-2014-3660 billion laugh variant (Daniel Veillard),<br />
CVE-2014-0191 Do not fetch external parameter entities (Daniel Veillard)<br />
@@ -1207,7 +1598,7 @@
Hendricks), aliasing bug exposed by gcc4 on s390, xmlTextReaderNext bug
(Rob Richards), Schemas decimal type fixes (William Brack),
xmlByteConsumed static buffer (Ben Maurer).</li>
- <li>improvement: speedup parsing comments and DTDs, dictionnary support for
+ <li>improvement: speedup parsing comments and DTDs, dictionary support for
hash tables, Schemas Identity constraints (Kasimier), streaming XPath
subset, xmlTextReaderReadString added (Bjorn Reese), Schemas canonical
values handling (Kasimier), add xmlTextReaderByteConsumed (Aron
@@ -1397,7 +1788,7 @@
URI on SYSTEM lookup failure, XInclude parse flags inheritance (William),
XInclude and XPointer fixes for entities (William), XML parser bug
reported by Holger Rauch, nanohttp fd leak (William), regexps char
- groups '-' handling (William), dictionnary reference counting problems,
+ groups '-' handling (William), dictionary reference counting problems,
do not close stderr.</li>
<li>performance patches from Petr Pajas</li>
<li>Documentation fixes: XML_CATALOG_FILES in man pages (Mike Hommey)</li>
@@ -1452,14 +1843,14 @@
Fleck), doc (Sven Zimmerman), I/O example.</li>
<li>Python bindings: fixes (William), enum support (Stéphane Bidoul),
structured error reporting (Stéphane Bidoul)</li>
- <li>XInclude: various fixes for conformance, problem related to dictionnary
+ <li>XInclude: various fixes for conformance, problem related to dictionary
references (William & me), recursion (William)</li>
<li>xmlWriter: indentation (Lucas Brasilino), memory leaks (Alfred
Mickautsch),</li>
<li>xmlSchemas: normalizedString datatype (John Belmonte)</li>
<li>code cleanup for strings functions (William)</li>
<li>Windows: compiler patches (Mark Vakoc)</li>
- <li>Parser optimizations, a few new XPath and dictionnary APIs for future
+ <li>Parser optimizations, a few new XPath and dictionary APIs for future
XSLT optimizations.</li>
</ul><h3>2.6.4: Dec 24 2003</h3><ul>
<li>Windows build fixes (Igor Zlatkovic)</li>
@@ -1544,8 +1935,8 @@
of change</li>
<li>Increased the library modularity, far more options can be stripped out,
a --with-minimum configuration will weight around 160KBytes</li>
- <li>Use per parser and per document dictionnary, allocate names and small
- text nodes from the dictionnary</li>
+ <li>Use per parser and per document dictionary, allocate names and small
+ text nodes from the dictionary</li>
<li>Switch to a SAX2 like parser rewrote most of the XML parser core,
provides namespace resolution and defaulted attributes, minimize memory
allocations and copies, namespace checking and specific error handling,
@@ -1592,7 +1983,7 @@
(William), xmlCleanupParser (Marc Liyanage), CDATA output (William), HTTP
error handling.</li>
<li>xmllint options: --dtdvalidfpi for Tobias Reif, --sax1 for compat
- testing, --nodict for building without tree dictionnary, --nocdata to
+ testing, --nodict for building without tree dictionary, --nocdata to
replace CDATA by text, --nsclean to remove surperfluous namespace
declarations</li>
<li>added xml2-config --libtool-libs option from Kevin P. Fleming</li>
diff --git a/doc/search.php b/doc/search.php
index ce1a25f..c94e87e 100644
--- a/doc/search.php
+++ b/doc/search.php
@@ -102,13 +102,14 @@
$scope = ltrim ($scope);
if ($scope == "")
$scope = "any";
+ $querystr = htmlspecialchars($query, ENT_QUOTES, 'UTF-8');
?>
<p> The search service indexes the libxml2 and libxslt APIs and documentation as well as the xml@gnome.org and xslt@gnome.org mailing-list archives. To use it simply provide a set of keywords:
<p>
<form action="<?php echo "$PHP_SELF", "?query=", rawurlencode($query) ?>"
enctype="application/x-www-form-urlencoded" method="GET">
- <input name="query" type="TEXT" size="50" value="<?php echo $query?>">
+ <input name="query" type="TEXT" size="50" value="<?php echo $querystr?>">
<select name="scope">
<option value="any">Search All</option>
<option value="XML" <?php if ($scope == 'XML') print "selected"?>>XML resources</option>
@@ -446,7 +447,7 @@
}
mysql_close($link);
$nb = count($results);
- echo "<h3 align='center'>Found $nb results for query $query</h3>\n";
+ echo "<h3 align='center'>Found $nb results for query $querystr</h3>\n";
usort($results, "resSort");
if ($nb > 0) {
diff --git a/doc/symbols.xml b/doc/symbols.xml
index ec275e7..99aea71 100644
--- a/doc/symbols.xml
+++ b/doc/symbols.xml
@@ -1765,4 +1765,7 @@
<symbol file="xpath">xmlXPathNodeEval</symbol>
<symbol file="xpath">xmlXPathSetContextNode</symbol>
</release>
+ <release version="2.9.8">
+ <symbol file="hash">xmlHashDefaultDeallocator</symbol>
+ </release>
</symbols>
diff --git a/doc/xml.html b/doc/xml.html
index 373285d..4059fb7 100644
--- a/doc/xml.html
+++ b/doc/xml.html
@@ -532,7 +532,7 @@
is still open. Be sure to specify that the bug is for the package libxml2.</p>
<p>For small problems you can try to get help on IRC, the #xml channel on
-irc.gnome.org (port 6667) usually have a few person subscribed which may help
+irc.gnome.org (port 6667) usually has a few people subscribed which may help
(but there is no guarantee and if a real issue is raised it should go on the
mailing-list for archival).</p>
@@ -709,6 +709,409 @@
<p>Here is the list of public releases:</p>
+<h3>v2.9.8: Mar 05 2018</h3>
+<ul>
+ <li>Portability:<br/>
+ python: remove single use of _PyVerify_fd (Patrick Welche),<br/>
+ Build more test executables on Windows/MSVC (Nick Wellnhofer),<br/>
+ Stop including ansidecl.h (Nick Wellnhofer),<br/>
+ Fix libz and liblzma detection (Nick Wellnhofer),<br/>
+ Revert "Compile testapi with -Wno-unused-function" (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Fix xmlParserEntityCheck (Nick Wellnhofer),<br/>
+ Halt parser in case of encoding error (Nick Wellnhofer),<br/>
+ Clear entity content in case of errors (Nick Wellnhofer),<br/>
+ Change calls to xmlCharEncInput to set flush false when not final call. Having flush incorrectly set to true causes errors for ICU. (Joel Hockey),<br/>
+ Fix buffer over-read in xmlParseNCNameComplex (Nick Wellnhofer),<br/>
+ Fix ICU library filenames on Windows/MSVC (Nick Wellnhofer),<br/>
+ Fix xmlXPathIsNaN broken by recent commit (Nick Wellnhofer),<br/>
+ Fix -Wenum-compare warnings (Nick Wellnhofer),<br/>
+ Fix callback signature in testapi.c (Nick Wellnhofer),<br/>
+ Fix unused parameter warning without ICU (Nick Wellnhofer),<br/>
+ Fix IO callback signatures (Nick Wellnhofer),<br/>
+ Fix misc callback signatures (Nick Wellnhofer),<br/>
+ Fix list callback signatures (Nick Wellnhofer),<br/>
+ Fix hash callback signatures (Nick Wellnhofer),<br/>
+ Refactor name and type signature for xmlNop (Vlad Tsyrklevich),<br/>
+ Fixed ICU to set flush correctly and provide pivot buffer. (Joel Hockey),<br/>
+ Skip EBCDIC tests if EBCDIC isn't supported (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Disable pointer-overflow UBSan checks under Travis (Nick Wellnhofer),<br/>
+ Improve handling of context input_id (Daniel Veillard),<br/>
+ Add resource file to Windows DLL (ccpaging),<br/>
+ Run Travis tests with -Werror (Nick Wellnhofer),<br/>
+ Build with "-Wall -Wextra" (Nick Wellnhofer),<br/>
+ Fix -Wtautological-pointer-compare warnings (Nick Wellnhofer),<br/>
+ Remove unused AC_CHECKs (Nick Wellnhofer),<br/>
+ Update information about contributing (Nick Wellnhofer),<br/>
+ Fix -Wmisleading-indentation warnings (Nick Wellnhofer),<br/>
+ Don't touch CFLAGS in configure.ac (Nick Wellnhofer),<br/>
+ Ignore function pointer cast warnings (Nick Wellnhofer),<br/>
+ Simplify XPath NaN, inf and -0 handling (Nick Wellnhofer),<br/>
+ Introduce xmlPosixStrdup and update xmlMemStrdup (Nick Wellnhofer),<br/>
+ Add test for ICU flush and pivot buffer (Nick Wellnhofer),<br/>
+ Compile testapi with -Wno-unused-function (Nick Wellnhofer)<br/>
+ </li>
+</ul>
+<h3>2.9.7: Nov 02 2017</h3>
+<ul>
+ <li>Documentation:<br/>
+ xmlcatalog: refresh man page wrt. quering system catalog easily (Jan Pokorný)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ Fix deprecated Travis compiler flag (Nick Wellnhofer),<br/>
+ Add declaration for DllMain (J. Peter Mugaas),<br/>
+ Fix preprocessor conditional in threads.h (J. Peter Mugaas),<br/>
+ Fix pointer comparison warnings on 64-bit Windows (J. Peter Mugaas),<br/>
+ Fix macro redefinition warning (J. Peter Mugaas),<br/>
+ Default to native threads on MinGW-w64 (Nick Wellnhofer),<br/>
+ Simplify Windows IO functions (Nick Wellnhofer),<br/>
+ Fix runtest on Windows (Nick Wellnhofer),<br/>
+ socklen_t is always int on Windows (Nick Wellnhofer),<br/>
+ Don't redefine socket error codes on Windows (Nick Wellnhofer),<br/>
+ Fix pointer/int cast warnings on 64-bit Windows (Nick Wellnhofer),<br/>
+ Fix Windows compiler warnings in xmlCanonicPath (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ xmlcatalog: restore ability to query system catalog easily (Jan Pokorný),<br/>
+ Fix comparison of nodesets to strings (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Add Makefile rules to rebuild HTML man pages (Nick Wellnhofer),<br/>
+ Fix mixed decls and code in timsort.h (Nick Wellnhofer),<br/>
+ Rework handling of return values in thread tests (Nick Wellnhofer),<br/>
+ Fix unused variable warnings in testrecurse (Nick Wellnhofer),<br/>
+ Fix -Wimplicit-fallthrough warnings (J. Peter Mugaas),<br/>
+ Upgrade timsort.h to latest revision (Nick Wellnhofer),<br/>
+ Increase warning level to /W3 under MSVC (Nick Wellnhofer),<br/>
+ Fix a couple of warnings in dict.c and threads.c (Nick Wellnhofer),<br/>
+ Update .gitignore for Windows (Nick Wellnhofer),<br/>
+ Fix unused variable warnings in nanohttp.c (Nick Wellnhofer),<br/>
+ Fix the Windows header mess (Nick Wellnhofer),<br/>
+ Don't include winsock2.h in xmllint.c (Nick Wellnhofer),<br/>
+ Remove generated file python/setup.py from version control (Nick Wellnhofer),<br/>
+ Use __linux__ macro in generated code (Nick Wellnhofer)<br/>
+ </li>
+
+</ul>
+<h3>v2.9.6: Oct 06 2017</h3>
+<ul>
+ <li>Portability:<br/>
+ Change preprocessor OS tests to __linux__ (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Fix XPath stack frame logic (Nick Wellnhofer),<br/>
+ Report undefined XPath variable error message (Nick Wellnhofer),<br/>
+ Fix regression with librsvg (Nick Wellnhofer),<br/>
+ Handle more invalid entity values in recovery mode (Nick Wellnhofer),<br/>
+ Fix structured validation errors (Nick Wellnhofer),<br/>
+ Fix memory leak in LZMA decompressor (Nick Wellnhofer),<br/>
+ Set memory limit for LZMA decompression (Nick Wellnhofer),<br/>
+ Handle illegal entity values in recovery mode (Nick Wellnhofer),<br/>
+ Fix debug dump of streaming XPath expressions (Nick Wellnhofer),<br/>
+ Fix memory leak in nanoftp (Nick Wellnhofer),<br/>
+ Fix memory leaks in SAX1 parser (Nick Wellnhofer)<br/>
+ </li>
+</ul>
+<h3>v2.9.5: Sep 04 2017</h3>
+<ul>
+
+ <li>Security:<br/>
+ Detect infinite recursion in parameter entities (Nick Wellnhofer),<br/>
+ Fix handling of parameter-entity references (Nick Wellnhofer),<br/>
+ Disallow namespace nodes in XPointer ranges (Nick Wellnhofer),<br/>
+ Fix XPointer paths beginning with range-to (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Documentation:<br/>
+ Documentation fixes (Nick Wellnhofer),<br/>
+ Spelling and grammar fixes (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ Adding README.zOS to list of extra files for the release (Daniel Veillard),<br/>
+ Description of work needed to compile on zOS (Stéphane Michaut),<br/>
+ Porting libxml2 on zOS encoding of code (Stéphane Michaut),<br/>
+ small changes for OS/400 (Patrick Monnerat),<br/>
+ relaxng.c, xmlschemas.c: Fix build on pre-C99 compilers (Chun-wei Fan)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Problem resolving relative URIs (Daniel Veillard),<br/>
+ Fix unwanted warnings when switching encodings (Nick Wellnhofer),<br/>
+ Fix signature of xmlSchemaAugmentImportedIDC (Daniel Veillard),<br/>
+ Heap-buffer-overflow read of size 1 in xmlFAParsePosCharGroup (David Kilzer),<br/>
+ Fix NULL pointer deref in xmlFAParseCharClassEsc (Nick Wellnhofer),<br/>
+ Fix infinite loops with push parser in recovery mode (Nick Wellnhofer),<br/>
+ Send xmllint usage error to stderr (Nick Wellnhofer),<br/>
+ Fix NULL deref in xmlParseExternalEntityPrivate (Nick Wellnhofer),<br/>
+ Make sure not to call IS_BLANK_CH when parsing the DTD (Nick Wellnhofer),<br/>
+ Fix xmlHaltParser (Nick Wellnhofer),<br/>
+ Fix pathological performance when outputting charrefs (Nick Wellnhofer),<br/>
+ Fix invalid-source-encoding warnings in testWriter.c (Nick Wellnhofer),<br/>
+ Fix duplicate SAX callbacks for entity content (David Kilzer),<br/>
+ Treat URIs with scheme as absolute in C14N (Nick Wellnhofer),<br/>
+ Fix copy-paste errors in error messages (Nick Wellnhofer),<br/>
+ Fix sanity check in htmlParseNameComplex (Nick Wellnhofer),<br/>
+ Fix potential infinite loop in xmlStringLenDecodeEntities (Nick Wellnhofer),<br/>
+ Reset parser input pointers on encoding failure (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlParseEntityDecl error path (Nick Wellnhofer),<br/>
+ Fix xmlBuildRelativeURI for URIs starting with './' (Nick Wellnhofer),<br/>
+ Fix type confusion in xmlValidateOneNamespace (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlStringLenGetNodeList (Nick Wellnhofer),<br/>
+ Fix NULL pointer deref in xmlDumpElementContent (Daniel Veillard),<br/>
+ Fix memory leak in xmlBufAttrSerializeTxtContent (Nick Wellnhofer),<br/>
+ Stop parser on unsupported encodings (Nick Wellnhofer),<br/>
+ Check for integer overflow in memory debug code (Nick Wellnhofer),<br/>
+ Fix buffer size checks in xmlSnprintfElementContent (Nick Wellnhofer),<br/>
+ Avoid reparsing in xmlParseStartTag2 (Nick Wellnhofer),<br/>
+ Fix undefined behavior in xmlRegExecPushStringInternal (Nick Wellnhofer),<br/>
+ Check XPath exponents for overflow (Nick Wellnhofer),<br/>
+ Check for overflow in xmlXPathIsPositionalPredicate (Nick Wellnhofer),<br/>
+ Fix spurious error message (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlCanonicPath (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlXPathCompareNodeSetValue (Nick Wellnhofer),<br/>
+ Fix memory leak in pattern error path (Nick Wellnhofer),<br/>
+ Fix memory leak in parser error path (Nick Wellnhofer),<br/>
+ Fix memory leaks in XPointer error paths (Nick Wellnhofer),<br/>
+ Fix memory leak in xmlXPathNodeSetMergeAndClear (Nick Wellnhofer),<br/>
+ Fix memory leak in XPath filter optimizations (Nick Wellnhofer),<br/>
+ Fix memory leaks in XPath error paths (Nick Wellnhofer),<br/>
+ Do not leak the new CData node if adding fails (David Tardon),<br/>
+ Prevent unwanted external entity reference (Neel Mehta),<br/>
+ Increase buffer space for port in HTTP redirect support (Daniel Veillard),<br/>
+ Fix more NULL pointer derefs in xpointer.c (Nick Wellnhofer),<br/>
+ Avoid function/data pointer conversion in xpath.c (Nick Wellnhofer),<br/>
+ Fix format string warnings (Nick Wellnhofer),<br/>
+ Disallow namespace nodes in XPointer points (Nick Wellnhofer),<br/>
+ Fix comparison with root node in xmlXPathCmpNodes (Nick Wellnhofer),<br/>
+ Fix attribute decoding during XML schema validation (Alex Henrie),<br/>
+ Fix NULL pointer deref in XPointer range-to (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Updating the spec file to reflect Fedora 24 (Daniel Veillard),<br/>
+ Add const in five places to move 1 KiB to .rdata (Bruce Dawson),<br/>
+ Fix missing part of comment for function xmlXPathEvalExpression() (Daniel Veillard),<br/>
+ Get rid of "blanks wrapper" for parameter entities (Nick Wellnhofer),<br/>
+ Simplify handling of parameter entity references (Nick Wellnhofer),<br/>
+ Deduplicate code in encoding.c (Nick Wellnhofer),<br/>
+ Make HTML parser functions take const pointers (Nick Wellnhofer),<br/>
+ Build test programs only when needed (Nick Wellnhofer),<br/>
+ Fix doc/examples/index.py (Nick Wellnhofer),<br/>
+ Fix compiler warnings in threads.c (Nick Wellnhofer),<br/>
+ Fix empty-body warning in nanohttp.c (Nick Wellnhofer),<br/>
+ Fix cast-align warnings (Nick Wellnhofer),<br/>
+ Fix unused-parameter warnings (Nick Wellnhofer),<br/>
+ Rework entity boundary checks (Nick Wellnhofer),<br/>
+ Don't switch encoding for internal parameter entities (Nick Wellnhofer),<br/>
+ Merge duplicate code paths handling PE references (Nick Wellnhofer),<br/>
+ Test SAX2 callbacks with entity substitution (Nick Wellnhofer),<br/>
+ Support catalog and threads tests under --without-sax1 (Nick Wellnhofer),<br/>
+ Misc fixes for 'make tests' (Nick Wellnhofer),<br/>
+ Initialize keepBlanks in HTML parser (Nick Wellnhofer),<br/>
+ Add test cases for bug 758518 (David Kilzer),<br/>
+ Fix compiler warning in htmlParseElementInternal (Nick Wellnhofer),<br/>
+ Remove useless check in xmlParseAttributeListDecl (Nick Wellnhofer),<br/>
+ Allow zero sized memory input buffers (Nick Wellnhofer),<br/>
+ Add TODO comment in xmlSwitchEncoding (Nick Wellnhofer),<br/>
+ Check for integer overflow in xmlXPathFormatNumber (Nick Wellnhofer),<br/>
+ Make Travis print UBSan stacktraces (Nick Wellnhofer),<br/>
+ Add .travis.yml (Nick Wellnhofer),<br/>
+ Fix expected error output in Python tests (Nick Wellnhofer),<br/>
+ Simplify control flow in xmlParseStartTag2 (Nick Wellnhofer),<br/>
+ Disable LeakSanitizer when running API tests (Nick Wellnhofer),<br/>
+ Avoid out-of-bound array access in API tests (Nick Wellnhofer),<br/>
+ Avoid spurious UBSan errors in parser.c (Nick Wellnhofer),<br/>
+ Parse small XPath numbers more accurately (Nick Wellnhofer),<br/>
+ Rework XPath rounding functions (Nick Wellnhofer),<br/>
+ Fix white space in test output (Nick Wellnhofer),<br/>
+ Fix axis traversal from attribute and namespace nodes (Nick Wellnhofer),<br/>
+ Check for trailing characters in XPath expressions earlier (Nick Wellnhofer),<br/>
+ Rework final handling of XPath results (Nick Wellnhofer),<br/>
+ Make xmlXPathEvalExpression call xmlXPathEval (Nick Wellnhofer),<br/>
+ Remove unused variables (Nick Wellnhofer),<br/>
+ Don't print generic error messages in XPath tests (Nick Wellnhofer)<br/>
+ </li>
+
+ <li>Cleanups:<br/>
+ Fix a couple of misleading indentation errors (Daniel Veillard),<br/>
+ Remove unnecessary calls to xmlPopInput (Nick Wellnhofer)<br/>
+ </li>
+</ul>
+<h3>2.9.4: May 23 2016</h3>
+<ul>
+ <li>Security:<br/>
+ More format string warnings with possible format string vulnerability (David Kilzer),<br/>
+ Avoid building recursive entities (Daniel Veillard),<br/>
+ Heap-based buffer overread in htmlCurrentChar (Pranjal Jumde),<br/>
+ Heap-based buffer-underreads due to xmlParseName (David Kilzer),<br/>
+ Heap use-after-free in xmlSAX2AttributeNs (Pranjal Jumde),<br/>
+ Heap use-after-free in htmlParsePubidLiteral and htmlParseSystemiteral (Pranjal Jumde),<br/>
+ Fix some format string warnings with possible format string vulnerability (David Kilzer),<br/>
+ Detect change of encoding when parsing HTML names (Hugh Davenport),<br/>
+ Fix inappropriate fetch of entities content (Daniel Veillard),<br/>
+ Bug 759398: Heap use-after-free in xmlDictComputeFastKey <https://bugzilla.gnome.org/show_bug.cgi?id=759398> (Pranjal Jumde),<br/>
+ Bug 758605: Heap-based buffer overread in xmlDictAddString <https://bugzilla.gnome.org/show_bug.cgi?id=758605> (Pranjal Jumde),<br/>
+ Bug 758588: Heap-based buffer overread in xmlParserPrintFileContextInternal <https://bugzilla.gnome.org/show_bug.cgi?id=758588> (David Kilzer),<br/>
+ Bug 757711: heap-buffer-overflow in xmlFAParsePosCharGroup <https://bugzilla.gnome.org/show_bug.cgi?id=757711> (Pranjal Jumde),<br/>
+ Add missing increments of recursion depth counter to XML parser. (Peter Simons)<br/>
+ </li>
+
+ <li>Documentation:<br/>
+ Fix typo: s{ ec -> cr }cipt (Jan Pokorný),<br/>
+ Fix typos: dictio{ nn -> n }ar{y,ies} (Jan Pokorný),<br/>
+ Fix typos: PATH_{ SEAPARATOR -> SEPARATOR } (Jan Pokorný),<br/>
+ Correct a typo. (Shlomi Fish)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ Correct the usage of LDFLAGS (Mattias Hansson),<br/>
+ Revert the use of SAVE_LDFLAGS in configure.ac (Mattias Hansson),<br/>
+ libxml2 hardcodes -L/lib in zlib/lzma tests which breaks cross-compiles (Mike Frysinger),<br/>
+ Fix apibuild for a recently added construct (Daniel Veillard),<br/>
+ Use pkg-config to locate zlib when possible (Stewart Brodie),<br/>
+ Use pkg-config to locate ICU when possible (Stewart Brodie),<br/>
+ Portability to non C99 compliant compilers (Patrick Monnerat),<br/>
+ dict.h: Move xmlDictPtr definition before includes to allow direct inclusion. (Patrick Monnerat),<br/>
+ os400: tell about xmllint and xmlcatalog in README400. (Patrick Monnerat),<br/>
+ os400: properly process SGML add in XMLCATALOG command. (Patrick Monnerat),<br/>
+ os400: implement CL command XMLCATALOG. (Patrick Monnerat),<br/>
+ os400: compile and install program xmlcatalog (qshell-only). (Patrick Monnerat),<br/>
+ os400: expand tabs in sources, strip trailing blanks. (Patrick Monnerat),<br/>
+ os400: implement CL command XMLLINT. (Patrick Monnerat),<br/>
+ os400: compile and install program xmllint (qshell-only). (Patrick Monnerat),<br/>
+ os400: initscript make_module(): Use options instead of positional parameters. (Patrick Monnerat),<br/>
+ os400: c14n.rpgle: allow *omit for nullable reference parameters. (Patrick Monnerat),<br/>
+ os400: use like() for double type. (Patrick Monnerat),<br/>
+ os400: use like() for int type. (Patrick Monnerat),<br/>
+ os400: use like() for unsigned int type. (Patrick Monnerat),<br/>
+ os400: use like() for enum types. (Patrick Monnerat),<br/>
+ Add xz to xml2-config --libs output (Baruch Siach),<br/>
+ Bug 760190: configure.ac should be able to build --with-icu without icu-config tool <https://bugzilla.gnome.org/show_bug.cgi?id=760190> (David Kilzer),<br/>
+ win32\VC10\config.h and VS 2015 (Bruce Dawson),<br/>
+ Add configure maintainer mode (orzen)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Avoid an out of bound access when serializing malformed strings (Daniel Veillard),<br/>
+ Unsigned addition may overflow in xmlMallocAtomicLoc() (David Kilzer),<br/>
+ Integer signed/unsigned type mismatch in xmlParserInputGrow() (David Kilzer),<br/>
+ Bug 763071: heap-buffer-overflow in xmlStrncat <https://bugzilla.gnome.org/show_bug.cgi?id=763071> (Pranjal Jumde),<br/>
+ Integer overflow parsing port number in URI (Michael Paddon),<br/>
+ Fix an error with regexp on nullable counted char transition (Daniel Veillard),<br/>
+ Fix memory leak with XPath namespace nodes (Nick Wellnhofer),<br/>
+ Fix namespace axis traversal (Nick Wellnhofer),<br/>
+ Fix null pointer deref in docs with no root element (Hugh Davenport),<br/>
+ Fix XSD validation of URIs with ampersands (Alex Henrie),<br/>
+ xmlschemastypes.c: accept endOfDayFrag Times set to "24:00:00" mean "end of day" and should not cause an error. (Patrick Monnerat),<br/>
+ xmlcatalog: flush stdout before interactive shell input. (Patrick Monnerat),<br/>
+ xmllint: flush stdout before interactive shell input. (Patrick Monnerat),<br/>
+ Don't recurse into OP_VALUEs in xmlXPathOptimizeExpression (Nick Wellnhofer),<br/>
+ Fix namespace::node() XPath expression (Nick Wellnhofer),<br/>
+ Fix OOB write in xmlXPathEmptyNodeSet (Nick Wellnhofer),<br/>
+ Fix parsing of NCNames in XPath (Nick Wellnhofer),<br/>
+ Fix OOB read with invalid UTF-8 in xmlUTF8Strsize (Nick Wellnhofer),<br/>
+ Do normalize string-based datatype value in RelaxNG facet checking (Audric Schiltknecht),<br/>
+ Bug 760921: REGRESSION (8eb55d78): doc/examples/io1 test fails after fix for "xmlSaveUri() incorrectly recomposes URIs with rootless paths" <https://bugzilla.gnome.org/show_bug.cgi?id=760921> (David Kilzer),<br/>
+ Bug 760861: REGRESSION (bf9c1dad): Missing results for test/schemas/regexp-char-ref_[01].xsd <https://bugzilla.gnome.org/show_bug.cgi?id=760861> (David Kilzer),<br/>
+ error.c: *input->cur == 0 does not mean no error (Pavel Raiskup),<br/>
+ Add missing RNG test files (David Kilzer),<br/>
+ Bug 760183: REGRESSION (v2.9.3): XML push parser fails with bogus UTF-8 encoding error when multi-byte character in large CDATA section is split across buffer <https://bugzilla.gnome.org/show_bug.cgi?id=760183> (David Kilzer),<br/>
+ Bug 758572: ASAN crash in make check <https://bugzilla.gnome.org/show_bug.cgi?id=758572> (David Kilzer),<br/>
+ Bug 721158: Missing ICU string when doing --version on xmllint <https://bugzilla.gnome.org/show_bug.cgi?id=721158> (David Kilzer),<br/>
+ python 3: libxml2.c wrappers create Unicode str already (Michael Stahl),<br/>
+ Add autogen.sh to distrib (orzen),<br/>
+ Heap-based buffer overread in xmlNextChar (Daniel Veillard)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Add more debugging info to runtest (Daniel Veillard),<br/>
+ Implement "runtest -u" mode (David Kilzer),<br/>
+ Add a make rule to rebuild for ASAN (Daniel Veillard)<br/>
+ </li>
+</ul>
+<h3>v2.9.3: Nov 20 2015</h3>
+<ul>
+ <li>Security:<br/>
+ CVE-2015-8242 Buffer overead with HTML parser in push mode (Hugh Davenport),<br/>
+ CVE-2015-7500 Fix memory access error due to incorrect entities boundaries (Daniel Veillard),<br/>
+ CVE-2015-7499-2 Detect incoherency on GROW (Daniel Veillard),<br/>
+ CVE-2015-7499-1 Add xmlHaltParser() to stop the parser (Daniel Veillard),<br/>
+ CVE-2015-5312 Another entity expansion issue (David Drysdale),<br/>
+ CVE-2015-7497 Avoid an heap buffer overflow in xmlDictComputeFastQKey (David Drysdale),<br/>
+ CVE-2015-7498 Avoid processing entities after encoding conversion failures (Daniel Veillard),<br/>
+ CVE-2015-8035 Fix XZ compression support loop (Daniel Veillard),<br/>
+ CVE-2015-7942-2 Fix an error in previous Conditional section patch (Daniel Veillard),<br/>
+ CVE-2015-7942 Another variation of overflow in Conditional sections (Daniel Veillard),<br/>
+ CVE-2015-1819 Enforce the reader to run in constant memory (Daniel Veillard)<br/>
+ CVE-2015-7941_2 Cleanup conditional section error handling (Daniel Veillard),<br/>
+ CVE-2015-7941_1 Stop parsing on entities boundaries errors (Daniel Veillard),<br/>
+ </li>
+
+ <li>Documentation:<br/>
+ Correct spelling of "calling" (Alex Henrie),<br/>
+ Fix a small error in xmllint --format description (Fabien Degomme),<br/>
+ Avoid XSS on the search of xmlsoft.org (Daniel Veillard)<br/>
+ </li>
+
+ <li>Portability:<br/>
+ threads: use forward declarations only for glibc (Michael Heimpold),<br/>
+ Update Win32 configure.js to search for configure.ac (Daniel Veillard)<br/>
+ </li>
+
+ <li>Bug Fixes:<br/>
+ Bug on creating new stream from entity (Daniel Veillard),<br/>
+ Fix some loop issues embedding NEXT (Daniel Veillard),<br/>
+ Do not print error context when there is none (Daniel Veillard),<br/>
+ Avoid extra processing of MarkupDecl when EOF (Hugh Davenport),<br/>
+ Fix parsing short unclosed comment uninitialized access (Daniel Veillard),<br/>
+ Add missing Null check in xmlParseExternalEntityPrivate (Gaurav Gupta),<br/>
+ Fix a bug in CData error handling in the push parser (Daniel Veillard),<br/>
+ Fix a bug on name parsing at the end of current input buffer (Daniel Veillard),<br/>
+ Fix the spurious ID already defined error (Daniel Veillard),<br/>
+ Fix previous change to node sort order (Nick Wellnhofer),<br/>
+ Fix a self assignment issue raised by clang (Scott Graham),<br/>
+ Fail parsing early on if encoding conversion failed (Daniel Veillard),<br/>
+ Do not process encoding values if the declaration if broken (Daniel Veillard),<br/>
+ Silence clang's -Wunknown-attribute (Michael Catanzaro),<br/>
+ xmlMemUsed is not thread-safe (Martin von Gagern),<br/>
+ Fix support for except in nameclasses (Daniel Veillard),<br/>
+ Fix order of root nodes (Nick Wellnhofer),<br/>
+ Allow attributes on descendant-or-self axis (Nick Wellnhofer),<br/>
+ Fix the fix to Windows locking (Steve Nairn),<br/>
+ Fix timsort invariant loop re: Envisage article (Christopher Swenson),<br/>
+ Don't add IDs in xmlSetTreeDoc (Nick Wellnhofer),<br/>
+ Account for ID attributes in xmlSetTreeDoc (Nick Wellnhofer),<br/>
+ Remove various unused value assignments (Philip Withnall),<br/>
+ Fix missing entities after CVE-2014-3660 fix (Daniel Veillard),<br/>
+ Revert "Missing initialization for the catalog module" (Daniel Veillard)<br/>
+ </li>
+
+ <li>Improvements:<br/>
+ Reuse xmlHaltParser() where it makes sense (Daniel Veillard),<br/>
+ xmlStopParser reset errNo (Daniel Veillard),<br/>
+ Reenable xz support by default (Daniel Veillard),<br/>
+ Recover unescaped less-than character in HTML recovery parsing (Daniel Veillard),<br/>
+ Allow HTML serializer to output HTML5 DOCTYPE (Shaun McCance),<br/>
+ Regression test for bug #695699 (Nick Wellnhofer),<br/>
+ Add a couple of XPath tests (Nick Wellnhofer),<br/>
+ Add Python 3 rpm subpackage (Tomas Radej),<br/>
+ libxml2-config.cmake.in: update include directories (Samuel Martin),<br/>
+ Adding example from bugs 738805 to regression tests (Daniel Veillard)<br/>
+ </li>
+
+ <li>Cleanups:<br/>
+ </li>
+</ul>
<h3>2.9.2: Oct 16 2014</h3>
<ul>
<li>Security:<br/>
@@ -1976,7 +2379,7 @@
Hendricks), aliasing bug exposed by gcc4 on s390, xmlTextReaderNext bug
(Rob Richards), Schemas decimal type fixes (William Brack),
xmlByteConsumed static buffer (Ben Maurer).</li>
- <li>improvement: speedup parsing comments and DTDs, dictionnary support for
+ <li>improvement: speedup parsing comments and DTDs, dictionary support for
hash tables, Schemas Identity constraints (Kasimier), streaming XPath
subset, xmlTextReaderReadString added (Bjorn Reese), Schemas canonical
values handling (Kasimier), add xmlTextReaderByteConsumed (Aron
@@ -2196,7 +2599,7 @@
URI on SYSTEM lookup failure, XInclude parse flags inheritance (William),
XInclude and XPointer fixes for entities (William), XML parser bug
reported by Holger Rauch, nanohttp fd leak (William), regexps char
- groups '-' handling (William), dictionnary reference counting problems,
+ groups '-' handling (William), dictionary reference counting problems,
do not close stderr.</li>
<li>performance patches from Petr Pajas</li>
<li>Documentation fixes: XML_CATALOG_FILES in man pages (Mike Hommey)</li>
@@ -2260,14 +2663,14 @@
Fleck), doc (Sven Zimmerman), I/O example.</li>
<li>Python bindings: fixes (William), enum support (Stéphane Bidoul),
structured error reporting (Stéphane Bidoul)</li>
- <li>XInclude: various fixes for conformance, problem related to dictionnary
+ <li>XInclude: various fixes for conformance, problem related to dictionary
references (William & me), recursion (William)</li>
<li>xmlWriter: indentation (Lucas Brasilino), memory leaks (Alfred
Mickautsch),</li>
<li>xmlSchemas: normalizedString datatype (John Belmonte)</li>
<li>code cleanup for strings functions (William)</li>
<li>Windows: compiler patches (Mark Vakoc)</li>
- <li>Parser optimizations, a few new XPath and dictionnary APIs for future
+ <li>Parser optimizations, a few new XPath and dictionary APIs for future
XSLT optimizations.</li>
</ul>
@@ -2367,8 +2770,8 @@
of change</li>
<li>Increased the library modularity, far more options can be stripped out,
a --with-minimum configuration will weight around 160KBytes</li>
- <li>Use per parser and per document dictionnary, allocate names and small
- text nodes from the dictionnary</li>
+ <li>Use per parser and per document dictionary, allocate names and small
+ text nodes from the dictionary</li>
<li>Switch to a SAX2 like parser rewrote most of the XML parser core,
provides namespace resolution and defaulted attributes, minimize memory
allocations and copies, namespace checking and specific error handling,
@@ -2415,7 +2818,7 @@
(William), xmlCleanupParser (Marc Liyanage), CDATA output (William), HTTP
error handling.</li>
<li>xmllint options: --dtdvalidfpi for Tobias Reif, --sax1 for compat
- testing, --nodict for building without tree dictionnary, --nocdata to
+ testing, --nodict for building without tree dictionary, --nocdata to
replace CDATA by text, --nsclean to remove surperfluous namespace
declarations</li>
<li>added xml2-config --libtool-libs option from Kevin P. Fleming</li>
diff --git a/doc/xmlcatalog.1 b/doc/xmlcatalog.1
index b4a6b22..2fbfaf2 100644
--- a/doc/xmlcatalog.1
+++ b/doc/xmlcatalog.1
@@ -1,7 +1,7 @@
'\" t
.\" Title: xmlcatalog
.\" Author: John Fleck <jfleck@inkstain.net>
-.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: $Date$
.\" Manual: xmlcatalog Manual
.\" Source: libxml2
@@ -34,7 +34,6 @@
\fBxmlcatalog\fR [\fB\-\-sgml\fR | \fB\-\-shell\fR | \fB\-\-create\fR | \fB\-\-del\ \fR\fB\fIVALUE(S)\fR\fR | [\ \fB\-\-add\ \fR\fB\fITYPE\fR\fR\fB\ \fR\fB\fIORIG\fR\fR\fB\ \fR\fB\fIREPLACE\fR\fR\fB\ \fR\ |\ \fB\-\-add\ \fR\fB\fIFILENAME\fR\fR] | \fB\-\-noout\fR | \fB\-\-no\-super\-update\fR | [\fB\-v\fR\ |\ \fB\-\-verbose\fR]] {\fICATALOGFILE\fR} {\fIENTITIES\fR...}
.SH "DESCRIPTION"
.PP
-
\fBxmlcatalog\fR
is a command line application allowing users to monitor and manipulate
XML
@@ -50,7 +49,6 @@
files\&.
.SH "OPTIONS"
.PP
-
\fBxmlcatalog\fR
accepts the following options (in alphabetical order):
.PP
@@ -155,6 +153,19 @@
.RS 4
Output debugging information\&.
.RE
+.PP
+Invoking
+\fBxmlcatalog\fR
+non\-interactively without a designated action (imposed with options like
+\fB\-\-add\fR) will result in a lookup of the catalog entry for
+\fIENTITIES\fR
+in the catalog denoted with
+\fICATALOGFILE\fR\&. The corresponding entries will be output to the command line\&. This mode of operation, together with
+\fB\-\-shell\fR
+mode and non\-modifying (i\&.e\&. without
+\fB\-\-noout\fR) direct actions, allows for a special shortcut of the void
+\fICATALOGFILE\fR
+specification (possibly expressed as "" in the shell environment) appointing the default system catalog\&. That simplifies the handling when its exact location is irrelevant but the respective built\-in still needs to be consulted\&.
.SH "SHELL COMMANDS"
.PP
Invoking
@@ -213,7 +224,7 @@
.PP
\fBpublic \fR\fB\fIPUBLIC\-ID\fR\fR
.RS 4
-Execute a Formal Public Identifier look\-up of the catalog entry for
+Execute a Formal Public Identifier lookup of the catalog entry for
\fIPUBLIC\-ID\fR\&. The corresponding entry will be output to the command line\&.
.RE
.PP
@@ -224,7 +235,7 @@
.PP
\fBsystem \fR\fB\fISYSTEM\-ID\fR\fR
.RS 4
-Execute a Formal Public Identifier look\-up of the catalog entry for
+Execute a Formal Public Identifier lookup of the catalog entry for
\fISYSTEM\-ID\fR\&. The corresponding entry will be output to the command line\&.
.RE
.SH "ENVIRONMENT"
@@ -240,7 +251,6 @@
.RE
.SH "DIAGNOSTICS"
.PP
-
\fBxmlcatalog\fR
return codes provide information that can be used when calling it from scripts\&.
.PP
diff --git a/doc/xmlcatalog_man.html b/doc/xmlcatalog_man.html
index d7b02ba..f72cd47 100644
--- a/doc/xmlcatalog_man.html
+++ b/doc/xmlcatalog_man.html
@@ -1,101 +1,140 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xmlcatalog</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"><a name="id2431614"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2>Name</h2><p>xmlcatalog — Command line tool to parse and manipulate <span class="acronym">XML</span> or
- <span class="acronym">SGML</span> catalog files.</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><tt class="command">xmlcatalog</tt> [[--shell] | [--create] | [--add <i class="replaceable"><tt>type</tt></i>
- <i class="replaceable"><tt>orig</tt></i> <i class="replaceable"><tt>replace</tt></i>] | [--del <i class="replaceable"><tt>values</tt></i>] | [--noout] | [--verbose]] [<tt class="option"><i class="replaceable"><tt>catalogfile</tt></i></tt>] [<tt class="option"><i class="replaceable"><tt>entities</tt></i></tt>]</p></div></div><div class="refsect1" lang="en"><a name="introduction"></a><h2>Introduction</h2><p>
- <span class="application">xmlcatalog</span> is a command line application
- allowing users to monitor and manipulate <span class="acronym">XML</span> and
- <span class="acronym">SGML</span> catalogs. It is included in
- <span class="application">libxml2</span>.
- </p><p>
- Its functions can be invoked from a single command from the command line,
- or it can perform multiple functions in interactive mode. It can operate
- on both <span class="acronym">XML</span> and <span class="acronym">SGML</span> files.
- </p></div><div class="refsect1" lang="en"><a name="cloptions"></a><h2>Command Line Options</h2><div class="variablelist"><dl><dt><span class="term"><tt class="option">--shell</tt> <i class="replaceable"><tt>filename</tt></i></span></dt><dd>
- Run a shell
- allowing interactive queries on catalog file
- <i class="replaceable"><tt>filename</tt></i>.
- </dd><dt><span class="term"><tt class="option">--create</tt> <i class="replaceable"><tt>filename</tt></i></span></dt><dd>
- Create a new
- <span class="acronym">XML</span> catalog. Outputs to stdout, ignoring
- <i class="replaceable"><tt>filename</tt></i> unless <tt class="option">--noout</tt> is
- used, in which case it creates a new catalog file
- <i class="replaceable"><tt>filename</tt></i>.
- </dd><dt><span class="term"><tt class="option">--add</tt> <i class="replaceable"><tt>'type'</tt></i> <i class="replaceable"><tt>'orig'</tt></i> <i class="replaceable"><tt>'replace'</tt></i> <i class="replaceable"><tt>filename</tt></i></span></dt><dd><p>
- Add an entry to catalog file
- <tt class="filename">filename</tt>. <i class="replaceable"><tt>type</tt></i>
- indicates the type of entry. Possible types are 'public', 'system', 'uri',
- 'rewriteSystem', 'rewriteURI', 'delegatePublic', 'delegateSystem',
- 'delegateURI' and 'nextCatalog'. <i class="replaceable"><tt>'orig'</tt></i> is the original
- reference to be replaced, and <i class="replaceable"><tt>'replace'</tt></i>
- is the <span class="acronym">URI</span> of the replacement entity to be
- used. The <tt class="option">--add</tt> option will not overwrite
- <i class="replaceable"><tt>filename</tt></i>, outputing to stdout, unless
- <tt class="option">--noout</tt> is used. The <tt class="option">--add</tt> will
- always take three parameters even if some of the
- <span class="acronym">XML</span> catalog constructs will have only a single
- argument.
-
- </p><p>
- If the <tt class="option">--add</tt> option is used following the
- <tt class="option">--sgml</tt> option, only a single argument, a
- <i class="replaceable"><tt>filename</tt></i>, is used. This is used to add
- the name of a catalog file to an <span class="acronym">SGML</span>
- supercatalog, a file that contains references to other included
- <span class="acronym">SGML</span> catalog files.
- </p></dd><dt><span class="term"><tt class="option">--del</tt> <i class="replaceable"><tt>'values'</tt></i> <i class="replaceable"><tt>filename</tt></i></span></dt><dd>
- Remove entries from the catalog file
- <i class="replaceable"><tt>filename</tt></i> matching
- <i class="replaceable"><tt>'values'</tt></i>. The <tt class="option">--del</tt> option
- will not overwrite <i class="replaceable"><tt>filename</tt></i>, outputing to
- stdout, unless <tt class="option">--noout</tt> is used.
- </dd><dt><span class="term"><tt class="option">--noout</tt></span></dt><dd>
- Save output to the named file rather than
- outputing to stdout.
- </dd><dt><span class="term"><tt class="option">--sgml</tt></span></dt><dd>
- Uses SGML Super catalogs for --add and --del options
- </dd><dt><span class="term"><tt class="option">-v</tt> or <tt class="option">--verbose</tt></span></dt><dd>
- output debugging
- information.
- </dd></dl></div></div><div class="refsect1" lang="en"><a name="shell"></a><h2>Shell Commands</h2><p>Invoking <span class="application">xmlcatalog</span> with the
- <tt class="option">--shell</tt> <i class="replaceable"><tt>filename</tt></i> option opens
- a command line shell allowing interactive access to the catalog file
- identified by <i class="replaceable"><tt>filename</tt></i>. Invoking the shell
- provides a command line prompt after which commands can be entered.
- </p><div class="variablelist"><dl><dt><span class="term"><tt class="option">public</tt> <i class="replaceable"><tt>'PublicID'</tt></i></span></dt><dd>
- Execute a
- public identifier lookup of the catalog entry for
- <i class="replaceable"><tt>'PublicID'</tt></i>. The corresponding entry will be
- output to the command line.
- </dd><dt><span class="term"><tt class="option">system</tt> <i class="replaceable"><tt>'SystemID'</tt></i></span></dt><dd>
- Execute a
- public identifier lookup of the catalog entry for
- <i class="replaceable"><tt>'SystemID'</tt></i>. The corresponding entry will be
- output to the command line.
- </dd><dt><span class="term"><tt class="option">add </tt> <i class="replaceable"><tt>'type'</tt></i> <i class="replaceable"><tt>'orig'</tt></i> <i class="replaceable"><tt>'replace'</tt></i></span></dt><dd>
- Add an entry to the catalog
- file. <i class="replaceable"><tt>type</tt></i> indicates the type of
- entry. Possible types are 'public', 'system', 'uri', 'rewriteSystem', 'rewriteURI',
- 'delegatePublic', 'delegateSystem', 'delegateURI' and 'nextCatalog'. <i class="replaceable"><tt>'orig'</tt></i>
- is the original reference to be replaced, and
- <i class="replaceable"><tt>'replace'</tt></i> is the <span class="acronym">URI</span> of the
- replacement entity to be used.
- </dd><dt><span class="term"><tt class="option">del</tt> <i class="replaceable"><tt>'values'</tt></i></span></dt><dd>
- Remove the
- catalog entry corresponding to <i class="replaceable"><tt>'values'</tt></i>.
- </dd><dt><span class="term"><tt class="option">dump</tt></span></dt><dd>
- Print the current catalog.
- </dd><dt><span class="term"><tt class="option">debug</tt></span></dt><dd>
- Print debugging statements showing the steps
- <span class="application">xmlcatalog</span> is executing.
- </dd><dt><span class="term"><tt class="option">quiet</tt></span></dt><dd>
- Stop printing debugging statements.
- </dd><dt><span class="term"><tt class="option">exit</tt></span></dt><dd>
- Quit the shell.
- </dd></dl></div></div><div class="refsect1" lang="en"><a name="return"></a><h2>Return values</h2><p><span class="application">xmlcatalog</span>'s return codes provide
- information that can be used when calling it from scripts.</p><p>0: normal</p><p>1: Failed to remove an entry from the catalog</p><p>2: Failed to save to the catalog, check file permissions</p><p>3: Failed to add an entry to the catalog</p><p>4: Failed to lookup and entry in the catalog</p></div><div class="refsect1" lang="en"><h2>Catalogs</h2><p>Catalog behavior can be changed by redirecting
- queries to the user's own set of catalogs. This can be done by setting the
- <tt class="varname">XML_CATALOG_FILES</tt> environment variable to a list of
- catalogs. An empty one should deactivate loading the default
- <tt class="filename">/etc/xml/catalog</tt> default catalog.</p></div><div class="refsect1" lang="en"><h2>References</h2><p><a href="http://www.xmlsoft.org/" target="_top">libxml web page</a></p><p><a href="http://www.xmlsoft.org/catalog.html" target="_top"><span class="application">libxml</span>
- catalog support web page:</a></p><p><a href="http://www.jclark.com/sp/catalog.htm" target="_top">James Clark's
- <span class="acronym">SGML</span> catalog page:</a></p><p><a href="http://www.oasis-open.org/committees/entity/spec.html" target="_top"><span class="acronym">OASIS</span>
- <span class="acronym">XML</span> catalog specification: </a></p></div></div></body></html>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xmlcatalog</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry"><a name="idm45940765506544"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>xmlcatalog —
+ Command line tool to parse and manipulate <acronym class="acronym">XML</acronym>
+ or <acronym class="acronym">SGML</acronym> catalog files.
+ </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">xmlcatalog</code> [ <code class="option">--sgml</code> | <code class="option">--shell</code> | <code class="option">--create</code> | <code class="option">--del <em class="replaceable"><code>VALUE(S)</code></em></code> |
+ [
+ <code class="option">--add
+ <em class="replaceable"><code>TYPE</code></em>
+ <em class="replaceable"><code>ORIG</code></em>
+ <em class="replaceable"><code>REPLACE</code></em>
+ </code>
+ | <code class="option">--add <em class="replaceable"><code>FILENAME</code></em></code> ]
+ | <code class="option">--noout</code> | <code class="option">--no-super-update</code> |
+ [ <code class="option">-v</code> | <code class="option">--verbose</code> ]
+ ] {<em class="replaceable"><code>CATALOGFILE</code></em>} {<em class="replaceable"><code>ENTITIES</code></em>...}</p></div></div><div class="refsect1"><a name="description"></a><h2>DESCRIPTION</h2><p>
+ <span class="command"><strong>xmlcatalog</strong></span> is a command line application allowing users to monitor and
+ manipulate <acronym class="acronym">XML</acronym> and <acronym class="acronym">SGML</acronym> catalogs. It
+ is included in <span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span>.
+ </p><p>
+ Its functions can be invoked from a single command from the command line,
+ or it can perform multiple functions in interactive mode. It can operate
+ on both <acronym class="acronym">XML</acronym> and <acronym class="acronym">SGML</acronym> files.
+ </p></div><div class="refsect1"><a name="options"></a><h2>OPTIONS</h2><p>
+ <span class="command"><strong>xmlcatalog</strong></span> accepts the following options (in alphabetical order):
+ </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+ <code class="option">--add
+ <em class="replaceable"><code>TYPE</code></em>
+ <em class="replaceable"><code>ORIG</code></em>
+ <em class="replaceable"><code>REPLACE</code></em>
+ </code>
+ </span></dt><dd><p>
+ Add an entry to <code class="filename">CATALOGFILE</code>. <em class="replaceable"><code>TYPE</code></em>
+ indicates the type of entry. Possible types are: <span class="simplelist"><em class="parameter"><code>public</code></em>, <em class="parameter"><code>system</code></em>, <em class="parameter"><code>uri</code></em>, <em class="parameter"><code>rewriteSystem</code></em>, <em class="parameter"><code>rewriteURI</code></em>, <em class="parameter"><code>delegatePublic</code></em>, <em class="parameter"><code>delegateSystem</code></em>, <em class="parameter"><code>delegateURI</code></em>, <em class="parameter"><code>nextCatalog</code></em></span>. <em class="replaceable"><code>ORIG</code></em> is the original
+ reference to be replaced, and <em class="replaceable"><code>REPLACE</code></em>
+ is the <acronym class="acronym">URI</acronym> of the replacement entity to be
+ used. The <code class="option">--add</code> option will not overwrite
+ <code class="filename">CATALOGFILE</code>, outputting
+ to <code class="filename">stdout</code>, unless
+ <code class="option">--noout</code> is used. The <code class="option">--add</code> will
+ always take three parameters even if some of the <acronym class="acronym">XML</acronym>
+ catalog constructs will have only a single argument.
+ </p></dd><dt><span class="term"><code class="option">--add <em class="replaceable"><code>FILENAME</code></em></code></span></dt><dd><p>
+ If the <code class="option">--add</code> option is used following
+ the <code class="option">--sgml</code> option, only a single argument,
+ a <em class="replaceable"><code>FILENAME</code></em>, is used. This is used to add
+ the name of a catalog file to an <acronym class="acronym">SGML</acronym> supercatalog,
+ a file that contains references to other included <acronym class="acronym">SGML</acronym>
+ catalog files.
+ </p></dd><dt><span class="term"><code class="option">--create</code></span></dt><dd><p>
+ Create a new <acronym class="acronym">XML</acronym> catalog. Outputs
+ to <code class="filename">stdout</code>,
+ ignoring <em class="replaceable"><code>filename</code></em> unless <code class="option">--noout</code> is
+ used, in which case it creates a new catalog
+ file <em class="replaceable"><code>filename</code></em>.
+ </p></dd><dt><span class="term"><code class="option">--del <em class="replaceable"><code>VALUE(S)</code></em></code></span></dt><dd><p>
+ Remove entries from <em class="replaceable"><code>CATALOGFILE</code></em>
+ matching <em class="replaceable"><code>VALUE(S)</code></em>. The <code class="option">--del</code>
+ option will not overwrite <em class="replaceable"><code>CATALOGFILE</code></em>,
+ outputting to <code class="filename">stdout</code>,
+ unless <code class="option">--noout</code> is used.
+ </p></dd><dt><span class="term"><code class="option">--noout</code></span></dt><dd><p>
+ Save output to the named file rather than outputting
+ to <code class="filename">stdout</code>.
+ </p></dd><dt><span class="term"><code class="option">--no-super-update</code></span></dt><dd><p>
+ Do not update the <acronym class="acronym">SGML</acronym> super catalog.
+ </p></dd><dt><span class="term"><code class="option">--shell</code></span></dt><dd><p>
+ Run a shell allowing interactive queries on catalog
+ file <em class="replaceable"><code>CATALOGFILE</code></em>. For the set of available
+ commands see <a class="xref" href="#shell" title="SHELL COMMANDS">the section called “SHELL COMMANDS”</a>.
+ </p></dd><dt><span class="term"><code class="option">--sgml</code></span></dt><dd><p>
+ Uses <acronym class="acronym">SGML</acronym> super catalogs for <code class="option">--add</code>
+ and <code class="option">--del</code> options.
+ </p></dd><dt><span class="term"><code class="option">-v</code>, </span><span class="term"><code class="option">--verbose</code></span></dt><dd><p>Output debugging information.</p></dd></dl></div><p>
+ Invoking <span class="command"><strong>xmlcatalog</strong></span> non-interactively without a designated action
+ (imposed with options like <code class="option">--add</code>) will result in a lookup
+ of the catalog entry for <em class="replaceable"><code>ENTITIES</code></em> in the
+ catalog denoted with <em class="replaceable"><code>CATALOGFILE</code></em>. The
+ corresponding entries will be output to the command line. This mode of
+ operation, together with <code class="option">--shell</code> mode and non-modifying
+ (i.e. without <code class="option">--noout</code>) direct actions, allows for
+ a special shortcut of the void <em class="replaceable"><code>CATALOGFILE</code></em>
+ specification (possibly expressed as "" in the shell
+ environment) appointing the default system catalog. That simplifies the
+ handling when its exact location is irrelevant but the respective built-in
+ still needs to be consulted.
+ </p></div><div class="refsect1"><a name="shell"></a><h2>SHELL COMMANDS</h2><p>
+ Invoking <span class="command"><strong>xmlcatalog</strong></span> with
+ the <code class="option">--shell <em class="replaceable"><code>CATALOGFILE</code></em></code> option opens
+ a command line shell allowing interactive access to the catalog file
+ identified by <em class="replaceable"><code>CATALOGFILE</code></em>. Invoking the shell
+ provides a command line prompt after which the following commands (described in
+ alphabetical order) can be entered.
+ </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">
+ <code class="option">add
+ <em class="replaceable"><code>TYPE</code></em>
+ <em class="replaceable"><code>ORIG</code></em>
+ <em class="replaceable"><code>REPLACE</code></em>
+ </code>
+ </span></dt><dd><p>
+ Add an entry to the catalog file. <em class="replaceable"><code>TYPE</code></em>
+ indicates the type of entry. Possible types are: <span class="simplelist"><em class="parameter"><code>public</code></em>, <em class="parameter"><code>system</code></em>, <em class="parameter"><code>uri</code></em>, <em class="parameter"><code>rewriteSystem</code></em>, <em class="parameter"><code>rewriteURI</code></em>, <em class="parameter"><code>delegatePublic</code></em>, <em class="parameter"><code>delegateSystem</code></em>, <em class="parameter"><code>delegateURI</code></em>, <em class="parameter"><code>nextCatalog</code></em></span>. <em class="replaceable"><code>ORIG</code></em> is the original
+ reference to be replaced, and <em class="replaceable"><code>REPLACE</code></em>
+ is the <acronym class="acronym">URI</acronym> of the replacement entity to be
+ used. The <code class="option">--add</code> option will not overwrite
+ <code class="filename">CATALOGFILE</code>, outputting
+ to <code class="filename">stdout</code>, unless
+ <code class="option">--noout</code> is used. The <code class="option">--add</code> will
+ always take three parameters even if some of the <acronym class="acronym">XML</acronym>
+ catalog constructs will have only a single argument.
+ </p></dd><dt><span class="term"><code class="option">debug</code></span></dt><dd><p>
+ Print debugging statements showing the steps <span class="command"><strong>xmlcatalog</strong></span> is executing.
+ </p></dd><dt><span class="term"><code class="option">del <em class="replaceable"><code>VALUE(S)</code></em></code></span></dt><dd><p>
+ Remove the catalog entry corresponding to <em class="replaceable"><code>VALUE(S)</code></em>.
+ </p></dd><dt><span class="term"><code class="option">dump</code></span></dt><dd><p>Print the current catalog.</p></dd><dt><span class="term"><code class="option">exit</code></span></dt><dd><p>Quit the shell.</p></dd><dt><span class="term"><code class="option">public <em class="replaceable"><code>PUBLIC-ID</code></em></code></span></dt><dd><p>
+ Execute a Formal Public Identifier lookup of the catalog entry
+ for <em class="replaceable"><code>PUBLIC-ID</code></em>. The corresponding entry will be
+ output to the command line.
+ </p></dd><dt><span class="term"><code class="option">quiet</code></span></dt><dd><p>Stop printing debugging statements.</p></dd><dt><span class="term"><code class="option">system <em class="replaceable"><code>SYSTEM-ID</code></em></code></span></dt><dd><p>
+ Execute a Formal Public Identifier lookup of the catalog entry
+ for <em class="replaceable"><code>SYSTEM-ID</code></em>. The corresponding entry will be
+ output to the command line.
+ </p></dd></dl></div></div><div class="refsect1"><a name="environment"></a><h2>ENVIRONMENT</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="envar">XML_CATALOG_FILES</code></span></dt><dd><p><acronym class="acronym">XML</acronym> catalog behavior can be changed by redirecting
+ queries to the user's own set of catalogs. This can be done by setting
+ the <code class="envar">XML_CATALOG_FILES</code> environment variable to a list
+ of catalogs. An empty one should deactivate loading the
+ default <code class="filename">/etc/xml/catalog</code> catalog.
+ </p></dd></dl></div></div><div class="refsect1"><a name="diagnostics"></a><h2>DIAGNOSTICS</h2><p>
+ <span class="command"><strong>xmlcatalog</strong></span> return codes provide information that can be used when
+ calling it from scripts.
+ </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="errorcode">0</span></span></dt><dd><p>No error</p></dd><dt><span class="term"><span class="errorcode">1</span></span></dt><dd><p>Failed to remove an entry from the catalog</p></dd><dt><span class="term"><span class="errorcode">2</span></span></dt><dd><p>Failed to save to the catalog, check file permissions</p></dd><dt><span class="term"><span class="errorcode">3</span></span></dt><dd><p>Failed to add an entry to the catalog</p></dd><dt><span class="term"><span class="errorcode">4</span></span></dt><dd><p>Failed to look up an entry in the catalog</p></dd></dl></div></div><div class="refsect1"><a name="seealso"></a><h2>SEE ALSO</h2><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span>
+ </p><p>
+ More information can be found at
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> web page <a class="ulink" href="http://www.xmlsoft.org/" target="_top">http://www.xmlsoft.org/</a>
+ </p></li><li class="listitem"><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> catalog support web page
+ at <a class="ulink" href="http://www.xmlsoft.org/catalog.html" target="_top">http://www.xmlsoft.org/catalog.html</a>
+ </p></li><li class="listitem"><p>James Clark's <acronym class="acronym">SGML</acronym> catalog
+ page <a class="ulink" href="http://www.jclark.com/sp/catalog.htm" target="_top">http://www.jclark.com/sp/catalog.htm</a>
+ </p></li><li class="listitem"><p><acronym class="acronym">OASIS</acronym> <acronym class="acronym">XML</acronym> catalog specification
+ <a class="ulink" href="http://www.oasis-open.org/committees/entity/spec.html" target="_top">http://www.oasis-open.org/committees/entity/spec.html</a>
+ </p></li></ul></div><p>
+ </p></div></div></body></html>
diff --git a/doc/xmlcatalog_man.xml b/doc/xmlcatalog_man.xml
index 049ed8f..b3ce8b2 100644
--- a/doc/xmlcatalog_man.xml
+++ b/doc/xmlcatalog_man.xml
@@ -230,6 +230,21 @@
</varlistentry>
</variablelist>
+
+ <para>
+ Invoking &xmlcatalog; non-interactively without a designated action
+ (imposed with options like <option>--add</option>) will result in a lookup
+ of the catalog entry for <replaceable>ENTITIES</replaceable> in the
+ catalog denoted with <replaceable>CATALOGFILE</replaceable>. The
+ corresponding entries will be output to the command line. This mode of
+ operation, together with <option>--shell</option> mode and non-modifying
+ (i.e. without <option>--noout</option>) direct actions, allows for
+ a special shortcut of the void <replaceable>CATALOGFILE</replaceable>
+ specification (possibly expressed as "" in the shell
+ environment) appointing the default system catalog. That simplifies the
+ handling when its exact location is irrelevant but the respective built-in
+ still needs to be consulted.
+ </para>
</refsect1>
<refsect1 id="shell">
@@ -315,7 +330,7 @@
<term><option>public <replaceable>PUBLIC-ID</replaceable></option></term>
<listitem>
<para>
- Execute a Formal Public Identifier look-up of the catalog entry
+ Execute a Formal Public Identifier lookup of the catalog entry
for <replaceable>PUBLIC-ID</replaceable>. The corresponding entry will be
output to the command line.
</para>
@@ -333,7 +348,7 @@
<term><option>system <replaceable>SYSTEM-ID</replaceable></option></term>
<listitem>
<para>
- Execute a Formal Public Identifier look-up of the catalog entry
+ Execute a Formal Public Identifier lookup of the catalog entry
for <replaceable>SYSTEM-ID</replaceable>. The corresponding entry will be
output to the command line.
</para>
diff --git a/doc/xmllint.html b/doc/xmllint.html
index 0a55877..5fc52c5 100644
--- a/doc/xmllint.html
+++ b/doc/xmllint.html
@@ -1,175 +1,162 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xmllint</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry" lang="en"><a name="id2876302"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><h2>Name</h2><p>xmllint — command line <span class="acronym">XML</span> tool</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><tt class="command">xmllint</tt> [[--version] | [--debug] | [--shell] | [--debugent] | [--copy] | [--recover] | [--noent] | [--noout] | [--nonet] | [--htmlout] | [--nowrap] | [--valid] | [--postvalid] | [--dtdvalid <i class="replaceable"><tt>URL</tt></i>] | [--dtdvalidfpi <i class="replaceable"><tt>FPI</tt></i>] | [--timing] | [--output <i class="replaceable"><tt>file</tt></i>] | [--repeat] | [--insert] | [--compress] | [--html] | [--xmlout] | [--push] | [--memory] | [--maxmem <i class="replaceable"><tt>nbbytes</tt></i>] | [--nowarning] | [--noblanks] | [--nocdata] | [--format] | [--encode <i class="replaceable"><tt>encoding</tt></i>] | [--dropdtd] | [--nsclean] | [--testIO] | [--catalogs] | [--nocatalogs] | [--auto] | [--xinclude] | [--noxincludenode] | [--loaddtd] | [--dtdattr] | [--stream] | [--walker] | [--pattern <i class="replaceable"><tt>patternvalue</tt></i>] | [--chkregister] | [--relaxng] | [--schema] | [--c14n]] [<tt class="option"><i class="replaceable"><tt>xmlfile</tt></i></tt>]</p></div></div><div class="refsect1" lang="en"><a name="introduction"></a><h2>Introduction</h2><p>
- The xmllint program parses one or more XML files, specified on the
- command line as <i class="replaceable"><tt>xmlfile</tt></i>. It prints various
- types of output, depending upon the options selected. It is useful for
- detecting errors both in <span class="acronym">XML</span> code and in the
- <span class="acronym">XML</span> parser itself.
- </p><p>
- It is included in <span class="application">libxml2</span>.
- </p></div><div class="refsect1" lang="en"><a name="options"></a><h2>Options</h2><div class="variablelist"><dl><dt><span class="term"><tt class="option">--version</tt></span></dt><dd>
- Display the version of
- <span class="application">libxml2</span> used.
- </dd><dt><span class="term"><tt class="option">--debug</tt></span></dt><dd>
- Parse a file and output an annotated tree of the
- in-memory version of the document.
- </dd><dt><span class="term"><tt class="option">--shell</tt></span></dt><dd>
- Run a navigating shell. Details on available commands in shell mode
- are below.
- </dd><dt><span class="term"><tt class="option">--debugent</tt></span></dt><dd>
- Debug the entities defined in the document.
- </dd><dt><span class="term"><tt class="option">--copy</tt> </span></dt><dd>
- Test the internal copy implementation.
- </dd><dt><span class="term"><tt class="option">--recover</tt></span></dt><dd>
- Output any parsable portions of an invalid
- document.
- </dd><dt><span class="term"><tt class="option">--noent</tt></span></dt><dd>
- Substitute entity values for entity
- references. By default, <span class="application">xmllint</span> leaves entity
- references in place.
- </dd><dt><span class="term"><tt class="option">--nocdata</tt></span></dt><dd>
- Substitute CDATA section by equivalent text nodes.
- </dd><dt><span class="term"><tt class="option">--nsclean</tt></span></dt><dd>
- Remove redundant namespace declarations.
- </dd><dt><span class="term"><tt class="option">--noout</tt></span></dt><dd>
- Suppress output. By default,
- <span class="application">xmllint</span> outputs the result tree.
- </dd><dt><span class="term"><tt class="option">--htmlout</tt></span></dt><dd>
- Output results as an <span class="acronym">HTML</span>
- file. This causes <span class="application">xmllint</span> to output
- the necessary <span class="acronym">HTML</span> tags surrounding the result tree
- output so the results can be displayed in a browser.
- </dd><dt><span class="term"><tt class="option">--nowrap </tt></span></dt><dd>
- Do not output HTML doc wrapper.
- </dd><dt><span class="term"><tt class="option">--valid </tt></span></dt><dd>
- Determine if the document is a valid instance
- of the included Document Type Definition (<span class="acronym">DTD</span>). A
- <span class="acronym">DTD</span> to be validated against also can be specified at
- the command line using the <tt class="option">--dtdvalid</tt> option. By default,
- <span class="application">xmllint</span> also checks to determine if the
- document is well-formed.
- </dd><dt><span class="term"><tt class="option">--postvalid</tt></span></dt><dd>
- Validate after parsing is completed.
- </dd><dt><span class="term"> <tt class="option">--dtdvalid</tt> <i class="replaceable"><tt>URL</tt></i></span></dt><dd>
- Use the
- <span class="acronym">DTD</span> specified by <i class="replaceable"><tt>URL</tt></i> for
- validation.
- </dd><dt><span class="term"> <tt class="option">--dtdvalidfpi</tt> <i class="replaceable"><tt>FPI</tt></i></span></dt><dd>
- Use the
- <span class="acronym">DTD</span> specified by the Public Identifier
- <i class="replaceable"><tt>FPI</tt></i> for validation, note that this
- will require a Catalog exporting that Public Identifier to work.
- </dd><dt><span class="term"><tt class="option">--timing</tt></span></dt><dd>
- Output information about the time it takes
- <span class="application">xmllint</span> to perform the various steps.
- </dd><dt><span class="term"><tt class="option">--output</tt> <i class="replaceable"><tt>file</tt></i></span></dt><dd>Define a file path where xmllint will save the result of
- parsing. Usually the programs build a tree and save it on stdout, with
- this option the result XML instance will be saved onto a file.</dd><dt><span class="term"><tt class="option">--repeat</tt></span></dt><dd>
- Repeat 100 times, for timing or profiling.
- </dd><dt><span class="term"><tt class="option">--insert</tt></span></dt><dd>
- Test for valid insertions.
- </dd><dt><span class="term"><tt class="option">--compress</tt></span></dt><dd>
- Turn on gzip compression of output.
- </dd><dt><span class="term"><tt class="option">--html</tt></span></dt><dd>
- Use the <span class="acronym">HTML</span> parser.
- </dd><dt><span class="term"><tt class="option">--xmlout</tt></span></dt><dd>Used in conjunction with <tt class="option">--html</tt>. Usually
- when HTML is parsed the document is saved with the HTML serializer, but with
- this option the resulting document is saved with the XML serializer. This is
- primarily used to generate XHTML from HTML input.</dd><dt><span class="term"><tt class="option">--push</tt></span></dt><dd>
- Use the push mode of the parser.
- </dd><dt><span class="term"><tt class="option">--memory</tt></span></dt><dd>
- Parse from memory.
- </dd><dt><span class="term"><tt class="option">--maxmem</tt> <i class="replaceable"><tt>nnbytes</tt></i></span></dt><dd>Test the parser memory
- support. <i class="replaceable"><tt>nnbytes</tt></i> is the maximum number of bytes the
- library is allowed to allocate. This can also be used to make sure batch
- processing of XML files will not exhaust the virtual memory of the server
- running them.</dd><dt><span class="term"><tt class="option">--nowarning</tt></span></dt><dd>
- Do not emit warnings from the parser and/or validator.
- </dd><dt><span class="term"><tt class="option">--noblanks</tt></span></dt><dd>
- Drop ignorable blank spaces.
- </dd><dt><span class="term"><tt class="option">--format</tt></span></dt><dd>
- Reformat and reindent the output. The $XMLLINT_INDENT
- environment variable controls the indentation (default
- value is two spaces " ").
- </dd><dt><span class="term"><tt class="option">--testIO</tt></span></dt><dd>
- Test user input/output support.
- </dd><dt><span class="term"><tt class="option">--encode</tt> <i class="replaceable"><tt>encoding</tt></i></span></dt><dd>
- Output in the given encoding.
- </dd><dt><span class="term"><tt class="option">--catalogs</tt></span></dt><dd>
- Use the catalogs from $SGML_CATALOG_FILES. Otherwise /etc/xml/catalog
- is used by default.
- </dd><dt><span class="term"><tt class="option">--nocatalogs</tt></span></dt><dd>
- Do not use any catalogs.
- </dd><dt><span class="term"><tt class="option">--auto</tt></span></dt><dd>
- Generate a small document for testing purposes.
- </dd><dt><span class="term"><tt class="option">--xinclude</tt></span></dt><dd>
- Do XInclude processing.
- </dd><dt><span class="term"><tt class="option">--noxincludenode</tt></span></dt><dd>
- Do XInclude processing but do not generate XInclude start and end
- nodes.
- </dd><dt><span class="term"><tt class="option">--loaddtd</tt></span></dt><dd>
- Fetch external DTD.
- </dd><dt><span class="term"><tt class="option">--dtdattr</tt></span></dt><dd>
- Fetch external DTD and populate the tree with inherited attributes.
- </dd><dt><span class="term"><tt class="option">--dropdtd</tt></span></dt><dd>
- Remove <span class="acronym">DTD</span> from output.
- </dd><dt><span class="term"><tt class="option">--stream</tt></span></dt><dd>Use streaming API - useful when used in combination with
- --relaxng or --valid options for validation of files that are
- too large to be held in memory.</dd><dt><span class="term"><tt class="option">--walker</tt></span></dt><dd>Test the walker module, which is a reader interface but for a
- document tree, instead of using the reader API on an unparsed document it
- works on a existing in-memory tree. Used in debugging.</dd><dt><span class="term"><tt class="option">--chkregister</tt></span></dt><dd>Turn on node registration. Useful for developers testing
- libxml2 node tracking code.</dd><dt><span class="term"><tt class="option">--pattern</tt> <i class="replaceable"><tt>patternvalue</tt></i></span></dt><dd>Used to exercise the pattern recognition engine, which can be
- used with the reader interface to the parser. It allows to select some
- nodes in the document based on an XPath (subset) expression. Used for
- debugging.</dd><dt><span class="term"><tt class="option">--relaxng</tt> <i class="replaceable"><tt>schema</tt></i></span></dt><dd>Use RelaxNG file named <i class="replaceable"><tt>schema</tt></i> for
- validation.</dd><dt><span class="term"><tt class="option">--schema</tt> <i class="replaceable"><tt>schema</tt></i></span></dt><dd>Use a W3C XML Schema file named <i class="replaceable"><tt>schema</tt></i> for validation.</dd><dt><span class="term">
- <tt class="option">--c14n</tt></span></dt><dd>Use the W3C XML Canonicalisation (C14N) to
-serialize the result of parsing to stdout. It keeps comments in
-the result.</dd></dl></div></div><div class="refsect1" lang="en"><a name="shell"></a><h2>Shell</h2><p>
- <span class="application">xmllint</span> offers an interactive shell mode
- invoked with the <tt class="option">--shell</tt> command. Available commands in
- shell mode include:
- </p><div class="variablelist"><dl><dt><span class="term"><tt class="option">base</tt></span></dt><dd>
- display XML base of the node
- </dd><dt><span class="term"><tt class="option">bye</tt></span></dt><dd>
- leave shell
- </dd><dt><span class="term"><tt class="option">cat <i class="replaceable"><tt>node</tt></i></tt></span></dt><dd>
- Display node if given or current node.
- </dd><dt><span class="term"><tt class="option">cd <i class="replaceable"><tt>path</tt></i></tt></span></dt><dd>
- Change the current node to <i class="replaceable"><tt>path</tt></i> (if given
- and unique) or root if no argument given.
- </dd><dt><span class="term"><tt class="option">dir <i class="replaceable"><tt>path</tt></i></tt></span></dt><dd>
- Dumps information about the node (namespace, attributes, content).
- </dd><dt><span class="term"><tt class="option">du <i class="replaceable"><tt>path</tt></i></tt></span></dt><dd>
- Show the structure of the subtree under path or the current node.
- </dd><dt><span class="term"><tt class="option">exit</tt></span></dt><dd>
- Leave the shell.
- </dd><dt><span class="term"><tt class="option">help</tt></span></dt><dd>
- Show this help.
- </dd><dt><span class="term"><tt class="option">free</tt></span></dt><dd>
- Display memory usage.
- </dd><dt><span class="term"><tt class="option">load <i class="replaceable"><tt>name</tt></i></tt></span></dt><dd>
- Load a new document with the given name.
- </dd><dt><span class="term"><tt class="option">ls <i class="replaceable"><tt>path</tt></i></tt></span></dt><dd>
- List contents of <i class="replaceable"><tt>path</tt></i> (if given) or the
- current directory.
- </dd><dt><span class="term"><tt class="option">pwd</tt></span></dt><dd>
- Display the path to the current node.
- </dd><dt><span class="term"><tt class="option">quit</tt></span></dt><dd>
- Leave the shell.
- </dd><dt><span class="term"><tt class="option">save <i class="replaceable"><tt>name</tt></i></tt></span></dt><dd>
- Saves the current document to <i class="replaceable"><tt>name</tt></i> if
- given or to the original name.
- </dd><dt><span class="term"><tt class="option">validate</tt></span></dt><dd>
- Check the document for error.
- </dd><dt><span class="term"><tt class="option">write <i class="replaceable"><tt>name</tt></i></tt></span></dt><dd>
- Write the current node to the given filename.
- </dd></dl></div></div><div class="refsect1" lang="en"><h2>Catalogs</h2><p>Catalog behavior can be changed by redirecting
- queries to the user's own set of catalogs. This can be done by setting the
- <tt class="varname">XML_CATALOG_FILES</tt> environment variable to a list of
- catalogs. An empty one should deactivate loading the default
- <tt class="filename">/etc/xml/catalog</tt> default catalog.</p></div><div class="refsect1" lang="en"><h2>Debugging Catalogs</h2><p>Setting the environment variable <tt class="varname">XML_DEBUG_CATALOG</tt>
- using the command <b class="command">"export XML_DEBUG_CATALOG="</b>
- outputs debugging information related to catalog operations.</p></div><div class="refsect1" lang="en"><h2>Error Return Codes</h2><p>On the completion of execution, <span class="application">Xmllint</span>
- returns the following error codes:</p><div class="variablelist"><dl><dt><span class="term">0</span></dt><dd>No error</dd><dt><span class="term">1</span></dt><dd>Unclassified</dd><dt><span class="term">2</span></dt><dd>Error in DTD</dd><dt><span class="term">3</span></dt><dd>Validation error</dd><dt><span class="term">4</span></dt><dd>Validation error</dd><dt><span class="term">5</span></dt><dd>Error in schema compilation</dd><dt><span class="term">6</span></dt><dd>Error writing output</dd><dt><span class="term">7</span></dt><dd>Error in pattern (generated when
- [<span class="optional">--pattern</span>] option is used)</dd><dt><span class="term">8</span></dt><dd>Error in Reader registration (generated when
- [<span class="optional">--chkregister</span>] option is used)</dd><dt><span class="term">9</span></dt><dd>Out of memory error</dd></dl></div></div></div></body></html>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xmllint</title><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="refentry"><a name="idm1"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>xmllint — command line <acronym class="acronym">XML</acronym> tool</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">xmllint</code> [ <code class="option">--version</code> | <code class="option">--debug</code> | <code class="option">--shell</code> | <code class="option">--xpath "<em class="replaceable"><code>XPath_expression</code></em>"</code> | <code class="option">--debugent</code> | <code class="option">--copy</code> | <code class="option">--recover</code> | <code class="option">--noent</code> | <code class="option">--noout</code> | <code class="option">--nonet</code> | <code class="option">--path "<em class="replaceable"><code>PATH(S)</code></em>"</code> | <code class="option">--load-trace</code> | <code class="option">--htmlout</code> | <code class="option">--nowrap</code> | <code class="option">--valid</code> | <code class="option">--postvalid</code> | <code class="option">--dtdvalid <em class="replaceable"><code>URL</code></em></code> | <code class="option">--dtdvalidfpi <em class="replaceable"><code>FPI</code></em></code> | <code class="option">--timing</code> | <code class="option">--output <em class="replaceable"><code>FILE</code></em></code> | <code class="option">--repeat</code> | <code class="option">--insert</code> | <code class="option">--compress</code> | <code class="option">--html</code> | <code class="option">--xmlout</code> | <code class="option">--push</code> | <code class="option">--memory</code> | <code class="option">--maxmem <em class="replaceable"><code>NBBYTES</code></em></code> | <code class="option">--nowarning</code> | <code class="option">--noblanks</code> | <code class="option">--nocdata</code> | <code class="option">--format</code> | <code class="option">--encode <em class="replaceable"><code>ENCODING</code></em></code> | <code class="option">--dropdtd</code> | <code class="option">--nsclean</code> | <code class="option">--testIO</code> | <code class="option">--catalogs</code> | <code class="option">--nocatalogs</code> | <code class="option">--auto</code> | <code class="option">--xinclude</code> | <code class="option">--noxincludenode</code> | <code class="option">--loaddtd</code> | <code class="option">--dtdattr</code> | <code class="option">--stream</code> | <code class="option">--walker</code> | <code class="option">--pattern <em class="replaceable"><code>PATTERNVALUE</code></em></code> | <code class="option">--chkregister</code> | <code class="option">--relaxng <em class="replaceable"><code>SCHEMA</code></em></code> | <code class="option">--schema <em class="replaceable"><code>SCHEMA</code></em></code> | <code class="option">--c14n</code> ] { <em class="replaceable"><code>XML-FILE(S)</code></em>... | - }</p></div><div class="cmdsynopsis"><p><code class="command">xmllint</code> <code class="option">--help</code> </p></div></div><div class="refsect1"><a name="description"></a><h2>DESCRIPTION</h2><p>
+ The <span class="command"><strong>xmllint</strong></span> program parses one or more <acronym class="acronym">XML</acronym> files,
+ specified on the command line as <em class="replaceable"><code>XML-FILE</code></em>
+ (or the standard input if the filename provided
+ is <span class="bold"><strong>-</strong></span> ). It prints various types of
+ output, depending upon the options selected. It is useful for detecting
+ errors both in <acronym class="acronym">XML</acronym> code and in
+ the <acronym class="acronym">XML</acronym> parser itself.
+ </p><p><span class="command"><strong>xmllint</strong></span> is included in <span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span>.</p></div><div class="refsect1"><a name="options"></a><h2>OPTIONS</h2><p>
+ <span class="command"><strong>xmllint</strong></span> accepts the following options (in alphabetical order):
+ </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="option">--auto</code></span></dt><dd><p>Generate a small document for testing purposes.</p></dd><dt><span class="term"><code class="option">--catalogs</code></span></dt><dd><p>
+ Use the <acronym class="acronym">SGML</acronym> catalog(s) from <code class="envar">SGML_CATALOG_FILES</code>.
+ Otherwise <acronym class="acronym">XML</acronym> catalogs starting
+ from <code class="filename">/etc/xml/catalog</code> are used by default.
+ </p></dd><dt><span class="term"><code class="option">--chkregister</code></span></dt><dd><p>
+ Turn on node registration. Useful for developers testing <span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> node tracking code.
+ </p></dd><dt><span class="term"><code class="option">--compress</code></span></dt><dd><p>
+ Turn on <span class="citerefentry"><span class="refentrytitle">gzip</span>(1)</span> compression of output.
+ </p></dd><dt><span class="term"><code class="option">--copy</code></span></dt><dd><p>Test the internal copy implementation.</p></dd><dt><span class="term"><code class="option">--c14n</code></span></dt><dd><p>
+ Use the W3C <acronym class="acronym">XML</acronym> Canonicalisation (<acronym class="acronym">C14N</acronym>) to
+ serialize the result of parsing to <code class="filename">stdout</code>.
+ It keeps comments in the result.
+ </p></dd><dt><span class="term"><code class="option">--dtdvalid <em class="replaceable"><code>URL</code></em></code></span></dt><dd><p>
+ Use the <acronym class="acronym">DTD</acronym> specified by
+ an <em class="replaceable"><code>URL</code></em> for validation.
+ </p></dd><dt><span class="term"><code class="option">--dtdvalidfpi <em class="replaceable"><code>FPI</code></em></code></span></dt><dd><p>
+ Use the <acronym class="acronym">DTD</acronym> specified by a Formal Public
+ Identifier <em class="replaceable"><code>FPI</code></em> for validation, note that this
+ will require a catalog exporting that Formal Public Identifier to work.
+ </p></dd><dt><span class="term"><code class="option">--debug</code></span></dt><dd><p>
+ Parse a file and output an annotated tree of the
+ in-memory version of the document.
+ </p></dd><dt><span class="term"><code class="option">--debugent</code></span></dt><dd><p>Debug the entities defined in the document.</p></dd><dt><span class="term"><code class="option">--dropdtd</code></span></dt><dd><p>Remove <acronym class="acronym">DTD</acronym> from output.</p></dd><dt><span class="term"><code class="option">--dtdattr</code></span></dt><dd><p>
+ Fetch external <acronym class="acronym">DTD</acronym> and populate the tree with
+ inherited attributes.
+ </p></dd><dt><span class="term"><code class="option">--encode <em class="replaceable"><code>ENCODING</code></em></code></span></dt><dd><p>Output in the given encoding. Note that this works for full document not fragments or result from XPath queries.</p></dd><dt><span class="term"><code class="option">--format</code></span></dt><dd><p>
+ Reformat and reindent the output. The <code class="envar">XMLLINT_INDENT</code>
+ environment variable controls the indentation. The default value is two
+ spaces " ").
+ </p></dd><dt><span class="term"><code class="option">--help</code></span></dt><dd><p>Print out a short usage summary for <span class="command"><strong>xmllint</strong></span>.</p></dd><dt><span class="term"><code class="option">--html</code></span></dt><dd><p>Use the <acronym class="acronym">HTML</acronym> parser.</p></dd><dt><span class="term"><code class="option">--htmlout</code></span></dt><dd><p>
+ Output results as an <acronym class="acronym">HTML</acronym> file. This
+ causes <span class="command"><strong>xmllint</strong></span> to output the necessary <acronym class="acronym">HTML</acronym>
+ tags surrounding the result tree output so the results can be
+ displayed/viewed in a browser.
+ </p></dd><dt><span class="term"><code class="option">--insert</code></span></dt><dd><p>Test for valid insertions.</p></dd><dt><span class="term"><code class="option">--loaddtd</code></span></dt><dd><p>Fetch an external <acronym class="acronym">DTD</acronym>.</p></dd><dt><span class="term"><code class="option">--load-trace</code></span></dt><dd><p>
+ Display all the documents loaded during the processing
+ to <code class="filename">stderr</code>.
+ </p></dd><dt><span class="term"><code class="option">--maxmem <em class="replaceable"><code>NNBYTES</code></em></code></span></dt><dd><p>
+ Test the parser memory support. <em class="replaceable"><code>NNBYTES</code></em>
+ is the maximum number of bytes the library is allowed to allocate.
+ This can also be used to make sure batch processing
+ of <acronym class="acronym">XML</acronym> files will not exhaust the virtual memory
+ of the server running them.
+ </p></dd><dt><span class="term"><code class="option">--memory</code></span></dt><dd><p>Parse from memory.</p></dd><dt><span class="term"><code class="option">--noblanks</code></span></dt><dd><p>Drop ignorable blank spaces.</p></dd><dt><span class="term"><code class="option">--nocatalogs</code></span></dt><dd><p>Do not use any catalogs.</p></dd><dt><span class="term"><code class="option">--nocdata</code></span></dt><dd><p>Substitute CDATA section by equivalent text nodes.</p></dd><dt><span class="term"><code class="option">--noent</code></span></dt><dd><p>
+ Substitute entity values for entity references. By default, <span class="command"><strong>xmllint</strong></span>
+ leaves entity references in place.
+ </p></dd><dt><span class="term"><code class="option">--nonet</code></span></dt><dd><p>
+ Do not use the Internet to fetch <acronym class="acronym">DTD</acronym>s or entities.
+ </p></dd><dt><span class="term"><code class="option">--noout</code></span></dt><dd><p>
+ Suppress output. By default, <span class="command"><strong>xmllint</strong></span> outputs the result tree.
+ </p></dd><dt><span class="term"><code class="option">--nowarning</code></span></dt><dd><p>Do not emit warnings from the parser and/or validator.</p></dd><dt><span class="term"><code class="option">--nowrap</code></span></dt><dd><p>Do not output <acronym class="acronym">HTML</acronym> doc wrapper.</p></dd><dt><span class="term"><code class="option">--noxincludenode</code></span></dt><dd><p>
+ Do XInclude processing but do not generate XInclude start and end nodes.
+ </p></dd><dt><span class="term"><code class="option">--nsclean</code></span></dt><dd><p>Remove redundant namespace declarations.</p></dd><dt><span class="term"><code class="option">--output <em class="replaceable"><code>FILE</code></em></code></span></dt><dd><p>
+ Define a file path where <span class="command"><strong>xmllint</strong></span> will save the result of parsing.
+ Usually the programs build a tree and save it
+ on <code class="filename">stdout</code>, with this option
+ the result <acronym class="acronym">XML</acronym> instance will be saved onto a file.
+ </p></dd><dt><span class="term"><code class="option">--path "<em class="replaceable"><code>PATH(S)</code></em>"</code></span></dt><dd><p>
+ Use the (space- or colon-separated) list of filesystem paths specified
+ by <em class="replaceable"><code>PATHS</code></em> to load <acronym class="acronym">DTD</acronym>s or
+ entities. Enclose space-separated lists by quotation marks.
+ </p></dd><dt><span class="term"><code class="option">--pattern <em class="replaceable"><code>PATTERNVALUE</code></em></code></span></dt><dd><p>
+ Used to exercise the pattern recognition engine, which can be used
+ with the reader interface to the parser. It allows to select some
+ nodes in the document based on an XPath (subset) expression. Used
+ for debugging.
+ </p></dd><dt><span class="term"><code class="option">--postvalid</code></span></dt><dd><p>Validate after parsing has completed.</p></dd><dt><span class="term"><code class="option">--push</code></span></dt><dd><p>Use the push mode of the parser.</p></dd><dt><span class="term"><code class="option">--recover</code></span></dt><dd><p>Output any parsable portions of an invalid document.</p></dd><dt><span class="term"><code class="option">--relaxng <em class="replaceable"><code>SCHEMA</code></em></code></span></dt><dd><p>
+ Use RelaxNG file named <em class="replaceable"><code>SCHEMA</code></em>
+ for validation.
+ </p></dd><dt><span class="term"><code class="option">--repeat</code></span></dt><dd><p>Repeat 100 times, for timing or profiling.</p></dd><dt><span class="term"><code class="option">--schema <em class="replaceable"><code>SCHEMA</code></em></code></span></dt><dd><p>
+ Use a W3C <acronym class="acronym">XML</acronym> Schema file
+ named <em class="replaceable"><code>SCHEMA</code></em> for validation.
+ </p></dd><dt><span class="term"><code class="option">--shell</code></span></dt><dd><p>
+ Run a navigating shell. Details on available commands in shell mode
+ are below (see <a class="xref" href="#shell" title="SHELL COMMANDS">the section called “SHELL COMMANDS”</a>).
+ </p></dd><dt><span class="term"><code class="option">--xpath "<em class="replaceable"><code>XPath_expression</code></em>"</code></span></dt><dd><p>
+ Run an XPath expression given as argument and print the
+ result. In case of a nodeset result, each node in the
+ node set is serialized in full in the output. In case
+ of an empty node set the "XPath set is empty" result
+ will be shown and an error exit code will be returned.
+ </p></dd><dt><span class="term"><code class="option">--stream</code></span></dt><dd><p>
+ Use streaming <acronym class="acronym">API</acronym> - useful when used in combination
+ with <code class="option">--relaxng</code> or <code class="option">--valid</code> options
+ for validation of files that are too large to be held in memory.
+ </p></dd><dt><span class="term"><code class="option">--testIO</code></span></dt><dd><p>Test user input/output support.</p></dd><dt><span class="term"><code class="option">--timing</code></span></dt><dd><p>
+ Output information about the time it takes <span class="command"><strong>xmllint</strong></span> to perform the
+ various steps.
+ </p></dd><dt><span class="term"><code class="option">--valid</code></span></dt><dd><p>
+ Determine if the document is a valid instance of the included
+ Document Type Definition (<acronym class="acronym">DTD</acronym>).
+ A <acronym class="acronym">DTD</acronym> to be validated against also can be
+ specified at the command line using the <code class="option">--dtdvalid</code>
+ option. By default, <span class="command"><strong>xmllint</strong></span> also checks to determine if the
+ document is well-formed.
+ </p></dd><dt><span class="term"><code class="option">--version</code></span></dt><dd><p>
+ Display the version of <span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> used.
+ </p></dd><dt><span class="term"><code class="option">--walker</code></span></dt><dd><p>
+ Test the walker module, which is a reader interface but for a
+ document tree, instead of using the reader <acronym class="acronym">API</acronym> on
+ an unparsed document it works on an existing in-memory tree. Used for
+ debugging.
+ </p></dd><dt><span class="term"><code class="option">--xinclude</code></span></dt><dd><p>Do XInclude processing.</p></dd><dt><span class="term"><code class="option">--xmlout</code></span></dt><dd><p>
+ Used in conjunction with <code class="option">--html</code>. Usually
+ when <acronym class="acronym">HTML</acronym> is parsed the document is saved with
+ the <acronym class="acronym">HTML</acronym> serializer. But with this option the
+ resulting document is saved with the <acronym class="acronym">XML</acronym>
+ serializer. This is primarily used to
+ generate <acronym class="acronym">XHTML</acronym> from <acronym class="acronym">HTML</acronym> input.
+ </p></dd></dl></div></div><div class="refsect1"><a name="shell"></a><h2>SHELL COMMANDS</h2><p>
+ <span class="command"><strong>xmllint</strong></span> offers an interactive shell mode invoked with
+ the <code class="option">--shell</code> command. Available commands in shell mode
+ include (in alphabetical order):
+ </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="command"><strong>base</strong></span></span></dt><dd><p>Display <acronym class="acronym">XML</acronym> base of the node.</p></dd><dt><span class="term"><span class="command"><strong>bye</strong></span></span></dt><dd><p>Leave the shell.</p></dd><dt><span class="term"><span class="command"><strong>cat <em class="replaceable"><code>NODE</code></em></strong></span></span></dt><dd><p>Display the given node or the current one.</p></dd><dt><span class="term"><span class="command"><strong>cd <em class="replaceable"><code>PATH</code></em></strong></span></span></dt><dd><p>
+ Change the current node to the given path (if unique) or root if no
+ argument is given.
+ </p></dd><dt><span class="term"><span class="command"><strong>dir <em class="replaceable"><code>PATH</code></em></strong></span></span></dt><dd><p>
+ Dumps information about the node (namespace, attributes, content).
+ </p></dd><dt><span class="term"><span class="command"><strong>du <em class="replaceable"><code>PATH</code></em></strong></span></span></dt><dd><p>
+ Show the structure of the subtree under the given path or the current node.
+ </p></dd><dt><span class="term"><span class="command"><strong>exit</strong></span></span></dt><dd><p>Leave the shell.</p></dd><dt><span class="term"><span class="command"><strong>help</strong></span></span></dt><dd><p>Show this help.</p></dd><dt><span class="term"><span class="command"><strong>free</strong></span></span></dt><dd><p>Display memory usage.</p></dd><dt><span class="term"><span class="command"><strong>load <em class="replaceable"><code>FILENAME</code></em></strong></span></span></dt><dd><p>Load a new document with the given filename.</p></dd><dt><span class="term"><span class="command"><strong>ls <em class="replaceable"><code>PATH</code></em></strong></span></span></dt><dd><p>List contents of the given path or the current directory.</p></dd><dt><span class="term"><span class="command"><strong>pwd</strong></span></span></dt><dd><p>Display the path to the current node.</p></dd><dt><span class="term"><span class="command"><strong>quit</strong></span></span></dt><dd><p>Leave the shell.</p></dd><dt><span class="term"><span class="command"><strong>save <em class="replaceable"><code>FILENAME</code></em></strong></span></span></dt><dd><p>
+ Save the current document to the given filename or to the original name.
+ </p></dd><dt><span class="term"><code class="option">validate</code></span></dt><dd><p>Check the document for errors.</p></dd><dt><span class="term"><span class="command"><strong>write <em class="replaceable"><code>FILENAME</code></em></strong></span></span></dt><dd><p>Write the current node to the given filename.</p></dd></dl></div></div><div class="refsect1"><a name="environment"></a><h2>ENVIRONMENT</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="envar">SGML_CATALOG_FILES</code></span></dt><dd><p><acronym class="acronym">SGML</acronym> catalog behavior can be changed by redirecting
+ queries to the user's own set of catalogs. This can be done by setting
+ the <code class="envar">SGML_CATALOG_FILES</code> environment variable to a list
+ of catalogs. An empty one should deactivate loading the
+ default <code class="filename">/etc/sgml/catalog</code> catalog.
+ </p></dd><dt><span class="term"><code class="envar">XML_CATALOG_FILES</code></span></dt><dd><p><acronym class="acronym">XML</acronym> catalog behavior can be changed by redirecting
+ queries to the user's own set of catalogs. This can be done by setting
+ the <code class="envar">XML_CATALOG_FILES</code> environment variable to a list
+ of catalogs. An empty one should deactivate loading the
+ default <code class="filename">/etc/xml/catalog</code> catalog.
+ </p></dd><dt><span class="term"><code class="envar">XML_DEBUG_CATALOG</code></span></dt><dd><p>Setting the environment variable <code class="envar">XML_DEBUG_CATALOG</code>
+ to <em class="parameter"><code>non-zero</code></em> using the <span class="command"><strong>export</strong></span>
+ command outputs debugging information related to catalog operations.
+ </p></dd><dt><span class="term"><code class="envar">XMLLINT_INDENT</code></span></dt><dd><p>Setting the environment variable <code class="envar">XMLLINT_INDENT</code>
+ controls the indentation. The default value is two spaces " ".
+ </p></dd></dl></div></div><div class="refsect1"><a name="diagnostics"></a><h2>DIAGNOSTICS</h2><p>
+ <span class="command"><strong>xmllint</strong></span> return codes provide information that can be used when
+ calling it from scripts.
+ </p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="errorcode">0</span></span></dt><dd><p>No error</p></dd><dt><span class="term"><span class="errorcode">1</span></span></dt><dd><p>Unclassified</p></dd><dt><span class="term"><span class="errorcode">2</span></span></dt><dd><p>Error in <acronym class="acronym">DTD</acronym></p></dd><dt><span class="term"><span class="errorcode">3</span></span></dt><dd><p>Validation error</p></dd><dt><span class="term"><span class="errorcode">4</span></span></dt><dd><p>Validation error</p></dd><dt><span class="term"><span class="errorcode">5</span></span></dt><dd><p>Error in schema compilation</p></dd><dt><span class="term"><span class="errorcode">6</span></span></dt><dd><p>Error writing output</p></dd><dt><span class="term"><span class="errorcode">7</span></span></dt><dd><p>
+ Error in pattern (generated when <code class="option">--pattern</code> option is used)
+ </p></dd><dt><span class="term"><span class="errorcode">8</span></span></dt><dd><p>
+ Error in Reader registration (generated
+ when <code class="option">--chkregister</code> option is used)
+ </p></dd><dt><span class="term"><span class="errorcode">9</span></span></dt><dd><p>Out of memory error</p></dd></dl></div></div><div class="refsect1"><a name="seealso"></a><h2>SEE ALSO</h2><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span>
+ </p><p>
+ More information can be found at
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="citerefentry"><span class="refentrytitle">libxml</span>(3)</span> web page <a class="ulink" href="http://www.xmlsoft.org/" target="_top">http://www.xmlsoft.org/</a>
+ </p></li><li class="listitem"><p>W3C <acronym class="acronym">XSLT</acronym> page <a class="ulink" href="http://www.w3.org/TR/xslt" target="_top">http://www.w3.org/TR/xslt</a>
+ </p></li></ul></div><p>
+ </p></div></div></body></html>
diff --git a/elfgcchack.h b/elfgcchack.h
index 8c52884..5ac93bf 100644
--- a/elfgcchack.h
+++ b/elfgcchack.h
@@ -11,7 +11,7 @@
#ifdef IN_LIBXML
#ifdef __GNUC__
#ifdef PIC
-#ifdef linux
+#ifdef __linux__
#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
#include "libxml/c14n.h"
diff --git a/encoding.c b/encoding.c
index e49c7f8..de7b511 100644
--- a/encoding.c
+++ b/encoding.c
@@ -110,6 +110,9 @@
if (conv == NULL)
return NULL;
+ conv->pivot_source = conv->pivot_buf;
+ conv->pivot_target = conv->pivot_buf;
+
conv->uconv = ucnv_open(name, &status);
if (U_FAILURE(status))
goto error;
@@ -354,8 +357,14 @@
{
int len;
- if ((out == NULL) || (inb == NULL) || (outlen == NULL) || (inlenb == NULL))
+ if ((out == NULL) || (outlen == NULL) || (inlenb == NULL))
return(-1);
+ if (inb == NULL) {
+ /* inb == NULL means output is initialized. */
+ *outlen = 0;
+ *inlenb = 0;
+ return(0);
+ }
if (*outlen > *inlenb) {
len = *inlenb;
} else {
@@ -1844,6 +1853,7 @@
* @outlen: the length of @out
* @in: a pointer to an array of ISO Latin 1 chars
* @inlen: the length of @in
+ * @flush: if true, indicates end of input
*
* Returns 0 if success, or
* -1 by lack of space, or
@@ -1857,7 +1867,7 @@
*/
static int
xmlUconvWrapper(uconv_t *cd, int toUnicode, unsigned char *out, int *outlen,
- const unsigned char *in, int *inlen) {
+ const unsigned char *in, int *inlen, int flush) {
const char *ucv_in = (const char *) in;
char *ucv_out = (char *) out;
UErrorCode err = U_ZERO_ERROR;
@@ -1867,33 +1877,31 @@
return(-1);
}
- /*
- * TODO(jungshik)
- * 1. is ucnv_convert(To|From)Algorithmic better?
- * 2. had we better use an explicit pivot buffer?
- * 3. error returned comes from 'fromUnicode' only even
- * when toUnicode is true !
- */
if (toUnicode) {
/* encoding => UTF-16 => UTF-8 */
ucnv_convertEx(cd->utf8, cd->uconv, &ucv_out, ucv_out + *outlen,
- &ucv_in, ucv_in + *inlen, NULL, NULL, NULL, NULL,
- 0, TRUE, &err);
+ &ucv_in, ucv_in + *inlen, cd->pivot_buf,
+ &cd->pivot_source, &cd->pivot_target,
+ cd->pivot_buf + ICU_PIVOT_BUF_SIZE, 0, flush, &err);
} else {
/* UTF-8 => UTF-16 => encoding */
ucnv_convertEx(cd->uconv, cd->utf8, &ucv_out, ucv_out + *outlen,
- &ucv_in, ucv_in + *inlen, NULL, NULL, NULL, NULL,
- 0, TRUE, &err);
+ &ucv_in, ucv_in + *inlen, cd->pivot_buf,
+ &cd->pivot_source, &cd->pivot_target,
+ cd->pivot_buf + ICU_PIVOT_BUF_SIZE, 0, flush, &err);
}
*inlen = ucv_in - (const char*) in;
*outlen = ucv_out - (char *) out;
- if (U_SUCCESS(err))
+ if (U_SUCCESS(err)) {
+ /* reset pivot buf if this is the last call for input (flush==TRUE) */
+ if (flush)
+ cd->pivot_source = cd->pivot_target = cd->pivot_buf;
return 0;
+ }
if (err == U_BUFFER_OVERFLOW_ERROR)
return -1;
if (err == U_INVALID_CHAR_FOUND || err == U_ILLEGAL_CHAR_FOUND)
return -2;
- /* if (err == U_TRUNCATED_CHAR_FOUND) */
return -3;
}
#endif /* LIBXML_ICU_ENABLED */
@@ -1904,6 +1912,64 @@
* *
************************************************************************/
+static int
+xmlEncInputChunk(xmlCharEncodingHandler *handler, unsigned char *out,
+ int *outlen, const unsigned char *in, int *inlen, int flush) {
+ int ret;
+ (void)flush;
+
+ if (handler->input != NULL) {
+ ret = handler->input(out, outlen, in, inlen);
+ }
+#ifdef LIBXML_ICONV_ENABLED
+ else if (handler->iconv_in != NULL) {
+ ret = xmlIconvWrapper(handler->iconv_in, out, outlen, in, inlen);
+ }
+#endif /* LIBXML_ICONV_ENABLED */
+#ifdef LIBXML_ICU_ENABLED
+ else if (handler->uconv_in != NULL) {
+ ret = xmlUconvWrapper(handler->uconv_in, 1, out, outlen, in, inlen,
+ flush);
+ }
+#endif /* LIBXML_ICU_ENABLED */
+ else {
+ *outlen = 0;
+ *inlen = 0;
+ ret = -2;
+ }
+
+ return(ret);
+}
+
+/* Returns -4 if no output function was found. */
+static int
+xmlEncOutputChunk(xmlCharEncodingHandler *handler, unsigned char *out,
+ int *outlen, const unsigned char *in, int *inlen) {
+ int ret;
+
+ if (handler->output != NULL) {
+ ret = handler->output(out, outlen, in, inlen);
+ }
+#ifdef LIBXML_ICONV_ENABLED
+ else if (handler->iconv_out != NULL) {
+ ret = xmlIconvWrapper(handler->iconv_out, out, outlen, in, inlen);
+ }
+#endif /* LIBXML_ICONV_ENABLED */
+#ifdef LIBXML_ICU_ENABLED
+ else if (handler->uconv_out != NULL) {
+ ret = xmlUconvWrapper(handler->uconv_out, 0, out, outlen, in, inlen,
+ TRUE);
+ }
+#endif /* LIBXML_ICU_ENABLED */
+ else {
+ *outlen = 0;
+ *inlen = 0;
+ ret = -4;
+ }
+
+ return(ret);
+}
+
/**
* xmlCharEncFirstLineInt:
* @handler: char enconding transformation data structure
@@ -1922,7 +1988,7 @@
int
xmlCharEncFirstLineInt(xmlCharEncodingHandler *handler, xmlBufferPtr out,
xmlBufferPtr in, int len) {
- int ret = -2;
+ int ret;
int written;
int toconv;
@@ -1953,33 +2019,13 @@
written = out->size - out->use - 1;
}
- if (handler->input != NULL) {
- ret = handler->input(&out->content[out->use], &written,
- in->content, &toconv);
- xmlBufferShrink(in, toconv);
- out->use += written;
- out->content[out->use] = 0;
- }
-#ifdef LIBXML_ICONV_ENABLED
- else if (handler->iconv_in != NULL) {
- ret = xmlIconvWrapper(handler->iconv_in, &out->content[out->use],
- &written, in->content, &toconv);
- xmlBufferShrink(in, toconv);
- out->use += written;
- out->content[out->use] = 0;
- if (ret == -1) ret = -3;
- }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
- else if (handler->uconv_in != NULL) {
- ret = xmlUconvWrapper(handler->uconv_in, 1, &out->content[out->use],
- &written, in->content, &toconv);
- xmlBufferShrink(in, toconv);
- out->use += written;
- out->content[out->use] = 0;
- if (ret == -1) ret = -3;
- }
-#endif /* LIBXML_ICU_ENABLED */
+ ret = xmlEncInputChunk(handler, &out->content[out->use], &written,
+ in->content, &toconv, 0);
+ xmlBufferShrink(in, toconv);
+ out->use += written;
+ out->content[out->use] = 0;
+ if (ret == -1) ret = -3;
+
#ifdef DEBUG_ENCODING
switch (ret) {
case 0:
@@ -2049,7 +2095,7 @@
int
xmlCharEncFirstLineInput(xmlParserInputBufferPtr input, int len)
{
- int ret = -2;
+ int ret;
size_t written;
size_t toconv;
int c_in;
@@ -2091,32 +2137,13 @@
c_in = toconv;
c_out = written;
- if (input->encoder->input != NULL) {
- ret = input->encoder->input(xmlBufEnd(out), &c_out,
- xmlBufContent(in), &c_in);
- xmlBufShrink(in, c_in);
- xmlBufAddLen(out, c_out);
- }
-#ifdef LIBXML_ICONV_ENABLED
- else if (input->encoder->iconv_in != NULL) {
- ret = xmlIconvWrapper(input->encoder->iconv_in, xmlBufEnd(out),
- &c_out, xmlBufContent(in), &c_in);
- xmlBufShrink(in, c_in);
- xmlBufAddLen(out, c_out);
- if (ret == -1)
- ret = -3;
- }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
- else if (input->encoder->uconv_in != NULL) {
- ret = xmlUconvWrapper(input->encoder->uconv_in, 1, xmlBufEnd(out),
- &c_out, xmlBufContent(in), &c_in);
- xmlBufShrink(in, c_in);
- xmlBufAddLen(out, c_out);
- if (ret == -1)
- ret = -3;
- }
-#endif /* LIBXML_ICU_ENABLED */
+ ret = xmlEncInputChunk(input->encoder, xmlBufEnd(out), &c_out,
+ xmlBufContent(in), &c_in, 0);
+ xmlBufShrink(in, c_in);
+ xmlBufAddLen(out, c_out);
+ if (ret == -1)
+ ret = -3;
+
switch (ret) {
case 0:
#ifdef DEBUG_ENCODING
@@ -2175,7 +2202,7 @@
int
xmlCharEncInput(xmlParserInputBufferPtr input, int flush)
{
- int ret = -2;
+ int ret;
size_t written;
size_t toconv;
int c_in;
@@ -2208,32 +2235,13 @@
c_in = toconv;
c_out = written;
- if (input->encoder->input != NULL) {
- ret = input->encoder->input(xmlBufEnd(out), &c_out,
- xmlBufContent(in), &c_in);
- xmlBufShrink(in, c_in);
- xmlBufAddLen(out, c_out);
- }
-#ifdef LIBXML_ICONV_ENABLED
- else if (input->encoder->iconv_in != NULL) {
- ret = xmlIconvWrapper(input->encoder->iconv_in, xmlBufEnd(out),
- &c_out, xmlBufContent(in), &c_in);
- xmlBufShrink(in, c_in);
- xmlBufAddLen(out, c_out);
- if (ret == -1)
- ret = -3;
- }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
- else if (input->encoder->uconv_in != NULL) {
- ret = xmlUconvWrapper(input->encoder->uconv_in, 1, xmlBufEnd(out),
- &c_out, xmlBufContent(in), &c_in);
- xmlBufShrink(in, c_in);
- xmlBufAddLen(out, c_out);
- if (ret == -1)
- ret = -3;
- }
-#endif /* LIBXML_ICU_ENABLED */
+ ret = xmlEncInputChunk(input->encoder, xmlBufEnd(out), &c_out,
+ xmlBufContent(in), &c_in, flush);
+ xmlBufShrink(in, c_in);
+ xmlBufAddLen(out, c_out);
+ if (ret == -1)
+ ret = -3;
+
switch (ret) {
case 0:
#ifdef DEBUG_ENCODING
@@ -2294,7 +2302,7 @@
xmlCharEncInFunc(xmlCharEncodingHandler * handler, xmlBufferPtr out,
xmlBufferPtr in)
{
- int ret = -2;
+ int ret;
int written;
int toconv;
@@ -2313,35 +2321,14 @@
xmlBufferGrow(out, out->size + toconv * 2);
written = out->size - out->use - 1;
}
- if (handler->input != NULL) {
- ret = handler->input(&out->content[out->use], &written,
- in->content, &toconv);
- xmlBufferShrink(in, toconv);
- out->use += written;
- out->content[out->use] = 0;
- }
-#ifdef LIBXML_ICONV_ENABLED
- else if (handler->iconv_in != NULL) {
- ret = xmlIconvWrapper(handler->iconv_in, &out->content[out->use],
- &written, in->content, &toconv);
- xmlBufferShrink(in, toconv);
- out->use += written;
- out->content[out->use] = 0;
- if (ret == -1)
- ret = -3;
- }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
- else if (handler->uconv_in != NULL) {
- ret = xmlUconvWrapper(handler->uconv_in, 1, &out->content[out->use],
- &written, in->content, &toconv);
- xmlBufferShrink(in, toconv);
- out->use += written;
- out->content[out->use] = 0;
- if (ret == -1)
- ret = -3;
- }
-#endif /* LIBXML_ICU_ENABLED */
+ ret = xmlEncInputChunk(handler, &out->content[out->use], &written,
+ in->content, &toconv, 1);
+ xmlBufferShrink(in, toconv);
+ out->use += written;
+ out->content[out->use] = 0;
+ if (ret == -1)
+ ret = -3;
+
switch (ret) {
case 0:
#ifdef DEBUG_ENCODING
@@ -2405,7 +2392,7 @@
int
xmlCharEncOutput(xmlOutputBufferPtr output, int init)
{
- int ret = -2;
+ int ret;
size_t written;
size_t writtentot = 0;
size_t toconv;
@@ -2413,7 +2400,6 @@
int c_out;
xmlBufPtr in;
xmlBufPtr out;
- int charref_len = 0;
if ((output == NULL) || (output->encoder == NULL) ||
(output->buffer == NULL) || (output->conv == NULL))
@@ -2433,26 +2419,10 @@
if (init) {
c_in = 0;
c_out = written;
- if (output->encoder->output != NULL) {
- ret = output->encoder->output(xmlBufEnd(out), &c_out,
- NULL, &c_in);
- if (ret > 0) /* Gennady: check return value */
- xmlBufAddLen(out, c_out);
- }
-#ifdef LIBXML_ICONV_ENABLED
- else if (output->encoder->iconv_out != NULL) {
- ret = xmlIconvWrapper(output->encoder->iconv_out, xmlBufEnd(out),
- &c_out, NULL, &c_in);
- xmlBufAddLen(out, c_out);
- }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
- else if (output->encoder->uconv_out != NULL) {
- ret = xmlUconvWrapper(output->encoder->uconv_out, 0, xmlBufEnd(out),
- &c_out, NULL, &c_in);
- xmlBufAddLen(out, c_out);
- }
-#endif /* LIBXML_ICU_ENABLED */
+ /* TODO: Check return value. */
+ xmlEncOutputChunk(output->encoder, xmlBufEnd(out), &c_out,
+ NULL, &c_in);
+ xmlBufAddLen(out, c_out);
#ifdef DEBUG_ENCODING
xmlGenericError(xmlGenericErrorContext,
"initialized encoder\n");
@@ -2477,57 +2447,17 @@
c_in = toconv;
c_out = written;
- if (output->encoder->output != NULL) {
- ret = output->encoder->output(xmlBufEnd(out), &c_out,
- xmlBufContent(in), &c_in);
+ ret = xmlEncOutputChunk(output->encoder, xmlBufEnd(out), &c_out,
+ xmlBufContent(in), &c_in);
+ xmlBufShrink(in, c_in);
+ xmlBufAddLen(out, c_out);
+ writtentot += c_out;
+ if (ret == -1) {
if (c_out > 0) {
- xmlBufShrink(in, c_in);
- xmlBufAddLen(out, c_out);
- writtentot += c_out;
+ /* Can be a limitation of iconv or uconv */
+ goto retry;
}
- }
-#ifdef LIBXML_ICONV_ENABLED
- else if (output->encoder->iconv_out != NULL) {
- ret = xmlIconvWrapper(output->encoder->iconv_out, xmlBufEnd(out),
- &c_out, xmlBufContent(in), &c_in);
- xmlBufShrink(in, c_in);
- xmlBufAddLen(out, c_out);
- writtentot += c_out;
- if (ret == -1) {
- if (c_out > 0) {
- /*
- * Can be a limitation of iconv
- */
- charref_len = 0;
- goto retry;
- }
- ret = -3;
- }
- }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
- else if (output->encoder->uconv_out != NULL) {
- ret = xmlUconvWrapper(output->encoder->uconv_out, 0, xmlBufEnd(out),
- &c_out, xmlBufContent(in), &c_in);
- xmlBufShrink(in, c_in);
- xmlBufAddLen(out, c_out);
- writtentot += c_out;
- if (ret == -1) {
- if (c_out > 0) {
- /*
- * Can be a limitation of uconv
- */
- charref_len = 0;
- goto retry;
- }
- ret = -3;
- }
- }
-#endif /* LIBXML_ICU_ENABLED */
- else {
- xmlEncodingErr(XML_I18N_NO_OUTPUT,
- "xmlCharEncOutFunc: no output function !\n", NULL);
- return(-1);
+ ret = -3;
}
if (ret >= 0) output += ret;
@@ -2555,47 +2485,44 @@
c_in, c_out, (int) xmlBufUse(in));
#endif
break;
+ case -4:
+ xmlEncodingErr(XML_I18N_NO_OUTPUT,
+ "xmlCharEncOutFunc: no output function !\n", NULL);
+ ret = -1;
+ break;
case -2: {
+ xmlChar charref[20];
int len = (int) xmlBufUse(in);
xmlChar *content = xmlBufContent(in);
- int cur;
+ int cur, charrefLen;
cur = xmlGetUTF8Char(content, &len);
- if ((charref_len != 0) && (c_out < charref_len)) {
- /*
- * We attempted to insert a character reference and failed.
- * Undo what was written and skip the remaining charref.
- */
- xmlBufErase(out, c_out);
- writtentot -= c_out;
- xmlBufShrink(in, charref_len - c_out);
- charref_len = 0;
-
- ret = -1;
+ if (cur <= 0)
break;
- } else if (cur > 0) {
- xmlChar charref[20];
#ifdef DEBUG_ENCODING
- xmlGenericError(xmlGenericErrorContext,
- "handling output conversion error\n");
- xmlGenericError(xmlGenericErrorContext,
- "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
- content[0], content[1],
- content[2], content[3]);
+ xmlGenericError(xmlGenericErrorContext,
+ "handling output conversion error\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
+ content[0], content[1],
+ content[2], content[3]);
#endif
- /*
- * Removes the UTF8 sequence, and replace it by a charref
- * and continue the transcoding phase, hoping the error
- * did not mangle the encoder state.
- */
- charref_len = snprintf((char *) &charref[0], sizeof(charref),
- "&#%d;", cur);
- xmlBufShrink(in, len);
- xmlBufAddHead(in, charref, -1);
+ /*
+ * Removes the UTF8 sequence, and replace it by a charref
+ * and continue the transcoding phase, hoping the error
+ * did not mangle the encoder state.
+ */
+ charrefLen = snprintf((char *) &charref[0], sizeof(charref),
+ "&#%d;", cur);
+ xmlBufShrink(in, len);
+ xmlBufGrow(out, charrefLen * 4);
+ c_out = xmlBufAvail(out) - 1;
+ c_in = charrefLen;
+ ret = xmlEncOutputChunk(output->encoder, xmlBufEnd(out), &c_out,
+ charref, &c_in);
- goto retry;
- } else {
+ if ((ret < 0) || (c_in != charrefLen)) {
char buf[50];
snprintf(&buf[0], 49, "0x%02X 0x%02X 0x%02X 0x%02X",
@@ -2607,8 +2534,12 @@
buf);
if (xmlBufGetAllocationScheme(in) != XML_BUFFER_ALLOC_IMMUTABLE)
content[0] = ' ';
+ break;
}
- break;
+
+ xmlBufAddLen(out, c_out);
+ writtentot += c_out;
+ goto retry;
}
}
return(ret);
@@ -2636,12 +2567,11 @@
int
xmlCharEncOutFunc(xmlCharEncodingHandler *handler, xmlBufferPtr out,
xmlBufferPtr in) {
- int ret = -2;
+ int ret;
int written;
int writtentot = 0;
int toconv;
int output = 0;
- int charref_len = 0;
if (handler == NULL) return(-1);
if (out == NULL) return(-1);
@@ -2658,31 +2588,11 @@
*/
if (in == NULL) {
toconv = 0;
- if (handler->output != NULL) {
- ret = handler->output(&out->content[out->use], &written,
- NULL, &toconv);
- if (ret >= 0) { /* Gennady: check return value */
- out->use += written;
- out->content[out->use] = 0;
- }
- }
-#ifdef LIBXML_ICONV_ENABLED
- else if (handler->iconv_out != NULL) {
- ret = xmlIconvWrapper(handler->iconv_out, &out->content[out->use],
- &written, NULL, &toconv);
- out->use += written;
- out->content[out->use] = 0;
- }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
- else if (handler->uconv_out != NULL) {
- ret = xmlUconvWrapper(handler->uconv_out, 0,
- &out->content[out->use],
- &written, NULL, &toconv);
- out->use += written;
- out->content[out->use] = 0;
- }
-#endif /* LIBXML_ICU_ENABLED */
+ /* TODO: Check return value. */
+ xmlEncOutputChunk(handler, &out->content[out->use], &written,
+ NULL, &toconv);
+ out->use += written;
+ out->content[out->use] = 0;
#ifdef DEBUG_ENCODING
xmlGenericError(xmlGenericErrorContext,
"initialized encoder\n");
@@ -2700,61 +2610,18 @@
xmlBufferGrow(out, toconv * 4);
written = out->size - out->use - 1;
}
- if (handler->output != NULL) {
- ret = handler->output(&out->content[out->use], &written,
- in->content, &toconv);
- if (written > 0) {
- xmlBufferShrink(in, toconv);
- out->use += written;
- writtentot += written;
- }
- out->content[out->use] = 0;
- }
-#ifdef LIBXML_ICONV_ENABLED
- else if (handler->iconv_out != NULL) {
- ret = xmlIconvWrapper(handler->iconv_out, &out->content[out->use],
- &written, in->content, &toconv);
- xmlBufferShrink(in, toconv);
- out->use += written;
- writtentot += written;
- out->content[out->use] = 0;
- if (ret == -1) {
- if (written > 0) {
- /*
- * Can be a limitation of iconv
- */
- charref_len = 0;
- goto retry;
- }
- ret = -3;
- }
- }
-#endif /* LIBXML_ICONV_ENABLED */
-#ifdef LIBXML_ICU_ENABLED
- else if (handler->uconv_out != NULL) {
- ret = xmlUconvWrapper(handler->uconv_out, 0,
- &out->content[out->use],
- &written, in->content, &toconv);
- xmlBufferShrink(in, toconv);
- out->use += written;
- writtentot += written;
- out->content[out->use] = 0;
- if (ret == -1) {
- if (written > 0) {
- /*
- * Can be a limitation of iconv
- */
- charref_len = 0;
- goto retry;
- }
- ret = -3;
- }
- }
-#endif /* LIBXML_ICU_ENABLED */
- else {
- xmlEncodingErr(XML_I18N_NO_OUTPUT,
- "xmlCharEncOutFunc: no output function !\n", NULL);
- return(-1);
+ ret = xmlEncOutputChunk(handler, &out->content[out->use], &written,
+ in->content, &toconv);
+ xmlBufferShrink(in, toconv);
+ out->use += written;
+ writtentot += written;
+ out->content[out->use] = 0;
+ if (ret == -1) {
+ if (written > 0) {
+ /* Can be a limitation of iconv or uconv */
+ goto retry;
+ }
+ ret = -3;
}
if (ret >= 0) output += ret;
@@ -2782,47 +2649,44 @@
toconv, written, in->use);
#endif
break;
+ case -4:
+ xmlEncodingErr(XML_I18N_NO_OUTPUT,
+ "xmlCharEncOutFunc: no output function !\n", NULL);
+ ret = -1;
+ break;
case -2: {
+ xmlChar charref[20];
int len = in->use;
const xmlChar *utf = (const xmlChar *) in->content;
- int cur;
+ int cur, charrefLen;
cur = xmlGetUTF8Char(utf, &len);
- if ((charref_len != 0) && (written < charref_len)) {
- /*
- * We attempted to insert a character reference and failed.
- * Undo what was written and skip the remaining charref.
- */
- out->use -= written;
- writtentot -= written;
- xmlBufferShrink(in, charref_len - written);
- charref_len = 0;
-
- ret = -1;
+ if (cur <= 0)
break;
- } else if (cur > 0) {
- xmlChar charref[20];
#ifdef DEBUG_ENCODING
- xmlGenericError(xmlGenericErrorContext,
- "handling output conversion error\n");
- xmlGenericError(xmlGenericErrorContext,
- "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
- in->content[0], in->content[1],
- in->content[2], in->content[3]);
+ xmlGenericError(xmlGenericErrorContext,
+ "handling output conversion error\n");
+ xmlGenericError(xmlGenericErrorContext,
+ "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
+ in->content[0], in->content[1],
+ in->content[2], in->content[3]);
#endif
- /*
- * Removes the UTF8 sequence, and replace it by a charref
- * and continue the transcoding phase, hoping the error
- * did not mangle the encoder state.
- */
- charref_len = snprintf((char *) &charref[0], sizeof(charref),
- "&#%d;", cur);
- xmlBufferShrink(in, len);
- xmlBufferAddHead(in, charref, -1);
+ /*
+ * Removes the UTF8 sequence, and replace it by a charref
+ * and continue the transcoding phase, hoping the error
+ * did not mangle the encoder state.
+ */
+ charrefLen = snprintf((char *) &charref[0], sizeof(charref),
+ "&#%d;", cur);
+ xmlBufferShrink(in, len);
+ xmlBufferGrow(out, charrefLen * 4);
+ written = out->size - out->use - 1;
+ toconv = charrefLen;
+ ret = xmlEncOutputChunk(handler, &out->content[out->use], &written,
+ charref, &toconv);
- goto retry;
- } else {
+ if ((ret < 0) || (toconv != charrefLen)) {
char buf[50];
snprintf(&buf[0], 49, "0x%02X 0x%02X 0x%02X 0x%02X",
@@ -2834,8 +2698,13 @@
buf);
if (in->alloc != XML_BUFFER_ALLOC_IMMUTABLE)
in->content[0] = ' ';
+ break;
}
- break;
+
+ out->use += written;
+ writtentot += written;
+ out->content[out->use] = 0;
+ goto retry;
}
}
return(ret);
@@ -2954,54 +2823,20 @@
int ret;
- if (handler->output != NULL) {
- do {
- toconv = in->end - cur;
- written = 32000;
- ret = handler->output(&convbuf[0], &written,
- cur, &toconv);
- if (ret == -1) return(-1);
- unused += written;
- cur += toconv;
- } while (ret == -2);
-#ifdef LIBXML_ICONV_ENABLED
- } else if (handler->iconv_out != NULL) {
- do {
- toconv = in->end - cur;
- written = 32000;
- ret = xmlIconvWrapper(handler->iconv_out, &convbuf[0],
- &written, cur, &toconv);
- if (ret < 0) {
- if (written > 0)
- ret = -2;
- else
- return(-1);
- }
- unused += written;
- cur += toconv;
- } while (ret == -2);
-#endif
-#ifdef LIBXML_ICU_ENABLED
- } else if (handler->uconv_out != NULL) {
- do {
- toconv = in->end - cur;
- written = 32000;
- ret = xmlUconvWrapper(handler->uconv_out, 0, &convbuf[0],
- &written, cur, &toconv);
- if (ret < 0) {
- if (written > 0)
- ret = -2;
- else
- return(-1);
- }
- unused += written;
- cur += toconv;
- } while (ret == -2);
-#endif
- } else {
- /* could not find a converter */
- return(-1);
- }
+ do {
+ toconv = in->end - cur;
+ written = 32000;
+ ret = xmlEncOutputChunk(handler, &convbuf[0], &written,
+ cur, &toconv);
+ if (ret < 0) {
+ if (written > 0)
+ ret = -2;
+ else
+ return(-1);
+ }
+ unused += written;
+ cur += toconv;
+ } while (ret == -2);
}
if (in->buf->rawconsumed < unused)
return(-1);
diff --git a/entities.c b/entities.c
index 64808ff..43549bc 100644
--- a/entities.c
+++ b/entities.c
@@ -6,6 +6,11 @@
* daniel@veillard.com
*/
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
#define IN_LIBXML
#include "libxml.h"
@@ -880,10 +885,9 @@
* Deallocate the memory used by an entities in the hash table.
*/
static void
-xmlFreeEntityWrapper(xmlEntityPtr entity,
- const xmlChar *name ATTRIBUTE_UNUSED) {
+xmlFreeEntityWrapper(void *entity, const xmlChar *name ATTRIBUTE_UNUSED) {
if (entity != NULL)
- xmlFreeEntity(entity);
+ xmlFreeEntity((xmlEntityPtr) entity);
}
/**
@@ -894,7 +898,7 @@
*/
void
xmlFreeEntitiesTable(xmlEntitiesTablePtr table) {
- xmlHashFree(table, (xmlHashDeallocator) xmlFreeEntityWrapper);
+ xmlHashFree(table, xmlFreeEntityWrapper);
}
#ifdef LIBXML_TREE_ENABLED
@@ -906,8 +910,9 @@
*
* Returns the new xmlEntitiesPtr or NULL in case of error.
*/
-static xmlEntityPtr
-xmlCopyEntity(xmlEntityPtr ent) {
+static void *
+xmlCopyEntity(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlEntityPtr ent = (xmlEntityPtr) payload;
xmlEntityPtr cur;
cur = (xmlEntityPtr) xmlMalloc(sizeof(xmlEntity));
@@ -944,7 +949,7 @@
*/
xmlEntitiesTablePtr
xmlCopyEntitiesTable(xmlEntitiesTablePtr table) {
- return(xmlHashCopy(table, (xmlHashCopier) xmlCopyEntity));
+ return(xmlHashCopy(table, xmlCopyEntity));
}
#endif /* LIBXML_TREE_ENABLED */
@@ -1085,8 +1090,9 @@
* When using the hash table scan function, arguments need to be reversed
*/
static void
-xmlDumpEntityDeclScan(xmlEntityPtr ent, xmlBufferPtr buf) {
- xmlDumpEntityDecl(buf, ent);
+xmlDumpEntityDeclScan(void *ent, void *buf,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlDumpEntityDecl((xmlBufferPtr) buf, (xmlEntityPtr) ent);
}
/**
@@ -1098,7 +1104,7 @@
*/
void
xmlDumpEntitiesTable(xmlBufferPtr buf, xmlEntitiesTablePtr table) {
- xmlHashScan(table, (xmlHashScanner)xmlDumpEntityDeclScan, buf);
+ xmlHashScan(table, xmlDumpEntityDeclScan, buf);
}
#endif /* LIBXML_OUTPUT_ENABLED */
#define bottom_entities
diff --git a/error.c b/error.c
index 9606f13..50e9e6f 100644
--- a/error.c
+++ b/error.c
@@ -853,7 +853,7 @@
* Get the last global error registered. This is per thread if compiled
* with thread support.
*
- * Returns NULL if no error occured or a pointer to the error
+ * Returns NULL if no error occurred or a pointer to the error
*/
xmlErrorPtr
xmlGetLastError(void)
@@ -910,7 +910,7 @@
*
* Get the last parsing error registered.
*
- * Returns NULL if no error occured or a pointer to the error
+ * Returns NULL if no error occurred or a pointer to the error
*/
xmlErrorPtr
xmlCtxtGetLastError(void *ctx)
diff --git a/example/Makefile.am b/example/Makefile.am
index 488ee6e..49bca39 100644
--- a/example/Makefile.am
+++ b/example/Makefile.am
@@ -1,4 +1,4 @@
-noinst_PROGRAMS = gjobread
+check_PROGRAMS = gjobread
AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(srcdir)/include
AM_CFLAGS = $(THREAD_CFLAGS) $(Z_CFLAGS)
diff --git a/example/gjobread.c b/example/gjobread.c
index d3f6d57..a435ca4 100644
--- a/example/gjobread.c
+++ b/example/gjobread.c
@@ -177,7 +177,7 @@
static gJobPtr
-parseGjobFile(char *filename) {
+parseGjobFile(char *filename ATTRIBUTE_UNUSED) {
xmlDocPtr doc;
gJobPtr ret;
jobPtr curjob;
diff --git a/genUnicode.py b/genUnicode.py
index 56e4e9b..4487eeb 100755
--- a/genUnicode.py
+++ b/genUnicode.py
@@ -267,14 +267,14 @@
} xmlUnicodeRange;
typedef struct {
- xmlUnicodeRange *table;
+ const xmlUnicodeRange *table;
int numentries;
} xmlUnicodeNameTable;
static xmlIntFunc *xmlUnicodeLookup(xmlUnicodeNameTable *tptr, const char *tname);
-static xmlUnicodeRange xmlUnicodeBlocks[] = {
+static const xmlUnicodeRange xmlUnicodeBlocks[] = {
""" % (webpage, date, sources));
flag = 0
diff --git a/gentest.py b/gentest.py
index f178620..e4a8932 100755
--- a/gentest.py
+++ b/gentest.py
@@ -782,6 +782,24 @@
test.write(" %s = gen_%s(n_%s, %d);\n" % (nam, type, nam, i))
i = i + 1;
+ # add checks to avoid out-of-bounds array access
+ i = 0;
+ for arg in t_args:
+ (nam, type, rtype, crtype, info) = arg;
+ # assume that "size", "len", and "start" parameters apply to either
+ # the nearest preceding or following char pointer
+ if type == "int" and (nam == "size" or nam == "len" or nam == "start"):
+ for j in range(i - 1, -1, -1) + range(i + 1, len(t_args)):
+ (bnam, btype) = t_args[j][:2]
+ if btype == "const_char_ptr" or btype == "const_xmlChar_ptr":
+ test.write(
+ " if ((%s != NULL) &&\n"
+ " (%s > (int) strlen((const char *) %s) + 1))\n"
+ " continue;\n"
+ % (bnam, nam, bnam))
+ break
+ i = i + 1;
+
# do the call, and clanup the result
if extra_pre_call.has_key(name):
test.write(" %s\n"% (extra_pre_call[name]))
diff --git a/globals.c b/globals.c
index e351b03..20b4308 100644
--- a/globals.c
+++ b/globals.c
@@ -92,7 +92,7 @@
*
* The variable holding the libxml free() implementation
*/
-xmlFreeFunc xmlFree = (xmlFreeFunc) free;
+xmlFreeFunc xmlFree = free;
/**
* xmlMalloc:
* @size: the size requested in bytes
@@ -101,7 +101,7 @@
*
* Returns a pointer to the newly allocated block or NULL in case of error
*/
-xmlMallocFunc xmlMalloc = (xmlMallocFunc) malloc;
+xmlMallocFunc xmlMalloc = malloc;
/**
* xmlMallocAtomic:
* @size: the size requested in bytes
@@ -112,7 +112,7 @@
*
* Returns a pointer to the newly allocated block or NULL in case of error
*/
-xmlMallocFunc xmlMallocAtomic = (xmlMallocFunc) malloc;
+xmlMallocFunc xmlMallocAtomic = malloc;
/**
* xmlRealloc:
* @mem: an already allocated block of memory
@@ -122,7 +122,19 @@
*
* Returns a pointer to the newly reallocated block or NULL in case of error
*/
-xmlReallocFunc xmlRealloc = (xmlReallocFunc) realloc;
+xmlReallocFunc xmlRealloc = realloc;
+/**
+ * xmlPosixStrdup
+ * @cur: the input char *
+ *
+ * a strdup implementation with a type signature matching POSIX
+ *
+ * Returns a new xmlChar * or NULL
+ */
+static char *
+xmlPosixStrdup(const char *cur) {
+ return((char*) xmlCharStrdup(cur));
+}
/**
* xmlMemStrdup:
* @str: a zero terminated string
@@ -131,7 +143,7 @@
*
* Returns the copy of the string or NULL in case of error
*/
-xmlStrdupFunc xmlMemStrdup = (xmlStrdupFunc) xmlStrdup;
+xmlStrdupFunc xmlMemStrdup = xmlPosixStrdup;
#endif /* DEBUG_MEMORY_LOCATION || DEBUG_MEMORY */
#include <libxml/threads.h>
diff --git a/hash.c b/hash.c
index f9a2017..b0b4abc 100644
--- a/hash.c
+++ b/hash.c
@@ -168,7 +168,7 @@
*
* Create a new xmlHashTablePtr.
*
- * Returns the newly created object, or NULL if an error occured.
+ * Returns the newly created object, or NULL if an error occurred.
*/
xmlHashTablePtr
xmlHashCreate(int size) {
@@ -202,7 +202,7 @@
*
* Create a new xmlHashTablePtr which will use @dict as the internal dictionary
*
- * Returns the newly created object, or NULL if an error occured.
+ * Returns the newly created object, or NULL if an error occurred.
*/
xmlHashTablePtr
xmlHashCreateDict(int size, xmlDictPtr dict) {
@@ -361,6 +361,18 @@
}
/**
+ * xmlHashDefaultDeallocator:
+ * @entry: the hash table entry
+ * @name: the entry's name
+ *
+ * Free a hash table entry with xmlFree.
+ */
+void
+xmlHashDefaultDeallocator(void *entry, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlFree(entry);
+}
+
+/**
* xmlHashAddEntry:
* @table: the hash table
* @name: the name of the userdata
@@ -912,8 +924,11 @@
xmlHashScan3(xmlHashTablePtr table, const xmlChar *name,
const xmlChar *name2, const xmlChar *name3,
xmlHashScanner f, void *data) {
- xmlHashScanFull3 (table, name, name2, name3,
- (xmlHashScannerFull) f, data);
+ stubData stubdata;
+ stubdata.data = data;
+ stubdata.hashscanner = f;
+ xmlHashScanFull3(table, name, name2, name3, stubHashScannerFull,
+ &stubdata);
}
/**
diff --git a/include/libxml/HTMLparser.h b/include/libxml/HTMLparser.h
index 551186c..1d4fec2 100644
--- a/include/libxml/HTMLparser.h
+++ b/include/libxml/HTMLparser.h
@@ -115,12 +115,12 @@
XMLPUBFUN int XMLCALL
htmlParseDocument(htmlParserCtxtPtr ctxt);
XMLPUBFUN htmlDocPtr XMLCALL
- htmlSAXParseDoc (xmlChar *cur,
+ htmlSAXParseDoc (const xmlChar *cur,
const char *encoding,
htmlSAXHandlerPtr sax,
void *userData);
XMLPUBFUN htmlDocPtr XMLCALL
- htmlParseDoc (xmlChar *cur,
+ htmlParseDoc (const xmlChar *cur,
const char *encoding);
XMLPUBFUN htmlDocPtr XMLCALL
htmlSAXParseFile(const char *filename,
diff --git a/include/libxml/encoding.h b/include/libxml/encoding.h
index 7967cc6..c875af6 100644
--- a/include/libxml/encoding.h
+++ b/include/libxml/encoding.h
@@ -129,9 +129,14 @@
* If iconv is supported, there are two extra fields.
*/
#ifdef LIBXML_ICU_ENABLED
+/* Size of pivot buffer, same as icu/source/common/ucnv.cpp CHUNK_SIZE */
+#define ICU_PIVOT_BUF_SIZE 1024
struct _uconv_t {
UConverter *uconv; /* for conversion between an encoding and UTF-16 */
UConverter *utf8; /* for conversion between UTF-8 and UTF-16 */
+ UChar pivot_buf[ICU_PIVOT_BUF_SIZE];
+ UChar *pivot_source;
+ UChar *pivot_target;
};
typedef struct _uconv_t uconv_t;
#endif
diff --git a/include/libxml/hash.h b/include/libxml/hash.h
index dc8ab7e..6352874 100644
--- a/include/libxml/hash.h
+++ b/include/libxml/hash.h
@@ -66,7 +66,7 @@
*
* Callback to free data from a hash.
*/
-typedef void (*xmlHashDeallocator)(void *payload, xmlChar *name);
+typedef void (*xmlHashDeallocator)(void *payload, const xmlChar *name);
/**
* xmlHashCopier:
* @payload: the data in the hash
@@ -76,7 +76,7 @@
*
* Returns a copy of the data or NULL in case of error.
*/
-typedef void *(*xmlHashCopier)(void *payload, xmlChar *name);
+typedef void *(*xmlHashCopier)(void *payload, const xmlChar *name);
/**
* xmlHashScanner:
* @payload: the data in the hash
@@ -85,7 +85,7 @@
*
* Callback when scanning data in a hash with the simple scanner.
*/
-typedef void (*xmlHashScanner)(void *payload, void *data, xmlChar *name);
+typedef void (*xmlHashScanner)(void *payload, void *data, const xmlChar *name);
/**
* xmlHashScannerFull:
* @payload: the data in the hash
@@ -111,6 +111,9 @@
XMLPUBFUN void XMLCALL
xmlHashFree (xmlHashTablePtr table,
xmlHashDeallocator f);
+XMLPUBFUN void XMLCALL
+ xmlHashDefaultDeallocator(void *entry,
+ const xmlChar *name);
/*
* Add a new entry to the hash table.
diff --git a/include/libxml/list.h b/include/libxml/list.h
index 0504e0c..3211c75 100644
--- a/include/libxml/list.h
+++ b/include/libxml/list.h
@@ -49,7 +49,7 @@
*
* Returns 0 to stop walking the list, 1 otherwise.
*/
-typedef int (*xmlListWalker) (const void *data, const void *user);
+typedef int (*xmlListWalker) (const void *data, void *user);
/* Creation/Deletion */
XMLPUBFUN xmlListPtr XMLCALL
@@ -110,11 +110,11 @@
XMLPUBFUN void XMLCALL
xmlListWalk (xmlListPtr l,
xmlListWalker walker,
- const void *user);
+ void *user);
XMLPUBFUN void XMLCALL
xmlListReverseWalk (xmlListPtr l,
xmlListWalker walker,
- const void *user);
+ void *user);
XMLPUBFUN void XMLCALL
xmlListMerge (xmlListPtr l1,
xmlListPtr l2);
diff --git a/include/libxml/nanoftp.h b/include/libxml/nanoftp.h
index abb4bf7..7335faf 100644
--- a/include/libxml/nanoftp.h
+++ b/include/libxml/nanoftp.h
@@ -16,7 +16,7 @@
#ifdef LIBXML_FTP_ENABLED
/* Needed for portability to Windows 64 bits */
-#if defined(__MINGW32__) || defined(_WIN32_WCE)
+#if defined(_WIN32) && !defined(__CYGWIN__)
#include <winsock2.h>
#else
/**
diff --git a/include/libxml/schemasInternals.h b/include/libxml/schemasInternals.h
index c7cf552..6fb7113 100644
--- a/include/libxml/schemasInternals.h
+++ b/include/libxml/schemasInternals.h
@@ -3,7 +3,7 @@
* Description: internal interfaces for the XML Schemas handling
* and schema validity checking
* The Schemas development is a Work In Progress.
- * Some of those interfaces are not garanteed to be API or ABI stable !
+ * Some of those interfaces are not guaranteed to be API or ABI stable !
*
* Copy: See Copyright for the status of this software.
*
diff --git a/include/libxml/threads.h b/include/libxml/threads.h
index d31f16a..9969ae7 100644
--- a/include/libxml/threads.h
+++ b/include/libxml/threads.h
@@ -72,8 +72,13 @@
XMLPUBFUN xmlGlobalStatePtr XMLCALL
xmlGetGlobalState(void);
-#if defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && defined(LIBXML_STATIC_FOR_DLL)
-int XMLCALL xmlDllMain(void *hinstDLL, unsigned long fdwReason, void *lpvReserved);
+#ifdef HAVE_PTHREAD_H
+#elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL))
+#if defined(LIBXML_STATIC_FOR_DLL)
+int XMLCALL
+xmlDllMain(void *hinstDLL, unsigned long fdwReason,
+ void *lpvReserved);
+#endif
#endif
#ifdef __cplusplus
diff --git a/include/libxml/xmlreader.h b/include/libxml/xmlreader.h
index 2c99e3a..e8a8bcc 100644
--- a/include/libxml/xmlreader.h
+++ b/include/libxml/xmlreader.h
@@ -393,7 +393,7 @@
* @arg: the user argument
* @msg: the message
* @severity: the severity of the error
- * @locator: a locator indicating where the error occured
+ * @locator: a locator indicating where the error occurred
*
* Signature of an error callback from a reader parser
*/
diff --git a/include/libxml/xmlversion.h b/include/libxml/xmlversion.h
index 62f4408..eb18ea0 100644
--- a/include/libxml/xmlversion.h
+++ b/include/libxml/xmlversion.h
@@ -201,7 +201,12 @@
*
* Whether the HTML support is configured in
*/
-#if 1
+// BEGIN android-changed
+// Was: #if 1
+// HTML support has security vulnerabilities (b/27338391)
+// and is not needed in Android.
+#if 0
+// END android-changed
#define LIBXML_HTML_ENABLED
#endif
@@ -281,9 +286,14 @@
* LIBXML_ICU_ENABLED:
*
* Whether icu support is available
+ *
+ * This is disabled when libxml2 is built for the VNDK.
+ * libicuuc.so isn't available in the VNDK.
*/
-#if 1
+#ifndef __ANDROID_VNDK__
#define LIBXML_ICU_ENABLED
+#else
+#undef LIBXML_ICU_ENABLED
#endif
/**
@@ -435,7 +445,7 @@
*/
#ifndef LIBXML_ATTR_ALLOC_SIZE
-# if (!defined(__clang__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))))
+# if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
# define LIBXML_ATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
# else
# define LIBXML_ATTR_ALLOC_SIZE(x)
diff --git a/include/libxml/xmlversion.h.in b/include/libxml/xmlversion.h.in
index 00a836f..d10f975 100644
--- a/include/libxml/xmlversion.h.in
+++ b/include/libxml/xmlversion.h.in
@@ -410,9 +410,6 @@
#endif
#ifdef __GNUC__
-#ifdef HAVE_ANSIDECL_H
-#include <ansidecl.h>
-#endif
/**
* ATTRIBUTE_UNUSED:
@@ -435,7 +432,7 @@
*/
#ifndef LIBXML_ATTR_ALLOC_SIZE
-# if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
+# if (!defined(__clang__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))))
# define LIBXML_ATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
# else
# define LIBXML_ATTR_ALLOC_SIZE(x)
diff --git a/include/libxml/xmlwin32version.h b/include/libxml/xmlwin32version.h
index 9641241..e0f2b38 100644
--- a/include/libxml/xmlwin32version.h
+++ b/include/libxml/xmlwin32version.h
@@ -214,9 +214,6 @@
* Macro used to signal to GCC unused function parameters
*/
#ifdef __GNUC__
-#ifdef HAVE_ANSIDECL_H
-#include <ansidecl.h>
-#endif
#ifndef ATTRIBUTE_UNUSED
#define ATTRIBUTE_UNUSED
#endif
diff --git a/include/libxml/xmlwin32version.h.in b/include/libxml/xmlwin32version.h.in
index 375f3a4..2176ad1 100644
--- a/include/libxml/xmlwin32version.h.in
+++ b/include/libxml/xmlwin32version.h.in
@@ -243,9 +243,6 @@
#endif
#ifdef __GNUC__
-#ifdef HAVE_ANSIDECL_H
-#include <ansidecl.h>
-#endif
/**
* ATTRIBUTE_UNUSED:
diff --git a/include/win32config.h b/include/win32config.h
index 40cf7df..7fc7403 100644
--- a/include/win32config.h
+++ b/include/win32config.h
@@ -10,11 +10,9 @@
#if defined(_WIN32_WCE)
#undef HAVE_ERRNO_H
-#include <windows.h>
#include "wincecompat.h"
#else
#define HAVE_SYS_STAT_H
-#define HAVE__STAT
#define HAVE_STAT
#define HAVE_STDLIB_H
#define HAVE_TIME_H
@@ -29,10 +27,6 @@
#define ICONV_CONST const
#endif
-#ifdef NEED_SOCKETS
-#include <wsockcompat.h>
-#endif
-
/*
* Windows platforms may define except
*/
diff --git a/include/wsockcompat.h b/include/wsockcompat.h
index e6a1a99..0484ee3 100644
--- a/include/wsockcompat.h
+++ b/include/wsockcompat.h
@@ -8,7 +8,7 @@
#ifdef _WIN32_WCE
#include <winsock.h>
#else
-#undef HAVE_ERRNO_H
+#include <errno.h>
#include <winsock2.h>
/* the following is a workaround a problem for 'inline' keyword in said
@@ -27,60 +27,23 @@
#endif
#endif
-#if defined( __MINGW32__ ) || defined( _MSC_VER )
-/* Include <errno.h> here to ensure that it doesn't get included later
- * (e.g. by iconv.h) and overwrites the definition of EWOULDBLOCK. */
-#include <errno.h>
-#undef EWOULDBLOCK
+#undef XML_SOCKLEN_T
+#define XML_SOCKLEN_T int
+
+#ifndef ECONNRESET
+#define ECONNRESET WSAECONNRESET
#endif
-
-#if !defined SOCKLEN_T
-#define SOCKLEN_T int
+#ifndef EINPROGRESS
+#define EINPROGRESS WSAEINPROGRESS
#endif
-
-#define EWOULDBLOCK WSAEWOULDBLOCK
-#define ESHUTDOWN WSAESHUTDOWN
-
-#if (!defined(_MSC_VER) || (_MSC_VER < 1600))
-#define EINPROGRESS WSAEINPROGRESS
-#define EALREADY WSAEALREADY
-#define ENOTSOCK WSAENOTSOCK
-#define EDESTADDRREQ WSAEDESTADDRREQ
-#define EMSGSIZE WSAEMSGSIZE
-#define EPROTOTYPE WSAEPROTOTYPE
-#define ENOPROTOOPT WSAENOPROTOOPT
-#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
-#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
-#define EOPNOTSUPP WSAEOPNOTSUPP
-#define EPFNOSUPPORT WSAEPFNOSUPPORT
-#define EAFNOSUPPORT WSAEAFNOSUPPORT
-#define EADDRINUSE WSAEADDRINUSE
-#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
-#define ENETDOWN WSAENETDOWN
-#define ENETUNREACH WSAENETUNREACH
-#define ENETRESET WSAENETRESET
-#define ECONNABORTED WSAECONNABORTED
-#define ECONNRESET WSAECONNRESET
-#define ENOBUFS WSAENOBUFS
-#define EISCONN WSAEISCONN
-#define ENOTCONN WSAENOTCONN
-#define ETOOMANYREFS WSAETOOMANYREFS
-#define ETIMEDOUT WSAETIMEDOUT
-#define ECONNREFUSED WSAECONNREFUSED
-#define ELOOP WSAELOOP
-#define EHOSTDOWN WSAEHOSTDOWN
-#define EHOSTUNREACH WSAEHOSTUNREACH
-#define EPROCLIM WSAEPROCLIM
-#define EUSERS WSAEUSERS
-#define EDQUOT WSAEDQUOT
-#define ESTALE WSAESTALE
-#define EREMOTE WSAEREMOTE
-/* These cause conflicts with the codes from errno.h. Since they are
- not used in the relevant code (nanoftp, nanohttp), we can leave
- them disabled.
-#define ENAMETOOLONG WSAENAMETOOLONG
-#define ENOTEMPTY WSAENOTEMPTY
-*/
-#endif /* _MSC_VER */
+#ifndef EINTR
+#define EINTR WSAEINTR
+#endif
+#ifndef ESHUTDOWN
+#define ESHUTDOWN WSAESHUTDOWN
+#endif
+#ifndef EWOULDBLOCK
+#define EWOULDBLOCK WSAEWOULDBLOCK
+#endif
#endif /* __XML_WSOCKCOMPAT_H__ */
diff --git a/libxml.h b/libxml.h
index 88e515f..64e30f7 100644
--- a/libxml.h
+++ b/libxml.h
@@ -60,6 +60,18 @@
#include "trio.h"
#endif
+#if defined(__clang__) || \
+ (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406))
+#define XML_IGNORE_PEDANTIC_WARNINGS \
+ _Pragma("GCC diagnostic push") \
+ _Pragma("GCC diagnostic ignored \"-Wpedantic\"")
+#define XML_POP_WARNINGS \
+ _Pragma("GCC diagnostic pop")
+#else
+#define XML_IGNORE_PEDANTIC_WARNINGS
+#define XML_POP_WARNINGS
+#endif
+
/*
* Internal variable indicating if a callback has been registered for
* node creation/destruction. It avoids spending a lot of time in locking
@@ -96,12 +108,12 @@
#endif
XMLPUBFUN xmlChar * XMLCALL xmlEscapeFormatString(xmlChar **msg);
-int xmlNop(void);
+int xmlInputReadCallbackNop(void *context, char *buffer, int len);
#ifdef IN_LIBXML
#ifdef __GNUC__
#ifdef PIC
-#ifdef linux
+#ifdef __linux__
#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
#include "elfgcchack.h"
#endif
@@ -109,7 +121,7 @@
#endif
#endif
#endif
-#if !defined(PIC) && !defined(NOLIBTOOL)
+#if !defined(PIC) && !defined(NOLIBTOOL) && !defined(LIBXML_STATIC)
# define LIBXML_STATIC
#endif
#endif /* ! __XML_LIBXML_H__ */
diff --git a/libxml.m4 b/libxml.m4
index 68cd824..2d7a6f5 100644
--- a/libxml.m4
+++ b/libxml.m4
@@ -170,7 +170,7 @@
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
- echo "*** exact error that occured. This usually means LIBXML was incorrectly installed"
+ echo "*** exact error that occurred. This usually means LIBXML was incorrectly installed"
echo "*** or that you have moved LIBXML since it was installed. In the latter case, you"
echo "*** may want to edit the xml2-config script: $XML2_CONFIG" ])
CPPFLAGS="$ac_save_CPPFLAGS"
diff --git a/libxml.spec.in b/libxml.spec.in
index 242a4fe..d5f5ccb 100644
--- a/libxml.spec.in
+++ b/libxml.spec.in
@@ -1,3 +1,5 @@
+%global with_python3 1
+
Summary: Library providing XML and HTML support
Name: libxml2
Version: @VERSION@
@@ -6,7 +8,13 @@
Group: Development/Libraries
Source: ftp://xmlsoft.org/libxml2/libxml2-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-root
-BuildRequires: python python-devel zlib-devel pkgconfig xz-devel
+BuildRequires: python-devel
+%if 0%{?with_python3}
+BuildRequires: python3-devel
+%endif # with_python3
+BuildRequires: zlib-devel
+BuildRequires: pkgconfig
+BuildRequires: xz-devel
URL: http://xmlsoft.org/
%description
@@ -49,14 +57,17 @@
Static library for libxml2 provided for specific uses or shaving a few
microseconds when parsing, do not link to them for generic purpose packages.
-%package python
+%package -n python-%{name}
+%{?python_provide:%python_provide python-%{name}}
Summary: Python bindings for the libxml2 library
Group: Development/Libraries
Requires: libxml2 = %{version}-%{release}
+Obsoletes: %{name}-python < %{version}-%{release}
+Provides: %{name}-python = %{version}-%{release}
-%description python
-The libxml2-python package contains a module that permits applications
-written in the Python programming language to use the interface
+%description -n python-%{name}
+The libxml2-python package contains a Python 2 module that permits applications
+written in the Python programming language, version 2, to use the interface
supplied by the libxml2 library to manipulate XML files.
This library allows to manipulate XML files. It includes support
@@ -64,18 +75,50 @@
this includes parsing and validation even with complex DTDs, either
at parse time or later once the document has been modified.
+%if 0%{?with_python3}
+%package -n python3-%{name}
+Summary: Python 3 bindings for the libxml2 library
+Group: Development/Libraries
+Requires: libxml2 = %{version}-%{release}
+Obsoletes: %{name}-python3 < %{version}-%{release}
+Provides: %{name}-python3 = %{version}-%{release}
+
+%description -n python3-%{name}
+The libxml2-python3 package contains a Python 3 module that permits
+applications written in the Python programming language, version 3, to use the
+interface supplied by the libxml2 library to manipulate XML files.
+
+This library allows to manipulate XML files. It includes support
+to read, modify and write XML and HTML files. There is DTDs support
+this includes parsing and validation even with complex DTDs, either
+at parse time or later once the document has been modified.
+%endif # with_python3
+
%prep
%setup -q
+mkdir py3doc
+cp doc/*.py py3doc
+sed -i 's|#!/usr/bin/python |#!%{__python3} |' py3doc/*.py
+
%build
%configure
make %{_smp_mflags}
+find doc -type f -exec chmod 0644 \{\} \;
+
%install
rm -fr %{buildroot}
make install DESTDIR=%{buildroot}
+%if 0%{?with_python3}
+make clean
+%configure --with-python=%{__python3}
+make install DESTDIR=%{buildroot}
+%endif # with_python3
+
+
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.a
rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.la
@@ -133,18 +176,32 @@
%{_libdir}/*a
-%files python
+%files -n python-%{name}
%defattr(-, root, root)
-%{_libdir}/python*/site-packages/libxml2.py*
-%{_libdir}/python*/site-packages/drv_libxml2.py*
-%{_libdir}/python*/site-packages/libxml2mod*
+%{_libdir}/python2*/site-packages/libxml2.py*
+%{_libdir}/python2*/site-packages/drv_libxml2.py*
+%{_libdir}/python2*/site-packages/libxml2mod*
%doc python/TODO
%doc python/libxml2class.txt
%doc python/tests/*.py
%doc doc/*.py
%doc doc/python.html
+%if 0%{?with_python3}
+%files -n python3-%{name}
+%defattr(-, root, root)
+
+%{_libdir}/python3*/site-packages/libxml2.py*
+%{_libdir}/python3*/site-packages/drv_libxml2.py*
+%{_libdir}/python3*/site-packages/__pycache__/*py*
+%{_libdir}/python3*/site-packages/libxml2mod*
+%doc python/TODO
+%doc python/libxml2class.txt
+%doc py3doc/*.py
+%doc doc/python.html
+%endif # with_python3
+
%changelog
* @RELDATE@ Daniel Veillard <veillard@redhat.com>
- upstream release @VERSION@ see http://xmlsoft.org/news.html
diff --git a/libxml2-config.cmake.in b/libxml2-config.cmake.in
index ac29329..6b16fc2 100644
--- a/libxml2-config.cmake.in
+++ b/libxml2-config.cmake.in
@@ -21,7 +21,7 @@
set(LIBXML2_VERSION_MICRO @LIBXML_MICRO_VERSION@)
set(LIBXML2_VERSION_STRING "@VERSION@")
set(LIBXML2_INSTALL_PREFIX ${_libxml2_rootdir})
-set(LIBXML2_INCLUDE_DIRS ${_libxml2_rootdir}/include)
+set(LIBXML2_INCLUDE_DIRS ${_libxml2_rootdir}/include ${_libxml2_rootdir}/include/libxml2)
set(LIBXML2_LIBRARY_DIR ${_libxml2_rootdir}/lib)
set(LIBXML2_LIBRARIES -L${LIBXML2_LIBRARY_DIR} -lxml2)
diff --git a/libxml2.syms b/libxml2.syms
index 370dcf1..9889cb2 100644
--- a/libxml2.syms
+++ b/libxml2.syms
@@ -2279,3 +2279,10 @@
xmlXPathSetContextNode;
} LIBXML2_2.9.0;
+LIBXML2_2.9.8 {
+ global:
+
+# hash
+ xmlHashDefaultDeallocator;
+} LIBXML2_2.9.1;
+
diff --git a/list.c b/list.c
index d33d928..24da6b1 100644
--- a/list.c
+++ b/list.c
@@ -347,7 +347,7 @@
*
* Remove the first instance associated to data in the list
*
- * Returns 1 if a deallocation occured, or 0 if not found
+ * Returns 1 if a deallocation occurred, or 0 if not found
*/
int
xmlListRemoveFirst(xmlListPtr l, void *data)
@@ -372,7 +372,7 @@
*
* Remove the last instance associated to data in the list
*
- * Returns 1 if a deallocation occured, or 0 if not found
+ * Returns 1 if a deallocation occurred, or 0 if not found
*/
int
xmlListRemoveLast(xmlListPtr l, void *data)
@@ -673,7 +673,7 @@
* apply the walker function to it
*/
void
-xmlListWalk(xmlListPtr l, xmlListWalker walker, const void *user) {
+xmlListWalk(xmlListPtr l, xmlListWalker walker, void *user) {
xmlLinkPtr lk;
if ((l == NULL) || (walker == NULL))
@@ -694,7 +694,7 @@
* apply the walker function to it
*/
void
-xmlListReverseWalk(xmlListPtr l, xmlListWalker walker, const void *user) {
+xmlListReverseWalk(xmlListPtr l, xmlListWalker walker, void *user) {
xmlLinkPtr lk;
if ((l == NULL) || (walker == NULL))
diff --git a/macos/src/config-mac.h b/macos/src/config-mac.h
index e9a8f9d..ca6f993 100644
--- a/macos/src/config-mac.h
+++ b/macos/src/config-mac.h
@@ -21,27 +21,9 @@
#define HAVE_PTHREAD_H
#define LIBXML_THREAD_ENABLED
-/* Define if you have the _stat function. */
-#define HAVE__STAT
-
-/* Define if you have the class function. */
-#undef HAVE_CLASS
-
-/* Define if you have the finite function. */
-#undef HAVE_FINITE
-
-/* Define if you have the fp_class function. */
-#undef HAVE_FP_CLASS
-
-/* Define if you have the fpclass function. */
-#undef HAVE_FPCLASS
-
/* Define if you have the fprintf function. */
#define HAVE_FPRINTF
-/* Define if you have the isnand function. */
-#undef HAVE_ISNAND
-
/* Define if you have the localtime function. */
#define HAVE_LOCALTIME
@@ -63,18 +45,9 @@
/* Define if you have the stat function. */
#define HAVE_STAT
-/* Define if you have the strdup function. */
-#define HAVE_STRDUP
-
-/* Define if you have the strerror function. */
-#define HAVE_STRERROR
-
/* Define if you have the strftime function. */
#define HAVE_STRFTIME
-/* Define if you have the strndup function. */
-#define HAVE_STRNDUP
-
/* Define if you have the vfprintf function. */
#define HAVE_VFPRINTF
@@ -84,9 +57,6 @@
/* Define if you have the vsprintf function. */
#define HAVE_VSPRINTF
-/* Define if you have the <ansidecl.h> header file. */
-#define HAVE_ANSIDECL_H
-
/* Define if you have the <arpa/inet.h> header file. */
#define HAVE_ARPA_INET_H
@@ -108,21 +78,12 @@
/* Define if you have the <float.h> header file. */
#define HAVE_FLOAT_H
-/* Define if you have the <fp_class.h> header file. */
-#define HAVE_FP_CLASS_H
-
-/* Define if you have the <ieeefp.h> header file. */
-#define HAVE_IEEEFP_H
-
/* Define if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H
/* Define if you have the <math.h> header file. */
#define HAVE_MATH_H
-/* Define if you have the <nan.h> header file. */
-#define HAVE_NAN_H
-
/* Define if you have the <ndir.h> header file. */
#define HAVE_NDIR_H
@@ -174,9 +135,6 @@
/* Define if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H
-/* Define if you have the <zlib.h> header file. */
-#undef HAVE_ZLIB_H
-
/* Name of package */
#define PACKAGE
diff --git a/nanoftp.c b/nanoftp.c
index 2135ab9..54fa026 100644
--- a/nanoftp.c
+++ b/nanoftp.c
@@ -12,8 +12,6 @@
#define HAVE_NETINET_IN_H
#define HAVE_NETDB_H
#define HAVE_SYS_TIME_H
-#else /* TESTING */
-#define NEED_SOCKETS
#endif /* TESTING */
#define IN_LIBXML
@@ -77,14 +75,8 @@
#endif
-#if defined(__MINGW32__) || defined(_WIN32_WCE)
-#ifndef _WINSOCKAPI_
-#define _WINSOCKAPI_
-#endif
+#if defined(_WIN32) && !defined(__CYGWIN__)
#include <wsockcompat.h>
-#include <winsock2.h>
-#undef XML_SOCKLEN_T
-#define XML_SOCKLEN_T unsigned int
#endif
/**
@@ -511,6 +503,8 @@
if (ctxt->hostname != NULL) xmlFree(ctxt->hostname);
if (ctxt->protocol != NULL) xmlFree(ctxt->protocol);
if (ctxt->path != NULL) xmlFree(ctxt->path);
+ if (ctxt->user != NULL) xmlFree(ctxt->user);
+ if (ctxt->passwd != NULL) xmlFree(ctxt->passwd);
ctxt->passive = 1;
if (ctxt->controlFd != INVALID_SOCKET) closesocket(ctxt->controlFd);
ctxt->controlFd = INVALID_SOCKET;
@@ -907,7 +901,7 @@
__xmlIOErr(XML_FROM_FTP, 0, "getaddrinfo failed");
return (-1);
}
- if (tmp->ai_addrlen > sizeof(ctxt->ftpAddr)) {
+ if ((size_t)tmp->ai_addrlen > sizeof(ctxt->ftpAddr)) {
if (result)
freeaddrinfo (result);
__xmlIOErr(XML_FROM_FTP, 0, "gethostbyname address mismatch");
@@ -1042,6 +1036,7 @@
case 2:
if (proxyPasswd == NULL)
break;
+ /* Falls through. */
case 3:
if (proxyPasswd != NULL)
snprintf(buf, sizeof(buf), "PASS %s\r\n", proxyPasswd);
@@ -1111,6 +1106,7 @@
ctxt->controlFd = INVALID_SOCKET;
return(-1);
}
+ /* Falls through. */
case 2:
/* USER user@host command */
if (ctxt->user == NULL)
@@ -1164,6 +1160,7 @@
ctxt->controlFd = INVALID_SOCKET;
return(-1);
}
+ /* Falls through. */
case 3:
/*
* If you need support for other Proxy authentication scheme
@@ -1212,6 +1209,7 @@
case 3:
__xmlIOErr(XML_FROM_FTP, XML_FTP_ACCNT,
"FTP server asking for ACCNT on anonymous\n");
+ /* Falls through. */
case 1:
case 4:
case 5:
diff --git a/nanohttp.c b/nanohttp.c
index e109ad7..2143718 100644
--- a/nanohttp.c
+++ b/nanohttp.c
@@ -11,7 +11,6 @@
* daniel@veillard.com
*/
-#define NEED_SOCKETS
#define IN_LIBXML
#include "libxml.h"
@@ -64,7 +63,7 @@
#ifdef HAVE_STRINGS_H
#include <strings.h>
#endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
#include <zlib.h>
#endif
@@ -74,14 +73,8 @@
#define XML_SOCKLEN_T unsigned int
#endif
-#if defined(__MINGW32__) || defined(_WIN32_WCE)
-#ifndef _WINSOCKAPI_
-#define _WINSOCKAPI_
-#endif
+#if defined(_WIN32) && !defined(__CYGWIN__)
#include <wsockcompat.h>
-#include <winsock2.h>
-#undef XML_SOCKLEN_T
-#define XML_SOCKLEN_T unsigned int
#endif
#include <libxml/globals.h>
@@ -152,7 +145,7 @@
char *authHeader; /* contents of {WWW,Proxy}-Authenticate header */
char *encoding; /* encoding extracted from the contentType */
char *mimeType; /* Mime-Type extracted from the contentType */
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
z_stream *strm; /* Zlib stream object */
int usesGzip; /* "Content-Encoding: gzip" was detected */
#endif
@@ -182,7 +175,21 @@
*/
static int socket_errno(void) {
#ifdef _WINSOCKAPI_
- return(WSAGetLastError());
+ int err = WSAGetLastError();
+ switch(err) {
+ case WSAECONNRESET:
+ return(ECONNRESET);
+ case WSAEINPROGRESS:
+ return(EINPROGRESS);
+ case WSAEINTR:
+ return(EINTR);
+ case WSAESHUTDOWN:
+ return(ESHUTDOWN);
+ case WSAEWOULDBLOCK:
+ return(EWOULDBLOCK);
+ default:
+ return(err);
+ }
#else
return(errno);
#endif
@@ -427,7 +434,7 @@
if (ctxt->mimeType != NULL) xmlFree(ctxt->mimeType);
if (ctxt->location != NULL) xmlFree(ctxt->location);
if (ctxt->authHeader != NULL) xmlFree(ctxt->authHeader);
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if (ctxt->strm != NULL) {
inflateEnd(ctxt->strm);
xmlFree(ctxt->strm);
@@ -629,7 +636,7 @@
if ((select(ctxt->fd + 1, &rfd, NULL, NULL, &tv) < 1)
#if defined(EINTR)
- && (errno != EINTR)
+ && (socket_errno() != EINTR)
#endif
)
return (0);
@@ -810,7 +817,7 @@
if (ctxt->authHeader != NULL)
xmlFree(ctxt->authHeader);
ctxt->authHeader = xmlMemStrdup(cur);
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
} else if ( !xmlStrncasecmp( BAD_CAST line, BAD_CAST"Content-Encoding:", 17) ) {
cur += 17;
while ((*cur == ' ') || (*cur == '\t')) cur++;
@@ -1038,16 +1045,13 @@
static SOCKET
xmlNanoHTTPConnectHost(const char *host, int port)
{
- struct hostent *h;
struct sockaddr *addr = NULL;
- struct in_addr ia;
struct sockaddr_in sockin;
#ifdef SUPPORT_IP6
struct in6_addr ia6;
struct sockaddr_in6 sockin6;
#endif
- int i;
SOCKET s;
memset (&sockin, 0, sizeof(sockin));
@@ -1084,7 +1088,7 @@
for (res = result; res; res = res->ai_next) {
if (res->ai_family == AF_INET) {
- if (res->ai_addrlen > sizeof(sockin)) {
+ if ((size_t)res->ai_addrlen > sizeof(sockin)) {
__xmlIOErr(XML_FROM_HTTP, 0, "address size mismatch\n");
freeaddrinfo (result);
return INVALID_SOCKET;
@@ -1094,7 +1098,7 @@
addr = (struct sockaddr *)&sockin;
#ifdef SUPPORT_IP6
} else if (have_ipv6 () && (res->ai_family == AF_INET6)) {
- if (res->ai_addrlen > sizeof(sockin6)) {
+ if ((size_t)res->ai_addrlen > sizeof(sockin6)) {
__xmlIOErr(XML_FROM_HTTP, 0, "address size mismatch\n");
freeaddrinfo (result);
return INVALID_SOCKET;
@@ -1122,6 +1126,10 @@
#endif
#if !defined(HAVE_GETADDRINFO) || !defined(_WIN32)
{
+ struct hostent *h;
+ struct in_addr ia;
+ int i;
+
h = gethostbyname (GETHOSTBYNAME_ARG_CAST host);
if (h == NULL) {
@@ -1130,7 +1138,7 @@
* extraction code. it work on Linux, if it work on your platform
* and one want to enable it, send me the defined(foobar) needed
*/
-#if defined(HAVE_NETDB_H) && defined(HOST_NOT_FOUND) && defined(linux)
+#if defined(HAVE_NETDB_H) && defined(HOST_NOT_FOUND) && defined(__linux__)
const char *h_err_txt = "";
switch (h_errno) {
@@ -1265,7 +1273,7 @@
int
xmlNanoHTTPRead(void *ctx, void *dest, int len) {
xmlNanoHTTPCtxtPtr ctxt = (xmlNanoHTTPCtxtPtr) ctx;
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
int bytes_read = 0;
int orig_avail_in;
int z_ret;
@@ -1275,7 +1283,7 @@
if (dest == NULL) return(-1);
if (len <= 0) return(0);
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if (ctxt->usesGzip == 1) {
if (ctxt->strm == NULL) return(0);
@@ -1416,16 +1424,16 @@
/* 1 for '?' */
blen += strlen(ctxt->query) + 1;
blen += strlen(method) + strlen(ctxt->path) + 24;
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
/* reserve for possible 'Accept-Encoding: gzip' string */
blen += 23;
#endif
if (ctxt->port != 80) {
/* reserve space for ':xxxxx', incl. potential proxy */
if (proxy)
- blen += 12;
+ blen += 17;
else
- blen += 6;
+ blen += 11;
}
bp = (char*)xmlMallocAtomic(blen);
if ( bp == NULL ) {
@@ -1460,7 +1468,7 @@
ctxt->hostname, ctxt->port);
}
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
p += snprintf(p, blen - (p - bp), "Accept-Encoding: gzip\r\n");
#endif
@@ -1534,7 +1542,8 @@
xmlGenericError(xmlGenericErrorContext,
"\nRedirect to: %s\n", ctxt->location);
#endif
- while ( xmlNanoHTTPRecv(ctxt) > 0 ) ;
+ while ( xmlNanoHTTPRecv(ctxt) > 0 )
+ ;
if (nbRedirects < XML_NANO_HTTP_MAX_REDIR) {
nbRedirects++;
if (redirURL != NULL)
diff --git a/optim/hash_dict.txt b/optim/hash_dict.txt
index f655deb..a447b7e 100644
--- a/optim/hash_dict.txt
+++ b/optim/hash_dict.txt
@@ -1,4 +1,4 @@
-Reuses a dictionnary for the hash table to reduce the string compare
+Reuses a dictionary for the hash table to reduce the string compare
costs. Not worth it unless validating big DTDs
without with
diff --git a/os400/README400 b/os400/README400
index 6c16de9..fff923c 100644
--- a/os400/README400
+++ b/os400/README400
@@ -185,15 +185,27 @@
va_list args);
+xmllint and xmlcatalog programs:
+
+ These programs are fully implemented at the qshell level, with standard
+command line options. Links to these are installed in sub-directory bin of
+the IFS installation directory.
+ CL command interfaces to these programs are also provided with limited
+support. In particular, interactive mode is not supported and argument count
+and lengths are limited by the CL command syntax.
+
ILE/RPG binding:
All standard types and procedures are provided. Since ILE/RPG does not
-support macros, they have not been ported, with the exceptions of the more
-useful ones and the global/threaded variables access macros. These variables
-can be read with function get_xxx(void), where xxxx is the name of the
-variable; they may be set by calling function set_xxxx(value), where value is
-of the same type as the variable.
+support macros, they have not been ported. However some of them are emulated
+as functions: these are the more useful ones (xmlXPathNodeSetGetLength,
+xmlXPathNodeSetItem, xmlXPathNodeSetIsEmpty, htmlDefaultSubelement,
+htmlElementAllowedHereDesc, htmlRequiredAttrs) and the global/threaded
+variables access macros. These variables can be read with function
+get_xxx(void), where xxxx is the name of the variable; they may be set by
+calling function set_xxxx(value), where value is of the same type as the
+variable.
The C va_list is not implemented as such in ILE/RPG. Functions implementing
va_list and associated methods are provided:
diff --git a/os400/dlfcn/dlfcn.c b/os400/dlfcn/dlfcn.c
index 1488e12..77190b3 100644
--- a/os400/dlfcn/dlfcn.c
+++ b/os400/dlfcn/dlfcn.c
@@ -375,7 +375,7 @@
case 2:
if (tail[1] != '.')
break;
-
+
pathlen = dlparentpath(path, pathlen);
case 1:
diff --git a/os400/initscript.sh b/os400/initscript.sh
index fb80507..42ce54d 100644
--- a/os400/initscript.sh
+++ b/os400/initscript.sh
@@ -50,7 +50,7 @@
setenv DEBUG '*ALL' # Debug level.
setenv OPTIMIZE '10' # Optimisation level.
setenv OUTPUT '*NONE' # Compilation output option.
-setenv TGTRLS 'V5R3M0' # Target OS release.
+setenv TGTRLS 'V6R1M0' # Target OS release.
setenv IFSDIR '/libxml2' # Installation IFS directory.
@@ -165,15 +165,38 @@
}
-# make_module module_name source_name [additional_definitions]
+# make_module [option] module_name source_name
#
# Compile source name into ASCII module if needed.
# As side effect, append the module name to variable MODULES.
# Set LINK to "YES" if the module has been compiled.
+# Options are:
+# --define <additional definitions>
+# --ebcdic
+# --sysiconv
make_module()
{
+ DEFN=
+ EBCDIC=
+ SYSICONV=
+ while true
+ do case "${1}" in
+ --define)
+ DEFN="${2}"
+ shift
+ ;;
+ --ebcdic)
+ EBCDIC=yes
+ ;;
+ --sysiconv)
+ SYSICONV=yes
+ ;;
+ *) break
+ esac
+ shift
+ done
MODULES="${MODULES} ${1}"
MODIFSNAME="${LIBIFSNAME}/${1}.MODULE"
action_needed "${MODIFSNAME}" "${2}" || return 0;
@@ -185,7 +208,7 @@
# the source file and we compile that temporary file.
rm -f __tmpsrcf.c
- if [ "${4}" != 'ebcdic' ]
+ if [ -z "${EBCDIC}" ]
then echo "#line 1 \"${2}\"" >> __tmpsrcf.c
echo "#pragma convert(819)" >> __tmpsrcf.c
echo '#include "wrappers.h"' >> __tmpsrcf.c
@@ -194,11 +217,13 @@
cat "${2}" >> __tmpsrcf.c
CMD="CRTCMOD MODULE(${TARGETLIB}/${1}) SRCSTMF('__tmpsrcf.c')"
# CMD="${CMD} OPTION(*INCDIRFIRST *SHOWINC *SHOWSYS)"
- CMD="${CMD} OPTION(*INCDIRFIRST)"
+ CMD="${CMD} OPTION(*INCDIRFIRST) FLAG(10)"
CMD="${CMD} SYSIFCOPT(*IFS64IO) LANGLVL(*EXTENDED) LOCALETYPE(*LOCALE)"
CMD="${CMD} INCDIR("
- CMD="${CMD} '${TOPDIR}/os400/iconv'"
- if [ "${4}" != 'ebcdic' ]
+ if [ -z "${SYSICONV}" ]
+ then CMD="${CMD} '${TOPDIR}/os400/iconv'"
+ fi
+ if [ -z "${EBCDIC}" ]
then CMD="${CMD} '/qibm/proddata/qadrt/include'"
fi
CMD="${CMD} '${TOPDIR}/os400' '${TOPDIR}/os400/dlfcn'"
@@ -211,7 +236,7 @@
CMD="${CMD} OUTPUT(${OUTPUT})"
CMD="${CMD} OPTIMIZE(${OPTIMIZE})"
CMD="${CMD} DBGVIEW(${DEBUG})"
- CMD="${CMD} DEFINE('_REENTRANT' 'TRIO_HAVE_CONFIG_H' 'NDEBUG' ${3})"
+ CMD="${CMD} DEFINE('_REENTRANT' 'TRIO_HAVE_CONFIG_H' 'NDEBUG' ${DEFN})"
system "${CMD}"
rm -f __tmpsrcf.c
diff --git a/os400/libxmlmain.c b/os400/libxmlmain.c
new file mode 100644
index 0000000..91c848a
--- /dev/null
+++ b/os400/libxmlmain.c
@@ -0,0 +1,102 @@
+/**
+*** QADRT/QADRTMAIN2 substitution program.
+*** This is needed because the IBM-provided QADRTMAIN2 does not
+*** properly translate arguments by default or if no locale is provided.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <stdlib.h>
+#include <string.h>
+#include <iconv.h>
+#include <errno.h>
+#include <locale.h>
+
+/* Do not use qadrt.h since it defines unneeded static procedures. */
+extern void QadrtInit(void);
+extern int QadrtFreeConversionTable(void);
+extern int QadrtFreeEnviron(void);
+extern char * setlocale_a(int, const char *);
+
+
+/* The ASCII main program. */
+extern int main_a(int argc, char * * argv);
+
+/* Global values of original EBCDIC arguments. */
+int ebcdic_argc;
+char * * ebcdic_argv;
+
+
+int
+main(int argc, char * * argv)
+
+{
+ int i;
+ int j;
+ iconv_t cd;
+ size_t bytecount = 0;
+ char * inbuf;
+ char * outbuf;
+ size_t inbytesleft;
+ size_t outbytesleft;
+ char dummybuf[128];
+ char tocode[32];
+ char fromcode[32];
+
+ ebcdic_argc = argc;
+ ebcdic_argv = argv;
+
+ /* Build the encoding converter. */
+ strncpy(tocode, "IBMCCSID01208", sizeof tocode);
+ strncpy(fromcode, "IBMCCSID000000000010", sizeof fromcode);
+ cd = iconv_open(tocode, fromcode);
+
+ /* Measure the arguments. */
+ for (i = 0; i < argc; i++) {
+ inbuf = argv[i];
+ do {
+ inbytesleft = 0;
+ outbuf = dummybuf;
+ outbytesleft = sizeof dummybuf;
+ j = iconv(cd,
+ &inbuf, &inbytesleft, &outbuf, &outbytesleft);
+ bytecount += outbuf - dummybuf;
+ } while (j == -1 && errno == E2BIG);
+ /* Reset the shift state. */
+ iconv(cd, NULL, &inbytesleft, &outbuf, &outbytesleft);
+ }
+
+ /* Allocate memory for the ASCII arguments and vector. */
+ argv = (char * *) malloc((argc + 1) * sizeof *argv + bytecount);
+
+ /* Build the vector and convert argument encoding. */
+ outbuf = (char *) (argv + argc + 1);
+ outbytesleft = bytecount;
+
+ for (i = 0; i < argc; i++) {
+ argv[i] = outbuf;
+ inbuf = ebcdic_argv[i];
+ inbytesleft = 0;
+ iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
+ iconv(cd, NULL, &inbytesleft, &outbuf, &outbytesleft);
+ }
+
+ iconv_close(cd);
+ argv[argc] = NULL;
+
+ /* Try setting the locale regardless of QADRT_ENV_LOCALE. */
+ setlocale_a(LC_ALL, "");
+
+ /* Call the program. */
+ i = main_a(argc, argv);
+
+ /* Clean-up allocated items. */
+ free((char *) argv);
+ QadrtFreeConversionTable();
+ QadrtFreeEnviron();
+
+ /* Terminate. */
+ return i;
+}
diff --git a/os400/libxmlrpg/DOCBparser.rpgle b/os400/libxmlrpg/DOCBparser.rpgle
index bf5aaa2..08a6b8c 100644
--- a/os400/libxmlrpg/DOCBparser.rpgle
+++ b/os400/libxmlrpg/DOCBparser.rpgle
@@ -13,6 +13,7 @@
/if defined(LIBXML_DOCB_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/parser"
/include "libxmlrpg/parserInternals"
@@ -46,13 +47,14 @@
* There is only few public functions.
d docbEncodeEntities...
- d pr 10i 0 extproc('docbEncodeEntities')
+ d pr extproc('docbEncodeEntities')
+ d like(xmlCint)
d out * value options(*string) unsigned char *
d outlen * value int *
d in * value options(*string) const unsigned char
d *
d inlen * value int *
- d quoteChar 10i 0 value
+ d quoteChar value like(xmlCint)
d docbSAXParseDoc...
d pr extproc('docbSAXParseDoc')
@@ -92,15 +94,16 @@
d sax value like(docbSAXHandlerPtr)
d user_data * value void *
d chunk * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d filename * value options(*string) const char *
d enc value like(xmlCharEncoding)
- d docbParseChunk pr 10i 0 extproc('docbParseChunk')
+ d docbParseChunk pr extproc('docbParseChunk')
+ d like(xmlCint)
d ctxt value like(docbParserCtxtPtr)
d chunk * value options(*string) const char *
- d size 10i 0 value
- d terminate 10i 0 value
+ d size value like(xmlCint)
+ d terminate value like(xmlCint)
d docbCreateFileParserCtxt...
d pr extproc('docbCreateFileParserCtxt')
@@ -109,7 +112,8 @@
d encoding * value options(*string) const char *
d docbParseDocument...
- d pr 10i 0 extproc('docbParseDocument')
+ d pr extproc('docbParseDocument')
+ d like(xmlCint)
d ctxt value like(docbParserCtxtPtr)
/endif LIBXML_DOCB_ENABLED
diff --git a/os400/libxmlrpg/HTMLparser.rpgle b/os400/libxmlrpg/HTMLparser.rpgle
index 7b4a626..c27d8e5 100644
--- a/os400/libxmlrpg/HTMLparser.rpgle
+++ b/os400/libxmlrpg/HTMLparser.rpgle
@@ -12,10 +12,12 @@
/define HTML_PARSER_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/parser"
/if defined(LIBXML_HTML_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/parser"
+
* Most of the back-end structures from XML and HTML are shared.
d htmlParserCtxtPtr...
@@ -63,13 +65,13 @@
d htmlElemDesc ds based(htmlElemDescPtr)
d align qualified
d name * const char *
- d startTag 3u 0 Start tag implied ?
- d endTag 3u 0 End tag implied ?
- d saveEndTag 3u 0 Save end tag ?
- d empty 3u 0 Empty element ?
- d depr 3u 0 Deprecated element ?
- d dtd 3u 0 Loose DTD/Frameset
- d isinline 3u 0 Block 0/inline elem?
+ d startTag like(xmlCchar) Start tag implied ?
+ d endTag like(xmlCchar) End tag implied ?
+ d saveEndTag like(xmlCchar) Save end tag ?
+ d empty like(xmlCchar) Empty element ?
+ d depr like(xmlCchar) Deprecated element ?
+ d dtd like(xmlCchar) Loose DTD/Frameset
+ d isinline like(xmlCchar) Block 0/inline elem?
d desc * const char *
*
* New fields encapsulating HTML structure
@@ -95,7 +97,7 @@
d htmlEntityDesc...
d ds based(htmlEntityDescPtr)
d align qualified
- d value 10u 0 Unicode char value
+ d value like(xmlCuint)
d name * const char *
d desc * const char *
@@ -113,15 +115,17 @@
d htmlEntityValueLookup...
d pr extproc('htmlEntityValueLookup')
d like(htmlEntityDescPtr) const
- d value 10u 0 value
+ d value value like(xmlCuint)
d htmlIsAutoClosed...
- d pr 10i 0 extproc('htmlIsAutoClosed')
+ d pr extproc('htmlIsAutoClosed')
+ d like(xmlCint)
d doc value like(htmlDocPtr)
d elem value like(htmlNodePtr)
d htmlAutoCloseTag...
- d pr 10i 0 extproc('htmlAutoCloseTag')
+ d pr extproc('htmlAutoCloseTag')
+ d like(xmlCint)
d doc value like(htmlDocPtr)
d name * value options(*string) const xmlChar *
d elem value like(htmlNodePtr)
@@ -133,7 +137,8 @@
d str * const xmlChar *(*)
d htmlParseCharRef...
- d pr 10i 0 extproc('htmlParseCharRef')
+ d pr extproc('htmlParseCharRef')
+ d like(xmlCint)
d ctxt value like(htmlParserCtxtPtr)
d htmlParseElement...
@@ -148,10 +153,11 @@
d pr extproc('htmlCreateMemoryParserCtxt')
d like(htmlParserCtxtPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d htmlParseDocument...
- d pr 10i 0 extproc('htmlParseDocument')
+ d pr extproc('htmlParseDocument')
+ d like(xmlCint)
d ctxt value like(htmlParserCtxtPtr)
d htmlSAXParseDoc...
@@ -180,27 +186,31 @@
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
- d UTF8ToHtml pr 10i 0 extproc('UTF8ToHtml')
+ d UTF8ToHtml pr extproc('UTF8ToHtml')
+ d like(xmlCint)
d out 65535 options(*varsize) unsigned char []
- d outlen 10i 0
+ d outlen like(xmlCint)
d in * value options(*string) const unsigned char*
- d inlen 10i 0
+ d inlen like(xmlCint)
d htmlEncodeEntities...
- d pr 10i 0 extproc('htmlEncodeEntities')
+ d pr extproc('htmlEncodeEntities')
+ d like(xmlCint)
d out 65535 options(*varsize) unsigned char []
- d outlen 10i 0
+ d outlen like(xmlCint)
d in * value options(*string) const unsigned char*
- d inlen 10i 0
- d quoteChar 10i 0 value
+ d inlen like(xmlCint)
+ d quoteChar value like(xmlCint)
d htmlIsScriptAttribute...
- d pr 10i 0 extproc('htmlIsScriptAttribute')
+ d pr extproc('htmlIsScriptAttribute')
+ d like(xmlCint)
d name * value options(*string) const xmlChar *
d htmlHandleOmittedElem...
- d pr 10i 0 extproc('htmlHandleOmittedElem')
- d val 10i 0 value
+ d pr extproc('htmlHandleOmittedElem')
+ d like(xmlCint)
+ d val value like(xmlCint)
/if defined(LIBXML_PUSH_ENABLED)
@@ -212,15 +222,16 @@
d sax value like(htmlSAXHandlerPtr)
d user_data * value void *
d chunk * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d filename * value options(*string) const char *
d enc value like(xmlCharEncoding)
- d htmlParseChunk pr 10i 0 extproc('htmlParseChunk')
+ d htmlParseChunk pr extproc('htmlParseChunk')
+ d like(xmlCint)
d ctxt value like(htmlParserCtxtPtr)
d chunk * value options(*string) const char *
- d size 10i 0 value
- d terminate 10i 0 value
+ d size value like(xmlCint)
+ d terminate value like(xmlCint)
/endif LIBXML_PUSH_ENABLED
d htmlFreeParserCtxt...
@@ -235,7 +246,8 @@
* to the xmlReadDoc() and similar calls.
d htmlParserOption...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d HTML_PARSE_RECOVER... Relaxed parsing
d c X'00000001'
d HTML_PARSE_NODEFDTD... No default doctype
@@ -261,37 +273,38 @@
d ctxt value like(htmlParserCtxtPtr)
d htmlCtxtUseOptions...
- d pr 10i 0 extproc('htmlCtxtUseOptions')
+ d pr extproc('htmlCtxtUseOptions')
+ d like(xmlCint)
d ctxt value like(htmlParserCtxtPtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlReadDoc pr extproc('htmlReadDoc')
d like(htmlDocPtr)
d cur * value options(*string) const xmlChar *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlReadFile pr extproc('htmlReadFile')
d like(htmlDocPtr)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlReadMemory pr extproc('htmlReadMemory')
d like(htmlDocPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlReadFd pr extproc('htmlReadFd')
d like(htmlDocPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlReadIO pr extproc('htmlReadIO')
d like(htmlDocPtr)
@@ -300,7 +313,7 @@
d ioctx * value void *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlCtxtReadDoc...
d pr extproc('htmlCtxtReadDoc')
@@ -309,7 +322,7 @@
d cur * value options(*string) const xmlChar *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlCtxtReadFile...
d pr extproc('htmlCtxtReadFile')
@@ -317,25 +330,25 @@
d ctxt value like(xmlParserCtxtPtr)
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlCtxtReadMemory...
d pr extproc('htmlCtxtReadMemory')
d like(htmlDocPtr)
d ctxt value like(xmlParserCtxtPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlCtxtReadFd pr extproc('htmlCtxtReadFd')
d like(htmlDocPtr)
d ctxt value like(xmlParserCtxtPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d htmlCtxtReadIO pr extproc('htmlCtxtReadIO')
d like(htmlDocPtr)
@@ -345,11 +358,12 @@
d ioctx * value void *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
* Further knowledge of HTML structure
- d htmlStatus s 10i 0 based(######typedef######) enum
+ d htmlStatus s based(######typedef######)
+ d like(xmlCenum)
d HTML_NA c X'0000' No check at all
d HTML_INVALID c X'0001'
d HTML_DEPRECATED...
@@ -365,10 +379,11 @@
d like(htmlStatus)
d #param1 value like(htmlElemDescPtr) const
d #param2 * value options(*string) const xmlChar *
- d #param3 10i 0 value
+ d #param3 value like(xmlCint)
d htmlElementAllowedHere...
- d pr 10i 0 extproc('htmlElementAllowedHere')
+ d pr extproc('htmlElementAllowedHere')
+ d like(xmlCint)
d #param1 value like(htmlElemDescPtr) const
d #param2 * value options(*string) const xmlChar *
@@ -381,7 +396,7 @@
d htmlNodeStatus pr extproc('htmlNodeStatus')
d like(htmlStatus)
d #param1 value like(htmlNodePtr)
- d #param2 10i 0 value
+ d #param2 value like(xmlCint)
* C macros implemented as procedures for ILE/RPG support.
@@ -390,8 +405,9 @@
d elt * value const htmlElemDesc *
d htmlElementAllowedHereDesc...
- d pr 10i 0 extproc(
+ d pr extproc(
d '__htmlElementAllowedHereDesc')
+ d like(xmlCint)
d parent * value const htmlElemDesc *
d elt * value const htmlElemDesc *
diff --git a/os400/libxmlrpg/HTMLtree.rpgle b/os400/libxmlrpg/HTMLtree.rpgle
index 82a11ca..99c38a0 100644
--- a/os400/libxmlrpg/HTMLtree.rpgle
+++ b/os400/libxmlrpg/HTMLtree.rpgle
@@ -10,11 +10,13 @@
/define HTML_TREE_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/tree"
- /include "libxmlrpg/HTMLparser"
/if defined(LIBXML_HTML_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/HTMLparser"
+
* HTML_TEXT_NODE:
*
* Macro. A text node in a HTML document is really implemented
@@ -69,7 +71,8 @@
d doc value like(htmlDocPtr)
d htmlSetMetaEncoding...
- d pr 10i 0 extproc('htmlSetMetaEncoding')
+ d pr extproc('htmlSetMetaEncoding')
+ d like(xmlCint)
d doc value like(htmlDocPtr)
d encoding * value options(*string) const xmlChar *
@@ -78,24 +81,27 @@
d pr extproc('htmlDocDumpMemory')
d cur value like(xmlDocPtr)
d mem * value xmlChar * *
- d size 10i 0
+ d size like(xmlCint)
d htmlDocDumpMemoryFormat...
d pr extproc('htmlDocDumpMemoryFormat')
d cur value like(xmlDocPtr)
d mem * value xmlChar * *
- d size 10i 0
- d format 10i 0 value
+ d size like(xmlCint)
+ d format value like(xmlCint)
- d htmlDocDump pr 10i 0 extproc('htmlDocDump')
+ d htmlDocDump pr extproc('htmlDocDump')
+ d like(xmlCint)
d f * value FILE *
d cur value like(xmlDocPtr)
- d htmlSaveFile pr 10i 0 extproc('htmlSaveFile')
+ d htmlSaveFile pr extproc('htmlSaveFile')
+ d like(xmlCint)
d filename * value options(*string) const char *
d cur value like(xmlDocPtr)
- d htmlNodeDump pr 10i 0 extproc('htmlNodeDump')
+ d htmlNodeDump pr extproc('htmlNodeDump')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
d doc value like(xmlDocPtr)
d cur value like(xmlNodePtr)
@@ -107,25 +113,28 @@
d cur value like(xmlNodePtr)
d htmlNodeDumpFileFormat...
- d pr 10i 0 extproc('htmlNodeDumpFileFormat')
+ d pr extproc('htmlNodeDumpFileFormat')
+ d like(xmlCint)
d out * value FILE *
d doc value like(xmlDocPtr)
d cur value like(xmlNodePtr)
d encoding * value options(*string) const char *
- d format 10i 0 value
+ d format value like(xmlCint)
d htmlSaveFileEnc...
- d pr 10i 0 extproc('htmlSaveFileEnc')
+ d pr extproc('htmlSaveFileEnc')
+ d like(xmlCint)
d filename * value options(*string) const char *
d cur value like(xmlDocPtr)
d encoding * value options(*string) const char *
d htmlSaveFileFormat...
- d pr 10i 0 extproc('htmlSaveFileFormat')
+ d pr extproc('htmlSaveFileFormat')
+ d like(xmlCint)
d filename * value options(*string) const char *
d cur value like(xmlDocPtr)
d encoding * value options(*string) const char *
- d format 10i 0 value
+ d format value like(xmlCint)
d htmlNodeDumpFormatOutput...
d pr extproc('htmlNodeDumpFormatOutput')
@@ -133,7 +142,7 @@
d doc value like(xmlDocPtr)
d cur value like(xmlNodePtr)
d encoding * value options(*string) const char *
- d format 10i 0 value
+ d format value like(xmlCint)
d htmlDocContentDumpOutput...
d pr extproc('htmlDocContentDumpOutput')
@@ -147,7 +156,7 @@
d buf value like(xmlOutputBufferPtr)
d cur value like(xmlDocPtr)
d encoding * value options(*string) const char *
- d format 10i 0 value
+ d format value like(xmlCint)
d htmlNodeDumpOutput...
d pr extproc('htmlNodeDumpOutput')
@@ -159,7 +168,8 @@
/endif LIBXML_OUTPUT_ENABLD
d htmlIsBooleanAttr...
- d pr 10i 0 extproc('htmlIsBooleanAttr')
+ d pr extproc('htmlIsBooleanAttr')
+ d like(xmlCint)
d name * value options(*string) const xmlChar *
/endif LIBXML_HTML_ENABLED
diff --git a/os400/libxmlrpg/SAX.rpgle b/os400/libxmlrpg/SAX.rpgle
index 18f851d..a22d49a 100644
--- a/os400/libxmlrpg/SAX.rpgle
+++ b/os400/libxmlrpg/SAX.rpgle
@@ -26,22 +26,27 @@
d ctx * value void *
d loc value like(xmlSAXLocatorPtr)
- d getLineNumber pr 10i 0 extproc('getLineNumber')
+ d getLineNumber pr extproc('getLineNumber')
+ d like(xmlCint)
d ctx * value void *
d getColumnNumber...
- d pr 10i 0 extproc('getColumnNumber')
+ d pr extproc('getColumnNumber')
+ d like(xmlCint)
d ctx * value void *
- d isStandalone pr 10i 0 extproc('isStandalone')
+ d isStandalone pr extproc('isStandalone')
+ d like(xmlCint)
d ctx * value void *
d hasInternalSubset...
- d pr 10i 0 extproc('hasInternalSubset')
+ d pr extproc('hasInternalSubset')
+ d like(xmlCint)
d ctx * value void *
d hasExternalSubset...
- d pr 10i 0 extproc('hasExternalSubset')
+ d pr extproc('hasExternalSubset')
+ d like(xmlCint)
d ctx * value void *
d internalSubset pr extproc('internalSubset')
@@ -76,7 +81,7 @@
d entityDecl pr extproc('entityDecl')
d ctx * value void *
d name * value options(*string) const xmlChar *
- d type 10i 0 value
+ d type value like(xmlCint)
d publicId * value options(*string) const xmlChar *
d systemId * value options(*string) const xmlChar *
d content * value options(*string) xmlChar *
@@ -85,15 +90,15 @@
d ctx * value void *
d elem * value options(*string) const xmlChar *
d fullname * value options(*string) const xmlChar *
- d type 10i 0 value
- d def 10i 0 value
+ d type value like(xmlCint)
+ d def value like(xmlCint)
d defaultValue * value options(*string) const xmlChar *
d tree value like(xmlEnumerationPtr)
d elementDecl pr extproc('elementDecl')
d ctx * value void *
d name * value options(*string) const xmlChar *
- d type 10i 0 value
+ d type value like(xmlCint)
d content value like(xmlElementContentPtr)
d notationDecl pr extproc('notationDecl')
@@ -137,13 +142,13 @@
d characters pr extproc('characters')
d ctx * value void *
d ch * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d ignorableWhitespace...
d pr extproc('ignorableWhitespace')
d ctx * value void *
d ch * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d processingInstruction...
d pr extproc('processingInstruction')
@@ -165,7 +170,8 @@
d like(xmlNsPtr)
d ctx * value void *
- d checkNamespace pr 10i 0 extproc('checkNamespace')
+ d checkNamespace pr extproc('checkNamespace')
+ d like(xmlCint)
d ctx * value void *
d nameSpace * value options(*string) xmlChar *
@@ -181,24 +187,24 @@
d cdataBlock pr extproc('cdataBlock')
d ctx * value void *
d value * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
/if defined(LIBXML_SAX1_ENABLED)
d initxmlDefaultSAXHandler...
d pr extproc('initxmlDefaultSAXHandler')
- d hdlr like(xmlSAXHandlerV1)
- d warning 10i 0 value
+ d hdlr likeds(xmlSAXHandlerV1)
+ d warning value like(xmlCint)
/if defined(LIBXML_HTML_ENABLED)
d inithtmlDefaultSAXHandler...
d pr extproc('inithtmlDefaultSAXHandler')
- d hdlr like(xmlSAXHandlerV1)
+ d hdlr likeds(xmlSAXHandlerV1)
/endif
/if defined(LIBXML_DOCB_ENABLED)
d initdocbDefaultSAXHandler...
d pr extproc('initdocbDefaultSAXHandler')
- d hdlr like(xmlSAXHandlerV1)
+ d hdlr likeds(xmlSAXHandlerV1)
/endif
/endif LIBXML_SAX1_ENABLED
diff --git a/os400/libxmlrpg/SAX2.rpgle b/os400/libxmlrpg/SAX2.rpgle
index c9ab9d1..c72be25 100644
--- a/os400/libxmlrpg/SAX2.rpgle
+++ b/os400/libxmlrpg/SAX2.rpgle
@@ -10,6 +10,7 @@
/define XML_SAX2_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/parser"
/include "libxmlrpg/xlink"
@@ -27,23 +28,28 @@
d loc value like(xmlSAXLocatorPtr)
d xmlSAX2GetLineNumber...
- d pr 10i 0 extproc('xmlSAX2GetLineNumber')
+ d pr extproc('xmlSAX2GetLineNumber')
+ d like(xmlCint)
d ctx * value void *
d xmlSAX2GetColumnNumber...
- d pr 10i 0 extproc('xmlSAX2GetColumnNumber')
+ d pr extproc('xmlSAX2GetColumnNumber')
+ d like(xmlCint)
d ctx * value void *
d xmlSAX2IsStandalone...
- d pr 10i 0 extproc('xmlSAX2IsStandalone')
+ d pr extproc('xmlSAX2IsStandalone')
+ d like(xmlCint)
d ctx * value void *
d xmlSAX2HasInternalSubset...
- d pr 10i 0 extproc('xmlSAX2HasInternalSubset')
+ d pr extproc('xmlSAX2HasInternalSubset')
+ d like(xmlCint)
d ctx * value void *
d xmlSAX2HasExternalSubset...
- d pr 10i 0 extproc('xmlSAX2HasExternalSubset')
+ d pr extproc('xmlSAX2HasExternalSubset')
+ d like(xmlCint)
d ctx * value void *
d xmlSAX2InternalSubset...
@@ -83,7 +89,7 @@
d pr extproc('xmlSAX2EntityDecl')
d ctx * value void *
d name * value options(*string) const xmlChar *
- d type 10i 0 value
+ d type value like(xmlCint)
d publicId * value options(*string) const xmlChar *
d systemId * value options(*string) const xmlChar *
d content * value options(*string) xmlChar *
@@ -93,8 +99,8 @@
d ctx * value void *
d elem * value options(*string) const xmlChar *
d fullname * value options(*string) const xmlChar *
- d type 10i 0 value
- d def 10i 0 value
+ d type value like(xmlCint)
+ d def value like(xmlCint)
d defaultValue * value options(*string) const xmlChar *
d tree value like(xmlEnumerationPtr)
@@ -102,7 +108,7 @@
d pr extproc('xmlSAX2ElementDecl')
d ctx * value void *
d name * value options(*string) const xmlChar *
- d type 10i 0 value
+ d type value like(xmlCint)
d content value like(xmlElementContentPtr)
d xmlSAX2NotationDecl...
@@ -158,10 +164,10 @@
d localname * value options(*string) const xmlChar *
d prefix * value options(*string) const xmlChar *
d URI * value options(*string) const xmlChar *
- d nb_namespaces 10i 0 value
+ d nb_namespaces value like(xmlCint)
d namespaces * value const xmlChar *(*)
- d nb_attributes 10i 0 value
- d nb_defaulted 10i 0 value
+ d nb_attributes value like(xmlCint)
+ d nb_defaulted value like(xmlCint)
d attributes * const xmlChar *(*)
d xmlSAX2EndElementNs...
@@ -180,13 +186,13 @@
d pr extproc('xmlSAX2Characters')
d ctx * value void *
d ch * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlSAX2IgnorableWhitespace...
d pr extproc('xmlSAX2IgnorableWhitespace')
d ctx * value void *
d ch * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlSAX2ProcessingInstruction...
d pr extproc(
@@ -204,29 +210,31 @@
d pr extproc('xmlSAX2CDataBlock')
d ctx * value void *
d value * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
/if defined(LIBXML_SAX1_ENABLED)
d xmlSAXDefaultVersion...
- d pr 10i 0 extproc('xmlSAXDefaultVersion')
- d version 10i 0 value
+ d pr extproc('xmlSAXDefaultVersion')
+ d like(xmlCint)
+ d version value like(xmlCint)
/endif LIBXML_SAX1_ENABLED
- d xmlSAXVersion pr 10i 0 extproc('xmlSAXVersion')
- d hdlr like(xmlSAXHandler)
- d version 10i 0 value
+ d xmlSAXVersion pr extproc('xmlSAXVersion')
+ d like(xmlCint)
+ d hdlr likeds(xmlSAXHandler)
+ d version value like(xmlCint)
d xmlSAX2InitDefaultSAXHandler...
d pr extproc(
d 'xmlSAX2InitDefaultSAXHandler')
- d hdlr like(xmlSAXHandler)
- d warning 10i 0 value
+ d hdlr likeds(xmlSAXHandler)
+ d warning value like(xmlCint)
/if defined(LIBXML_HTML_ENABLED)
d xmlSAX2InitHtmlDefaultSAXHandler...
d pr extproc(
d 'xmlSAX2InitHtmlDefaultSAXHandler')
- d hdlr like(xmlSAXHandler)
+ d hdlr likeds(xmlSAXHandler)
d htmlDefaultSAXHandlerInit...
d pr extproc('htmlDefaultSAXHandlerInit')
@@ -236,7 +244,7 @@
d xmlSAX2InitDocbDefaultSAXHandler...
d pr extproc(
d 'xmlSAX2InitDocbDefaultSAXHandler')
- d hdlr like(xmlSAXHandler)
+ d hdlr likeds(xmlSAXHandler)
d docbDefaultSAXHandlerInit...
d pr extproc('docbDefaultSAXHandlerInit')
diff --git a/os400/libxmlrpg/c14n.rpgle b/os400/libxmlrpg/c14n.rpgle
index b64efb2..963ed37 100644
--- a/os400/libxmlrpg/c14n.rpgle
+++ b/os400/libxmlrpg/c14n.rpgle
@@ -21,6 +21,7 @@
/if defined(LIBXML_C14N_ENABLED)
/if defined(LIBXML_OUTPUT_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
/include "libxmlrpg/xpath"
@@ -52,41 +53,45 @@
* Predefined values for C14N modes
d xmlBufferAllocationScheme...
- d xmlC14NMode s 10i 0 based(######typedef######) enum
+ d xmlC14NMode s based(######typedef######)
+ d like(xmlCenum)
d XML_C14N_1_0 c 0 Original C14N 1.0
d XML_C14N_EXCLUSIVE_1_0... Exclusive C14N 1.0
d c 1
d XML_C14N_1_1 c 2 C14N 1.1 spec
d xmlC14NDocSaveTo...
- d pr 10i 0 extproc('xmlC14NDocSaveTo')
+ d pr extproc('xmlC14NDocSaveTo')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d nodes value like(xmlNodeSetPtr)
- d mode 10i 0 value
+ d mode value like(xmlCint)
d inclusive_ns_prefixes...
- d * xmlChar *(*)
- d with_comments 10i 0 value
+ d * options(*omit) xmlChar *(*)
+ d with_comments value like(xmlCint)
d buf value like(xmlOutputBufferPtr)
d xmlC14NDocDumpMemory...
- d pr 10i 0 extproc('xmlC14NDocDumpMemory')
+ d pr extproc('xmlC14NDocDumpMemory')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d nodes value like(xmlNodeSetPtr)
- d mode 10i 0 value
+ d mode value like(xmlCint)
d inclusive_ns_prefixes...
- d * xmlChar *(*)
- d with_comments 10i 0 value
+ d * options(*omit) xmlChar *(*)
+ d with_comments value like(xmlCint)
d doc_txt_ptr * xmlChar *(*)
- d xmlC14NDocSave pr 10i 0 extproc('xmlC14NDocSave')
+ d xmlC14NDocSave pr extproc('xmlC14NDocSave')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d nodes value like(xmlNodeSetPtr)
- d mode 10i 0 value
+ d mode value like(xmlCint)
d inclusive_ns_prefixes...
- d * xmlChar *(*)
- d with_comments 10i 0 value
+ d * options(*omit) xmlChar *(*)
+ d with_comments value like(xmlCint)
d filename * value options(*string) const char *
- d compression 10i 0 value
+ d compression value like(xmlCint)
* This is the core C14N function
@@ -103,15 +108,16 @@
d s * based(######typedef######)
d procptr
- d xmlC14NExecute pr 10i 0 extproc('xmlC14NExecute')
+ d xmlC14NExecute pr extproc('xmlC14NExecute')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d is_visible_callback...
d value like(xmlC14NIsVisibleCallback)
d user_data * value void *
- d mode 10i 0 value
+ d mode value like(xmlCint)
d inclusive_ns_prefixes...
- d * xmlChar *(*)
- d with_comments 10i 0 value
+ d * options(*omit) xmlChar *(*)
+ d with_comments value like(xmlCint)
d buf value like(xmlOutputBufferPtr)
/endif LIBXML_OUTPUT_ENABLD
diff --git a/os400/libxmlrpg/catalog.rpgle b/os400/libxmlrpg/catalog.rpgle
index 52baf4e..1dab819 100644
--- a/os400/libxmlrpg/catalog.rpgle
+++ b/os400/libxmlrpg/catalog.rpgle
@@ -16,11 +16,13 @@
/define XML_CATALOG_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/xmlstring"
- /include "libxmlrpg/tree"
/if defined(LIBXML_CATALOG_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/xmlstring"
+ /include "libxmlrpg/tree"
+
* XML_CATALOGS_NAMESPACE:
*
* The namespace for the XML Catalogs elements.
@@ -38,7 +40,8 @@
* The API is voluntarily limited to general cataloging.
d xmlCatalogPrefer...
- d s 10u 0 based(######typedef######) enum type
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_CATA_PREFER_NONE...
d c 0
d XML_CATA_PREFER_PUBLIC...
@@ -47,7 +50,8 @@
d c 2
d xmlCatalogAllow...
- d s 10u 0 based(######typedef######) enum type
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_CATA_ALLOW_NONE...
d c 0
d XML_CATA_ALLOW_GLOBAL...
@@ -63,7 +67,7 @@
d xmlNewCatalog pr extproc('xmlNewCatalog')
d like(xmlCatalogPtr)
- d sgml 10i 0 value
+ d sgml value like(xmlCint)
d xmlLoadACatalog...
d pr extproc('xmlLoadACatalog')
@@ -76,17 +80,20 @@
d filename * value options(*string) const char *
d xmlConvertSGMLCatalog...
- d pr 10i 0 extproc('xmlConvertSGMLCatalog')
+ d pr extproc('xmlConvertSGMLCatalog')
+ d like(xmlCint)
d catal value like(xmlCatalogPtr)
- d xmlACatalogAdd pr 10i 0 extproc('xmlACatalogAdd')
+ d xmlACatalogAdd pr extproc('xmlACatalogAdd')
+ d like(xmlCint)
d catal value like(xmlCatalogPtr)
d type * value options(*string) const xmlChar *
d orig * value options(*string) const xmlChar *
d replace * value options(*string) const xmlChar *
d xmlACatalogRemove...
- d pr 10i 0 extproc('xmlACatalogRemove')
+ d pr extproc('xmlACatalogRemove')
+ d like(xmlCint)
d catal value like(xmlCatalogPtr)
d value * value options(*string) const xmlChar *
@@ -122,7 +129,8 @@
d catal value like(xmlCatalogPtr)
d xmlCatalogIsEmpty...
- d pr 10i 0 extproc('xmlCatalogIsEmpty')
+ d pr extproc('xmlCatalogIsEmpty')
+ d like(xmlCint)
d catal value like(xmlCatalogPtr)
* Global operations.
@@ -130,7 +138,8 @@
d xmlInitializeCatalog...
d pr extproc('xmlInitializeCatalog')
- d xmlLoadCatalog pr 10i 0 extproc('xmlLoadCatalog')
+ d xmlLoadCatalog pr extproc('xmlLoadCatalog')
+ d like(xmlCint)
d filename * value options(*string) const char *
d xmlLoadCatalogs...
@@ -162,13 +171,15 @@
d pr * extproc('xmlCatalogResolveURI') xmlChar *
d URI * value options(*string) const xmlChar *
- d xmlCatalogAdd pr 10i 0 extproc('xmlCatalogAdd')
+ d xmlCatalogAdd pr extproc('xmlCatalogAdd')
+ d like(xmlCint)
d type * value options(*string) const xmlChar *
d orig * value options(*string) const xmlChar *
d replace * value options(*string) const xmlChar *
d xmlCatalogRemove...
- d pr 10i 0 extproc('xmlCatalogRemove')
+ d pr extproc('xmlCatalogRemove')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
d xmlParseCatalogFile...
@@ -177,7 +188,8 @@
d filename * value options(*string) const char *
d xmlCatalogConvert...
- d pr 10i 0 extproc('xmlCatalogConvert')
+ d pr extproc('xmlCatalogConvert')
+ d like(xmlCint)
* Strictly minimal interfaces for per-document catalogs used
* by the parser.
@@ -205,8 +217,9 @@
* Preference settings.
d xmlCatalogSetDebug...
- d pr 10i 0 extproc('xmlCatalogSetDebug')
- d level 10i 0 value
+ d pr extproc('xmlCatalogSetDebug')
+ d like(xmlCint)
+ d level value like(xmlCint)
d xmlCatalogSetDefaultPrefer...
d pr extproc('xmlCatalogSetDefaultPrefer')
diff --git a/os400/libxmlrpg/chvalid.rpgle b/os400/libxmlrpg/chvalid.rpgle
index 33393f6..c601442 100644
--- a/os400/libxmlrpg/chvalid.rpgle
+++ b/os400/libxmlrpg/chvalid.rpgle
@@ -10,6 +10,7 @@
/define XML_CHVALID_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/xmlstring"
* Define our typedefs and structures
@@ -18,15 +19,15 @@
d xmlChSRange ds based(xmlChSRangePtr)
d align qualified
- d low 5u 0
- d high 5u 0
+ d low like(xmlCushort)
+ d high like(xmlCushort)
d xmlChLRangePtr s * based(######typedef######)
d xmlChLRange ds based(xmlChLRangePtr)
d align qualified
- d low 10u 0
- d high 10u 0
+ d low like(xmlCuint)
+ d high like(xmlCuint)
d xmlChRangeGroupPtr...
d s * based(######typedef######)
@@ -34,15 +35,16 @@
d xmlChRangeGroup...
d ds based(xmlChRangeGroupPtr)
d align qualified
- d nbShortRange 10i 0
- d nbLongRange 10i 0
+ d nbShortRange like(xmlCint)
+ d nbLongRange like(xmlCint)
d shortRange like(xmlChSRangePtr)
d longRange like(xmlChLRangePtr)
* Range checking routine
- d xmlCharInRange pr 10i 0 extproc('xmlCharInRange')
- d val 10u 0 value
+ d xmlCharInRange pr extproc('xmlCharInRange')
+ d like(xmlCint)
+ d val value like(xmlCuint)
d group like(xmlChRangeGroupPtr) const
d xmlIsBaseCharGroup...
@@ -69,29 +71,37 @@
d ds import('xmlIsIdeographicGroup')
d likeds(xmlChRangeGroup) const
- d xmlIsBaseChar pr 10i 0 extproc('xmlIsBaseChar')
- d ch 10u 0 value
+ d xmlIsBaseChar pr extproc('xmlIsBaseChar')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
- d xmlIsBlank pr 10i 0 extproc('xmlIsBlank')
- d ch 10u 0 value
+ d xmlIsBlank pr extproc('xmlIsBlank')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
- d xmlIsChar pr 10i 0 extproc('xmlIsChar')
- d ch 10u 0 value
+ d xmlIsChar pr extproc('xmlIsChar')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
- d xmlIsCombining pr 10i 0 extproc('xmlIsCombining')
- d ch 10u 0 value
+ d xmlIsCombining pr extproc('xmlIsCombining')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
- d xmlIsDigit pr 10i 0 extproc('xmlIsDigit')
- d ch 10u 0 value
+ d xmlIsDigit pr extproc('xmlIsDigit')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
- d xmlIsExtender pr 10i 0 extproc('xmlIsExtender')
- d ch 10u 0 value
+ d xmlIsExtender pr extproc('xmlIsExtender')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
d xmlIsIdeographic...
- d pr 10i 0 extproc('xmlIsIdeographic')
- d ch 10u 0 value
+ d pr extproc('xmlIsIdeographic')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
- d xmlIsPubidChar pr 10i 0 extproc('xmlIsPubidChar')
- d ch 10u 0 value
+ d xmlIsPubidChar pr extproc('xmlIsPubidChar')
+ d like(xmlCint)
+ d ch value like(xmlCuint)
/endif XML_CHVALID_H__
diff --git a/os400/libxmlrpg/debugXML.rpgle b/os400/libxmlrpg/debugXML.rpgle
index 5005a2d..81826bc 100644
--- a/os400/libxmlrpg/debugXML.rpgle
+++ b/os400/libxmlrpg/debugXML.rpgle
@@ -10,10 +10,11 @@
/define DEBUG_XML__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/tree"
/if defined(LIBXML_DEBUG_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
/include "libxmlrpg/xpath"
* The standard Dump routines.
@@ -27,31 +28,31 @@
d pr extproc('xmlDebugDumpAttr')
d output * value FILE *
d attr value like(xmlAttrPtr)
- d depth 10i 0 value
+ d depth value like(xmlCint)
d xmlDebugDumpAttrList...
d pr extproc('xmlDebugDumpAttrList')
d output * value FILE *
d attr value like(xmlAttrPtr)
- d depth 10i 0 value
+ d depth value like(xmlCint)
d xmlDebugDumpOneNode...
d pr extproc('xmlDebugDumpOneNode')
d output * value FILE *
d node value like(xmlNodePtr)
- d depth 10i 0 value
+ d depth value like(xmlCint)
d xmlDebugDumpNode...
d pr extproc('xmlDebugDumpNode')
d output * value FILE *
d node value like(xmlNodePtr)
- d depth 10i 0 value
+ d depth value like(xmlCint)
d xmlDebugDumpNodeList...
d pr extproc('xmlDebugDumpNodeList')
d output * value FILE *
d node value like(xmlNodePtr)
- d depth 10i 0 value
+ d depth value like(xmlCint)
d xmlDebugDumpDocumentHead...
d pr extproc('xmlDebugDumpDocumentHead')
@@ -80,7 +81,8 @@
****************************************************************
d xmlDebugCheckDocument...
- d pr 10i 0 extproc('xmlDebugCheckDocument')
+ d pr extproc('xmlDebugCheckDocument')
+ d like(xmlCint)
d output * value FILE *
d doc value like(xmlDocPtr)
@@ -94,11 +96,12 @@
d output * value FILE *
d node value like(xmlNodePtr)
- d xmlLsCountNode pr 10i 0 extproc('xmlLsCountNode')
+ d xmlLsCountNode pr extproc('xmlLsCountNode')
+ d like(xmlCint)
d node value like(xmlNodePtr)
d xmlBoolToText pr * extproc('xmlBoolToText') const char *
- d boolval 10i 0 value
+ d boolval value like(xmlCint)
****************************************************************
* *
@@ -133,7 +136,7 @@
d doc like(xmlDocPtr)
d node like(xmlNodePtr)
d pctxt like(xmlXPathContextPtr)
- d loaded 10i 0
+ d loaded like(xmlCint)
d output * FILE *
d input like(xmlShellReadlineFunc)
@@ -152,32 +155,36 @@
d xmlShellPrintXPathError...
d pr extproc('xmlShellPrintXPathError')
- d errorType 10i 0 value
+ d errorType value like(xmlCint)
d arg * value options(*string) const char *
d xmlShellPrintXPathResult...
d pr extproc('xmlShellPrintXPathResult')
d list value like(xmlXPathObjectPtr)
- d xmlShellList pr 10i 0 extproc('xmlShellList')
+ d xmlShellList pr extproc('xmlShellList')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d arg * value options(*string) char *
d node value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
- d xmlShellBase pr 10i 0 extproc('xmlShellBase')
+ d xmlShellBase pr extproc('xmlShellBase')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d arg * value options(*string) char *
d node value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
- d xmlShellDir pr 10i 0 extproc('xmlShellDir')
+ d xmlShellDir pr extproc('xmlShellDir')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d arg * value options(*string) char *
d node value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
- d xmlShellLoad pr 10i 0 extproc('xmlShellLoad')
+ d xmlShellLoad pr extproc('xmlShellLoad')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d filename * value options(*string) char *
d node value like(xmlNodePtr)
@@ -188,19 +195,22 @@
d pr extproc('xmlShellPrintNode')
d node value like(xmlNodePtr)
- d xmlShellCat pr 10i 0 extproc('xmlShellCat')
+ d xmlShellCat pr extproc('xmlShellCat')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d arg * value options(*string) char *
d node value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
- d xmlShellWrite pr 10i 0 extproc('xmlShellWrite')
+ d xmlShellWrite pr extproc('xmlShellWrite')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d filename * value options(*string) char *
d node value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
- d xmlShellSave pr 10i 0 extproc('xmlShellSave')
+ d xmlShellSave pr extproc('xmlShellSave')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d filename * value options(*string) char *
d node value like(xmlNodePtr)
@@ -209,20 +219,23 @@
/if defined(LIBXML_VALID_ENABLED)
d xmlShellValidate...
- d pr 10i 0 extproc('xmlShellValidate')
+ d pr extproc('xmlShellValidate')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d dtd * value options(*string) char *
d node value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
/endif LIBXML_VALID_ENABLED
- d xmlShellDu pr 10i 0 extproc('xmlShellDu')
+ d xmlShellDu pr extproc('xmlShellDu')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d arg * value options(*string) char *
d tree value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
- d xmlShellPwd pr 10i 0 extproc('xmlShellPwd')
+ d xmlShellPwd pr extproc('xmlShellPwd')
+ d like(xmlCint)
d ctxt value like(xmlShellCtxtPtr)
d buffer * value options(*string) char *
d node value like(xmlNodePtr)
diff --git a/os400/libxmlrpg/dict.rpgle b/os400/libxmlrpg/dict.rpgle
index cd36f50..c061e4c 100644
--- a/os400/libxmlrpg/dict.rpgle
+++ b/os400/libxmlrpg/dict.rpgle
@@ -9,17 +9,19 @@
/if not defined(XML_DICT_H__)
/define XML_DICT_H__
- /include "libxmlrpg/xmlversion"
- /include "libxmlrpg/tree"
-
* The dictionary.
d xmlDictPtr s * based(######typedef######)
+ /include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+
* Initializer
d xmlInitializeDict...
- d pr 10i 0 extproc('xmlInitializeDict')
+ d pr extproc('xmlInitializeDict')
+ d like(xmlCint)
* Constructor and destructor.
@@ -27,12 +29,14 @@
d like(xmlDictPtr)
d xmlDictSetLimit...
- d pr 10u 0 extproc('xmlDictSetLimit') size_t
+ d pr extproc('xmlDictSetLimit')
+ d like(xmlCsize_t)
d dict value like(xmlDictPtr)
- d limit 10u 0 value size_t
+ d limit value like(xmlCsize_t)
d xmlDictGetUsage...
- d pr 10u 0 extproc('xmlDictGetUsage') size_t
+ d pr extproc('xmlDictGetUsage')
+ d like(xmlCsize_t)
d dict value like(xmlDictPtr)
d xmlDictCreateSub...
@@ -41,7 +45,8 @@
d sub value like(xmlDictPtr)
d xmlDictReference...
- d pr 10i 0 extproc('xmlDictGetReference')
+ d pr extproc('xmlDictGetReference')
+ d like(xmlCint)
d dict value like(xmlDictPtr)
d xmlDictFree pr extproc('xmlDictFree')
@@ -52,23 +57,25 @@
d xmlDictLookup pr * extproc('xmlDictLookup') const xmlChar *
d dict value like(xmlDictPtr)
d name * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlDictExists pr * extproc('xmlDictExists') const xmlChar *
d dict value like(xmlDictPtr)
d name * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlDictQLookup pr * extproc('xmlDictQLookup') const xmlChar *
d dict value like(xmlDictPtr)
d name * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
- d xmlDictOwns pr 10i 0 extproc('xmlDictOwns')
+ d xmlDictOwns pr extproc('xmlDictOwns')
+ d like(xmlCint)
d dict value like(xmlDictPtr)
d str * value options(*string) const xmlChar *
- d xmlDictSize pr 10i 0 extproc('xmlDictSize')
+ d xmlDictSize pr extproc('xmlDictSize')
+ d like(xmlCint)
d dict value like(xmlDictPtr)
* Cleanup function
diff --git a/os400/libxmlrpg/encoding.rpgle b/os400/libxmlrpg/encoding.rpgle
index 80970fb..8153f3c 100644
--- a/os400/libxmlrpg/encoding.rpgle
+++ b/os400/libxmlrpg/encoding.rpgle
@@ -21,6 +21,7 @@
/define XML_CHAR_ENCODING_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
* xmlCharEncoding:
*
@@ -43,7 +44,8 @@
* the specific UTF-16LE and UTF-16BE are present.
d xmlCharEncoding...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_CHAR_ENCODING_ERROR... No encoding detected
d c -1
d XML_CHAR_ENCODING_NONE... No encoding detected
@@ -200,12 +202,14 @@
* Interfaces for encoding names and aliases.
d xmlAddEncodingAlias...
- d pr 10i 0 extproc('xmlAddEncodingAlias')
+ d pr extproc('xmlAddEncodingAlias')
+ d like(xmlCint)
d name * value options(*string) const char *
d alias * value options(*string) const char *
d xmlDelEncodingAlias...
- d pr 10i 0 extproc('xmlDelEncodingAlias')
+ d pr extproc('xmlDelEncodingAlias')
+ d like(xmlCint)
d alias * value options(*string) const char *
d xmlGetEncodingAlias...
@@ -230,45 +234,51 @@
d pr extproc('xmlDetectCharEncoding')
d like(xmlCharEncoding)
d in * value options(*string) const unsigned char*
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlCharEncOutFunc...
- d pr 10i 0 extproc('xmlCharEncOutFunc')
- d handler like(xmlCharEncodingHandler)
+ d pr extproc('xmlCharEncOutFunc')
+ d like(xmlCint)
+ d handler likeds(xmlCharEncodingHandler)
d out value like(xmlBufferPtr)
d in value like(xmlBufferPtr)
d xmlCharEncInFunc...
- d pr 10i 0 extproc('xmlCharEncInFunc')
- d handler like(xmlCharEncodingHandler)
+ d pr extproc('xmlCharEncInFunc')
+ d like(xmlCint)
+ d handler likeds(xmlCharEncodingHandler)
d out value like(xmlBufferPtr)
d in value like(xmlBufferPtr)
d xmlCharEncFirstLine...
- d pr 10i 0 extproc('xmlCharEncFirstLine')
- d handler like(xmlCharEncodingHandler)
+ d pr extproc('xmlCharEncFirstLine')
+ d like(xmlCint)
+ d handler likeds(xmlCharEncodingHandler)
d out value like(xmlBufferPtr)
d in value like(xmlBufferPtr)
d xmlCharEncCloseFunc...
- d pr 10i 0 extproc('xmlCharEncCloseFunc')
- d handler like(xmlCharEncodingHandler)
+ d pr extproc('xmlCharEncCloseFunc')
+ d like(xmlCint)
+ d handler likeds(xmlCharEncodingHandler)
* Export a few useful functions
/if defined(LIBXML_OUTPUT_ENABLED)
- d UTF8Toisolat1 pr 10i 0 extproc('UTF8Toisolat1')
+ d UTF8Toisolat1 pr extproc('UTF8Toisolat1')
+ d like(xmlCint)
d out 65535 options(*varsize) unsigned char (*)
- d outlen 10i 0
+ d outlen like(xmlCint)
d in * value options(*string) const unsigned char*
- d inlen 10i 0
+ d inlen like(xmlCint)
/endif LIBXML_OUTPUT_ENABLD
- d isolat1ToUTF8 pr 10i 0 extproc('isolat1ToUTF8')
+ d isolat1ToUTF8 pr extproc('isolat1ToUTF8')
+ d like(xmlCint)
d out 65535 options(*varsize) unsigned char (*)
- d outlen 10i 0
+ d outlen like(xmlCint)
d in * value options(*string) const unsigned char*
- d inlen 10i 0
+ d inlen like(xmlCint)
/endif XML_CHAR_ENCODING_H
diff --git a/os400/libxmlrpg/entities.rpgle b/os400/libxmlrpg/entities.rpgle
index 8d97915..eeec1b6 100644
--- a/os400/libxmlrpg/entities.rpgle
+++ b/os400/libxmlrpg/entities.rpgle
@@ -10,11 +10,13 @@
/define XML_ENTITIES_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
* The different valid entity types.
- d xmlEntityType s 10i 0 based(######typedef######) enum
+ d xmlEntityType s based(######typedef######)
+ d like(xmlCenum)
d XML_INTERNAL_GENERAL_ENTITY...
d c 1
d XML_EXTERNAL_GENERAL_PARSED_ENTITY...
@@ -44,14 +46,14 @@
d doc like(xmlDocPtr) containing document
d orig * xmlChar *
d content * xmlChar *
- d length 10i 0 content length
+ d length like(xmlCint) content length
d etype like(xmlEntityType) The entity type
d ExternalID * const xmlChar *
d SystemlID * const xmlChar *
d nexte like(xmlEntityPtr) unused
d URI * const xmlChar *
- d owner 10i 0 Owns children ?
- d checked 10i 0 Content checked ?
+ d owner like(xmlCint) Owns children ?
+ d checked like(xmlCint) Content checked ?
* All entities are stored in an hash table.
* There is 2 separate hash tables for global and parameter entities.
@@ -71,7 +73,7 @@
d like(xmlEntityPtr)
d doc value like(xmlDocPtr)
d name * value options(*string) const xmlChar *
- d type 10i 0 value
+ d type value like(xmlCint)
d ExternalID * value options(*string) const xmlChar *
d SystemID * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
@@ -81,7 +83,7 @@
d like(xmlEntityPtr)
d doc value like(xmlDocPtr)
d name * value options(*string) const xmlChar *
- d type 10i 0 value
+ d type value like(xmlCint)
d ExternalID * value options(*string) const xmlChar *
d SystemID * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
@@ -91,7 +93,7 @@
d like(xmlEntityPtr)
d doc value like(xmlDocPtr)
d name * value options(*string) const xmlChar *
- d type 10i 0 value
+ d type value like(xmlCint)
d ExternalID * value options(*string) const xmlChar *
d SystemID * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
diff --git a/os400/libxmlrpg/globals.rpgle b/os400/libxmlrpg/globals.rpgle
index 80dadca..3fe3a9b 100644
--- a/os400/libxmlrpg/globals.rpgle
+++ b/os400/libxmlrpg/globals.rpgle
@@ -13,6 +13,7 @@
/define XML_GLOBALS_H
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/parser"
/include "libxmlrpg/xmlerror"
/include "libxmlrpg/SAX"
@@ -94,13 +95,13 @@
d xmlParserVersion...
d * const char *
d xmlDefaultSAXLocator...
- d like(xmlSAXLocator)
+ d likeds(xmlSAXLocator)
d xmlDefaultSAXHandler...
- d like(xmlSAXHandlerV1)
+ d likeds(xmlSAXHandlerV1)
d docbDefaultSAXHandler...
- d like(xmlSAXHandlerV1)
+ d likeds(xmlSAXHandlerV1)
d htmlDefaultSAXHandler...
- d like(xmlSAXHandlerV1)
+ d likeds(xmlSAXHandlerV1)
d xmlFree like(xmlFreeFunc)
d xmlMalloc like(xmlMallocFunc)
d xmlMemStrdup like(xmlStrdupFunc)
@@ -112,31 +113,31 @@
d xmlGenericErrorContext...
d * void *
d oldXMLWDcompatibility...
- d 10i 0
+ d like(xmlCint)
d xmlBufferAllocScheme...
d like(xmlBufferAllocationScheme)
d xmlDefaultBufferSize...
- d 10i 0
+ d like(xmlCint)
d xmlSubstituteEntitiesDefaultValue...
- d 10i 0
+ d like(xmlCint)
d xmlDoValidityCheckingDefaultValue...
- d 10i 0
+ d like(xmlCint)
d xmlGetWarningsDefaultValue...
- d 10i 0
+ d like(xmlCint)
d xmlKeepBlanksDefaultValue...
- d 10i 0
+ d like(xmlCint)
d xmlLineNumbersDefaultValue...
- d 10i 0
+ d like(xmlCint)
d xmlLoadExtDtdDefaultValue...
- d 10i 0
+ d like(xmlCint)
d xmlParserDebugEntities...
- d 10i 0
+ d like(xmlCint)
d xmlPedanticParserDefaultValue...
- d 10i 0
+ d like(xmlCint)
d xmlSaveNoEmptyTags...
- d 10i 0
+ d like(xmlCint)
d xmlIndentTreeOutput...
- d 10i 0
+ d like(xmlCint)
d xmlTreeIndentString...
d * const char *
d xmlRegisterNodeDefaultValue...
@@ -145,7 +146,7 @@
d like(xmlDeregisterNodeFunc)
d xmlMallocAtomic...
d like(xmlMallocFunc)
- d xmlLastError like(xmlError)
+ d xmlLastError likeds(xmlError)
d xmlParserInputBufferCreateFilenameValue...
d like(xmlParserInputBuffer...
d CreateFilenameFunc)
@@ -215,42 +216,43 @@
d get_docbDefaultSAXHandler...
d pr extproc(
d '__get_docbDefaultSAXHandler')
- d like(xmlSAXHandlerV1)
+ d likeds(xmlSAXHandlerV1)
d set_docbDefaultSAXHandler...
d pr extproc(
d '__set_docbDefaultSAXHandler')
- d value value like(xmlSAXHandlerV1)
+ d value value likeds(xmlSAXHandlerV1)
/endif
/if defined(LIBXML_HTML_ENABLED)
d get_htmlDefaultSAXHandler...
d pr extproc(
d '__get_htmlDefaultSAXHandler')
- d like(xmlSAXHandlerV1)
+ d likeds(xmlSAXHandlerV1)
d set_htmlDefaultSAXHandler...
d pr extproc(
d '__set_htmlDefaultSAXHandler')
- d value value like(xmlSAXHandlerV1)
+ d value value likeds(xmlSAXHandlerV1)
/endif
d get_xmlLastError...
d pr extproc('__get_xmlLastError')
- d like(xmlError)
+ d likeds(xmlError)
d set_xmlLastError...
d pr extproc('__set_xmlLastError')
- d value value like(xmlError)
+ d value value likeds(xmlError)
d get_oldXMLWDcompatibility...
- d pr 10i 0 extproc(
+ d pr extproc(
d '__get_oldXMLWDcompatibility')
+ d like(xmlCint)
d set_oldXMLWDcompatibility...
d pr extproc(
d '__set_oldXMLWDcompatibility')
- d value 10i 0 value
+ d value value like(xmlCint)
d get_xmlBufferAllocScheme...
d pr extproc('__get_xmlBufferAllocScheme')
@@ -266,45 +268,49 @@
d v value like(xmlBufferAllocationScheme)
d get_xmlDefaultBufferSize...
- d pr 10i 0 extproc('__get_xmlDefaultBufferSize')
+ d pr extproc('__get_xmlDefaultBufferSize')
+ d like(xmlCint)
d set_xmlDefaultBufferSize...
d pr extproc('__set_xmlDefaultBufferSize')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefDefaultBufferSize...
- d pr 10i 0 extproc('xmlThrDefDefaultBufferSize')
- d v 10i 0 value
+ d pr extproc('xmlThrDefDefaultBufferSize')
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlDefaultSAXHandler...
d pr extproc('__get_xmlDefaultSAXHandler')
- d like(xmlSAXHandlerV1)
+ d likeds(xmlSAXHandlerV1)
d set_xmlDefaultSAXHandler...
d pr extproc('__set_xmlDefaultSAXHandler')
- d value value like(xmlSAXHandlerV1)
+ d value value likeds(xmlSAXHandlerV1)
d get_xmlDefaultSAXLocator...
d pr extproc('__get_xmlDefaultSAXLocator')
- d like(xmlSAXLocator)
+ d likeds(xmlSAXLocator)
d set_xmlDefaultSAXLocator...
d pr extproc('__set_xmlDefaultSAXLocator')
- d value value like(xmlSAXLocator)
+ d value value likeds(xmlSAXLocator)
d get_xmlDoValidityCheckingDefaultValue...
- d pr 10i 0 extproc('__get_xmlDoValidity+
+ d pr extproc('__get_xmlDoValidity+
d CheckingDefaultValue')
+ d like(xmlCint)
d set_xmlDoValidityCheckingDefaultValue...
d pr extproc('__set_xmlDoValidity+
d CheckingDefaultValue')
- d value 10i 0 value
-
+ d value value like(xmlCint)
+
d xmlThrDefDoValidityCheckingDefaultValue...
- d pr 10i 0 extproc('xmlThrDefDoValidity+
+ d pr extproc('xmlThrDefDoValidity+
d CheckingDefaultValue')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlGenericError...
d pr extproc('__get_xmlGenericError')
@@ -325,7 +331,7 @@
d xmlStructuredError...
d pr extproc('__call_xmlStructuredError')
d userData * value options(*string) void *
- d error value like(xmlErrorPtr)
+ d error value like(xmlErrorPtr)
d get_xmlGenericErrorContext...
d pr extproc(
@@ -348,29 +354,33 @@
d value * value options(*string) void *
d get_xmlGetWarningsDefaultValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d '__get_xmlGetWarningsDefaultValue')
+ d like(xmlCint)
d set_xmlGetWarningsDefaultValue...
d pr extproc(
d '__set_xmlGetWarningsDefaultValue')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefGetWarningsDefaultValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlThrDefGetWarningsDefaultValue')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlIndentTreeOutput...
- d pr 10i 0 extproc('__get_xmlIndentTreeOutput')
+ d pr extproc('__get_xmlIndentTreeOutput')
+ d like(xmlCint)
d set_xmlIndentTreeOutput...
- d pr extproc('__set_xmlIndentTreeOutput')
- d value 10i 0 value
+ d pr extproc('__set_xmlIndentTreeOutput')
+ d value value like(xmlCint)
d xmlThrDefIndentTreeOutput...
- d pr 10i 0 extproc('xmlThrDefIndentTreeOutput')
- d v 10i 0 value
+ d pr extproc('xmlThrDefIndentTreeOutput')
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlTreeIndentString...
d pr * extproc('__get_xmlTreeIndentString') const char *
@@ -378,66 +388,74 @@
d set_xmlTreeIndentString...
d pr extproc('__set_xmlTreeIndentString')
d value * value options(*string) const char *
-
+
d xmlThrDefTreeIndentString...
d pr * extproc('xmlThrDefTreeIndentString') const char *
d v * value options(*string) const char *
d get_xmlKeepBlanksDefaultValue...
- d pr 10i 0 extproc(
- d '__get_xmlKeepBlanksDefaultValue')
+ d pr extproc(
+ d '__get_xmlKeepBlanksDefaultValue')
+ d like(xmlCint)
d set_xmlKeepBlanksDefaultValue...
d pr extproc(
- d '__set_xmlKeepBlanksDefaultValue')
- d value 10i 0 value
+ d '__set_xmlKeepBlanksDefaultValue')
+ d value value like(xmlCint)
d xmlThrDefKeepBlanksDefaultValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlThrDefKeepBlanksDefaultValue')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlLineNumbersDefaultValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d '__get_xmlLineNumbersDefaultValue')
+ d like(xmlCint)
d set_xmlLineNumbersDefaultValue...
d pr extproc(
d '__set_xmlLineNumbersDefaultValue')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefLineNumbersDefaultValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlThrDefLineNumbersDefaultValue')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlLoadExtDtdDefaultValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d '__get_xmlLoadExtDtdDefaultValue')
+ d like(xmlCint)
d set_xmlLoadExtDtdDefaultValue...
d pr extproc(
d '__set_xmlLoadExtDtdDefaultValue')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefLoadExtDtdDefaultValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlThrDefLoadExtDtdDefaultValue')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlParserDebugEntities...
- d pr 10i 0 extproc(
+ d pr extproc(
d '__get_xmlParserDebugEntities')
+ d like(xmlCint)
d set_xmlParserDebugEntities...
d pr extproc(
d '__set_xmlParserDebugEntities')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefParserDebugEntities...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlThrDefParserDebugEntities')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlParserVersion...
d pr * extproc('__get_xmlParserVersion') const char *
@@ -447,43 +465,49 @@
d value * value options(*string) const char *
d get_xmlPedanticParserDefaultValue...
- d pr 10i 0 extproc('__get_xmlPedantic+
+ d pr extproc('__get_xmlPedantic+
d ParserDefaultValue')
+ d like(xmlCint)
d set_xmlPedanticParserDefaultValue...
d pr extproc('__set_xmlPedantic+
d ParserDefaultValue')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefPedanticParserDefaultValue...
- d pr 10i 0 extproc('xmlThrDefPedantic+
+ d pr extproc('xmlThrDefPedantic+
d ParserDefaultValue')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlSaveNoEmptyTags...
- d pr 10i 0 extproc('__get_xmlSaveNoEmptyTags')
+ d pr extproc('__get_xmlSaveNoEmptyTags')
+ d like(xmlCint)
d set_xmlSaveNoEmptyTags...
d pr extproc('__set_xmlSaveNoEmptyTags')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefSaveNoEmptyTags...
- d pr 10i 0 extproc('xmlThrDefSaveNoEmptyTags')
- d v 10i 0 value
+ d pr extproc('xmlThrDefSaveNoEmptyTags')
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlSubstituteEntitiesDefaultValue...
- d pr 10i 0 extproc('__get_xmlSubstitute+
+ d pr extproc('__get_xmlSubstitute+
d EntitiesDefaultValue')
+ d like(xmlCint)
d set_xmlSubstituteEntitiesDefaultValue...
d pr extproc('__set_xmlSubstitute+
d EntitiesDefaultValue')
- d value 10i 0 value
+ d value value like(xmlCint)
d xmlThrDefSubstituteEntitiesDefaultValue...
- d pr 10i 0 extproc('xmlThrDefSubstitute+
+ d pr extproc('xmlThrDefSubstitute+
d EntitiesDefaultValue')
- d v 10i 0 value
+ d like(xmlCint)
+ d v value like(xmlCint)
d get_xmlRegisterNodeDefaultValue...
d pr extproc('__get_xmlRegisterNode+
@@ -552,6 +576,6 @@
d like(xmlOutputBufferPtr)
d URI * value options(*string) const char *
d encoder value like(xmlCharEncodingHandlerPtr)
- d compression 10i 0 value
+ d compression value like(xmlCint)
/endif XML_GLOBALS_H
diff --git a/os400/libxmlrpg/hash.rpgle b/os400/libxmlrpg/hash.rpgle
index 867f98f..b2169df 100644
--- a/os400/libxmlrpg/hash.rpgle
+++ b/os400/libxmlrpg/hash.rpgle
@@ -9,6 +9,8 @@
/if not defined(XML_HASH_H__)
/define XML_HASH_H__
+ /include "libxmlrpg/xmlTypesC"
+
* The hash table.
d xmlHashTablePtr...
@@ -68,12 +70,12 @@
d xmlHashCreate pr extproc('xmlHashCreate')
d like(xmlHashTablePtr)
- d size 10i 0 value
+ d size value like(xmlCint)
d xmlHashCreateDict...
d pr extproc('xmlHashCreateDict')
d like(xmlHashTablePtr)
- d size 10i 0 value
+ d size value like(xmlCint)
d dict value like(xmlDictPtr)
d xmlHashFree pr extproc('xmlHashFree')
@@ -83,27 +85,31 @@
* Add a new entry to the hash table.
d xmlHashAddEntry...
- d pr 10i 0 extproc('xmlHashAddEntry')
+ d pr extproc('xmlHashAddEntry')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d userdata * value options(*string) void *
d xmlHashUpdateEntry...
- d pr 10i 0 extproc('xmlHashUpdateEntry')
+ d pr extproc('xmlHashUpdateEntry')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d userdata * value options(*string) void *
d f value like(xmlHashDeallocator)
d xmlHashAddEntry2...
- d pr 10i 0 extproc('xmlHashAddEntry2')
+ d pr extproc('xmlHashAddEntry2')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d name2 * value options(*string) const xmlChar *
d userdata * value options(*string) void *
d xmlHashUpdateEntry2...
- d pr 10i 0 extproc('xmlHashUpdateEntry2')
+ d pr extproc('xmlHashUpdateEntry2')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d name2 * value options(*string) const xmlChar *
@@ -111,7 +117,8 @@
d f value like(xmlHashDeallocator)
d xmlHashAddEntry3...
- d pr 10i 0 extproc('xmlHashAddEntry3')
+ d pr extproc('xmlHashAddEntry3')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d name2 * value options(*string) const xmlChar *
@@ -119,7 +126,8 @@
d userdata * value options(*string) void *
d xmlHashUpdateEntry3...
- d pr 10i 0 extproc('xmlHashUpdateEntry3')
+ d pr extproc('xmlHashUpdateEntry3')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d name2 * value options(*string) const xmlChar *
@@ -130,20 +138,23 @@
* Remove an entry from the hash table.
d xmlHashRemoveEntry...
- d pr 10i 0 extproc('xmlHashRemoveEntry')
+ d pr extproc('xmlHashRemoveEntry')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d f value like(xmlHashDeallocator)
d xmlHashRemoveEntry2...
- d pr 10i 0 extproc('xmlHashRemoveEntry2')
+ d pr extproc('xmlHashRemoveEntry2')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d name2 * value options(*string) const xmlChar *
d f value like(xmlHashDeallocator)
d xmlHashRemoveEntry3...
- d pr 10i 0 extproc('xmlHashRemoveEntry3')
+ d pr extproc('xmlHashRemoveEntry3')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d name * value options(*string) const xmlChar *
d name2 * value options(*string) const xmlChar *
@@ -197,7 +208,8 @@
d table value like(xmlHashTablePtr)
d f value like(xmlHashCopier)
- d xmlHashSize pr 10i 0 extproc('xmlHashSize')
+ d xmlHashSize pr extproc('xmlHashSize')
+ d like(xmlCint)
d table value like(xmlHashTablePtr)
d xmlHashScan pr extproc('xmlHashScan')
diff --git a/os400/libxmlrpg/list.rpgle b/os400/libxmlrpg/list.rpgle
index c62fcbd..ce2fa1c 100644
--- a/os400/libxmlrpg/list.rpgle
+++ b/os400/libxmlrpg/list.rpgle
@@ -10,6 +10,7 @@
/define XML_LINK_INCLUDE__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
d xmlLinkPtr s * based(######typedef######)
@@ -68,33 +69,39 @@
d l value like(xmlListPtr)
d data * value void *
- d xmlListInsert pr 10i 0 extproc('xmlListInsert')
+ d xmlListInsert pr extproc('xmlListInsert')
+ d like(xmlCint)
d l value like(xmlListPtr)
d data * value void *
- d xmlListAppend pr 10i 0 extproc('xmlListAppend')
+ d xmlListAppend pr extproc('xmlListAppend')
+ d like(xmlCint)
d l value like(xmlListPtr)
d data * value void *
d xmlListRemoveFirst...
- d pr 10i 0 extproc('xmlListRemoveFirst')
+ d pr extproc('xmlListRemoveFirst')
+ d like(xmlCint)
d l value like(xmlListPtr)
d data * value void *
d xmlListRemoveLast...
- d pr 10i 0 extproc('xmlListRemoveLast')
+ d pr extproc('xmlListRemoveLast')
+ d like(xmlCint)
d l value like(xmlListPtr)
d data * value void *
d xmlListRemoveAll...
- d pr 10i 0 extproc('xmlListRemoveAll')
+ d pr extproc('xmlListRemoveAll')
+ d like(xmlCint)
d l value like(xmlListPtr)
d data * value void *
d xmlListClear pr extproc('xmlListClear')
d l value like(xmlListPtr)
- d xmlListEmpty pr 10i 0 extproc('xmlListEmpty')
+ d xmlListEmpty pr extproc('xmlListEmpty')
+ d like(xmlCint)
d l value like(xmlListPtr)
d xmlListFront pr extproc('xmlListFront')
@@ -105,7 +112,8 @@
d like(xmlLinkPtr)
d l value like(xmlListPtr)
- d xmlListSize pr 10i 0 extproc('xmlListSize')
+ d xmlListSize pr extproc('xmlListSize')
+ d like(xmlCint)
d l value like(xmlListPtr)
d xmlListPopFront...
@@ -117,12 +125,14 @@
d l value like(xmlListPtr)
d xmlListPushFront...
- d pr 10i 0 extproc('xmlListPushFront')
+ d pr extproc('xmlListPushFront')
+ d like(xmlCint)
d l value like(xmlListPtr)
d data * value void *
d xmlListPushBack...
- d pr 10i 0 extproc('xmlListPushBack')
+ d pr extproc('xmlListPushBack')
+ d like(xmlCint)
d l value like(xmlListPtr)
d data * value void *
@@ -153,7 +163,8 @@
d like(xmlListPtr)
d old value like(xmlListPtr)
- d xmlListCopy pr 10i 0 extproc('xmlListCopy')
+ d xmlListCopy pr extproc('xmlListCopy')
+ d like(xmlCint)
d cur value like(xmlListPtr)
d old value like(xmlListPtr) const
diff --git a/os400/libxmlrpg/nanoftp.rpgle b/os400/libxmlrpg/nanoftp.rpgle
index 0637562..ac4f2aa 100644
--- a/os400/libxmlrpg/nanoftp.rpgle
+++ b/os400/libxmlrpg/nanoftp.rpgle
@@ -9,10 +9,12 @@
/if not defined(NANO_FTP_H__)
/define NANO_FTP_H__
- /include /libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlversion"
/if defined(LIBXML_FTP_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+
d INVALID_SOCKET c -1
* ftpListCallback:
@@ -67,7 +69,7 @@
d xmlNanoFTPConnectTo...
d pr * extproc('xmlNanoFTPConnectTo') void *
d server * value options(*string) const char *
- d port 10i 0 value
+ d port value like(xmlCint)
* Opening/closing session connections.
@@ -75,14 +77,17 @@
d URL * value options(*string) const char *
d xmlNanoFTPConnect...
- d pr 10i 0 extproc('xmlNanoFTPConnect')
+ d pr extproc('xmlNanoFTPConnect')
+ d like(xmlCint)
d ctx * value void *
d xmlNanoFTPClose...
- d pr 10i 0 extproc('xmlNanoFTPClose')
+ d pr extproc('xmlNanoFTPClose')
+ d like(xmlCint)
d ctx * value void *
- d xmlNanoFTPQuit pr 10i 0 extproc('xmlNanoFTPQuit')
+ d xmlNanoFTPQuit pr extproc('xmlNanoFTPQuit')
+ d like(xmlCint)
d ctx * value void *
d xmlNanoFTPScanProxy...
@@ -92,65 +97,76 @@
d xmlNanoFTPProxy...
d pr extproc('xmlNanoFTPProxy')
d host * value options(*string) const char *
- d port 10i 0 value
+ d port value like(xmlCint)
d user * value options(*string) const char *
d passwd * value options(*string) const char *
- d type 10i 0 value
+ d type value like(xmlCint)
d xmlNanoFTPUpdateURL...
- d pr 10i 0 extproc('xmlNanoFTPUpdateURL')
+ d pr extproc('xmlNanoFTPUpdateURL')
+ d like(xmlCint)
d ctx * value void *
d URL * value options(*string) const char *
* Rather internal commands.
d xmlNanoFTPGetResponse...
- d pr 10i 0 extproc('xmlNanoFTPGetResponse')
+ d pr extproc('xmlNanoFTPGetResponse')
+ d like(xmlCint)
d ctx * value void *
d xmlNanoFTPCheckResponse...
- d pr 10i 0 extproc('xmlNanoFTPCheckResponse')
+ d pr extproc('xmlNanoFTPCheckResponse')
+ d like(xmlCint)
d ctx * value void *
* CD/DIR/GET handlers.
- d xmlNanoFTPCwd pr 10i 0 extproc('xmlNanoFTPCwd')
+ d xmlNanoFTPCwd pr extproc('xmlNanoFTPCwd')
+ d like(xmlCint)
d ctx * value void *
d directory * value options(*string) const char *
- d xmlNanoFTPDele pr 10i 0 extproc('xmlNanoFTPDele')
+ d xmlNanoFTPDele pr extproc('xmlNanoFTPDele')
+ d like(xmlCint)
d ctx * value void *
d file * value options(*string) const char *
d xmlNanoFTPGetConnection...
- d pr 10i 0 extproc('xmlNanoFTPGetConnection') Socket descriptor
+ d pr extproc('xmlNanoFTPGetConnection') Socket descriptor
+ d like(xmlCint)
d ctx * value void *
d xmlNanoFTPCloseConnection...
- d pr 10i 0 extproc('xmlNanoFTPCloseConnection')
+ d pr extproc('xmlNanoFTPCloseConnection')
+ d like(xmlCint)
d ctx * value void *
- d xmlNanoFTPList pr 10i 0 extproc('xmlNanoFTPList')
+ d xmlNanoFTPList pr extproc('xmlNanoFTPList')
+ d like(xmlCint)
d ctx * value void *
d callback value like(ftpListCallback)
d userData * value void *
d filename * value options(*string) const char *
d xmlNanoFTPGetSocket...
- d pr 10i 0 extproc('xmlNanoFTPGetSocket') Socket descriptor
+ d pr extproc('xmlNanoFTPGetSocket') Socket descriptor
+ d like(xmlCint)
d ctx * value void *
d filename * value options(*string) const char *
- d xmlNanoFTPGet pr 10i 0 extproc('xmlNanoFTPGet')
+ d xmlNanoFTPGet pr extproc('xmlNanoFTPGet')
+ d like(xmlCint)
d ctx * value void *
d callback value like(ftpDataCallback)
d userData * value void *
d filename * value options(*string) const char *
- d xmlNanoFTPRead pr 10i 0 extproc('xmlNanoFTPRead')
+ d xmlNanoFTPRead pr extproc('xmlNanoFTPRead')
+ d like(xmlCint)
d ctx * value void *
d dest * value void *
- d len 10i 0 value
+ d len value like(xmlCint)
/endif LIBXML_FTP_ENABLED
/endif NANO_FTP_H__
diff --git a/os400/libxmlrpg/nanohttp.rpgle b/os400/libxmlrpg/nanohttp.rpgle
index 4a076d2..d4e6008 100644
--- a/os400/libxmlrpg/nanohttp.rpgle
+++ b/os400/libxmlrpg/nanohttp.rpgle
@@ -13,6 +13,8 @@
/if defined(LIBXML_HTTP_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+
d xmlNanoHTTPInit...
d pr extproc('xmlNanoHTTPInit')
@@ -24,7 +26,8 @@
d URL * value options(*string) const char *
d xmlNanoHTTPFetch...
- d pr 10i 0 extproc('xmlNanoHTTPFetch')
+ d pr extproc('xmlNanoHTTPFetch')
+ d like(xmlCint)
d URL * value options(*string) const char *
d filename * value options(*string) const char *
@@ -35,7 +38,7 @@
d input * value options(*string) const char *
d contentType * value char * *
d headers * value options(*string) const char *
- d ilen 10i 0 value
+ d ilen value like(xmlCint)
d xmlNanoHTTPMethodRedir...
d pr * extproc('xmlNanoHTTPMethodRedir') void *
@@ -45,7 +48,7 @@
d contentType * value char * *
d redir * value char * *
d headers * value options(*string) const char *
- d ilen 10i 0 value
+ d ilen value like(xmlCint)
d xmlNanoHTTPOpen...
d pr * extproc('xmlNanoHTTPOpen') void *
@@ -59,7 +62,8 @@
d redir * value char * *
d xmlNanoHTTPReturnCode...
- d pr 10i 0 extproc('xmlNanoHTTPReturnCode')
+ d pr extproc('xmlNanoHTTPReturnCode')
+ d like(xmlCint)
d ctx * value void *
d xmlNanoHTTPAuthHeader...
@@ -71,7 +75,8 @@
d ctx * value void *
d xmlNanoHTTPContentLength...
- d pr 10i 0 extproc('xmlNanoHTTPContentLength')
+ d pr extproc('xmlNanoHTTPContentLength')
+ d like(xmlCint)
d ctx * value void *
d xmlNanoHTTPEncoding...
@@ -83,14 +88,16 @@
d ctx * value void *
d xmlNanoHTTPRead...
- d pr 10i 0 extproc('xmlNanoHTTPRead')
+ d pr extproc('xmlNanoHTTPRead')
+ d like(xmlCint)
d ctx * value void *
d dest * value void *
- d len 10i 0 value
+ d len value like(xmlCint)
/if defined(LIBXML_OUTPUT_ENABLED)
d xmlNanoHTTPSave...
- d pr 10i 0 extproc('xmlNanoHTTPSave')
+ d pr extproc('xmlNanoHTTPSave')
+ d like(xmlCint)
d ctxt * value void *
d filename * value options(*string) const char *
/endif LIBXML_OUTPUT_ENABLD
diff --git a/os400/libxmlrpg/parser.rpgle b/os400/libxmlrpg/parser.rpgle
index 7f29e31..fa48d4f 100644
--- a/os400/libxmlrpg/parser.rpgle
+++ b/os400/libxmlrpg/parser.rpgle
@@ -9,6 +9,7 @@
/define XML_PARSER_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
/include "libxmlrpg/dict"
/include "libxmlrpg/hash"
@@ -52,20 +53,20 @@
d base * const char *
d cur * const char *
d end * const char *
- d length 10i 0 Length if known
- d line 10i 0 Current line
- d col 10i 0 Current column
+ d length like(xmlCint) Length if known
+ d line like(xmlCint) Current line
+ d col like(xmlCint) Current column
*
* NOTE: consumed is only tested for equality in the parser code,
* so even if there is an overflow this should not give troubles
* for parsing very large instances.
*
- d consumed 20u 0 # consumed xmlChars
+ d consumed like(xmlCulong) # consumed xmlChars
d free like(xmlParserInputDeallocate) base deallocator
d encoding * const xmlChar *
d version * const xmlChar *
- d standalone 10i 0 Standalone entity ?
- d id 10i 0 Entity unique ID
+ d standalone like(xmlCint) Standalone entity ?
+ d id like(xmlCint) Entity unique ID
* xmlParserNodeInfo:
*
@@ -81,10 +82,10 @@
d align qualified
d node like(xmlNodePtr) const
* Position & line # that text that created the node begins & ends on
- d begin_pos 20u 0
- d begin_line 20u 0
- d end_pos 20u 0
- d end_line 20u 0
+ d begin_pos like(xmlCulong)
+ d begin_line like(xmlCulong)
+ d end_pos like(xmlCulong)
+ d end_line like(xmlCulong)
d xmlParserNodeInfoSeqPtr...
d s * based(######typedef######)
@@ -92,8 +93,8 @@
d xmlParserNodeInfoSeq...
d ds based(xmlParserNodeInfoSeqPtr)
d align qualified
- d maximum 20u 0
- d length 20u 0
+ d maximum like(xmlCulong)
+ d length like(xmlCulong)
d buffer like(xmlParserNodeInfoPtr)
* xmlParserInputState:
@@ -102,7 +103,8 @@
* The recursive one use the state info for entities processing.
d xmlParserInputState...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_PARSER_EOF... Nothing to parse
d c -1
d XML_PARSER_START... Nothing parsed
@@ -167,7 +169,8 @@
*
* A parser can operate in various modes
- d xmlParserMode s 10i 0 based(######typedef######) enum
+ d xmlParserMode s based(######typedef######)
+ d like(xmlCenum)
d XML_PARSE_UNKNOWN...
d c 0
d XML_PARSE_DOM...
@@ -198,59 +201,59 @@
d sax like(xmlSAXHandlerPtr) The SAX handler
d userData * SAX only-4 DOM build
d myDoc like(xmlDocPtr) Document being built
- d wellFormed 10i 0 Well formed doc ?
+ d wellFormed like(xmlCint) Well formed doc ?
d replaceEntities... Replace entities ?
- d 10i 0
+ d like(xmlCint)
d version * const xmlChar *
d encoding * const xmlChar *
- d standalone 10i 0 Standalone document
- d html 10i 0 HTML state/type
+ d standalone like(xmlCint) Standalone document
+ d html like(xmlCint) HTML state/type
*
* Input stream stack
*
d input like(xmlParserInputPtr) Current input stream
- d inputNr 10i 0 # current in streams
- d inputMax 10i 0 Max # of in streams
+ d inputNr like(xmlCint) # current in streams
+ d inputMax like(xmlCint) Max # of in streams
d inputTab * xmlParserInputPtr *
*
* Node analysis stack only used for DOM building
*
d node like(xmlNodePtr) Current parsed node
- d nodeNr 10i 0 Parsing stack depth
- d nodeMax 10i 0 Max stack depth
+ d nodeNr like(xmlCint) Parsing stack depth
+ d nodeMax like(xmlCint) Max stack depth
d nodeTab * xmlNodePtr *
*
- d record_info 10i 0 Keep node info ?
- d node_seq like(xmlParserNodeInfoSeq) Parsed nodes info
+ d record_info like(xmlCint) Keep node info ?
+ d node_seq likeds(xmlParserNodeInfoSeq) Parsed nodes info
*
- d errNo 10i 0 Error code
+ d errNo like(xmlCint) Error code
*
d hasExternalSubset...
- d 10i 0
- d hashPErefs 10i 0
- d external 10i 0 Parsing ext. entity?
+ d like(xmlCint)
+ d hasPErefs like(xmlCint)
+ d external like(xmlCint) Parsing ext. entity?
*
- d valid 10i 0 Valid document ?
- d validate 10i 0 Try to validate ?
- d vctxt like(xmlValidCtxt) Validity context
+ d valid like(xmlCint) Valid document ?
+ d validate like(xmlCint) Try to validate ?
+ d vctxt likeds(xmlValidCtxt) Validity context
*
d instate like(xmlParserInputState) Current input type
- d token 10i 0 Next look-ahead char
+ d token like(xmlCint) Next look-ahead char
*
d directory * char *
*
* Node name stack
*
d name * const xmlChar *
- d nameNr 10i 0 Parsing stack depth
- d nameMax 10i 0 Max stack depth
+ d nameNr like(xmlCint) Parsing stack depth
+ d nameMax like(xmlCint) Max stack depth
d nameTab * const xmlChar * *
*
- d nbChars 20i 0 # xmlChars processed
- d checkIndex 20i 0 4 progressive parse
- d keepBlanks 10i 0 Ugly but ...
- d disableSAX 10i 0 Disable SAX cllbacks
- d inSubset 10i 0 In int 1/ext 2 sbset
+ d nbChars like(xmlClong) # xmlChars processed
+ d checkIndex like(xmlClong) 4 progressive parse
+ d keepBlanks like(xmlCint) Ugly but ...
+ d disableSAX like(xmlCint) Disable SAX cllbacks
+ d inSubset like(xmlCint) In int 1/ext 2 sbset
d intSubName * const xmlChar *
d extSubURI * const xmlChar *
d extSubSytem * const xmlChar *
@@ -258,27 +261,27 @@
* xml:space values
*
d space * int *
- d spaceNr 10i 0 Parsing stack depth
- d spaceMax 10i 0 Max stack depth
+ d spaceNr like(xmlCint) Parsing stack depth
+ d spaceMax like(xmlCint) Max stack depth
d spaceTab * int *
*
- d depth 10i 0 To detect loops
+ d depth like(xmlCint) To detect loops
d entity like(xmlParserInputPtr) To check boundaries
- d charset 10i 0 In-memory content
- d nodelen 10i 0 Speed up parsing
- d nodemem 10i 0 Speed up parsing
- d pedantic 10i 0 Enb. pedantic warng
+ d charset like(xmlCint) In-memory content
+ d nodelen like(xmlCint) Speed up parsing
+ d nodemem like(xmlCint) Speed up parsing
+ d pedantic like(xmlCint) Enb. pedantic warng
d #private * void *
*
- d loadsubset 10i 0 Load ext. subset ?
- d linenumbers 10i 0 Set line numbers ?
+ d loadsubset like(xmlCint) Load ext. subset ?
+ d linenumbers like(xmlCint) Set line numbers ?
d catalogs * void *
- d recovery 10i 0 Run in recovery mode
- d progressive 10i 0 Progressive parsing?
+ d recovery like(xmlCint) Run in recovery mode
+ d progressive like(xmlCint) Progressive parsing?
d dict like(xmlDictPtr) Parser dictionary
d atts * const xmlChar *
- d maxatts 10i 0 Above array size
- d docdict 10i 0 Use dictionary ?
+ d maxatts like(xmlCint) Above array size
+ d docdict like(xmlCint) Use dictionary ?
*
* pre-interned strings
*
@@ -288,41 +291,41 @@
*
* Everything below is used only by the new SAX mode
*
- d sax2 10i 0 New SAX mode ?
- d nsNr 10i 0 # inherited nmspaces
- d nsMax 10i 0 Array size
+ d sax2 like(xmlCint) New SAX mode ?
+ d nsNr like(xmlCint) # inherited nmspaces
+ d nsMax like(xmlCint) Array size
d nsTab * const xmlChar *
d attallocs * int *
d pushTab * void *
d attsDefault like(xmlHashTablePtr) Defaulted attrs
d attsSpecial like(xmlHashTablePtr) non-CDATA attrs
- d nsWellFormed 10i 0 Doc namespace OK ?
- d options 10i 0 Extra options
+ d nsWellFormed like(xmlCint) Doc namespace OK ?
+ d options like(xmlCint) Extra options
*
* Those fields are needed only for treaming parsing so far
*
- d dictNames 10i 0 Dict names in tree ?
- d freeElemsNr 10i 0 # free element nodes
+ d dictNames like(xmlCint) Dict names in tree ?
+ d freeElemsNr like(xmlCint) # free element nodes
d freeElems like(xmlNodePtr) Free elem nodes list
- d freeAttrsNr 10i 0 # free attr. nodes
+ d freeAttrsNr like(xmlCint) # free attr. nodes
d freeAttrs like(xmlAttrPtr) Free attr noes list
*
* the complete error informations for the last error.
*
- d lastError like(xmlError)
+ d lastError likeds(xmlError)
d parseMode like(xmlParserMode) The parser mode
- d nbentities 20u 0 # entity references
- d sizeentities 20u 0 Parsed entities size
+ d nbentities like(xmlCulong) # entity references
+ d sizeentities like(xmlCulong) Parsed entities size
*
* for use by HTML non-recursive parser
*
- d nodeInfo like(xmlParserNodeInfo) Current NodeInfo
- d nodeInfoNr 10i 0 Parsing stack depth
- d nodeInfoMax 10i 0 Max stack depth
+ d nodeInfo like(xmlParserNodeInfoPtr) Current NodeInfo
+ d nodeInfoNr like(xmlCint) Parsing stack depth
+ d nodeInfoMax like(xmlCint) Max stack depth
d nodeInfoTab * xmlParserNodeInfo *
*
- d input_id 10i 0 Label inputs ?
- d sizeentcopy 20u 0 Entity copy volume
+ d input_id like(xmlCint) Label inputs ?
+ d sizeentcopy like(xmlCulong) Entity copy volume
* xmlSAXLocator:
*
@@ -755,7 +758,7 @@
d cdataBlock like(cdataBlockSAXFunc)
d externalSubset...
d like(externalSubsetSAXFunc)
- d initialized 10u 0
+ d initialized like(xmlCuint)
*
* The following fields are extensions available only on version 2
*
@@ -809,7 +812,7 @@
d cdataBlock like(cdataBlockSAXFunc)
d externalSubset...
d like(externalSubsetSAXFunc)
- d initialized 10u 0
+ d initialized like(xmlCuint)
* xmlExternalEntityLoader:
* @URL: The System ID of the resource requested
@@ -838,14 +841,16 @@
* Input functions
d xmlParserInputRead...
- d pr 10i 0 extproc('xmlParserInputRead')
+ d pr extproc('xmlParserInputRead')
+ d like(xmlCint)
d in value like(xmlParserInputPtr)
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlParserInputGrow...
- d pr 10i 0 extproc('xmlParserInputGrow')
+ d pr extproc('xmlParserInputGrow')
+ d like(xmlCint)
d in value like(xmlParserInputPtr)
- d len 10i 0 value
+ d len value like(xmlCint)
* Basic parsing Interfaces
@@ -861,28 +866,32 @@
d xmlParseMemory pr extproc('xmlParseMemory')
d like(xmlDocPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
/endif LIBXML_SAX1_ENABLED
d xmlSubstituteEntitiesDefault...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSubstituteEntitiesDefault')
- d val 10i 0 value
+ d like(xmlCint)
+ d val value like(xmlCint)
d xmlKeepBlanksDefault...
- d pr 10i 0 extproc('xmlKeepBlanksDefault')
- d val 10i 0 value
+ d pr extproc('xmlKeepBlanksDefault')
+ d like(xmlCint)
+ d val value like(xmlCint)
d xmlStopParser pr extproc('xmlStopParser')
d ctxt value like(xmlParserCtxtPtr)
d xmlPedanticParserDefault...
- d pr 10i 0 extproc('xmlPedanticParserDefault')
- d val 10i 0 value
+ d pr extproc('xmlPedanticParserDefault')
+ d like(xmlCint)
+ d val value like(xmlCint)
d xmlLineNumbersDefault...
- d pr 10i 0 extproc('xmlLineNumbersDefault')
- d val 10i 0 value
+ d pr extproc('xmlLineNumbersDefault')
+ d like(xmlCint)
+ d val value like(xmlCint)
/if defined(LIBXML_SAX1_ENABLED)
* Recovery mode
@@ -895,7 +904,7 @@
d pr extproc('xmlRecoverMemory')
d like(xmlDocPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d xmlRecoverFile pr extproc('xmlRecoverFile')
d like(xmlDocPtr)
@@ -905,48 +914,52 @@
* Less common routines and SAX interfaces
d xmlParseDocument...
- d pr 10i 0 extproc('xmlParseDocument')
+ d pr extproc('xmlParseDocument')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d xmlParseExtParsedEnt...
- d pr 10i 0 extproc('xmlParseExtParsedEnt')
+ d pr extproc('xmlParseExtParsedEnt')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
/if defined(LIBXML_SAX1_ENABLED)
d xmlSAXUserParseFile...
- d pr 10i 0 extproc('xmlSAXUserParseFile')
+ d pr extproc('xmlSAXUserParseFile')
+ d like(xmlCint)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
d filename * value options(*string) const char *
d xmlSAXUserParseMemory...
- d pr 10i 0 extproc('xmlSAXUserParseMemory')
+ d pr extproc('xmlSAXUserParseMemory')
+ d like(xmlCint)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d xmlSAXParseDoc pr extproc('xmlSAXParseDoc')
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d cur * value options(*string) const xmlChar *
- d recovery 10i 0 value
+ d recovery value like(xmlCint)
d xmlSAXParseMemory...
d pr extproc('xmlSAXParseMemory')
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
- d recovery 10i 0 value
+ d size value like(xmlCint)
+ d recovery value like(xmlCint)
d xmlSAXParseMemoryWithData...
d pr extproc('xmlSAXParseMemoryWithData')
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
- d recovery 10i 0 value
+ d size value like(xmlCint)
+ d recovery value like(xmlCint)
d data * value void *
d xmlSAXParseFile...
@@ -954,14 +967,14 @@
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d filename * value options(*string) const char *
- d recovery 10i 0 value
+ d recovery value like(xmlCint)
d xmlSAXParseFileWithData...
d pr extproc('xmlSAXParseFileWithData')
d like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d filename * value options(*string) const char *
- d recovery 10i 0 value
+ d recovery value like(xmlCint)
d data * value void *
d xmlSAXParseEntity...
@@ -997,12 +1010,13 @@
/if defined(LIBXML_SAX1_ENABLED)
d xmlParseBalancedChunkMemory...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlParseBalancedChunkMemory')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
- d depth 10i 0 value
+ d depth value like(xmlCint)
d user_data * value void *
d string * value options(*string) const xmlChar *
d lst * value xmlNodePtr *
@@ -1013,35 +1027,38 @@
d like(xmlParserErrors)
d node value like(xmlNodePtr)
d data * value options(*string) const char *
- d datalen 10i 0 value
- d options 10i 0 value
+ d datalen value like(xmlCint)
+ d options value like(xmlCint)
d lst * value xmlNodePtr *
/if defined(LIBXML_SAX1_ENABLED)
d xmlParseBalancedChunkMemoryRecover...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlParseBalancedChunkMemoryRecover')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
- d depth 10i 0 value
+ d depth value like(xmlCint)
d string * value options(*string) const xmlChar *
d lst * value xmlNodePtr *
- d recover 10i 0 value
+ d recover value like(xmlCint)
d xmlParseExternalEntity...
- d pr 10i 0 extproc('xmlParseExternalEntity')
+ d pr extproc('xmlParseExternalEntity')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
- d depth 10i 0 value
+ d depth value like(xmlCint)
d URL * value options(*string) const xmlChar *
d ID * value options(*string) const xmlChar *
d lst * value xmlNodePtr *
/endif LIBXML_SAX1_ENABLED
d xmlParseCtxtExternalEntity...
- d pr 10i 0 extproc('xmlParseCtxtExternalEntity')
+ d pr extproc('xmlParseCtxtExternalEntity')
+ d like(xmlCint)
d sax value like(xmlSAXHandlerPtr)
d URL * value options(*string) const xmlChar *
d ID * value options(*string) const xmlChar *
@@ -1054,7 +1071,8 @@
d like(xmlParserCtxtPtr)
d xmlInitParserCtxt...
- d pr 10i 0 extproc('xmlInitParserCtxt')
+ d pr extproc('xmlInitParserCtxt')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d xmlClearParserCtxt...
@@ -1082,16 +1100,19 @@
* Reading/setting optional parsing features.
d xmlGetFeaturesList...
- d pr 10i 0 extproc('xmlGetFeaturesList')
- d len 10i 0
+ d pr extproc('xmlGetFeaturesList')
+ d like(xmlCint)
+ d len like(xmlCint)
d result * const char *(*)
- d xmlGetFeature pr 10i 0 extproc('xmlGetFeature')
+ d xmlGetFeature pr extproc('xmlGetFeature')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d name * value options(*string) const char *
d result * value void *
- d xmlSetFeature pr 10i 0 extproc('xmlSetFeature')
+ d xmlSetFeature pr extproc('xmlSetFeature')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d name * value options(*string) const char *
d result * value void *
@@ -1106,14 +1127,15 @@
d sax value like(xmlSAXHandlerPtr)
d user_data * value void *
d chunk * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d filename * value options(*string) const char *
- d xmlParseChunk pr 10i 0 extproc('xmlParseChunk')
+ d xmlParseChunk pr extproc('xmlParseChunk')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d chunk * value options(*string) const char *
- d size 10i 0 value
- d terminate 10i 0 value
+ d size value like(xmlCint)
+ d terminate value like(xmlCint)
/endif LIBXML_PUSH_ENABLED
* Special I/O mode.
@@ -1151,7 +1173,8 @@
d seq value like(xmlParserNodeInfoSeqPtr)
d xmlParserFindNodeInfoIndex...
- d pr 20u 0 extproc('xmlParserFindNodeInfoIndex')
+ d pr extproc('xmlParserFindNodeInfoIndex')
+ d like(xmlCulong)
d seq value like(xmlParserNodeInfoSeqPtr)
d node value like(xmlNodePtr) const
@@ -1180,7 +1203,8 @@
* Index lookup, actually implemented in the encoding module
d xmlByteConsumed...
- d pr 20i 0 extproc('xmlByteConsumed')
+ d pr extproc('xmlByteConsumed')
+ d like(xmlClong)
d ctxt value like(xmlParserCtxtPtr)
* New set of simpler/more flexible APIs
@@ -1191,7 +1215,8 @@
* to the xmlReadDoc() and similar calls.
d xmlParserOption...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_PARSE_RECOVER... Recover on errors
d c X'00000001'
d XML_PARSE_NOENT... Substitute entities
@@ -1243,45 +1268,47 @@
d ctxt value like(xmlParserCtxtPtr)
d xmlCtxtResetPush...
- d pr 10i 0 extproc('xmlCtxtResetPush')
+ d pr extproc('xmlCtxtResetPush')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d chunk * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
d xmlCtxtUseOptions...
- d pr 10i 0 extproc('xmlCtxtUseOptions')
+ d pr extproc('xmlCtxtUseOptions')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReadDoc pr extproc('xmlReadDoc')
d like(xmlDocPtr)
d cur * value options(*string) const xmlChar *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReadFile pr extproc('xmlReadFile')
d like(xmlDocPtr)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReadMemory pr extproc('xmlReadMemory')
d like(xmlDocPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReadFd pr extproc('xmlReadFd')
d like(xmlDocPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReadIO pr extproc('xmlReadIO')
d like(xmlDocPtr)
@@ -1290,7 +1317,7 @@
d ioctx * value void *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlCtxtReadDoc pr extproc('xmlCtxtReadDoc')
d like(xmlDocPtr)
@@ -1298,7 +1325,7 @@
d cur * value options(*string) const xmlChar *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlCtxtReadFile...
d pr extproc('xmlCtxtReadFile')
@@ -1306,25 +1333,25 @@
d ctxt value like(xmlParserCtxtPtr)
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlCtxtReadMemory...
d pr extproc('xmlCtxtReadMemory')
d like(xmlDocPtr)
d ctxt value like(xmlParserCtxtPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlCtxtReadFd pr extproc('xmlCtxtReadFd')
d like(xmlDocPtr)
d ctxt value like(xmlParserCtxtPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlCtxtReadIO pr extproc('xmlCtxtReadIO')
d like(xmlDocPtr)
@@ -1334,7 +1361,7 @@
d ioctx * value void *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
* Library wide options
@@ -1344,7 +1371,8 @@
* or disabled at compile-time.
* They used to be called XML_FEATURE_xxx but this clashed with Expat
- d xmlFeature s 10i 0 based(######typedef######) enum
+ d xmlFeature s based(######typedef######)
+ d like(xmlCenum)
d XML_WITH_THREAD...
d c 1
d XML_WITH_TREE c 2
@@ -1401,7 +1429,8 @@
d XML_WITH_LZMA c 33
d XML_WITH_NONE c 99999
- d xmlHasFeature pr 10i 0 extproc('xmlHasFeature')
+ d xmlHasFeature pr extproc('xmlHasFeature')
+ d like(xmlCint)
d feature value like(xmlFeature)
/endif XML_PARSER_H__
diff --git a/os400/libxmlrpg/parserInternals.rpgle b/os400/libxmlrpg/parserInternals.rpgle
index 6942b7d..6c8f388 100644
--- a/os400/libxmlrpg/parserInternals.rpgle
+++ b/os400/libxmlrpg/parserInternals.rpgle
@@ -11,6 +11,7 @@
/define XML_PARSER_INTERNALS_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/parser"
/include "libxmlrpg/HTMLparser"
/include "libxmlrpg/chvalid"
@@ -22,7 +23,8 @@
* boundary feature, use XML_PARSE_HUGE option to override it.
d xmlParserMaxDepth...
- d s 10u 0 import('xmlParserMaxDepth')
+ d s import('xmlParserMaxDepth')
+ d like(xmlCuint)
* XML_MAX_TEXT_LENGTH:
*
@@ -89,12 +91,13 @@
d s 9 import('xmlStringTextNoenc') \0 in 10th byte
d xmlStringComment...
- d s 7 import('xmlStringTextComment') \0 in 8th byte
+ d s 7 import('xmlStringComment') \0 in 8th byte
* Function to finish the work of the macros where needed.
- d xmlIsLetter pr 10i 0 extproc('xmlIsLetter')
- d c 10i 0 value
+ d xmlIsLetter pr extproc('xmlIsLetter')
+ d like(xmlCint)
+ d c value like(xmlCint)
* Parser context.
@@ -107,13 +110,13 @@
d pr extproc('xmlCreateURLParserCtxt')
d like(xmlParserCtxtPtr)
d filename * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlCreateMemoryParserCtxt...
d pr extproc('xmlCreateMemoryParserCtxt')
d like(xmlParserCtxtPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d xmlCreateEntityParserCtxt...
d pr extproc('xmlCreateEntityParserCtxt')
@@ -123,17 +126,20 @@
d base * value options(*string) const xmlChar *
d xmlSwitchEncoding...
- d pr 10i 0 extproc('xmlSwitchEncoding')
+ d pr extproc('xmlSwitchEncoding')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d enc value like(xmlCharEncoding)
d xmlSwitchToEncoding...
- d pr 10i 0 extproc('xmlSwitchToEncoding')
+ d pr extproc('xmlSwitchToEncoding')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d handler value like(xmlCharEncodingHandlerPtr)
d xmlSwitchInputEncoding...
- d pr 10i 0 extproc('xmlSwitchInputEncoding')
+ d pr extproc('xmlSwitchInputEncoding')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d input value like(xmlParserInputPtr)
d handler value like(xmlCharEncodingHandlerPtr)
@@ -152,7 +158,8 @@
d ctxt value like(xmlParserCtxtPtr)
d entity value like(xmlEntityPtr)
- d xmlPushInput pr 10i 0 extproc('xmlPushInput')
+ d xmlPushInput pr extproc('xmlPushInput')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d input value like(xmlParserInputPtr)
@@ -211,13 +218,13 @@
d xmlParseCharData...
d pr extproc('xmlParseCharData')
d ctxt value like(xmlParserCtxtPtr)
- d cdata 10i 0 value
+ d cdata value like(xmlCint)
d xmlParseExternalID...
d pr * extproc('xmlParseExternalID') xmlChar *
d ctxt value like(xmlParserCtxtPtr)
d publicID * xmlChar *(*)
- d strict 10i 0 value
+ d strict value like(xmlCint)
d xmlParseComment...
d pr extproc('xmlParseComment')
@@ -239,7 +246,8 @@
d ctxt value like(xmlParserCtxtPtr)
d xmlParseDefaultDecl...
- d pr 10i 0 extproc('xmlParseDefaultDecl')
+ d pr extproc('xmlParseDefaultDecl')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d value * xmlChar *(*)
@@ -254,12 +262,14 @@
d ctxt value like(xmlParserCtxtPtr)
d xmlParseEnumeratedType...
- d pr 10i 0 extproc('xmlParseEnumeratedType')
+ d pr extproc('xmlParseEnumeratedType')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d tree * value xmlEnumerationPtr *
d xmlParseAttributeType...
- d pr 10i 0 extproc('xmlParseAttributeType')
+ d pr extproc('xmlParseAttributeType')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d tree * value xmlEnumerationPtr *
@@ -272,24 +282,26 @@
d 'xmlParseElementMixedContentDecl')
d like(xmlElementContentPtr)
d ctxt value like(xmlParserCtxtPtr)
- d inputchk 10i 0 value
+ d inputchk value like(xmlCint)
d xmlParseElementChildrenContentDecl...
d pr extproc(
d 'xmlParseElementChildrenContentDecl')
d like(xmlElementContentPtr)
d ctxt value like(xmlParserCtxtPtr)
- d inputchk 10i 0 value
+ d inputchk value like(xmlCint)
d xmlParseElementContentDecl...
- d pr 10i 0 extproc('xmlParseElementContentDecl')
+ d pr extproc('xmlParseElementContentDecl')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d name * value options(*string) const xmlChar *
d result * value xmlElementContentPtr
d *
d xmlParseElementDecl...
- d pr 10i 0 extproc('xmlParseElementDecl')
+ d pr extproc('xmlParseElementDecl')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d xmlParseMarkupDecl...
@@ -297,7 +309,8 @@
d ctxt value like(xmlParserCtxtPtr)
d xmlParseCharRef...
- d pr 10i 0 extproc('xmlParseCharRef')
+ d pr extproc('xmlParseCharRef')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d xmlParseEntityRef...
@@ -358,7 +371,8 @@
d pr * extproc('xmlParseEncodingDecl') const xmlChar *
d ctxt value like(xmlParserCtxtPtr)
- d xmlParseSDDecl pr 10i 0 extproc('xmlParseSDDecl')
+ d xmlParseSDDecl pr extproc('xmlParseSDDecl')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d xmlParseXMLDecl...
@@ -410,7 +424,7 @@
d pr * extproc('xmlStringDecodeEntities') xmlChar *
d ctxt value like(xmlParserCtxtPtr)
d str * value options(*string) const xmlChar *
- d what 10i 0 value
+ d what value like(xmlCint)
d end value like(xmlChar)
d end2 value like(xmlChar)
d end3 value like(xmlChar)
@@ -419,15 +433,16 @@
d pr * extproc('xmlStringLenDecodeEntities')xmlChar *
d ctxt value like(xmlParserCtxtPtr)
d str * value options(*string) const xmlChar *
- d len 10i 0 value
- d what 10i 0 value
+ d len value like(xmlCint)
+ d what value like(xmlCint)
d end value like(xmlChar)
d end2 value like(xmlChar)
d end3 value like(xmlChar)
* Generated by MACROS on top of parser.c c.f. PUSH_AND_POP.
- d nodePush pr 10i 0 extproc('nodePush')
+ d nodePush pr extproc('nodePush')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d value value like(xmlNodePtr)
@@ -435,7 +450,8 @@
d like(xmlNodePtr)
d ctxt value like(xmlParserCtxtPtr)
- d inputPush pr 10i 0 extproc('inputPush')
+ d inputPush pr extproc('inputPush')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d value value like(xmlParserInputPtr)
@@ -446,18 +462,21 @@
d namePop pr * extproc('namePop') const xmlChar *
d ctxt value like(xmlParserCtxtPtr)
- d namePush pr 10i 0 extproc('namePush')
+ d namePush pr extproc('namePush')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d value * value options(*string) const xmlChar *
* other commodities shared between parser.c and parserInternals.
d xmlSkipBlankChars...
- d pr 10i 0 extproc('xmlSkipBlankChars')
+ d pr extproc('xmlSkipBlankChars')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d xmlStringCurrentChar...
- d pr 10i 0 extproc('xmlStringCurrentChar')
+ d pr extproc('xmlStringCurrentChar')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d cur * value options(*string) const xmlChar *
d len * value int *
@@ -467,24 +486,28 @@
d ctxt value like(xmlParserCtxtPtr)
d xmlCheckLanguageID...
- d pr 10i 0 extproc('xmlCheckLanguageID')
+ d pr extproc('xmlCheckLanguageID')
+ d like(xmlCint)
d lang * value options(*string) const xmlChar *
* Really core function shared with HTML parser.
- d xmlCurrentChar pr 10i 0 extproc('xmlCurrentChar')
+ d xmlCurrentChar pr extproc('xmlCurrentChar')
+ d like(xmlCint)
d ctxt value like(xmlParserCtxtPtr)
d len * value int *
d xmlCopyCharMultiByte...
- d pr 10i 0 extproc('xmlCopyCharMultiByte')
+ d pr extproc('xmlCopyCharMultiByte')
+ d like(xmlCint)
d out * value options(*string) xmlChar *
- d val 10i 0 value
+ d val value like(xmlCint)
- d xmlCopyChar pr 10i 0 extproc('xmlCopyChar')
- d len 10i 0 value
+ d xmlCopyChar pr extproc('xmlCopyChar')
+ d like(xmlCint)
+ d len value like(xmlCint)
d out * value options(*string) xmlChar *
- d val 10i 0 value
+ d val value like(xmlCint)
d xmlNextChar pr extproc('xmlNextChar')
d ctxt value like(xmlParserCtxtPtr)
@@ -560,8 +583,8 @@
d xmlDecodeEntities...
d pr * extproc('xmlDecodeEntities') xmlChar *
d ctxt value like(xmlParserCtxtPtr)
- d len 10i 0 value
- d what 10i 0 value
+ d len value like(xmlCint)
+ d what value like(xmlCint)
d end value like(xmlChar)
d end2 value like(xmlChar)
d end3 value like(xmlChar)
diff --git a/os400/libxmlrpg/pattern.rpgle b/os400/libxmlrpg/pattern.rpgle
index 2e881e5..ef02301 100644
--- a/os400/libxmlrpg/pattern.rpgle
+++ b/os400/libxmlrpg/pattern.rpgle
@@ -10,11 +10,13 @@
/define XML_PATTERN_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/tree"
- /include "libxmlrpg/dict"
/if defined(LIBXML_PATTERN_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+ /include "libxmlrpg/dict"
+
* xmlPattern:
*
* A compiled (XPath based) pattern to select nodes
@@ -28,7 +30,8 @@
* matching with this module
d xmlPatternFlags...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_PATTERN_DEFAULT... Simple pattern match
d c X'0000'
d XML_PATTERN_XPATH... Std XPath pattern
@@ -50,11 +53,12 @@
d like(xmlPatternPtr)
d pattern * value options(*string) const xmlChar *
d dict * value xmlDict *
- d flags 10i 0 value
+ d flags value like(xmlCint)
d namespaces * const xmlChar *(*)
d xmlPatternMatch...
- d pr 10i 0 extproc('xmlPatternMatch')
+ d pr extproc('xmlPatternMatch')
+ d like(xmlCint)
d comp value like(xmlPatternPtr)
d node value like(xmlNodePtr)
@@ -64,19 +68,23 @@
d s * based(######typedef######)
d xmlPatternStreamable...
- d pr 10i 0 extproc('xmlPatternStreamable')
+ d pr extproc('xmlPatternStreamable')
+ d like(xmlCint)
d comp value like(xmlPatternPtr)
d xmlPatternMaxDepth...
- d pr 10i 0 extproc('xmlPatternMaxDepth')
+ d pr extproc('xmlPatternMaxDepth')
+ d like(xmlCint)
d comp value like(xmlPatternPtr)
d xmlPatternMinDepth...
- d pr 10i 0 extproc('xmlPatternMinDepth')
+ d pr extproc('xmlPatternMinDepth')
+ d like(xmlCint)
d comp value like(xmlPatternPtr)
d xmlPatternFromRoot...
- d pr 10i 0 extproc('xmlPatternFromRoot')
+ d pr extproc('xmlPatternFromRoot')
+ d like(xmlCint)
d comp value like(xmlPatternPtr)
d xmlPatternGetStreamCtxt...
@@ -89,28 +97,33 @@
d stream value like(xmlStreamCtxtPtr)
d xmlStreamPushNode...
- d pr 10i 0 extproc('xmlStreamPushNode')
+ d pr extproc('xmlStreamPushNode')
+ d like(xmlCint)
d stream value like(xmlStreamCtxtPtr)
d name * value options(*string) const xmlChar *
d ns * value options(*string) const xmlChar *
- d nodeType 10i 0 value
+ d nodeType value like(xmlCint)
- d xmlStreamPush pr 10i 0 extproc('xmlStreamPush')
+ d xmlStreamPush pr extproc('xmlStreamPush')
+ d like(xmlCint)
d stream value like(xmlStreamCtxtPtr)
d name * value options(*string) const xmlChar *
d ns * value options(*string) const xmlChar *
d xmlStreamPushAttr...
- d pr 10i 0 extproc('xmlStreamPushAttr')
+ d pr extproc('xmlStreamPushAttr')
+ d like(xmlCint)
d stream value like(xmlStreamCtxtPtr)
d name * value options(*string) const xmlChar *
d ns * value options(*string) const xmlChar *
- d xmlStreamPop pr 10i 0 extproc('xmlStreamPop')
+ d xmlStreamPop pr extproc('xmlStreamPop')
+ d like(xmlCint)
d stream value like(xmlStreamCtxtPtr)
d xmlStreamWantsAnyNode...
- d pr 10i 0 extproc('xmlStreamWantsAnyNode')
+ d pr extproc('xmlStreamWantsAnyNode')
+ d like(xmlCint)
d stream value like(xmlStreamCtxtPtr)
/endif LIBXML_PATTERN_ENBLD
diff --git a/os400/libxmlrpg/relaxng.rpgle b/os400/libxmlrpg/relaxng.rpgle
index af662aa..15b8471 100644
--- a/os400/libxmlrpg/relaxng.rpgle
+++ b/os400/libxmlrpg/relaxng.rpgle
@@ -9,11 +9,13 @@
/define XML_RELAX_NG__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/hash"
- /include "libxmlrpg/xmlstring"
/if defined(LIBXML_SCHEMAS_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/hash"
+ /include "libxmlrpg/xmlstring"
+
d xmlRelaxNGPtr s * based(######typedef######)
* xmlRelaxNGValidityErrorFunc:
@@ -51,7 +53,8 @@
* List of possible Relax NG validation errors
d xmlRelaxNGValidErr...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_RELAXNG_OK...
d c 0
d XML_RELAXNG_ERR_MEMORY...
@@ -138,7 +141,8 @@
* List of possible Relax NG Parser flags
d xmlRelaxNGParserFlag...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_RELAXNGP_NONE...
d c 0
d XML_RELAXNGP_FREE_DOC...
@@ -147,7 +151,8 @@
d c 2
d xmlRelaxNGInitTypes...
- d pr 10i 0 extproc('xmlRelaxNGInitTypes')
+ d pr extproc('xmlRelaxNGInitTypes')
+ d like(xmlCint)
d xmlRelaxNGCleanupTypes...
d pr extproc('xmlRelaxNGCleanupTypes')
@@ -164,7 +169,7 @@
d pr extproc('xmlRelaxNGNewMemParserCtxt')
d like(xmlRelaxNGParserCtxtPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d xmlRelaxNGNewDocParserCtxt...
d pr extproc('xmlRelaxNGNewDocParserCtxt')
@@ -172,9 +177,10 @@
d doc value like(xmlDocPtr)
d xmlRelaxParserSetFlag...
- d pr 10i 0 extproc('xmlRelaxParserSetFlag')
+ d pr extproc('xmlRelaxParserSetFlag')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGParserCtxtPtr)
- d flag 10i 0 value
+ d flag value like(xmlCint)
d xmlRelaxNGFreeParserCtxt...
d pr extproc('xmlRelaxNGFreeParserCtxt')
@@ -190,7 +196,8 @@
d ctx * value void *
d xmlRelaxNGGetParserErrors...
- d pr 10i 0 extproc('xmlRelaxNGGetParserErrors')
+ d pr extproc('xmlRelaxNGGetParserErrors')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGParserCtxtPtr)
d err like(xmlRelaxNGValidityErrorFunc)
d warn like(xmlRelaxNGValidityWarningFunc)
@@ -236,7 +243,8 @@
d ctx * value void *
d xmlRelaxNGGetValidErrors...
- d pr 10i 0 extproc('xmlRelaxNGGetValidErrors')
+ d pr extproc('xmlRelaxNGGetValidErrors')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGValidCtxtPtr)
d err like(xmlRelaxNGValidityErrorFunc)
d warn like(xmlRelaxNGValidityWarningFunc)
@@ -259,36 +267,41 @@
d ctxt value like(xmlRelaxNGValidCtxtPtr)
d xmlRelaxNGValidateDoc...
- d pr 10i 0 extproc('xmlRelaxNGValidateDoc')
+ d pr extproc('xmlRelaxNGValidateDoc')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGValidCtxtPtr)
d doc value like(xmlDocPtr)
* Interfaces for progressive validation when possible
d xmlRelaxNGValidatePushElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlRelaxNGValidatePushElement')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
d xmlRelaxNGValidatePushCData...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlRelaxNGValidatePushCData')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGValidCtxtPtr)
d data * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlRelaxNGValidatePopElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlRelaxNGValidatePopElement')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
d xmlRelaxNGValidateFullElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlRelaxNGValidateFullElement')
+ d like(xmlCint)
d ctxt value like(xmlRelaxNGValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
diff --git a/os400/libxmlrpg/schemasInternals.rpgle b/os400/libxmlrpg/schemasInternals.rpgle
index edeea5b..765ed00 100644
--- a/os400/libxmlrpg/schemasInternals.rpgle
+++ b/os400/libxmlrpg/schemasInternals.rpgle
@@ -2,7 +2,7 @@
* Description: internal interfaces for the XML Schemas handling
* and schema validity checking
* The Schemas development is a Work In Progress.
- * Some of those interfaces are not garanteed to be API or
+ * Some of those interfaces are not guaranteed to be API or
* ABI stable !
*
* Copy: See Copyright for the status of this software.
@@ -15,12 +15,15 @@
/include "libxmlrpg/xmlversion"
/if defined(LIBXML_SCHEMAS_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/xmlregexp"
/include "libxmlrpg/hash"
/include "libxmlrpg/dict"
d xmlSchemaValType...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_SCHEMAS_UNKNOWN...
d c 0
d XML_SCHEMAS_STRING...
@@ -119,7 +122,8 @@
* XML Schemas defines multiple type of types.
d xmlSchemaTypeType...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_SCHEMA_TYPE_BASIC... A builtin datatype
d c 1
d XML_SCHEMA_TYPE_ANY...
@@ -202,7 +206,8 @@
d c 2001
d xmlSchemaContentType...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_SCHEMA_CONTENT_UNKNOWN...
d c 0
d XML_SCHEMA_CONTENT_EMPTY...
@@ -357,13 +362,13 @@
d annot like(xmlSchemaAnnotPtr)
*
d base like(xmlSchemaTypePtr) Deprecated
- d occurs 10i 0 Deprecated
+ d occurs like(xmlCint) Deprecated
d defValue * const xmlChar *
d subtypes like(xmlSchemaTypePtr) The type definition
d node like(xmlNodePtr)
d targetNamespace... const xmlChar *
d *
- d flags 10i 0
+ d flags like(xmlCint)
d refPrefix * const xmlChar *
d defVal like(xmlSchemaValPtr) Compiled constraint
d refDecl like(xmlSchemaAttributePtr) Deprecated
@@ -413,14 +418,14 @@
d id * const xmlChar *
d annot like(xmlSchemaAnnotPtr)
d node like(xmlNodePtr)
- d minOccurs 10i 0 Deprecated; not used
- d maxOccurs 10i 0 Deprecated; not used
+ d minOccurs like(xmlCint) Deprecated; not used
+ d maxOccurs like(xmlCint) Deprecated; not used
d processContents...
- d 10i 0
- d any 10i 0 Ns constraint ##any?
+ d like(xmlCint)
+ d any like(xmlCint) Ns constraint ##any?
d nsSet like(xmlSchemaWildcardNsPtr) Allowed namspce list
d negNsSet like(xmlSchemaWildcardNsPtr) Negated namespace
- d flags 10i 0 Deprecated; not used
+ d flags like(xmlCint) Deprecated; not used
* XML_SCHEMAS_ATTRGROUP_WILDCARD_BUILDED:
*
@@ -478,7 +483,7 @@
*
d attributes like(xmlSchemaAttributePtr) Deprecated; not used
d node like(xmlNodePtr)
- d flags 10i 0
+ d flags like(xmlCint)
d attributeWildcard...
d like(xmlSchemaWildcardPtr)
d refPrefix * const xmlChar *
@@ -753,21 +758,21 @@
d subtypes like(xmlSchemaTypePtr)
d attributes like(xmlSchemaAttributePtr) Deprecated; not used
d node like(xmlNodePtr)
- d minOccurs 10i 0 Deprecated; not used
- d maxOccurs 10i 0 Deprecated; not used
+ d minOccurs like(xmlCint) Deprecated; not used
+ d maxOccurs like(xmlCint) Deprecated; not used
*
- d flags 10i 0
+ d flags like(xmlCint)
d contentType like(xmlSchemaContentType)
d base * const xmlChar *
d baseNs * const xmlChar *
d baseType like(xmlSchemaTypePtr) Base type component
d facets like(xmlSchemaFacetPtr) Local facets
d redef like(xmlSchemaTypePtr) Deprecated; not used
- d recurse 10i 0 Obsolete
+ d recurse like(xmlCint) Obsolete
d attributeUses like(xmlSchemaAttributeLinkPtr) Deprecated; not used
d attributeWildcard...
d like(xmlSchemaWildcardPtr)
- d builtInType 10i 0 Built-in types type
+ d builtInType like(xmlCint) Built-in types type
d memberTypes like(xmlSchemaTypeLinkPtr) Union member-types
d facetSet like(xmlSchemaFacetLinkPtr) All facets
d refPrefix * const xmlChar *
@@ -937,10 +942,10 @@
d subtypes like(xmlSchemaTypePtr)
d attributes like(xmlSchemaAttributePtr) Deprecated; not used
d node like(xmlNodePtr)
- d minOccurs 10i 0 Deprecated; not used
- d maxOccurs 10i 0 Deprecated; not used
+ d minOccurs like(xmlCint) Deprecated; not used
+ d maxOccurs like(xmlCint) Deprecated; not used
*
- d flags 10i 0
+ d flags like(xmlCint)
d targetNamespace...
d * const xmlChar *
d namedType * const xmlChar *
@@ -995,8 +1000,8 @@
d id * const xmlChar *
d annot like(xmlSchemaAnnotPtr)
d node like(xmlNodePtr)
- d fixed 10i 0 _FACET_PRESERVE, etc
- d whitespace 10i 0
+ d fixed like(xmlCint) _FACET_PRESERVE, etc
+ d whitespace like(xmlCint)
d val like(xmlSchemaValPtr) Compiled value
d regexp like(xmlRegexpPtr) Regexp for patterns
@@ -1106,7 +1111,7 @@
d id * const xmlChar *
d doc like(xmlDocPtr)
d annot like(xmlSchemaAnnotPtr)
- d flags 10i 0
+ d flags like(xmlCint)
*
d typeDecl like(xmlHashTablePtr)
d attrDecl like(xmlHashTablePtr)
@@ -1120,8 +1125,8 @@
d groupDecl like(xmlHashTablePtr)
d dict like(xmlDictPtr)
d includes * void *
- d preserve 10i 0 Do not free doc ?
- d counter 10i 0 For name uniqueness
+ d preserve like(xmlCint) Do not free doc ?
+ d counter like(xmlCint) For name uniqueness
d idcDef like(xmlHashTablePtr) All id-constr. defs
d volatiles * void *
diff --git a/os400/libxmlrpg/schematron.rpgle b/os400/libxmlrpg/schematron.rpgle
index ff8ea62..8271ca5 100644
--- a/os400/libxmlrpg/schematron.rpgle
+++ b/os400/libxmlrpg/schematron.rpgle
@@ -12,10 +12,12 @@
/if defined(LIBXML_SCHEMATRON_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
d xmlSchematronValidOptions...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_SCHEMATRON_OUT_QUIET... Quiet no report
d c X'0001'
d XML_SCHEMATRON_OUT_TEXT... Build textual report
@@ -78,7 +80,7 @@
d 'xmlSchematronNewMemParserCtxt')
d like(xmlSchematronParserCtxtPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d xmlSchematronNewDocParserCtxt...
d pr extproc(
@@ -101,12 +103,13 @@
d err value
d like(xmlSchematronValidityErrorFunc)
d warn value like(
- d xmlSchematronValidityWarningFunc)
+ d xmlSchematronValidityWarningFunc)
d ctx * value void *
d xmlSchematronGetParserErrors...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchematronGetParserErrors')
+ d like(xmlCint)
d ctxt value
d like(xmlSchematronParserCtxtPtr)
d err like(xmlSchematronValidityErrorFunc)
@@ -115,7 +118,8 @@
d ctx * void *(*)
d xmlSchematronIsValid...
- d pr 10i 0 extproc('xmlSchematronIsValid')
+ d pr extproc('xmlSchematronIsValid')
+ d like(xmlCint)
d ctxt value like(xmlSchematronValidCtxtPtr)
/endif
@@ -150,8 +154,9 @@
d ctx * value void *
d xmlSchematronGetValidErrors...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchematronGetValidErrors')
+ d like(xmlCint)
d ctxt value like(xmlSchematronValidCtxtPtr)
d err like(xmlSchematronValidityErrorFunc)
d warn like(
@@ -159,19 +164,22 @@
d ctx * void *(*)
d xmlSchematronSetValidOptions...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchematronSetValidOptions')
+ d like(xmlCint)
d ctxt value like(xmlSchematronValidCtxtPtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSchematronValidCtxtGetOptions...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchematronValidCtxtGetOptions')
+ d like(xmlCint)
d ctxt value like(xmlSchematronValidCtxtPtr)
d xmlSchematronValidateOneElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchematronValidateOneElement')
+ d like(xmlCint)
d ctxt value like(xmlSchematronValidCtxtPtr)
d elem value like(xmlNodePtr)
/endif
@@ -180,14 +188,15 @@
d pr extproc('xmlSchematronNewValidCtxt')
d like(xmlSchematronValidCtxtPtr)
d schema value like(xmlSchematronPtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSchematronFreeValidCtxt...
d pr extproc('xmlSchematronFreeValidCtxt')
d ctxt value like(xmlSchematronValidCtxtPtr)
d xmlSchematronValidateDoc...
- d pr 10i 0 extproc('xmlSchematronValidateDoc')
+ d pr extproc('xmlSchematronValidateDoc')
+ d like(xmlCint)
d ctxt value like(xmlSchematronValidCtxtPtr)
d instance value like(xmlDocPtr)
diff --git a/os400/libxmlrpg/threads.rpgle b/os400/libxmlrpg/threads.rpgle
index 07d4278..124798b 100644
--- a/os400/libxmlrpg/threads.rpgle
+++ b/os400/libxmlrpg/threads.rpgle
@@ -10,6 +10,7 @@
/define XML_THREADS_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
* xmlMutex are a simple mutual exception locks.
@@ -55,10 +56,12 @@
d xmlUnlockLibrary...
d pr extproc('xmlUnlockLibrary')
- d xmlGetThreadId pr 10i 0 extproc('xmlGetThreadId')
+ d xmlGetThreadId pr extproc('xmlGetThreadId')
+ d like(xmlCint)
d xmlIsMainThread...
- d pr 10i 0 extproc('xmlIsMainThread')
+ d pr extproc('xmlIsMainThread')
+ d like(xmlCint)
d xmlCleanupThreads...
d pr extproc('xmlCleanupThreads')
diff --git a/os400/libxmlrpg/tree.rpgle b/os400/libxmlrpg/tree.rpgle
index 8b4981a..6512778 100644
--- a/os400/libxmlrpg/tree.rpgle
+++ b/os400/libxmlrpg/tree.rpgle
@@ -11,6 +11,7 @@
/define XML_TREE_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/xmlstring"
@@ -66,7 +67,8 @@
* need or double it's allocated size each time it is found too small.
d xmlBufferAllocationScheme...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_BUFFER_ALLOC_DOUBLEIT...
d c 0
d XML_BUFFER_ALLOC_EXACT...
@@ -88,8 +90,8 @@
d xmlBuffer ds based(xmlBufferPtr)
d align qualified
d content * xmlChar *
- d use 10u 0 The buffer size used
- d size 10u 0 The buffer size
+ d use like(xmlCuint)
+ d size like(xmlCuint)
d alloc like(xmlBufferAllocationScheme) The realloc method
d contentIO * xmlChar *
@@ -109,12 +111,14 @@
d xmlBufEnd pr * extproc('xmlBufEnd') xmlChar *
d buf value like(xmlBufPtr) const
- d xmlBufUse pr 10u 0 extproc('xmlBufUse') size_t
+ d xmlBufUse pr extproc('xmlBufUse')
+ d like(xmlCsize_t)
d buf value like(xmlBufPtr) const
- d xmlBufShrink pr 10u 0 extproc('xmlBufShrink') size_t
+ d xmlBufShrink pr extproc('xmlBufShrink')
+ d like(xmlCsize_t)
d buf value like(xmlBufPtr)
- d len 10u 0 value size_t
+ d len value like(xmlCsize_t)
* LIBXML2_NEW_BUFFER:
*
@@ -147,7 +151,8 @@
* Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
* be deprecated to use an XML_DTD_NODE.
- d xmlElementType s 10i 0 based(######typedef######) enum
+ d xmlElementType s based(######typedef######)
+ d like(xmlCenum)
d XML_ELEMENT_NODE...
d c 1
d XML_ATTRIBUTE_NODE...
@@ -209,7 +214,8 @@
* A DTD Attribute type definition.
d xmlAttributeType...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_ATTRIBUTE_CDATA...
d c 1
d XML_ATTRIBUTE_ID...
@@ -236,7 +242,8 @@
* A DTD Attribute default definition.
d xmlAttributeDefault...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_ATTRIBUTE_NONE...
d c 1
d XML_ATTRIBUTE_REQUIRED...
@@ -295,7 +302,8 @@
* Possible definitions of element content types.
d xmlElementContentType...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_ELEMENT_CONTENT_PCDATA...
d c 1
d XML_ELEMENT_CONTENT_ELEMENT...
@@ -310,7 +318,8 @@
* Possible definitions of element content occurrences.
d xmlElementContentOccur...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_ELEMENT_CONTENT_ONCE...
d c 1
d XML_ELEMENT_CONTENT_OPT...
@@ -344,7 +353,8 @@
* The different possibilities for an element content type.
d xmlElementTypeVal...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_ELEMENT_TYPE_UNDEFINED...
d c 0
d XML_ELEMENT_TYPE_EMPTY...
@@ -466,7 +476,7 @@
d next like(xmlIdPtr) Next ID
d attr like(xmlAttrPtr) Attribute holding it
d name * const xmlChar *
- d lineno 10i 0 Line # if not avail
+ d lineno like(xmlCint) Line # if not avail
d doc like(xmlDocPtr) Doc holding ID
* xmlRef:
@@ -481,7 +491,7 @@
d value * const xmlChar *
d attr like(xmlAttrPtr) Attribute holding it
d name * const xmlChar *
- d lineno 10i 0 Line # if not avail
+ d lineno like(xmlCint) Line # if not avail
* xmlNode:
*
@@ -503,8 +513,8 @@
d properties like(xmlAttrPtr) Properties list
d nsDef like(xmlNsPtr) Node ns definitions
d psvi * Type/PSVI info
- d line 5u 0 Line number
- d extra 5u 0 Data for XPath/XSLT
+ d line like(xmlCushort)
+ d extra like(xmlCushort) Data for XPath/XSLT
* xmlDocProperty
*
@@ -512,7 +522,8 @@
* Some of them are linked to similary named xmlParserOption
d xmlDocProperties...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_DOC_WELLFORMED...
d c X'00000001'
d XML_DOC_NSVALID...
@@ -543,8 +554,8 @@
d next like(xmlNodePtr) next sibling link
d prev like(xmlNodePtr) previous sibling lnk
d doc like(xmlDocPtr) Reference to itself
- d compression 10i 0 zlib compression lev
- d standalone 10i 0
+ d compression like(xmlCint) zlib compression lev
+ d standalone like(xmlCint)
d intSubset like(xmlDtdPtr) Internal subset
d extSubset like(xmlDtdPtr) External subset
d oldns like(xmlNsPtr) Global namespace
@@ -553,11 +564,11 @@
d ids * IDs hash table
d refs * IDREFs hash table
d URL * const xmlChar *
- d charset 10i 0 In-memory encoding
+ d charset like(xmlCint) In-memory encoding
d dict * xmlDictPtr for names
d psvi * Type/PSVI ino
- d parseFlags 10i 0 xmlParserOption's
- d properties 10i 0 xmlDocProperties
+ d parseFlags like(xmlCint) xmlParserOption's
+ d properties like(xmlCint) xmlDocProperties
* xmlDOMWrapAcquireNsFunction:
* @ctxt: a DOM wrapper context
@@ -584,7 +595,7 @@
d ds based(xmlDOMWrapCtxtPtr)
d align qualified
d #private * void *
- d type 10i 0
+ d type like(xmlCint)
d namespaceMap * void *
d getNsForNodeFunc...
d like(xmlDOMWrapAcquireNsFunction)
@@ -616,9 +627,10 @@
/endif
/if defined(XML_TESTVAL)
d xmlValidateNCName...
- d pr 10i 0 extproc('xmlValidateNCName')
+ d pr extproc('xmlValidateNCName')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
- d space 10i 0 value
+ d space value like(xmlCint)
/undefine XML_TESTVAL
/endif
@@ -630,19 +642,22 @@
/endif
/if defined(XML_TESTVAL)
d xmlValidateQName...
- d pr 10i 0 extproc('xmlValidateQName')
+ d pr extproc('xmlValidateQName')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
- d space 10i 0 value
+ d space value like(xmlCint)
d xmlValidateName...
- d pr 10i 0 extproc('xmlValidateName')
+ d pr extproc('xmlValidateName')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
- d space 10i 0 value
+ d space value like(xmlCint)
d xmlValidateNMToken...
- d pr 10i 0 extproc('xmlValidateNMToken')
+ d pr extproc('xmlValidateNMToken')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
- d space 10i 0 value
+ d space value like(xmlCint)
/undefine XML_TESTVAL
/endif
@@ -651,7 +666,7 @@
d ncname * value options(*string) const xmlChar *
d prefix * value options(*string) const xmlChar *
d memory 65535 options(*varsize: *omit) xmlChar[]
- d len 10i 0 value memory length
+ d len value like(xmlCint) memory length
d xmlSplitQName2 pr * extproc('xmlSplitQName2') xmlChar *
d name * value options(*string) const xmlChar *
@@ -659,7 +674,7 @@
d xmlSplitQName3 pr * extproc('xmlSplitQName3') const xmlChar *
d name * value options(*string) const xmlChar *
- d len 10i 0
+ d len like(xmlCint)
* Handling Buffers, the old ones see @xmlBuf for the new ones.
@@ -681,53 +696,61 @@
d xmlBufferCreateSize...
d pr extproc('xmlBufferCreateSize')
d like(xmlBufferPtr)
- d size 10u 0 value size_t
+ d size value like(xmlCsize_t)
d xmlBufferCreateStatic...
d pr extproc('xmlBufferCreateStatic')
d like(xmlBufferPtr)
d mem * value
- d size 10u 0 value size_t
+ d size value like(xmlCsize_t)
d xmlBufferResize...
- d pr 10i 0 extproc('xmlBufferResize')
+ d pr extproc('xmlBufferResize')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
- d size 10u 0 value size_t
+ d size value like(xmlCsize_t)
d xmlBufferFree pr extproc('xmlBufferFree')
d buf value like(xmlBufferPtr)
- d xmlBufferDump pr 10i 0 extproc('xmlBufferDump')
+ d xmlBufferDump pr extproc('xmlBufferDump')
+ d like(xmlCint)
d file * value FILE *
d buf value like(xmlBufferPtr)
- d xmlBufferAdd pr 10i 0 extproc('xmlBufferAdd')
+ d xmlBufferAdd pr extproc('xmlBufferAdd')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
d str * value options(*string) const xmlChar *
- d len 10i 0 value str length
+ d len value like(xmlCint) str length
d xmlBufferAddHead...
- d pr 10i 0 extproc('xmlBufferAddHead')
+ d pr extproc('xmlBufferAddHead')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
d str * value options(*string) const xmlChar *
- d len 10i 0 value str length
+ d len value like(xmlCint) str length
- d xmlBufferCat pr 10i 0 extproc('xmlBufferCat')
+ d xmlBufferCat pr extproc('xmlBufferCat')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
d str * value options(*string) const xmlChar *
- d xmlBufferCCat pr 10i 0 extproc('xmlBufferCCat')
+ d xmlBufferCCat pr extproc('xmlBufferCCat')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
d str * value options(*string) const char *
d xmlBufferShrink...
- d pr 10i 0 extproc('xmlBufferShrink')
+ d pr extproc('xmlBufferShrink')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
- d len 10u 0 value str length
+ d len value like(xmlCuint)
- d xmlBufferGrow pr 10i 0 extproc('xmlBufferGrow')
+ d xmlBufferGrow pr extproc('xmlBufferGrow')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
- d len 10u 0 value str length
+ d len value like(xmlCuint)
d xmlBufferEmpty pr extproc('xmlBufferEmpty')
d buf value like(xmlBufferPtr)
@@ -748,7 +771,8 @@
d like(xmlBufferAllocationScheme)
d xmlBufferLength...
- d pr 10i 0 extproc('xmlBufferLength')
+ d pr extproc('xmlBufferLength')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
* Creating/freeing new structures.
@@ -873,7 +897,7 @@
d xmlCopyDoc pr extproc('xmlCopyDoc')
d like(xmlDocPtr)
d doc value like(xmlDocPtr)
- d recursive 10i 0 value
+ d recursive value like(xmlCint)
/undefine XML_TESTVAL
/endif
@@ -947,12 +971,12 @@
d like(xmlNodePtr)
d doc value like(xmlDocPtr)
d content * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlNewTextLen pr extproc('xmlNewTextLen')
d like(xmlNodePtr)
d content * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlNewDocComment...
d pr extproc('xmlNewDocComment')
@@ -969,7 +993,7 @@
d like(xmlNodePtr)
d doc value like(xmlDocPtr)
d content * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlNewCharRef pr extproc('xmlNewCharRef')
d like(xmlNodePtr)
@@ -985,13 +1009,13 @@
d xmlCopyNode pr extproc('xmlCopyNode')
d like(xmlNodePtr)
d node value like(xmlNodePtr)
- d recursive 10i 0 value
+ d recursive value like(xmlCint)
d xmlDocCopyNode pr extproc('xmlDocCopyNode')
d like(xmlNodePtr)
d node value like(xmlNodePtr)
d doc value like(xmlDocPtr)
- d recursive 10i 0 value
+ d recursive value like(xmlCint)
d xmlDocCopyNodeList...
d pr extproc('xmlDocCopyNodeList')
@@ -1030,7 +1054,8 @@
* Navigating.
d xmlNewDocFragment...
- d xmlGetLineNo pr 20i 0 extproc('xmlGetLineNo')
+ d xmlGetLineNo pr extproc('xmlGetLineNo')
+ d like(xmlClong)
d node value like(xmlNodePtr)
/if defined(LIBXML_TREE_ENABLED)
@@ -1055,10 +1080,12 @@
d like(xmlNodePtr)
d parent value like(xmlNodePtr)
- d xmlNodeIsText pr 10i 0 extproc('xmlNodeIsText')
+ d xmlNodeIsText pr extproc('xmlNodeIsText')
+ d like(xmlCint)
d node value like(xmlNodePtr)
- d xmlIsBlankNode pr 10i 0 extproc('xmlIsBlankNode')
+ d xmlIsBlankNode pr extproc('xmlIsBlankNode')
+ d like(xmlCint)
d node value like(xmlNodePtr)
* Changing the structure.
@@ -1145,10 +1172,11 @@
d first value like(xmlNodePtr)
d second value like(xmlNodePtr)
- d xmlTextConcat pr 10i 0 extproc('xmlTextConcat')
+ d xmlTextConcat pr extproc('xmlTextConcat')
+ d like(xmlCint)
d node value like(xmlNodePtr)
d content * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlFreeNodeList...
d pr extproc('xmlFreeNodeList')
@@ -1272,20 +1300,20 @@
d like(xmlNodePtr)
d doc value like(xmlDocPtr)
d value * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlNodeListGetString...
d pr * extproc('xmlNodeListGetString') xmlChar *
d doc value like(xmlDocPtr)
d list value like(xmlNodePtr)
- d inLine 10i 0 value
+ d inLine value like(xmlCint)
/if defined(LIBXML_TREE_ENABLED)
d xmlNodeListGetRawString...
d pr * extproc('xmlNodeListGetRawString') xmlChar *
d doc value like(xmlDocPtr)
d list value like(xmlNodePtr)
- d inLine 10i 0 value
+ d inLine value like(xmlCint)
/endif LIBXML_TREE_ENABLED
d xmlNodeSetContent...
@@ -1298,7 +1326,7 @@
d pr extproc('xmlNodeSetContentLen')
d cur value like(xmlNodePtr)
d content * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
/endif LIBXML_TREE_ENABLED
d xmlNodeAddContent...
@@ -1310,19 +1338,21 @@
d pr extproc('xmlNodeAddContentLen')
d cur value like(xmlNodePtr)
d content * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlNodeGetContent...
d pr * extproc('xmlNodeGetContent') xmlChar *
d cur value like(xmlNodePtr)
d xmlNodeBufGetContent...
- d pr 10i 0 extproc('xmlNodeBufGetContent')
+ d pr extproc('xmlNodeBufGetContent')
+ d like(xmlCint)
d buffer value like(xmlBufferPtr)
d cur value like(xmlNodePtr)
d xmlBufGetNodeContent...
- d pr 10i 0 extproc('xmlBufGetNodeContent')
+ d pr extproc('xmlBufGetNodeContent')
+ d like(xmlCint)
d buf value like(xmlBufPtr)
d cur value like(xmlNodePtr)
@@ -1330,7 +1360,8 @@
d cur value like(xmlNodePtr)
d xmlNodeGetSpacePreserve...
- d pr 10i 0 extproc('xmlNodeGetSpacePreserve')
+ d pr extproc('xmlNodeGetSpacePreserve')
+ d like(xmlCint)
d cur value like(xmlNodePtr)
/if defined(LIBXML_TREE_ENABLED)
@@ -1341,7 +1372,7 @@
d xmlNodeSetSpacePreserve...
d pr extproc('xmlNodeSetSpacePreserve')
d cur value like(xmlNodePtr)
- d val 10i 0 value
+ d val value like(xmlCint)
/endif LIBXML_TREE_ENABLED
d xmlNodeGetBase pr * extproc('xmlNodeGetBase') xmlChar *
@@ -1363,7 +1394,8 @@
* Removing content.
- d xmlRemoveProp pr 10i 0 extproc('xmlRemoveProp')
+ d xmlRemoveProp pr extproc('xmlRemoveProp')
+ d like(xmlCint)
d cur value like(xmlAttrPtr)
/if defined(LIBXML_TREE_ENABLED)
@@ -1372,12 +1404,14 @@
/define XML_TESTVAL
/endif
/if defined(XML_TESTVAL)
- d xmlUnsetNsProp pr 10i 0 extproc('xmlUnsetNsProp')
+ d xmlUnsetNsProp pr extproc('xmlUnsetNsProp')
+ d like(xmlCint)
d node value like(xmlNodePtr)
d ns value like(xmlNsPtr)
d name * value options(*string) const xmlChar *
- d xmlUnsetProp pr 10i 0 extproc('xmlUnsetProp')
+ d xmlUnsetProp pr extproc('xmlUnsetProp')
+ d like(xmlCint)
d node value like(xmlNodePtr)
d name * value options(*string) const xmlChar *
@@ -1414,7 +1448,8 @@
* Namespace handling.
d xmlReconciliateNs...
- d pr 10i 0 extproc('xmlReconciliateNs')
+ d pr extproc('xmlReconciliateNs')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d tree value like(xmlNodePtr)
/endif
@@ -1427,37 +1462,39 @@
d pr extproc('xmlDocDumpFormatMemory')
d cur value like(xmlDocPtr)
d mem * xmlChar * (*)
- d size 10i 0
- d format 10i 0 value
+ d size like(xmlCint)
+ d format value like(xmlCint)
d xmlDocDumpMemory...
d pr extproc('xmlDocDumpMemory')
d cur value like(xmlDocPtr)
d mem * xmlChar * (*)
- d size 10i 0
+ d size like(xmlCint)
d xmlDocDumpMemoryEnc...
d pr extproc('xmlDocDumpMemoryEnc')
d out_doc value like(xmlDocPtr)
d doc_txt_ptr * xmlChar * (*)
- d doc_txt_len 10i 0
+ d doc_txt_len like(xmlCint)
d txt_encoding * value options(*string) const char *
d xmlDocDumpFormatMemoryEnc...
d pr extproc('xmlDocDumpFormatMemoryEnc')
d out_doc value like(xmlDocPtr)
d doc_txt_ptr * xmlChar * (*)
- d doc_txt_len 10i 0
+ d doc_txt_len like(xmlCint)
d txt_encoding * value options(*string) const char *
- d format 10i 0 value
+ d format value like(xmlCint)
d xmlDocFormatDump...
- d pr 10i 0 extproc('xmlDocFormatDump')
+ d pr extproc('xmlDocFormatDump')
+ d like(xmlCint)
d f * value FILE *
d cur value like(xmlDocPtr)
- d format 10i 0 value
+ d format value like(xmlCint)
- d xmlDocDump pr 10i 0 extproc('xmlDocDump')
+ d xmlDocDump pr extproc('xmlDocDump')
+ d like(xmlCint)
d f * value FILE *
d cur value like(xmlDocPtr)
@@ -1466,59 +1503,67 @@
d doc value like(xmlDocPtr)
d cur value like(xmlNodePtr)
- d xmlSaveFile pr 10i 0 extproc('xmlSaveFile')
+ d xmlSaveFile pr extproc('xmlSaveFile')
+ d like(xmlCint)
d filename * value options(*string) const char *
d cur value like(xmlDocPtr)
d xmlSaveFormatFile...
- d pr 10i 0 extproc('xmlSaveFormatFile')
+ d pr extproc('xmlSaveFormatFile')
+ d like(xmlCint)
d filename * value options(*string) const char *
d cur value like(xmlDocPtr)
- d format 10i 0 value
+ d format value like(xmlCint)
- d xmlBufNodeDump pr 10u 0 extproc('xmlBufNodeDump') size_t
+ d xmlBufNodeDump pr extproc('xmlBufNodeDump')
+ d like(xmlCsize_t)
d buf value like(xmlBufPtr)
d doc value like(xmlDocPtr)
d cur value like(xmlNodePtr)
- d level 10i 0 value
- d format 10i 0 value
+ d level value like(xmlCint)
+ d format value like(xmlCint)
- d xmlNodeDump pr 10i 0 extproc('xmlNodeDump')
+ d xmlNodeDump pr extproc('xmlNodeDump')
+ d like(xmlCint)
d buf value like(xmlBufferPtr)
d doc value like(xmlDocPtr)
d cur value like(xmlNodePtr)
- d level 10i 0 value
- d format 10i 0 value
+ d level value like(xmlCint)
+ d format value like(xmlCint)
- d xmlSaveFileTo pr 10i 0 extproc('xmlSaveFileTo')
+ d xmlSaveFileTo pr extproc('xmlSaveFileTo')
+ d like(xmlCint)
d buf value like(xmlOutputBufferPtr)
d cur value like(xmlDocPtr)
d encoding * value options(*string) const char *
d xmlSaveFormatFileTo...
- d pr 10i 0 extproc('xmlSaveFormatFileTo')
+ d pr extproc('xmlSaveFormatFileTo')
+ d like(xmlCint)
d buf value like(xmlOutputBufferPtr)
d cur value like(xmlDocPtr)
d encoding * value options(*string) const char *
- d format 10i 0 value
+ d format value like(xmlCint)
d xmlNodeDumpOutput...
d pr extproc('xmlNodeDumpOutput')
d buf value like(xmlOutputBufferPtr)
d doc value like(xmlDocPtr)
d cur value like(xmlNodePtr)
- d level 10i 0 value
- d format 10i 0 value
+ d level value like(xmlCint)
+ d format value like(xmlCint)
d encoding * value options(*string) const char *
d xmlSaveFormatFileEnc...
- d pr 10i 0 extproc('xmlSaveFormatFileEnc')
+ d pr extproc('xmlSaveFormatFileEnc')
+ d like(xmlCint)
d filename * value options(*string) const char *
d cur value like(xmlDocPtr)
d encoding * value options(*string) const char *
- d format 10i 0 value
+ d format value like(xmlCint)
- d xmlSaveFileEnc pr 10i 0 extproc('xmlSaveFileEnc')
+ d xmlSaveFileEnc pr extproc('xmlSaveFileEnc')
+ d like(xmlCint)
d filename * value options(*string) const char *
d cur value like(xmlDocPtr)
d encoding * value options(*string) const char *
@@ -1526,27 +1571,30 @@
* XHTML
- d xmlIsXHTML pr 10i 0 extproc('xmlIsXHTML')
+ d xmlIsXHTML pr extproc('xmlIsXHTML')
+ d like(xmlCint)
d systemID * value options(*string) const xmlChar *
d publicID * value options(*string) const xmlChar *
* Compression.
d xmlGetDocCompressMode...
- d pr 10i 0 extproc('xmlGetDocCompressMode')
+ d pr extproc('xmlGetDocCompressMode')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d xmlSetDocCompressMode...
d pr extproc('xmlSetDocCompressMode')
d doc value like(xmlDocPtr)
- d mode 10i 0 value
+ d mode value like(xmlCint)
d xmlGetCompressMode...
- d pr 10i 0 extproc('xmlGetCompressMode')
+ d pr extproc('xmlGetCompressMode')
+ d like(xmlCint)
d xmlSetCompressMode...
d pr extproc('xmlSetCompressMode')
- d mode 10i 0 value
+ d mode value like(xmlCint)
* DOM-wrapper helper functions.
@@ -1559,37 +1607,41 @@
d ctxt value like(xmlDOMWrapCtxtPtr)
d xmlDOMWrapReconcileNamespaces...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlDOMWrapReconcileNamespaces')
+ d like(xmlCint)
d ctxt value like(xmlDOMWrapCtxtPtr)
d elem value like(xmlNodePtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlDOMWrapAdoptNode...
- d pr 10i 0 extproc('xmlDOMWrapAdoptNode')
+ d pr extproc('xmlDOMWrapAdoptNode')
+ d like(xmlCint)
d ctxt value like(xmlDOMWrapCtxtPtr)
d sourceDoc value like(xmlDocPtr)
d node value like(xmlNodePtr)
d destDoc value like(xmlDocPtr)
d destParent value like(xmlNodePtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlDOMWrapRemoveNode...
- d pr 10i 0 extproc('xmlDOMWrapRemoveNode')
+ d pr extproc('xmlDOMWrapRemoveNode')
+ d like(xmlCint)
d ctxt value like(xmlDOMWrapCtxtPtr)
d doc value like(xmlDocPtr)
d node value like(xmlNodePtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlDOMWrapCloneNode...
- d pr 10i 0 extproc('xmlDOMWrapCloneNode')
+ d pr extproc('xmlDOMWrapCloneNode')
+ d like(xmlCint)
d ctxt value like(xmlDOMWrapCtxtPtr)
d sourceDoc value like(xmlDocPtr)
d node value like(xmlNodePtr)
d clonedNode like(xmlNodePtr)
d destDoc value like(xmlDocPtr)
d destParent value like(xmlNodePtr)
- d options 10i 0 value
+ d options value like(xmlCint)
/if defined(LIBXML_TREE_ENABLED)
@@ -1597,7 +1649,8 @@
* traversal.
d xmlChildElementCount...
- d pr 20u 0 extproc('xmlChildElementCount')
+ d pr extproc('xmlChildElementCount')
+ d like(xmlClong)
d parent value like(xmlNodePtr)
d xmlNextElementSibling...
diff --git a/os400/libxmlrpg/uri.rpgle b/os400/libxmlrpg/uri.rpgle
index 9a23d80..de03392 100644
--- a/os400/libxmlrpg/uri.rpgle
+++ b/os400/libxmlrpg/uri.rpgle
@@ -10,6 +10,7 @@
/define XML_URI_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
* xmlURI:
@@ -30,11 +31,11 @@
d authority * char *
d server * char *
d user * char *
- d port 10i 0
+ d port like(xmlCint)
d path * char *
d query * char *
d fragment * char *
- d cleanup 10i 0
+ d cleanup like(xmlCint)
d query_raw * char *
d xmlCreateURI pr extproc('xmlCreateURI')
@@ -56,10 +57,11 @@
d xmlParseURIRaw pr extproc('xmlParseURIRaw')
d like(xmlURIPtr)
d str * value options(*string) const char *
- d raw 10i 0 value
+ d raw value like(xmlCint)
d xmlParseURIReference...
- d pr 10i 0 extproc('xmlParseURIReference')
+ d pr extproc('xmlParseURIReference')
+ d like(xmlCint)
d uri value like(xmlURIPtr)
d str * value options(*string) const char *
@@ -78,11 +80,12 @@
d xmlURIUnescapeString...
d pr * extproc('xmlURIUnescapeString') char *
d str * value options(*string) const char *
- d len 10i 0 value
+ d len value like(xmlCint)
d target * value options(*string) char *
d xmlNormalizeURIPath...
- d pr 10i 0 extproc('xmlNormalizeURIPath')
+ d pr extproc('xmlNormalizeURIPath')
+ d like(xmlCint)
d path * value options(*string) char *
d xmlURIEscape pr * extproc('xmlURIEscape') xmlChar *
diff --git a/os400/libxmlrpg/valid.rpgle b/os400/libxmlrpg/valid.rpgle
index 722b89d..32ebbd3 100644
--- a/os400/libxmlrpg/valid.rpgle
+++ b/os400/libxmlrpg/valid.rpgle
@@ -9,6 +9,7 @@
/define XML_VALID_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/xmlerror"
/include "libxmlrpg/tree"
/include "libxmlrpg/list"
@@ -63,19 +64,19 @@
* Node analysis stack used when validating within entities
*
d node like(xmlNodePtr) Current parsed Node
- d nodeNr 10i 0 Parsing stack depth
- d nodeMax 10i 0 Max stack depth
+ d nodeNr like(xmlCint) Parsing stack depth
+ d nodeMax like(xmlCint) Max stack depth
d nodeTab * xmlNodePtr *
*
- d finishDtd 10u 0 Finish validtng DTD?
+ d finishDtd like(xmlCuint)
d doc like(xmlDocPtr) The document
- d valid 10i 0 Temp check result
+ d valid like(xmlCint) Temp check result
*
* state state used for non-determinist content validation
*
d vstate * xmlValidState *
- d vstateNr 10i 0 Validat. stack depth
- d vstateMax 10i 0 Max stack depth
+ d vstateNr like(xmlCint) Validat. stack depth
+ d vstateMax like(xmlCint) Max stack depth
d vstateTab * xmlValidState *
*
/if defined(LIBXML_REGEXP_ENABLED)
@@ -189,9 +190,9 @@
d xmlSnprintfElementContent...
d pr extproc('xmlSnprintfElementContent')
d buf 65535 options(*varsize)
- d size 10i 0 value
+ d size value like(xmlCint)
d content value like(xmlElementContentPtr)
- d englob 10i 0 value
+ d englob value like(xmlCint)
/if defined(LIBXML_OUTPUT_ENABLED)
* DEPRECATED
@@ -199,7 +200,7 @@
d pr extproc('xmlSprintfElementContent')
d buf 65535 options(*varsize)
d content value like(xmlElementContentPtr)
- d englob 10i 0 value
+ d englob value like(xmlCint)
/endif LIBXML_OUTPUT_ENABLD
* DEPRECATED
@@ -311,12 +312,14 @@
d doc value like(xmlDocPtr)
d ID * value options(*string) const xmlChar *
- d xmlIsID pr 10i 0 extproc('xmlIsID')
+ d xmlIsID pr extproc('xmlIsID')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d node value like(xmlNodePtr)
d attr value like(xmlAttrPtr)
- d xmlRemoveID pr 10i 0 extproc('xmlRemoveID')
+ d xmlRemoveID pr extproc('xmlRemoveID')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d attr value like(xmlAttrPtr)
@@ -333,12 +336,14 @@
d pr extproc('xmlFreeRefTable')
d table value like(xmlRefTablePtr)
- d xmlIsRef pr 10i 0 extproc('xmlIsRef')
+ d xmlIsRef pr extproc('xmlIsRef')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d node value like(xmlNodePtr)
d attr value like(xmlAttrPtr)
- d xmlRemoveRef pr 10i 0 extproc('xmlRemoveRef')
+ d xmlRemoveRef pr extproc('xmlRemoveRef')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d attr value like(xmlAttrPtr)
@@ -361,12 +366,14 @@
d ctxt value like(xmlValidCtxtPtr)
d xmlValidateRoot...
- d pr 10i 0 extproc('xmlValidateRoot')
+ d pr extproc('xmlValidateRoot')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d xmlValidateElementDecl...
- d pr 10i 0 extproc('xmlValidateElementDecl')
+ d pr extproc('xmlValidateElementDecl')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlElementPtr)
@@ -389,51 +396,60 @@
d value * value options(*string) const xmlChar *
d xmlValidateAttributeDecl...
- d pr 10i 0 extproc('xmlValidateAttributeDecl')
+ d pr extproc('xmlValidateAttributeDecl')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d attr value like(xmlAttributePtr)
d xmlValidateAttributeValue...
- d pr 10i 0 extproc('xmlValidateAttributeValue')
+ d pr extproc('xmlValidateAttributeValue')
+ d like(xmlCint)
d type value like(xmlAttributeType)
d value * value options(*string) const xmlChar *
d xmlValidateNotationDecl...
- d pr 10i 0 extproc('xmlValidateNotationDecl')
+ d pr extproc('xmlValidateNotationDecl')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d nota value like(xmlNotationPtr)
- d xmlValidateDtd pr 10i 0 extproc('xmlValidateDtd')
+ d xmlValidateDtd pr extproc('xmlValidateDtd')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d dtd value like(xmlDtdPtr)
d xmlValidateDtdFinal...
- d pr 10i 0 extproc('xmlValidateDtdFinal')
+ d pr extproc('xmlValidateDtdFinal')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d xmlValidateDocument...
- d pr 10i 0 extproc('xmlValidateDocument')
+ d pr extproc('xmlValidateDocument')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d xmlValidateElement...
- d pr 10i 0 extproc('xmlValidateElement')
+ d pr extproc('xmlValidateElement')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
d xmlValidateOneElement...
- d pr 10i 0 extproc('xmlValidateOneElement')
+ d pr extproc('xmlValidateOneElement')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
d xmlValidateOneAttribute...
- d pr 10i 0 extproc('xmlValidateOneAttribute')
+ d pr extproc('xmlValidateOneAttribute')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
@@ -441,7 +457,8 @@
d value * value options(*string) const xmlChar *
d xmlValidateOneNamespace...
- d pr 10i 0 extproc('xmlValidateOneNamespace')
+ d pr extproc('xmlValidateOneNamespace')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
@@ -450,7 +467,8 @@
d value * value options(*string) const xmlChar *
d xmlValidateDocumentFinal...
- d pr 10i 0 extproc('xmlValidateDocumentFinal')
+ d pr extproc('xmlValidateDocumentFinal')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
/endif LIBXML_VALID_ENABLED
@@ -463,7 +481,8 @@
/endif
/if defined(XML_TESTVAL)
d xmlValidateNotationUse...
- d pr 10i 0 extproc('xmlValidateNotationUse')
+ d pr extproc('xmlValidateNotationUse')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d notationName * value options(*string) const xmlChar *
@@ -472,7 +491,8 @@
/endif
d xmlIsMixedElement...
- d pr 10i 0 extproc('xmlIsMixedElement')
+ d pr extproc('xmlIsMixedElement')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d name * value options(*string) const xmlChar *
@@ -512,59 +532,69 @@
/if defined(LIBXML_VALID_ENABLED)
d xmlValidGetPotentialChildren...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlValidGetPotentialChildren')
+ d like(xmlCint)
d ctree * value xmlElementContent *
d names * const xmlChar *(*)
- d len 10i 0
- d max 10i 0 value
+ d len like(xmlCint)
+ d max value like(xmlCint)
d xmlValidGetValidElements...
- d pr 10i 0 extproc('xmlValidGetValidElements')
+ d pr extproc('xmlValidGetValidElements')
+ d like(xmlCint)
d prev like(xmlNodePtr)
d next like(xmlNodePtr)
d names * const xmlChar *(*)
- d max 10i 0 value
+ d max value like(xmlCint)
d xmlValidateNameValue...
- d pr 10i 0 extproc('xmlValidateNameValue')
+ d pr extproc('xmlValidateNameValue')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
d xmlValidateNamesValue...
- d pr 10i 0 extproc('xmlValidateNamesValue')
+ d pr extproc('xmlValidateNamesValue')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
d xmlValidateNmtokenValue...
- d pr 10i 0 extproc('xmlValidateNmtokenValue')
+ d pr extproc('xmlValidateNmtokenValue')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
d xmlValidateNmtokensValue...
- d pr 10i 0 extproc('xmlValidateNmtokensValue')
+ d pr extproc('xmlValidateNmtokensValue')
+ d like(xmlCint)
d value * value options(*string) const xmlChar *
/if defined(LIBXML_REGEXP_ENABLED)
* Validation based on the regexp support
d xmlValidBuildContentModel...
- d pr 10i 0 extproc('xmlValidBuildContentModel')
+ d pr extproc('xmlValidBuildContentModel')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d elem value like(xmlElementPtr)
d xmlValidatePushElement...
- d pr 10i 0 extproc('xmlValidatePushElement')
+ d pr extproc('xmlValidatePushElement')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
d qname * value options(*string) const xmlChar *
d xmlValidatePushCData...
- d pr 10i 0 extproc('xmlValidatePushCData')
+ d pr extproc('xmlValidatePushCData')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d data * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlValidatePopElement...
- d pr 10i 0 extproc('xmlValidatePopElement')
+ d pr extproc('xmlValidatePopElement')
+ d like(xmlCint)
d ctxt value like(xmlValidCtxtPtr)
d doc value like(xmlDocPtr)
d elem value like(xmlNodePtr)
diff --git a/os400/libxmlrpg/xinclude.rpgle b/os400/libxmlrpg/xinclude.rpgle
index c0b68ff..93b7c51 100644
--- a/os400/libxmlrpg/xinclude.rpgle
+++ b/os400/libxmlrpg/xinclude.rpgle
@@ -12,6 +12,7 @@
/define XML_XINCLUDE_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
/if defined(LIBXML_XINCLUDE_ENABLED)
@@ -89,37 +90,43 @@
* standalone processing
d xmlXIncludeProcess...
- d pr 10i 0 extproc('xmlXIncludeProcess')
+ d pr extproc('xmlXIncludeProcess')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
d xmlXIncludeProcessFlags...
- d pr 10i 0 extproc('xmlXIncludeProcessFlags')
+ d pr extproc('xmlXIncludeProcessFlags')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
- d flags 10i 0 value
+ d flags value like(xmlCint)
d xmlXIncludeProcessFlagsData...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXIncludeProcessFlagsData')
+ d like(xmlCint)
d doc value like(xmlDocPtr)
- d flags 10i 0 value
+ d flags value like(xmlCint)
d data * value void *
d xmlXIncludeProcessTreeFlagsData...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXIncludeProcessTreeFlagsData')
+ d like(xmlCint)
d tree value like(xmlNodePtr)
- d flags 10i 0 value
+ d flags value like(xmlCint)
d data * value void *
d xmlXIncludeProcessTree...
- d pr 10i 0 extproc('xmlXIncludeProcessTree')
+ d pr extproc('xmlXIncludeProcessTree')
+ d like(xmlCint)
d tree value like(xmlNodePtr)
d xmlXIncludeProcessTreeFlags...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXIncludeProcessTreeFlags')
+ d like(xmlCint)
d tree value like(xmlNodePtr)
- d flags 10i 0 value
+ d flags value like(xmlCint)
* contextual processing
@@ -130,16 +137,18 @@
d doc value like(xmlDocPtr)
d xmlXIncludeSetFlags...
- d pr 10i 0 extproc('xmlXIncludeSetFlags')
+ d pr extproc('xmlXIncludeSetFlags')
+ d like(xmlCint)
d ctxt value like(xmlXIncludeCtxtPtr)
- d flags 10i 0 value
+ d flags value like(xmlCint)
d xmlXIncludeFreeContext...
d pr extproc('xmlXIncludeFreeContext')
d ctxt value like(xmlXIncludeCtxtPtr)
d xmlXIncludeProcessNode...
- d pr 10i 0 extproc('xmlXIncludeProcessNode')
+ d pr extproc('xmlXIncludeProcessNode')
+ d like(xmlCint)
d ctxt value like(xmlXIncludeCtxtPtr)
d tree value like(xmlNodePtr)
diff --git a/os400/libxmlrpg/xlink.rpgle b/os400/libxmlrpg/xlink.rpgle
index 964e605..e6ebdc6 100644
--- a/os400/libxmlrpg/xlink.rpgle
+++ b/os400/libxmlrpg/xlink.rpgle
@@ -9,10 +9,12 @@
/define XML_XLINK_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/tree"
/if defined(LIBXML_XPTR_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
+
* Various defines for the various Link properties.
*
* NOTE: the link detection layer will try to resolve QName expansion
@@ -26,7 +28,8 @@
d xlinkRole s * based(######typedef######) xmlChar *
d xlinkTitle s * based(######typedef######) xmlChar *
- d xlinkType s 10i 0 based(######typedef######) enum
+ d xlinkType s based(######typedef######)
+ d like(xmlCenum)
d XLINK_TYPE_NONE...
d c 0
d XLINK_TYPE_SIMPLE...
@@ -36,7 +39,8 @@
d XLINK_TYPE_EXTENDED_SET...
d c 3
- d xlinkShow s 10i 0 based(######typedef######) enum
+ d xlinkShow s based(######typedef######)
+ d like(xmlCenum)
d XLINK_SHOW_NONE...
d c 0
d XLINK_SHOW_NEW...
@@ -46,7 +50,8 @@
d XLINK_SHOW_REPLACE...
d c 3
- d xlinkActuate s 10i 0 based(######typedef######) enum
+ d xlinkActuate s based(######typedef######)
+ d like(xmlCenum)
d XLINK_ACTUATE_NONE...
d c 0
d XLINK_ACTUATE_AUTO...
diff --git a/os400/libxmlrpg/xmlIO.rpgle b/os400/libxmlrpg/xmlIO.rpgle
index 72911bc..6c0afcc 100644
--- a/os400/libxmlrpg/xmlIO.rpgle
+++ b/os400/libxmlrpg/xmlIO.rpgle
@@ -9,6 +9,7 @@
/define XML_IO_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
* Those are the functions and datatypes for the parser input
* I/O structures.
@@ -129,9 +130,9 @@
*
d buffer like(xmlBufPtr) UTF-8 local buffer
d raw like(xmlBufPtr) Raw input buffer
- d compressed 10i 0
- d error 10i 0
- d rawconsumed 20u 0
+ d compressed like(xmlCint)
+ d error like(xmlCint)
+ d rawconsumed like(xmlCulong)
/if defined(LIBXML_OUTPUT_ENABLED)
d xmlOutputBuffer...
@@ -145,8 +146,8 @@
*
d buffer like(xmlBufPtr) UTF-8/ISOLatin local
d conv like(xmlBufPtr) Buffer for output
- d written 10i 0 Total # byte written
- d error 10i 0
+ d written like(xmlCint) Total # byte written
+ d error like(xmlCint)
/endif LIBXML_OUTPUT_ENABLD
* Interfaces for input
@@ -155,7 +156,8 @@
d pr extproc('xmlCleanupInputCallbacks')
d xmlPopInputCallbacks...
- d pr 10i 0 extproc('xmlPopInputCallbacks')
+ d pr extproc('xmlPopInputCallbacks')
+ d like(xmlCint)
d xmlRegisterDefaultInputCallbacks...
d pr extproc(
@@ -184,7 +186,7 @@
d pr extproc(
d 'xmlParserInputBufferCreateFd')
d like(xmlParserInputBufferPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d enc value like(xmlCharEncoding)
d xmlParserInputBufferCreateMem...
@@ -192,7 +194,7 @@
d 'xmlParserInputBufferCreateMem')
d like(xmlParserInputBufferPtr)
d mem * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d enc value like(xmlCharEncoding)
d xmlParserInputBufferCreateStatic...
@@ -200,7 +202,7 @@
d 'xmlParserInputBufferCreateStatic')
d like(xmlParserInputBufferPtr)
d mem * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d enc value like(xmlCharEncoding)
d xmlParserInputBufferCreateIO...
@@ -213,19 +215,22 @@
d enc value like(xmlCharEncoding)
d xmlParserInputBufferRead...
- d pr 10i 0 extproc('xmlParserInputBufferRead')
+ d pr extproc('xmlParserInputBufferRead')
+ d like(xmlCint)
d in value like(xmlParserInputBufferPtr)
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlParserInputBufferGrow...
- d pr 10i 0 extproc('xmlParserInputBufferGrow')
+ d pr extproc('xmlParserInputBufferGrow')
+ d like(xmlCint)
d in value like(xmlParserInputBufferPtr)
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlParserInputBufferPush...
- d pr 10i 0 extproc('xmlParserInputBufferPush')
+ d pr extproc('xmlParserInputBufferPush')
+ d like(xmlCint)
d in value like(xmlParserInputBufferPtr)
- d len 10i 0 value
+ d len value like(xmlCint)
d buf * value options(*string) const char *
d xmlFreeParserInputBuffer...
@@ -237,7 +242,8 @@
d filename * value options(*string) const char *
d xmlRegisterInputCallbacks...
- d pr 10i 0 extproc('xmlRegisterInputCallbacks')
+ d pr extproc('xmlRegisterInputCallbacks')
+ d like(xmlCint)
d matchFunc value like(xmlInputMatchCallback)
d openFunc value like(xmlInputOpenCallback)
d readFunc value like(xmlInputReadCallback)
@@ -267,7 +273,7 @@
d URI * value options(*string) const char *
d encoder value
d like(xmlCharEncodingHandlerPtr)
- d compression 10i 0 value
+ d compression value like(xmlCint)
d xmlOutputBufferCreateFile...
d pr extproc('xmlOutputBufferCreateFile')
@@ -287,7 +293,7 @@
d xmlOutputBufferCreateFd...
d pr extproc('xmlOutputBufferCreateFd')
d like(xmlOutputBufferPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d encoder value
d like(xmlCharEncodingHandlerPtr)
@@ -307,36 +313,43 @@
d out value like(xmlOutputBufferPtr)
d xmlOutputBufferGetSize...
- d pr 10u 0 extproc('xmlOutputBufferGetSize') size_t
+ d pr extproc('xmlOutputBufferGetSize')
+ d like(xmlCsize_t)
d out value like(xmlOutputBufferPtr)
d xmlOutputBufferWrite...
- d pr 10i 0 extproc('xmlOutputBufferWrite')
+ d pr extproc('xmlOutputBufferWrite')
+ d like(xmlCint)
d out value like(xmlOutputBufferPtr)
- d len 10i 0 value
+ d len value like(xmlCint)
d buf * value options(*string) const char *
d xmlOutputBufferWriteString...
- d pr 10i 0 extproc('xmlOutputBufferWriteString')
+ d pr extproc('xmlOutputBufferWriteString')
+ d like(xmlCint)
d out value like(xmlOutputBufferPtr)
d str * value options(*string) const char *
d xmlOutputBufferWriteEscape...
- d pr 10i 0 extproc('xmlOutputBufferWriteEscape')
+ d pr extproc('xmlOutputBufferWriteEscape')
+ d like(xmlCint)
d out value like(xmlOutputBufferPtr)
d str * value options(*string) const xmlChar *
d escaping value like(xmlCharEncodingOutputFunc)
d xmlOutputBufferFlush...
- d pr 10i 0 extproc('xmlOutputBufferFlush')
+ d pr extproc('xmlOutputBufferFlush')
+ d like(xmlCint)
d out value like(xmlOutputBufferPtr)
d xmlOutputBufferClose...
- d pr 10i 0 extproc('xmlOutputBufferClose')
+ d pr extproc('xmlOutputBufferClose')
+ d like(xmlCint)
d out value like(xmlOutputBufferPtr)
d xmlRegisterOutputCallbacks...
- d pr 10i 0 extproc('xmlRegisterOutputCallbacks')
+ d pr extproc('xmlRegisterOutputCallbacks')
+ d like(xmlCint)
d matchFunc value like(xmlOutputMatchCallback)
d openFunc value like(xmlOutputOpenCallback)
d writeFunc value like(xmlOutputWriteCallback)
@@ -377,29 +390,34 @@
d path * value options(*string) const xmlChar *
d xmlCheckFilename...
- d pr 10i 0 extproc('xmlCheckFilename')
+ d pr extproc('xmlCheckFilename')
+ d like(xmlCint)
d path * value options(*string) const char *
* Default 'file://' protocol callbacks
- d xmlFileMatch pr 10i 0 extproc('xmlFileMatch')
+ d xmlFileMatch pr extproc('xmlFileMatch')
+ d like(xmlCint)
d filename * value options(*string) const char *
d xmlFileOpen pr * extproc('xmlFileOpen') void *
d filename * value options(*string) const char *
- d xmlFileRead pr 10i 0 extproc('xmlFileRead')
+ d xmlFileRead pr extproc('xmlFileRead')
+ d like(xmlCint)
d context * value void *
d buffer 65535 options(*varsize)
- d len 10i 0 value
+ d len value like(xmlCint)
- d xmlFileClose pr 10i 0 extproc('xmlFileClose')
+ d xmlFileClose pr extproc('xmlFileClose')
+ d like(xmlCint)
d context * value void *
* Default 'http://' protocol callbacks
/if defined(LIBXML_HTTP_ENABLED)
- d xmlIOHTTPMatch pr 10i 0 extproc('xmlIOHTTPMatch')
+ d xmlIOHTTPMatch pr extproc('xmlIOHTTPMatch')
+ d like(xmlCint)
d filename * value options(*string) const char *
d xmlIOHTTPOpen pr * extproc('xmlIOHTTPOpen') void *
@@ -408,33 +426,38 @@
/if defined(LIBXML_OUTPUT_ENABLED)
d xmlIOHTTPOpenW pr * extproc('xmlIOHTTPOpenW') void *
d post_uri * value options(*string) const char *
- d compression 10i 0 value
+ d compression value like(xmlCint)
/endif LIBXML_OUTPUT_ENABLD
- d xmlIOHTTPRead pr 10i 0 extproc('xmlIOHTTPRead')
+ d xmlIOHTTPRead pr extproc('xmlIOHTTPRead')
+ d like(xmlCint)
d context * value void *
d buffer 65535 options(*varsize)
- d len 10i 0 value
+ d len value like(xmlCint)
- d xmlIOHTTPClose pr 10i 0 extproc('xmlIOHTTPClose')
+ d xmlIOHTTPClose pr extproc('xmlIOHTTPClose')
+ d like(xmlCint)
d context * value void *
/endif LIBXML_HTTP_ENABLED
* Default 'ftp://' protocol callbacks
/if defined(LIBXML_FTP_ENABLED)
- d xmlIOFTPMatch pr 10i 0 extproc('xmlIOFTPMatch')
+ d xmlIOFTPMatch pr extproc('xmlIOFTPMatch')
+ d like(xmlCint)
d filename * value options(*string) const char *
d xmlIOFTPOpen pr * extproc('xmlIOFTPOpen') void *
d filename * value options(*string) const char *
- d xmlIOFTPRead pr 10i 0 extproc('xmlIOFTPRead')
+ d xmlIOFTPRead pr extproc('xmlIOFTPRead')
+ d like(xmlCint)
d context * value void *
d buffer 65535 options(*varsize)
- d len 10i 0 value
+ d len value like(xmlCint)
- d xmlIOFTPClose pr 10i 0 extproc('xmlIOFTPClose')
+ d xmlIOFTPClose pr extproc('xmlIOFTPClose')
+ d like(xmlCint)
d context * value void *
/endif LIBXML_FTP_ENABLED
diff --git a/os400/libxmlrpg/xmlTypesC.rpgle b/os400/libxmlrpg/xmlTypesC.rpgle
new file mode 100644
index 0000000..48a23bf
--- /dev/null
+++ b/os400/libxmlrpg/xmlTypesC.rpgle
@@ -0,0 +1,26 @@
+ * Eqivalent of C data types.
+ *
+ * Copy: See Copyright for the status of this software.
+ *
+ * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+
+ /if not defined(XMLTYPESC_H__)
+ /define XMLTYPESC_H__
+
+ d xmlCchar s 3i 0 based(######typedef######)
+ d xmlCuchar s 3u 0 based(######typedef######)
+ d xmlCshort s 5i 0 based(######typedef######)
+ d xmlCushort s 5u 0 based(######typedef######)
+ d xmlCint s 10i 0 based(######typedef######)
+ d xmlCuInt s 10u 0 based(######typedef######)
+ d xmlClong s 10i 0 based(######typedef######)
+ d xmlCulong s 10u 0 based(######typedef######)
+ d xmlClonglong s 20i 0 based(######typedef######)
+ d xmlCulonglong s 20u 0 based(######typedef######)
+ d xmlCenum s 10i 0 based(######typedef######)
+ d xmlCssize_t s 10i 0 based(######typedef######)
+ d xmlCsize_t s 10u 0 based(######typedef######)
+ d xmlCfloat s 4f based(######typedef######)
+ d xmlCdouble s 8f based(######typedef######)
+
+ /endif
diff --git a/os400/libxmlrpg/xmlautomata.rpgle b/os400/libxmlrpg/xmlautomata.rpgle
index 4979725..0e9cc22 100644
--- a/os400/libxmlrpg/xmlautomata.rpgle
+++ b/os400/libxmlrpg/xmlautomata.rpgle
@@ -9,11 +9,12 @@
/define XML_AUTOMATA_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/tree"
/if defined(LIBXML_REGEXP_ENABLED)
/if defined(LIBXML_AUTOMATA_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/tree"
/include "libxmlrpg/xmlregexp"
* xmlAutomataPtr:
@@ -44,7 +45,8 @@
d am value like(xmlAutomataPtr)
d xmlAutomataSetFinalState...
- d pr 10i 0 extproc('xmlAutomataSetFinalState')
+ d pr extproc('xmlAutomataSetFinalState')
+ d like(xmlCint)
d am value like(xmlAutomataPtr)
d state value like(xmlAutomataStatePtr)
@@ -89,8 +91,8 @@
d from value like(xmlAutomataStatePtr)
d to value like(xmlAutomataStatePtr)
d token * value options(*string) const xmlChar *
- d min 10i 0 value
- d max 10i 0 value
+ d min value like(xmlCint)
+ d max value like(xmlCint)
d data * value options(*string) void *
d xmlAutomataNewCountTrans2...
@@ -101,8 +103,8 @@
d to value like(xmlAutomataStatePtr)
d token * value options(*string) const xmlChar *
d token2 * value options(*string) const xmlChar *
- d min 10i 0 value
- d max 10i 0 value
+ d min value like(xmlCint)
+ d max value like(xmlCint)
d data * value options(*string) void *
d xmlAutomataNewOnceTrans...
@@ -112,8 +114,8 @@
d from value like(xmlAutomataStatePtr)
d to value like(xmlAutomataStatePtr)
d token * value options(*string) const xmlChar *
- d min 10i 0 value
- d max 10i 0 value
+ d min value like(xmlCint)
+ d max value like(xmlCint)
d data * value options(*string) void *
d xmlAutomataNewOnceTrans2...
@@ -124,8 +126,8 @@
d to value like(xmlAutomataStatePtr)
d token * value options(*string) const xmlChar *
d token2 * value options(*string) const xmlChar *
- d min 10i 0 value
- d max 10i 0 value
+ d min value like(xmlCint)
+ d max value like(xmlCint)
d data * value options(*string) void *
d xmlAutomataNewAllTrans...
@@ -134,7 +136,7 @@
d am value like(xmlAutomataPtr)
d from value like(xmlAutomataStatePtr)
d to value like(xmlAutomataStatePtr)
- d lax 10i 0 value
+ d lax value like(xmlCint)
d xmlAutomataNewEpsilon...
d pr extproc('xmlAutomataNewEpsilon')
@@ -149,7 +151,7 @@
d am value like(xmlAutomataPtr)
d from value like(xmlAutomataStatePtr)
d to value like(xmlAutomataStatePtr)
- d counter 10i 0 value
+ d counter value like(xmlCint)
d xmlAutomataNewCounterTrans...
d pr extproc('xmlAutomataNewCounterTrans')
@@ -157,13 +159,14 @@
d am value like(xmlAutomataPtr)
d from value like(xmlAutomataStatePtr)
d to value like(xmlAutomataStatePtr)
- d counter 10i 0 value
+ d counter value like(xmlCint)
d xmlAutomataNewCounter...
- d pr 10i 0 extproc('xmlAutomataNewCounter')
+ d pr extproc('xmlAutomataNewCounter')
+ d like(xmlCint)
d am value like(xmlAutomataPtr)
- d min 10i 0 value
- d max 10i 0 value
+ d min value like(xmlCint)
+ d max value like(xmlCint)
d xmlAutomataCompile...
d pr extproc('xmlAutomataCompile')
@@ -171,7 +174,8 @@
d am value like(xmlAutomataPtr)
d xmlAutomataIsDeterminist...
- d pr 10i 0 extproc('xmlAutomataIsDeterminist')
+ d pr extproc('xmlAutomataIsDeterminist')
+ d like(xmlCint)
d am value like(xmlAutomataPtr)
/endif AUTOMATA_ENABLED
diff --git a/os400/libxmlrpg/xmlerror.rpgle b/os400/libxmlrpg/xmlerror.rpgle
index b77caad..6688b37 100644
--- a/os400/libxmlrpg/xmlerror.rpgle
+++ b/os400/libxmlrpg/xmlerror.rpgle
@@ -5,16 +5,18 @@
*
* Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
- /include "libxmlrpg/parser"
-
/if not defined(XML_ERROR_H__)
/define XML_ERROR_H__
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/parser"
+
* xmlErrorLevel:
*
* Indicates the level of an error
- d xmlErrorLevel s 10i 0 based(######typedef######) enum
+ d xmlErrorLevel s based(######typedef######)
+ d like(xmlCenum)
d XML_ERR_NONE c 0
d XML_ERR_WARNING... A simple warning
d c 1
@@ -25,7 +27,8 @@
*
* Indicates where an error may have come from
- d xmlErrorDomain s 10i 0 based(######typedef######) enum
+ d xmlErrorDomain s based(######typedef######)
+ d like(xmlCenum)
d XML_FROM_NONE c 0
d XML_FROM_PARSER... XML parser
d c 1
@@ -86,17 +89,17 @@
d xmlError ds based(xmlErrorPtr)
d align qualified
- d domain 10i 0 Libpart raising err
- d code 10i 0 Error code
+ d domain like(xmlCint) Libpart raising err
+ d code like(xmlCint) Error code
d message * char *
d level like(xmlErrorLevel) Error severity
d file * File name
- d line 10i 0 Line number
+ d line like(xmlCint) Line number
d str1 * char *
d str2 * char *
d str3 * char *
- d int1 10i 0 Extra number info
- d int2 10i 0 Error column
+ d int1 like(xmlCint) Extra number info
+ d int2 like(xmlCint) Error column
d ctxt * void *
d node * void *
@@ -105,7 +108,8 @@
* This is an error that the XML (or HTML) parser can generate
d xmlParserErrors...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_ERR_OK c 0
d XML_ERR_INTERNAL_ERROR...
d c 1
@@ -1674,7 +1678,8 @@
d xmlResetError pr extproc('xmlResetError')
d err value like(xmlErrorPtr)
- d xmlCopyError pr 10i 0 extproc('xmlCopyError')
+ d xmlCopyError pr extproc('xmlCopyError')
+ d like(xmlCint)
d from value like(xmlErrorPtr)
d to value like(xmlErrorPtr)
diff --git a/os400/libxmlrpg/xmlmemory.rpgle b/os400/libxmlrpg/xmlmemory.rpgle
index 165eaca..472e941 100644
--- a/os400/libxmlrpg/xmlmemory.rpgle
+++ b/os400/libxmlrpg/xmlmemory.rpgle
@@ -10,6 +10,7 @@
/define DEBUG_MEMORY_ALLOC__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
* DEBUG_MEMORY:
*
@@ -96,7 +97,7 @@
d func value like(xmlMallocFunc)
d xmlMalloc pr * extproc('__call_xmlMalloc') void *
- d size 10u 0 value size_t
+ d size value like(xmlCsize_t)
d get_xmlMallocAtomic...
d pr extproc('__get_xmlMallocAtomic')
@@ -108,7 +109,7 @@
d xmlMallocAtomic...
d pr * extproc('__call_xmlMallocAtomic') void *
- d size 10u 0 value size_t
+ d size value like(xmlCsize_t)
d get_xmlRealloc pr extproc('__get_xmlRealloc')
d like(xmlReallocFunc)
@@ -118,7 +119,7 @@
d xmlRealloc pr * extproc('__call_xmlRealloc') void *
d mem * value void *
- d size 10u 0 value size_t
+ d size value like(xmlCsize_t)
d get_xmlMemStrdup...
d pr extproc('__get_xmlMemStrdup')
@@ -135,19 +136,22 @@
* The xmlGc function have an extra entry for atomic block
* allocations useful for garbage collected memory allocators
- d xmlMemSetup pr 10i 0 extproc('xmlMemSetup')
+ d xmlMemSetup pr extproc('xmlMemSetup')
+ d like(xmlCint)
d freeFunc value like(xmlFreeFunc)
d mallocFunc value like(xmlMallocFunc)
d reallocFunc value like(xmlReallocFunc)
d strdupFunc value like(xmlStrdupFunc)
- d xmlMemGet pr 10i 0 extproc('xmlMemGet')
+ d xmlMemGet pr extproc('xmlMemGet')
+ d like(xmlCint)
d freeFunc like(xmlFreeFunc)
d mallocFunc like(xmlMallocFunc)
d reallocFunc like(xmlReallocFunc)
d strdupFunc like(xmlStrdupFunc)
- d xmlGcMemSetup pr 10i 0 extproc('xmlGcMemSetup')
+ d xmlGcMemSetup pr extproc('xmlGcMemSetup')
+ d like(xmlCint)
d freeFunc value like(xmlFreeFunc)
d mallocFunc value like(xmlMallocFunc)
d mallocAtomicFunc...
@@ -155,7 +159,8 @@
d reallocFunc value like(xmlReallocFunc)
d strdupFunc value like(xmlStrdupFunc)
- d xmlGcMemGet pr 10i 0 extproc('xmlGcMemGet')
+ d xmlGcMemGet pr extproc('xmlGcMemGet')
+ d like(xmlCint)
d freeFunc like(xmlFreeFunc)
d mallocFunc like(xmlMallocFunc)
d mallocAtomicFunc...
@@ -165,7 +170,8 @@
* Initialization of the memory layer.
- d xmlInitMemory pr 10i 0 extproc('xmlInitMemory')
+ d xmlInitMemory pr extproc('xmlInitMemory')
+ d like(xmlCint)
* Cleanup of the memory layer.
@@ -174,9 +180,11 @@
* These are specific to the XML debug memory wrapper.
- d xmlMemUsed pr 10i 0 extproc('xmlMemUsed')
+ d xmlMemUsed pr extproc('xmlMemUsed')
+ d like(xmlCint)
- d xmlMemBlocks pr 10i 0 extproc('xmlMemBlocks')
+ d xmlMemBlocks pr extproc('xmlMemBlocks')
+ d like(xmlCint)
d xmlMemDisplay pr extproc('xmlMemDisplay')
d fp * value FILE *
@@ -184,20 +192,20 @@
d xmlMmDisplayLast...
d pr extproc('xmlMemDisplayLast')
d fp * value FILE *
- d nbBytes 20i 0 value
+ d nbBytes value like(xmlClong)
d xmlMemShow pr extproc('xmlMemShow')
d fp * value FILE *
- d nr 10i 0 value
+ d nr value like(xmlCint)
d xmlMemoryDump pr extproc('xmlMemoryDump')
d xmlMemMalloc pr * extproc('xmlMemMalloc') void *
- d size 10u 0 value size_t
+ d size value like(xmlCsize_t)
d xmlMemRealloc pr * extproc('xmlMemRealloc') void *
d ptr * value void *
- d size 10u 0 value size_t
+ d size value like(xmlCsize_t)
d xmlMemFree pr extproc('xmlMemFree')
d ptr * value void *
@@ -207,27 +215,27 @@
d str * value options(*string) const char *
d xmlMallocLoc pr * extproc('xmlMallocLoc') void *
- d size 10u 0 value size_t
+ d size value like(xmlCsize_t)
d file * value options(*string) const char *
- d line 10i 0 value
+ d line value like(xmlCint)
d xmlReallocLoc pr * extproc('xmlReallocLoc') void *
d ptr * value void *
- d size 10u 0 value size_t
+ d size value like(xmlCsize_t)
d file * value options(*string) const char *
- d line 10i 0 value
+ d line value like(xmlCint)
d xmlMallocAtomicLoc...
d pr * extproc('xmlMallocAtomicLoc') void *
- d size 10u 0 value size_t
+ d size value like(xmlCsize_t)
d file * value options(*string) const char *
- d line 10i 0 value
+ d line value like(xmlCint)
d xmlMemStrdupLoc...
d pr * extproc('xmlMemStrdupLoc') char *
d str * value options(*string) const char *
d file * value options(*string) const char *
- d line 10i 0 value
+ d line value like(xmlCint)
/if not defined(XML_GLOBALS_H)
/if not defined(XML_THREADS_H__)
diff --git a/os400/libxmlrpg/xmlmodule.rpgle b/os400/libxmlrpg/xmlmodule.rpgle
index 09592a6..035254d 100644
--- a/os400/libxmlrpg/xmlmodule.rpgle
+++ b/os400/libxmlrpg/xmlmodule.rpgle
@@ -13,6 +13,8 @@
/if defined(LIBXML_MODULES_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+
* xmlModulePtr:
*
* A handle to a dynamically loaded module
@@ -24,7 +26,8 @@
* enumeration of options that can be passed down to xmlModuleOpen()
d xmlModuleOption...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_MODULE_LAZY... Lazy binding
d c 1
d XML_MODULE_LOCAL... Local binding
@@ -33,18 +36,21 @@
d xmlModuleOpen pr extproc('xmlModuleOpen')
d like(xmlModulePtr)
d filename * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlModuleSymbol...
- d pr 10i 0 extproc('xmlModuleSymbol')
+ d pr extproc('xmlModuleSymbol')
+ d like(xmlCint)
d module value like(xmlModulePtr)
d name * value options(*string) const char *
d result * void *(*)
- d xmlModuleClose pr 10i 0 extproc('xmlModuleClose')
+ d xmlModuleClose pr extproc('xmlModuleClose')
+ d like(xmlCint)
d module value like(xmlModulePtr)
- d xmlModuleFree pr 10i 0 extproc('xmlModuleFree')
+ d xmlModuleFree pr extproc('xmlModuleFree')
+ d like(xmlCint)
d module value like(xmlModulePtr)
/endif LIBXML_MODULES_ENBLD
diff --git a/os400/libxmlrpg/xmlreader.rpgle b/os400/libxmlrpg/xmlreader.rpgle
index eccd37c..f9ab207 100644
--- a/os400/libxmlrpg/xmlreader.rpgle
+++ b/os400/libxmlrpg/xmlreader.rpgle
@@ -9,6 +9,7 @@
/define XML_XMLREADER_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
/include "libxmlrpg/xmlIO"
@@ -23,7 +24,8 @@
* is used.
d xmlParserSeverities...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_PARSER_SEVERITY_VALIDITY_WARNING...
d c 1
d XML_PARSER_SEVERITY_VALIDITY_ERROR...
@@ -40,7 +42,8 @@
* Internal state values for the reader.
d xmlTextReaderMode...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_TEXTREADER_MODE_INITIAL...
d c 0
d XML_TEXTREADER_MODE_INTERACTIVE...
@@ -61,7 +64,8 @@
* xmlReaderForxxx APIs now.
d xmlParserProperties...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_PARSER_LOADDTD...
d c 1
d XML_PARSER_DEFAULTATTRS...
@@ -75,7 +79,8 @@
*
* Predefined constants for the different types of nodes.
- d xmlReaderTypes s 10i 0 based(######typedef######) enum
+ d xmlReaderTypes s based(######typedef######)
+ d like(xmlCenum)
d XML_READER_TYPE_NONE...
d c 0
d XML_READER_TYPE_ELEMENT...
@@ -138,17 +143,19 @@
d reader value like(xmlTextReaderPtr)
d xmlTextReaderSetup...
- d pr 10i 0 extproc('xmlTextReaderSetup')
+ d pr extproc('xmlTextReaderSetup')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d input value like(xmlParserInputBufferPtr)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
* Iterators
d xmlTextReaderRead...
- d pr 10i 0 extproc('xmlTextReaderRead')
+ d pr extproc('xmlTextReaderRead')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
/if defined(LIBXML_WRITER_ENABLED)
@@ -166,53 +173,64 @@
d reader value like(xmlTextReaderPtr)
d xmlTextReaderReadAttributeValue...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderReadAttributeValue')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
* Attributes of the node
d xmlTextReaderAttributeCount...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderAttributeCount')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderDepth...
- d pr 10i 0 extproc('xmlTextReaderDepth')
+ d pr extproc('xmlTextReaderDepth')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderHasAttributes...
- d pr 10i 0 extproc('xmlTextReaderHasAttributes')
+ d pr extproc('xmlTextReaderHasAttributes')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderHasValue...
- d pr 10i 0 extproc('xmlTextReaderHasValue')
+ d pr extproc('xmlTextReaderHasValue')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderIsDefault...
- d pr 10i 0 extproc('xmlTextReaderIsDefault')
+ d pr extproc('xmlTextReaderIsDefault')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderIsEmptyElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderIsEmptyElement')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderNodeType...
- d pr 10i 0 extproc('xmlTextReaderNodeType')
+ d pr extproc('xmlTextReaderNodeType')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderQuoteChar...
- d pr 10i 0 extproc('xmlTextReaderQuoteChar')
+ d pr extproc('xmlTextReaderQuoteChar')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderReadState...
- d pr 10i 0 extproc('xmlTextReaderReadState')
+ d pr extproc('xmlTextReaderReadState')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderIsNamespaceDecl...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderIsNamespaceDecl')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderConstBaseUri...
@@ -284,14 +302,15 @@
* Methods of the XmlTextReader
d xmlTextReaderClose...
- d pr 10i 0 extproc('xmlTextReaderClose')
+ d pr extproc('xmlTextReaderClose')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderGetAttributeNo...
d pr * extproc( xmlChar *
d 'xmlTextReaderGetAttributeNo')
d reader value like(xmlTextReaderPtr)
- d no 10i 0 value
+ d no value like(xmlCint)
d xmlTextReaderGetAttribute...
d pr * extproc('xmlTextReaderGetAttribute') xmlChar *
@@ -317,40 +336,47 @@
d prefix * value options(*string) const xmlChar *
d xmlTextReaderMoveToAttributeNo...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderMoveToAttributeNo')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
- d no 10i 0 value
+ d no value like(xmlCint)
d xmlTextReaderMoveToAttribute...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderMoveToAttribute')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d name * value options(*string) const xmlChar *
d xmlTextReaderMoveToAttributeNs...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderMoveToAttributeNs')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d localName * value options(*string) const xmlChar *
d namespaceURI * value options(*string) const xmlChar *
d xmlTextReaderMoveToFirstAttribute...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderMoveToFirstAttribute')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderMoveToNextAttribute...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderMoveToNextAttribute')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderMoveToElement...
- d pr 10i 0 extproc('xmlTextReaderMoveToElement')
+ d pr extproc('xmlTextReaderMoveToElement')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderNormalization...
- d pr 10i 0 extproc('xmlTextReaderNormalization')
+ d pr extproc('xmlTextReaderNormalization')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderConstEncoding...
@@ -360,15 +386,17 @@
* Extensions
d xmlTextReaderSetParserProp...
- d pr 10i 0 extproc('xmlTextReaderSetParserProp')
+ d pr extproc('xmlTextReaderSetParserProp')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
- d prop 10i 0 value
- d value 10i 0 value
+ d prop value like(xmlCint)
+ d value value like(xmlCint)
d xmlTextReaderGetParserProp...
- d pr 10i 0 extproc('xmlTextReaderGetParserProp')
+ d pr extproc('xmlTextReaderGetParserProp')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
- d prop 10i 0 value
+ d prop value like(xmlCint)
d xmlTextReaderCurrentNode...
d pr extproc('xmlTextReaderCurrentNode')
@@ -376,13 +404,15 @@
d reader value like(xmlTextReaderPtr)
d xmlTextReaderGetParserLineNumber...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderGetParserLineNumber')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderGetParserColumnNumber...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderGetParserColumnNumber')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderPreserve...
@@ -392,8 +422,9 @@
/if defined(LIBXML_PATTERN_ENABLED)
d xmlTextReaderPreservePattern...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderPreservePattern')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d pattern * value options(*string) const xmlChar *
d namespaces * const xmlChar *(*)
@@ -410,52 +441,61 @@
d reader value like(xmlTextReaderPtr)
d xmlTextReaderNext...
- d pr 10i 0 extproc('xmlTextReaderNext')
+ d pr extproc('xmlTextReaderNext')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderNextSibling...
- d pr 10i 0 extproc('xmlTextReaderNextSibling')
+ d pr extproc('xmlTextReaderNextSibling')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xmlTextReaderIsValid...
- d pr 10i 0 extproc('xmlTextReaderIsValid')
+ d pr extproc('xmlTextReaderIsValid')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
/if defined(LIBXML_SCHEMAS_ENABLED)
d xmlTextReaderRelaxNGValidate...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderRelaxNGValidate')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d rng * value options(*string) const char *
d xmlTextReaderRelaxNGValidateCtxt...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderRelaxNGValidateCtxt')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d ctxt value like(xmlRelaxNGValidCtxtPtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlTextReaderRelaxNGSetSchema...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderRelaxNGSetSchema')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d schema value like(xmlRelaxNGPtr)
d xmlTextReaderSchemaValidate...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderSchemaValidate')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d xsd * value options(*string) const char *
d xmlTextReaderSchemaValidateCtxt...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderSchemaValidateCtxt')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d ctxt value like(xmlSchemaValidCtxtPtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlTextReaderSetSchema...
- d pr 10i 0 extproc('xmlTextReaderSetSchema')
+ d pr extproc('xmlTextReaderSetSchema')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d schema value like(xmlSchemaPtr)
/endif
@@ -466,13 +506,15 @@
d reader value like(xmlTextReaderPtr)
d xmlTextReaderStandalone...
- d pr 10i 0 extproc('xmlTextReaderStandalone')
+ d pr extproc('xmlTextReaderStandalone')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
* Index lookup
d xmlTextReaderByteConsumed...
- d pr 20i 0 extproc('xmlTextReaderByteConsumed')
+ d pr extproc('xmlTextReaderByteConsumed')
+ d like(xmlClong)
d reader value like(xmlTextReaderPtr)
* New more complete APIs for simpler creation and reuse of readers
@@ -488,30 +530,30 @@
d cur * value options(*string) const xmlChar *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReaderForFile...
d pr extproc('xmlReaderForFile')
d like(xmlTextReaderPtr)
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReaderForMemory...
d pr extproc('xmlReaderForMemory')
d like(xmlTextReaderPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReaderForFd pr extproc('xmlReaderForFd')
d like(xmlTextReaderPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReaderForIO pr extproc('xmlReaderForIO')
d like(xmlTextReaderPtr)
@@ -520,52 +562,58 @@
d ioctx * value void *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReaderNewWalker...
- d pr 10i 0 extproc('xmlReaderNewWalker')
+ d pr extproc('xmlReaderNewWalker')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d doc value like(xmlDocPtr)
d xmlReaderNewDoc...
- d pr 10i 0 extproc('xmlReaderNewDoc')
+ d pr extproc('xmlReaderNewDoc')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d cur * value options(*string) const xmlChar *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReaderNewFile...
- d pr 10i 0 extproc('xmlReaderNewFile')
+ d pr extproc('xmlReaderNewFile')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlReaderNewMemory...
- d pr 10i 0 extproc('xmlReaderNewMemory')
+ d pr extproc('xmlReaderNewMemory')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
- d xmlReaderNewFd pr 10i 0 extproc('xmlReaderNewFd')
+ d xmlReaderNewFd pr extproc('xmlReaderNewFd')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
- d xmlReaderNewIO pr 10i 0 extproc('xmlReaderNewIO')
+ d xmlReaderNewIO pr extproc('xmlReaderNewIO')
+ d like(xmlCint)
d reader value like(xmlTextReaderPtr)
d ioread value like(xmlInputReadCallback)
d ioclose value like(xmlInputCloseCallback)
d ioctx * value void *
d URL * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
* Error handling extensions
@@ -576,7 +624,7 @@
* @arg: the user argument
* @msg: the message
* @severity: the severity of the error
- * @locator: a locator indicating where the error occured
+ * @locator: a locator indicating where the error occurred
*
* Signature of an error callback from a reader parser
@@ -585,8 +633,9 @@
d procptr
d xmlTextReaderLocatorLineNumber...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextReaderLocatorLineNumber')
+ d like(xmlCint)
d locator value like(xmlTextReaderLocatorPtr)
d xmlTextReaderLocatorBaseURI...
diff --git a/os400/libxmlrpg/xmlregexp.rpgle b/os400/libxmlrpg/xmlregexp.rpgle
index 65c2d07..01d411a 100644
--- a/os400/libxmlrpg/xmlregexp.rpgle
+++ b/os400/libxmlrpg/xmlregexp.rpgle
@@ -13,6 +13,8 @@
/if defined(LIBXML_REGEXP_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+
* xmlRegexpPtr:
*
* A libxml regular expression, they can actually be far more complex
@@ -41,7 +43,8 @@
d pr extproc('xmlRegFreeRegexp')
d regexp value like(xmlRegexpPtr)
- d xmlRegexpExec pr 10i 0 extproc('xmlRegexpExec')
+ d xmlRegexpExec pr extproc('xmlRegexpExec')
+ d like(xmlCint)
d comp value like(xmlRegexpPtr)
d value * value options(*string) const xmlChar *
@@ -50,7 +53,8 @@
d regexp value like(xmlRegexpPtr)
d xmlRegexpIsDeterminist...
- d pr 10i 0 extproc('xmlRegexpIsDeterminist')
+ d pr extproc('xmlRegexpIsDeterminist')
+ d like(xmlCint)
d comp value like(xmlRegexpPtr)
* xmlRegExecCallbacks:
@@ -79,34 +83,38 @@
d exec value like(xmlRegExecCtxtPtr)
d xmlRegExecPushString...
- d pr 10i 0 extproc('xmlRegExecPushString')
+ d pr extproc('xmlRegExecPushString')
+ d like(xmlCint)
d exec value like(xmlRegExecCtxtPtr)
d value * value options(*string) const xmlChar *
d data * value void *
d xmlRegExecPushString2...
- d pr 10i 0 extproc('xmlRegExecPushString2')
+ d pr extproc('xmlRegExecPushString2')
+ d like(xmlCint)
d exec value like(xmlRegExecCtxtPtr)
d value * value options(*string) const xmlChar *
d value2 * value options(*string) const xmlChar *
d data * value void *
d xmlRegExecNextValues...
- d pr 10i 0 extproc('xmlRegExecNextValues')
+ d pr extproc('xmlRegExecNextValues')
+ d like(xmlCint)
d exec value like(xmlRegExecCtxtPtr)
- d nbval 10i 0
- d nbneg 10i 0
+ d nbval like(xmlCint)
+ d nbneg like(xmlCint)
d values * xmlChar * (*)
- d terminal 10i 0
+ d terminal like(xmlCint)
d xmlRegExecErrInfo...
- d pr 10i 0 extproc('xmlRegExecErrInfo')
+ d pr extproc('xmlRegExecErrInfo')
+ d like(xmlCint)
d exec value like(xmlRegExecCtxtPtr)
d string * const xmlChar * (*)
- d nbval 10i 0
- d nbneg 10i 0
+ d nbval like(xmlCint)
+ d nbneg like(xmlCint)
d values * xmlChar * (*)
- d terminal 10i 0
+ d terminal like(xmlCint)
/if defined(LIBXML_EXPR_ENABLED)
@@ -122,22 +130,25 @@
d xmlExpNewCtxt pr extproc('xmlExpNewCtxt')
d like(xmlExpCtxtPtr)
- d maxNodes 10i 0 value
+ d maxNodes value like(xmlCint)
d dict value like(xmlDictPtr)
d xmlExpCtxtNbNodes...
- d pr 10i 0 extproc('xmlExpCtxtNbNodes')
+ d pr extproc('xmlExpCtxtNbNodes')
+ d like(xmlCint)
d ctxt value like(xmlExpCtxtPtr)
d xmlExpCtxtNbCons...
- d pr 10i 0 extproc('xmlExpCtxtNbCons')
+ d pr extproc('xmlExpCtxtNbCons')
+ d like(xmlCint)
d ctxt value like(xmlExpCtxtPtr)
* Expressions are trees but the tree is opaque
d xmlExpNodePtr s * based(######typedef######)
- d xmlExpNodeType s 10i 0 based(######typedef######) enum
+ d xmlExpNodeType s based(######typedef######)
+ d like(xmlCenum)
d XML_EXP_EMPTY c 0
d XML_EXP_FORBID...
d c 1
@@ -175,7 +186,7 @@
d like(xmlExpNodePtr)
d ctxt value like(xmlExpCtxtPtr)
d name * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlExpNewOr pr extproc('xmlExpNewOr')
d like(xmlExpNodePtr)
@@ -193,30 +204,34 @@
d like(xmlExpNodePtr)
d ctxt value like(xmlExpCtxtPtr)
d subset value like(xmlExpNodePtr)
- d min 10i 0 value
- d max 10i 0 value
+ d min value like(xmlCint)
+ d max value like(xmlCint)
* The really interesting APIs
d xmlExpIsNillable...
- d pr 10i 0 extproc('xmlExpIsNillable')
+ d pr extproc('xmlExpIsNillable')
+ d like(xmlCint)
d expr value like(xmlExpNodePtr)
- d xmlExpMaxToken pr 10i 0 extproc('xmlExpMaxToken')
+ d xmlExpMaxToken pr extproc('xmlExpMaxToken')
+ d like(xmlCint)
d expr value like(xmlExpNodePtr)
d xmlExpGetLanguage...
- d pr 10i 0 extproc('xmlExpGetLanguage')
+ d pr extproc('xmlExpGetLanguage')
+ d like(xmlCint)
d ctxt value like(xmlExpCtxtPtr)
d expr value like(xmlExpNodePtr)
d langList * const xmlChar *(*)
- d len 10i 0 value
+ d len value like(xmlCint)
- d xmlExpGetStart pr 10i 0 extproc('xmlExpGetStart')
+ d xmlExpGetStart pr extproc('xmlExpGetStart')
+ d like(xmlCint)
d ctxt value like(xmlExpCtxtPtr)
d expr value like(xmlExpNodePtr)
d tokList * const xmlChar *(*)
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlExpStringDerive...
d pr extproc('xmlExpStringDerive')
@@ -224,7 +239,7 @@
d ctxt value like(xmlExpCtxtPtr)
d expr value like(xmlExpNodePtr)
d str * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlExpExpDerive...
d pr extproc('xmlExpExpDerive')
@@ -233,7 +248,8 @@
d expr value like(xmlExpNodePtr)
d sub value like(xmlExpNodePtr)
- d xmlExpSubsume pr 10i 0 extproc('xmlExpSubsume')
+ d xmlExpSubsume pr extproc('xmlExpSubsume')
+ d like(xmlCint)
d ctxt value like(xmlExpCtxtPtr)
d expr value like(xmlExpNodePtr)
d sub value like(xmlExpNodePtr)
diff --git a/os400/libxmlrpg/xmlsave.rpgle b/os400/libxmlrpg/xmlsave.rpgle
index efcb09f..ad0d15d 100644
--- a/os400/libxmlrpg/xmlsave.rpgle
+++ b/os400/libxmlrpg/xmlsave.rpgle
@@ -9,18 +9,21 @@
/define XML_XMLSAVE_H__
/include "libxmlrpg/xmlversion"
+
+ /if defined(LIBXML_OUTPUT_ENABLED)
+
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
/include "libxmlrpg/encoding"
/include "libxmlrpg/xmlIO"
- /if defined(LIBXML_OUTPUT_ENABLED)
-
* xmlSaveOption:
*
* This is the set of XML save options that can be passed down
* to the xmlSaveToFd() and similar calls.
- d xmlSaveOption s 10i 0 based(######typedef######) enum
+ d xmlSaveOption s based(######typedef######)
+ d like(xmlCenum)
d XML_SAVE_FORMAT... Format save output
d c X'0001'
d XML_SAVE_NO_DECL... Drop xml declaration
@@ -42,23 +45,23 @@
d xmlSaveToFd pr extproc('xmlSaveToFd')
d like(xmlSaveCtxtPtr)
- d fd 10i 0 value
+ d fd value like(xmlCint)
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSaveToFilename...
d pr extproc('xmlSaveToFilename')
d like(xmlSaveCtxtPtr)
d filename * value options(*string) const char *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSaveToBuffer...
d pr extproc('xmlSaveToBuffer')
d like(xmlSaveCtxtPtr)
d buffer value like(xmlBufferPtr)
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSaveToIO pr extproc('xmlSaveToIO')
d like(xmlSaveCtxtPtr)
@@ -66,29 +69,35 @@
d ioclose value like(xmlOutputCloseCallback)
d ioctx * value void *
d encoding * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
- d xmlSaveDoc pr 20i 0 extproc('xmlSaveDoc')
+ d xmlSaveDoc pr extproc('xmlSaveDoc')
+ d like(xmlClong)
d ctxt value like(xmlSaveCtxtPtr)
d doc value like(xmlDocPtr)
- d xmlSaveTree pr 20i 0 extproc('xmlSaveTree')
+ d xmlSaveTree pr extproc('xmlSaveTree')
+ d like(xmlClong)
d ctxt value like(xmlSaveCtxtPtr)
d node value like(xmlNodePtr)
- d xmlSaveFlush pr 10i 0 extproc('xmlSaveFlush')
+ d xmlSaveFlush pr extproc('xmlSaveFlush')
+ d like(xmlCint)
d ctxt value like(xmlSaveCtxtPtr)
- d xmlSaveClose pr 10i 0 extproc('xmlSaveClose')
+ d xmlSaveClose pr extproc('xmlSaveClose')
+ d like(xmlCint)
d ctxt value like(xmlSaveCtxtPtr)
d xmlSaveSetEscape...
- d pr 10i 0 extproc('xmlSaveSetEscape')
+ d pr extproc('xmlSaveSetEscape')
+ d like(xmlCint)
d ctxt value like(xmlSaveCtxtPtr)
d escape value like(xmlCharEncodingOutputFunc)
d xmlSaveSetAttrEscape...
- d pr 10i 0 extproc('xmlSaveSetAttrEscape')
+ d pr extproc('xmlSaveSetAttrEscape')
+ d like(xmlCint)
d ctxt value like(xmlSaveCtxtPtr)
d escape value like(xmlCharEncodingOutputFunc)
diff --git a/os400/libxmlrpg/xmlschemas.rpgle b/os400/libxmlrpg/xmlschemas.rpgle
index 865dd26..f34ddcd 100644
--- a/os400/libxmlrpg/xmlschemas.rpgle
+++ b/os400/libxmlrpg/xmlschemas.rpgle
@@ -13,12 +13,14 @@
/if defined(LIBXML_SCHEMAS_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
* This error codes are obsolete; not used any more.
d xmlSchemaValidError...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_SCHEMAS_ERR_OK...
d c 0
d XML_SCHEMAS_ERR_NOROOT...
@@ -81,7 +83,8 @@
* This is the set of XML Schema validation options.
d xmlSchemaValidOption...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
*
* Default/fixed: create an attribute node
* or an element's text node on the instance.
@@ -158,7 +161,7 @@
d pr extproc('xmlSchemaNewMemParserCtxt')
d like(xmlSchemaParserCtxtPtr)
d buffer * value options(*string) const char *
- d size 10i 0 value
+ d size value like(xmlCint)
d xmlSchemaNewDocParserCtxt...
d pr extproc('xmlSchemaNewDocParserCtxt')
@@ -186,14 +189,16 @@
d ctx * value void *
d xmlSchemaGetParserErrors...
- d pr 10i 0 extproc('xmlSchemaGetParserErrors')
+ d pr extproc('xmlSchemaGetParserErrors')
+ d like(xmlCint)
d ctxt value like(xmlSchemaParserCtxtPtr)
d err like(xmlSchemaValidityErrorFunc)
d warn like(xmlSchemaValidityWarningFunc)
d ctx * void *(*)
d xmlSchemaIsValid...
- d pr 10i 0 extproc('xmlSchemaIsValid')
+ d pr extproc('xmlSchemaIsValid')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
d xmlSchemaParse pr extproc('xmlSchemaParse')
@@ -228,16 +233,18 @@
d ctx * value void *
d xmlSchemaGetValidErrors...
- d pr 10i 0 extproc('xmlSchemaGetValidErrors')
+ d pr extproc('xmlSchemaGetValidErrors')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
d err like(xmlSchemaValidityErrorFunc)
d warn like(xmlSchemaValidityWarningFunc)
d ctx * void *(*)
d xmlSchemaSetValidOptions...
- d pr 10i 0 extproc('xmlSchemaSetValidOptions')
+ d pr extproc('xmlSchemaSetValidOptions')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSchemaValidateSetFilename...
d pr extproc(
@@ -246,8 +253,9 @@
d filename * value options(*string) const char *
d xmlSchemaValidCtxtGetOptions...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaValidCtxtGetOptions')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
d xmlSchemaNewValidCtxt...
@@ -260,18 +268,21 @@
d ctxt value like(xmlSchemaValidCtxtPtr)
d xmlSchemaValidateDoc...
- d pr 10i 0 extproc('xmlSchemaValidateDoc')
+ d pr extproc('xmlSchemaValidateDoc')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
d instance value like(xmlDocPtr)
d xmlSchemaValidateOneElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaValidateOneElement')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
d elem value like(xmlNodePtr)
d xmlSchemaValidateStream...
- d pr 10i 0 extproc('xmlSchemaValidateStream')
+ d pr extproc('xmlSchemaValidateStream')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
d input value like(xmlParserInputBufferPtr)
d enc value like(xmlCharEncoding)
@@ -279,10 +290,11 @@
d user_data * value void *
d xmlSchemaValidateFile...
- d pr 10i 0 extproc('xmlSchemaValidateFile')
+ d pr extproc('xmlSchemaValidateFile')
+ d like(xmlCint)
d ctxt value like(xmlSchemaValidCtxtPtr)
d filename * value options(*string) const char *
- d options 10i 0 value
+ d options value like(xmlCint)
d xmlSchemaValidCtxtGetParserCtxt...
d pr extproc(
@@ -303,7 +315,8 @@
d user_data * void *(*)
d xmlSchemaSAXUnplug...
- d pr 10i 0 extproc('xmlSchemaSAXUnplug')
+ d pr extproc('xmlSchemaSAXUnplug')
+ d like(xmlCint)
d plug value like(xmlSchemaSAXPlugPtr)
d xmlSchemaValidateSetLocator...
diff --git a/os400/libxmlrpg/xmlschemastypes.rpgle b/os400/libxmlrpg/xmlschemastypes.rpgle
index 6433c32..ecd6aba 100644
--- a/os400/libxmlrpg/xmlschemastypes.rpgle
+++ b/os400/libxmlrpg/xmlschemastypes.rpgle
@@ -13,11 +13,13 @@
/if defined(LIBXML_SCHEMAS_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/schemasInternals"
/include "libxmlrpg/xmlschemas"
d xmlSchemaWhitespaceValueType...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XML_SCHEMA_WHITESPACE_UNKNOWN...
d c 0
d XML_SCHEMA_WHITESPACE_PRESERVE...
@@ -40,29 +42,33 @@
d ns * value options(*string) const xmlChar *
d xmlSchemaValidatePredefinedType...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaValidatePredefinedType')
+ d like(xmlCint)
d type value like(xmlSchemaTypePtr)
d value * value options(*string) const xmlChar *
d val * value xmlSchemaValPtr *
d xmlSchemaValPredefTypeNode...
- d pr 10i 0 extproc('xmlSchemaValPredefTypeNode')
+ d pr extproc('xmlSchemaValPredefTypeNode')
+ d like(xmlCint)
d type value like(xmlSchemaTypePtr)
d value * value options(*string) const xmlChar *
d val * value xmlSchemaValPtr *
d node value like(xmlNodePtr)
d xmlSchemaValidateFacet...
- d pr 10i 0 extproc('xmlSchemaValidateFacet')
+ d pr extproc('xmlSchemaValidateFacet')
+ d like(xmlCint)
d base value like(xmlSchemaTypePtr)
d facet value like(xmlSchemaFacetPtr)
d value * value options(*string) const xmlChar *
d val value like(xmlSchemaValPtr)
d xmlSchemaValidateFacetWhtsp...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaValidateFacetWhtsp')
+ d like(xmlCint)
d facet value like(xmlSchemaFacetPtr)
d fws value
d like(xmlSchemaWhitespaceValueType)
@@ -81,7 +87,8 @@
d like(xmlSchemaFacetPtr)
d xmlSchemaCheckFacet...
- d pr 10i 0 extproc('xmlSchemaCheckFacet')
+ d pr extproc('xmlSchemaCheckFacet')
+ d like(xmlCint)
d facet value like(xmlSchemaFacetPtr)
d typeDecl value like(xmlSchemaTypePtr)
d ctxt value like(xmlSchemaParserCtxtPtr)
@@ -92,7 +99,8 @@
d facet value like(xmlSchemaFacetPtr)
d xmlSchemaCompareValues...
- d pr 10i 0 extproc('xmlSchemaCompareValues')
+ d pr extproc('xmlSchemaCompareValues')
+ d like(xmlCint)
d x value like(xmlSchemaValPtr)
d y value like(xmlSchemaValPtr)
@@ -103,11 +111,12 @@
d type value like(xmlSchemaTypePtr)
d xmlSchemaValidateListSimpleTypeFacet...
- d pr 10i 0 extproc('xmlSchemaValidateListSimple-
+ d pr extproc('xmlSchemaValidateListSimple-
d TypeFacet')
+ d like(xmlCint)
d facet value like(xmlSchemaFacetPtr)
d value * value options(*string) const xmlChar *
- d actualLen 20u 0 value
+ d actualLen value like(xmlCulong)
d expectedLen * value unsigned long *
d xmlSchemaGetBuiltInType...
@@ -116,10 +125,11 @@
d type value like(xmlSchemaValType)
d xmlSchemaIsBuiltInTypeFacet...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaIsBuiltInTypeFacet')
+ d like(xmlCint)
d type value like(xmlSchemaTypePtr)
- d facetType 10i 0 value
+ d facetType value like(xmlCint)
d xmlSchemaCollapseString...
d pr * extproc('xmlSchemaCollapseString') xmlChar *
@@ -130,53 +140,60 @@
d value * value options(*string) const xmlChar *
d xmlSchemaGetFacetValueAsULong...
- d pr 20u 0 extproc(
+ d pr extproc(
d 'xmlSchemaGetFacetValueAsULong')
+ d like(xmlCulong)
d facet value like(xmlSchemaFacetPtr)
d xmlSchemaValidateLengthFacet...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaValidateLengthFacet')
+ d like(xmlCint)
d type value like(xmlSchemaTypePtr)
d facet value like(xmlSchemaFacetPtr)
d value * value options(*string) const xmlChar *
d val value like(xmlSchemaValPtr)
- d length 20u 0
+ d length like(xmlCulong)
d xmlSchemaValidateLengthFacetWhtsp...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaValidateLengthFacetWhtsp')
+ d like(xmlCint)
d facet value like(xmlSchemaFacetPtr)
d valType value like(xmlSchemaValType)
d value * value options(*string) const xmlChar *
d val value like(xmlSchemaValPtr)
- d length 20u 0
+ d length like(xmlCulong)
d ws value
d like(xmlSchemaWhitespaceValueType)
d xmlSchemaValPredefTypeNodeNoNorm...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaValPredefTypeNodeNoNorm')
+ d like(xmlCint)
d type value like(xmlSchemaTypePtr)
d value * value options(*string) const xmlChar *
d val like(xmlSchemaValPtr)
d node value like(xmlNodePtr)
d xmlSchemaGetCanonValue...
- d pr 10i 0 extproc('xmlSchemaGetCanonValue')
+ d pr extproc('xmlSchemaGetCanonValue')
+ d like(xmlCint)
d val value like(xmlSchemaValPtr)
d retValue * value const xmlChar * *
d xmlSchemaGetCanonValueWhtsp...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaGetCanonValueWhtsp')
+ d like(xmlCint)
d val value like(xmlSchemaValPtr)
d retValue * value const xmlChar * *
d ws value
d like(xmlSchemaWhitespaceValueType)
d xmlSchemaValueAppend...
- d pr 10i 0 extproc('xmlSchemaValueAppend')
+ d pr extproc('xmlSchemaValueAppend')
+ d like(xmlCint)
d prev value like(xmlSchemaValPtr)
d cur value like(xmlSchemaValPtr)
@@ -190,7 +207,8 @@
d val value like(xmlSchemaValPtr)
d xmlSchemaValueGetAsBoolean...
- d pr 10i 0 extproc('xmlSchemaValueGetAsBoolean')
+ d pr extproc('xmlSchemaValueGetAsBoolean')
+ d like(xmlCint)
d val value like(xmlSchemaValPtr)
d xmlSchemaNewStringValue...
@@ -212,8 +230,9 @@
d localName * value options(*string) const xmlChar *
d xmlSchemaCompareValuesWhtsp...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlSchemaCompareValuesWhtsp')
+ d like(xmlCint)
d x value like(xmlSchemaValPtr)
d xws value
d like(xmlSchemaWhitespaceValueType)
diff --git a/os400/libxmlrpg/xmlstdarg.rpgle b/os400/libxmlrpg/xmlstdarg.rpgle
index 4e6f121..3c8e200 100644
--- a/os400/libxmlrpg/xmlstdarg.rpgle
+++ b/os400/libxmlrpg/xmlstdarg.rpgle
@@ -8,6 +8,7 @@
/define XML_STDARG_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
* The va_list object.
@@ -19,16 +20,16 @@
* Procedures.
d xmlVaStart pr extproc('__xmlVaStart')
- d list like(xmlVaList)
+ d list likeds(xmlVaList)
d lastargaddr * value
- d lastargsize 10u 0 value
+ d lastargsize value like(xmlCsize_t)
d xmlVaArg pr * extproc('__xmlVaArg')
- d list like(xmlVaList)
+ d list likeds(xmlVaList)
d dest * value
- d argsize 10i 0 value
+ d argsize value like(xmlCsize_t)
d xmlVaEnd pr extproc('__xmlVaEnd')
- d list like(xmlVaList)
+ d list likeds(xmlVaList)
/endif XML_STDARG_H__
diff --git a/os400/libxmlrpg/xmlstring.rpgle b/os400/libxmlrpg/xmlstring.rpgle
index 41e9eb5..59a7625 100644
--- a/os400/libxmlrpg/xmlstring.rpgle
+++ b/os400/libxmlrpg/xmlstring.rpgle
@@ -10,6 +10,7 @@
/define XML_STRING_H__
/include "libxmlrpg/xmlversion"
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/xmlstdarg"
* xmlChar:
@@ -18,7 +19,8 @@
* It's unsigned allowing to pinpoint case where char * are assigned
* to xmlChar * (possibly making serialization back impossible).
- d xmlChar s 3u 0 based(######typedef######)
+ d xmlChar s based(######typedef######)
+ d like(xmlCuchar)
* xmlChar handling
@@ -27,19 +29,19 @@
d xmlStrndup pr * extproc('xmlStrndup') xmlChar *
d cur * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlCharStrndup pr * extproc('xmlCharStrndup') xmlChar *
d cur * value options(*string) const char *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlCharStrdup pr * extproc('xmlCharStrdup') xmlChar *
d cur * value options(*string) const char *
d xmlStrsub pr * extproc('xmlStrsub') const xmlChar *
d str * value options(*string) const xmlChar *
- d start 10i 0 value
- d len 10i 0 value
+ d start value like(xmlCint)
+ d len value like(xmlCint)
d xmlStrchr pr * extproc('xmlStrchr') const xmlChar *
d str * value options(*string) const xmlChar *
@@ -53,34 +55,41 @@
d str * value options(*string) const xmlChar *
d val * value options(*string) const xmlChar *
- d xmlStrcmp pr 10i 0 extproc('xmlStrcmp')
+ d xmlStrcmp pr extproc('xmlStrcmp')
+ d like(xmlCint)
d str1 * value options(*string) const xmlChar *
d str2 * value options(*string) const xmlChar *
- d xmlStrncmp pr 10i 0 extproc('xmlStrncmp')
+ d xmlStrncmp pr extproc('xmlStrncmp')
+ d like(xmlCint)
d str1 * value options(*string) const xmlChar *
d str2 * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
- d xmlStrcasecmp pr 10i 0 extproc('xmlStrcasecmp')
+ d xmlStrcasecmp pr extproc('xmlStrcasecmp')
+ d like(xmlCint)
d str1 * value options(*string) const xmlChar *
d str2 * value options(*string) const xmlChar *
- d xmlStrncasecmp pr 10i 0 extproc('xmlStrncasecmp')
+ d xmlStrncasecmp pr extproc('xmlStrncasecmp')
+ d like(xmlCint)
d str1 * value options(*string) const xmlChar *
d str2 * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
- d xmlStrEqual pr 10i 0 extproc('xmlStrEqual')
+ d xmlStrEqual pr extproc('xmlStrEqual')
+ d like(xmlCint)
d str1 * value options(*string) const xmlChar *
d str2 * value options(*string) const xmlChar *
- d xmlStrQEqual pr 10i 0 extproc('xmlStrQEqual')
+ d xmlStrQEqual pr extproc('xmlStrQEqual')
+ d like(xmlCint)
d pref * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
d stre * value options(*string) const xmlChar *
- d xmlStrlen pr 10i 0 extproc('xmlStrlen')
+ d xmlStrlen pr extproc('xmlStrlen')
+ d like(xmlCint)
d str * value options(*string) const xmlChar *
d xmlStrcat pr * extproc('xmlStrcat') xmlChar *
@@ -90,22 +99,23 @@
d xmlStrncat pr * extproc('xmlStrncat') xmlChar *
d cur * value options(*string) xmlChar *
d add * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlStrncatNew pr * extproc('xmlStrncatNew') xmlChar *
d str1 * value options(*string) const xmlChar *
d str2 * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
* xmlStrPrintf() is a vararg function.
* The following prototype supports up to 8 pointer arguments.
* Other argument signature can be achieved by defining alternate
* prototypes redirected to the same function.
- d xmlStrPrintf pr 10i 0 extproc('xmlStrPrintf')
+ d xmlStrPrintf pr extproc('xmlStrPrintf')
+ d like(xmlCint)
d buf * value options(*string) xmlChar *
- d len 10i 0 value
- d msg * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+ d msg * value options(*string) const char *
d arg1 * value options(*string: *nopass)
d arg2 * value options(*string: *nopass)
d arg3 * value options(*string: *nopass)
@@ -115,47 +125,55 @@
d arg7 * value options(*string: *nopass)
d arg8 * value options(*string: *nopass)
- d xmlStrVPrintf pr 10i 0 extproc('xmlStrVPrintf')
+ d xmlStrVPrintf pr extproc('xmlStrVPrintf')
+ d like(xmlCint)
d buf * value options(*string) xmlChar *
- d len 10i 0 value
- d msg * value options(*string) const xmlChar *
+ d len value like(xmlCint)
+ d msg * value options(*string) const char *
d ap likeds(xmlVaList)
- d xmlGetUTF8Char pr 10i 0 extproc('xmlGetUTF8Char')
+ d xmlGetUTF8Char pr extproc('xmlGetUTF8Char')
+ d like(xmlCint)
d utf * value options(*string) const uns. char *
- d len 10i 0
+ d len like(xmlCint)
- d xmlCheckUTF8 pr 10i 0 extproc('xmlCheckUTF8')
+ d xmlCheckUTF8 pr extproc('xmlCheckUTF8')
+ d like(xmlCint)
d utf * value options(*string) const uns. char *
- d xmlUTF8Strsize pr 10i 0 extproc('xmlUTF8Strsize')
+ d xmlUTF8Strsize pr extproc('xmlUTF8Strsize')
+ d like(xmlCint)
d utf * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlUTF8Strndup pr * extproc('xmlUTF8Strndup') xmlChar *
d utf * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlUTF8Strpos pr * extproc('xmlUTF8Strpos') const xmlChar *
d utf * value options(*string) const xmlChar *
- d pos 10i 0 value
+ d pos value like(xmlCint)
- d xmlUTF8Strloc pr 10i 0 extproc('xmlUTF8Strloc')
+ d xmlUTF8Strloc pr extproc('xmlUTF8Strloc')
+ d like(xmlCint)
d utf * value options(*string) const xmlChar *
d utfchar * value options(*string) const xmlChar *
d xmlUTF8Strsub pr * extproc('xmlUTF8Strsub') xmlChar *
d utf * value options(*string) const xmlChar *
- d start 10i 0 value
- d len 10i 0 value
+ d start value like(xmlCint)
+ d len value like(xmlCint)
- d xmlUTF8Strlen pr 10i 0 extproc('xmlUTF8Strlen')
+ d xmlUTF8Strlen pr extproc('xmlUTF8Strlen')
+ d like(xmlCint)
d utf * value options(*string) const xmlChar *
- d xmlUTF8Size pr 10i 0 extproc('xmlUTF8Size')
+ d xmlUTF8Size pr extproc('xmlUTF8Size')
+ d like(xmlCint)
d utf * value options(*string) const xmlChar *
- d xmlUTF8Charcmp pr 10i 0 extproc('xmlUTF8Charcmp')
+ d xmlUTF8Charcmp pr extproc('xmlUTF8Charcmp')
+ d like(xmlCint)
d utf1 * value options(*string) const xmlChar *
d utf2 * value options(*string) const xmlChar *
diff --git a/os400/libxmlrpg/xmlunicode.rpgle b/os400/libxmlrpg/xmlunicode.rpgle
index 64f7abf..c4c4ba1 100644
--- a/os400/libxmlrpg/xmlunicode.rpgle
+++ b/os400/libxmlrpg/xmlunicode.rpgle
@@ -12,656 +12,824 @@
/if defined(LIBXML_UNICODE_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+
d xmlUCSIsAegeanNumbers...
- d pr 10i 0 extproc('xmlUCSIsAegeanNumbers')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsAegeanNumbers')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsAlphabeticPresentationForms...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsAlphabeticPresentationForms'
d )
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsArabic pr 10i 0 extproc('xmlUCSIsArabic')
- d code 10i 0 value
+ d xmlUCSIsArabic pr extproc('xmlUCSIsArabic')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsArabicPresentationFormsA...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsArabicPresentationFormsA')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsArabicPresentationFormsB...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsArabicPresentationFormsB')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsArmenian...
- d pr 10i 0 extproc('xmlUCSIsArmenian')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsArmenian')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsArrows pr 10i 0 extproc('xmlUCSIsArrows')
- d code 10i 0 value
+ d xmlUCSIsArrows pr extproc('xmlUCSIsArrows')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsBasicLatin...
- d pr 10i 0 extproc('xmlUCSIsBasicLatin')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsBasicLatin')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsBengali...
- d pr 10i 0 extproc('xmlUCSIsBengali')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsBengali')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsBlockElements...
- d pr 10i 0 extproc('xmlUCSIsBlockElements')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsBlockElements')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsBopomofo...
- d pr 10i 0 extproc('xmlUCSIsBopomofo')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsBopomofo')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsBopomofoExtended...
- d pr 10i 0 extproc('xmlUCSIsBopomofoExtended')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsBopomofoExtended')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsBoxDrawing...
- d pr 10i 0 extproc('xmlUCSIsBoxDrawing')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsBoxDrawing')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsBraillePatterns...
- d pr 10i 0 extproc('xmlUCSIsBraillePatterns')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsBraillePatterns')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsBuhid pr 10i 0 extproc('xmlUCSIsBuhid')
- d code 10i 0 value
+ d xmlUCSIsBuhid pr extproc('xmlUCSIsBuhid')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsByzantineMusicalSymbols...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsByzantineMusicalSymbols')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKCompatibility...
- d pr 10i 0 extproc('xmlUCSIsCJKCompatibility')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsCJKCompatibility')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKCompatibilityForms...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsCJKCompatibilityForms')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKCompatibilityIdeographs...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsCJKCompatibilityIdeographs')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKCompatibilityIdeographsSupplement...
- d pr 10i 0 extproc('xmlUCSIsCJKCompatibilityIde-
+ d pr extproc('xmlUCSIsCJKCompatibilityIde-
d ographsSupplement')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKRadicalsSupplement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsCJKRadicalsSupplement')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKSymbolsandPunctuation...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsCJKSymbolsandPunctuation')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKUnifiedIdeographs...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsCJKUnifiedIdeographs')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKUnifiedIdeographsExtensionA...
- d pr 10i 0 extproc('xmlUCSIsCJKUnifiedIdeograph-
+ d pr extproc('xmlUCSIsCJKUnifiedIdeograph-
d sExtensionA')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCJKUnifiedIdeographsExtensionB...
- d pr 10i 0 extproc('xmlUCSIsCJKUnifiedIdeograph-
+ d pr extproc('xmlUCSIsCJKUnifiedIdeograph-
d sExtensionB')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCherokee...
- d pr 10i 0 extproc('xmlUCSIsCherokee')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsCherokee')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCombiningDiacriticalMarks...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsCombiningDiacriticalMarks')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCombiningDiacriticalMarksforSymbols...
- d pr 10i 0 extproc('xmlUCSIsCombiningDiacritica-
+ d pr extproc('xmlUCSIsCombiningDiacritica-
d lMarksforSymbols')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCombiningHalfMarks...
- d pr 10i 0 extproc('xmlUCSIsCombiningHalfMarks')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsCombiningHalfMarks')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCombiningMarksforSymbols...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsCombiningMarksforSymbols')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsControlPictures...
- d pr 10i 0 extproc('xmlUCSIsControlPictures')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsControlPictures')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCurrencySymbols...
- d pr 10i 0 extproc('xmlUCSIsCurrencySymbols')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsCurrencySymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCypriotSyllabary...
- d pr 10i 0 extproc('xmlUCSIsCypriotSyllabary')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsCypriotSyllabary')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCyrillic...
- d pr 10i 0 extproc('xmlUCSIsCyrillic')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsCyrillic')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsCyrillicSupplement...
- d pr 10i 0 extproc('xmlUCSIsCyrillicSupplement')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsCyrillicSupplement')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsDeseret...
- d pr 10i 0 extproc('xmlUCSIsDeseret')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsDeseret')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsDevanagari...
- d pr 10i 0 extproc('xmlUCSIsDevanagari')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsDevanagari')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsDingbats...
- d pr 10i 0 extproc('xmlUCSIsDingbats')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsDingbats')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsEnclosedAlphanumerics...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsEnclosedAlphanumerics')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsEnclosedCJKLettersandMonths...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsEnclosedCJKLettersandMonths'
d )
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsEthiopic...
- d pr 10i 0 extproc('xmlUCSIsEthiopic')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsEthiopic')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsGeneralPunctuation...
- d pr 10i 0 extproc('xmlUCSIsGeneralPunctuation')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsGeneralPunctuation')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsGeometricShapes...
- d pr 10i 0 extproc('xmlUCSIsGeometricShapes')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsGeometricShapes')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsGeorgian...
- d pr 10i 0 extproc('xmlUCSIsGeorgian')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsGeorgian')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsGothic pr 10i 0 extproc('xmlUCSIsGothic')
- d code 10i 0 value
+ d xmlUCSIsGothic pr extproc('xmlUCSIsGothic')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsGreek pr 10i 0 extproc('xmlUCSIsGreek')
- d code 10i 0 value
+ d xmlUCSIsGreek pr extproc('xmlUCSIsGreek')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsGreekExtended...
- d pr 10i 0 extproc('xmlUCSIsGreekExtended')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsGreekExtended')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsGreekandCoptic...
- d pr 10i 0 extproc('xmlUCSIsGreekandCoptic')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsGreekandCoptic')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsGujarati...
- d pr 10i 0 extproc('xmlUCSIsGujarati')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsGujarati')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsGurmukhi...
- d pr 10i 0 extproc('xmlUCSIsGurmukhi')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsGurmukhi')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHalfwidthandFullwidthForms...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsHalfwidthandFullwidthForms')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHangulCompatibilityJamo...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsHangulCompatibilityJamo')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHangulJamo...
- d pr 10i 0 extproc('xmlUCSIsHangulJamo')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsHangulJamo')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHangulSyllables...
- d pr 10i 0 extproc('xmlUCSIsHangulSyllables')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsHangulSyllables')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHanunoo...
- d pr 10i 0 extproc('xmlUCSIsHanunoo')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsHanunoo')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsHebrew pr 10i 0 extproc('xmlUCSIsHebrew')
- d code 10i 0 value
+ d xmlUCSIsHebrew pr extproc('xmlUCSIsHebrew')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHighPrivateUseSurrogates...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsHighPrivateUseSurrogates')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHighSurrogates...
- d pr 10i 0 extproc('xmlUCSIsHighSurrogates')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsHighSurrogates')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsHiragana...
- d pr 10i 0 extproc('xmlUCSIsHiragana')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsHiragana')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsIPAExtensions...
- d pr 10i 0 extproc('xmlUCSIsIPAExtensions')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsIPAExtensions')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsIdeographicDescriptionCharacters...
- d pr 10i 0 extproc('xmlUCSIsIdeographicDescript-
+ d pr extproc('xmlUCSIsIdeographicDescript-
d ionCharacters')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsKanbun pr 10i 0 extproc('xmlUCSIsKanbun')
- d code 10i 0 value
+ d xmlUCSIsKanbun pr extproc('xmlUCSIsKanbun')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsKangxiRadicals...
- d pr 10i 0 extproc('xmlUCSIsKangxiRadicals')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsKangxiRadicals')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsKannada...
- d pr 10i 0 extproc('xmlUCSIsKannada')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsKannada')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsKatakana...
- d pr 10i 0 extproc('xmlUCSIsKatakana')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsKatakana')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsKatakanaPhoneticExtensions...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsKatakanaPhoneticExtensions')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsKhmer pr 10i 0 extproc('xmlUCSIsKhmer')
- d code 10i 0 value
+ d xmlUCSIsKhmer pr extproc('xmlUCSIsKhmer')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsKhmerSymbols...
- d pr 10i 0 extproc('xmlUCSIsKhmerSymbols')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsKhmerSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsLao pr 10i 0 extproc('xmlUCSIsLao')
- d code 10i 0 value
+ d xmlUCSIsLao pr extproc('xmlUCSIsLao')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLatin1Supplement...
- d pr 10i 0 extproc('xmlUCSIsLatin1Supplement')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsLatin1Supplement')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLatinExtendedA...
- d pr 10i 0 extproc('xmlUCSIsLatinExtendedA')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsLatinExtendedA')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLatinExtendedB...
- d pr 10i 0 extproc('xmlUCSIsLatinExtendedB')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsLatinExtendedB')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLatinExtendedAdditional...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsLatinExtendedAdditional')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLetterlikeSymbols...
- d pr 10i 0 extproc('xmlUCSIsLetterlikeSymbols')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsLetterlikeSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsLimbu pr 10i 0 extproc('xmlUCSIsLimbu')
- d code 10i 0 value
+ d xmlUCSIsLimbu pr extproc('xmlUCSIsLimbu')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLinearBIdeograms...
- d pr 10i 0 extproc('xmlUCSIsLinearBIdeograms')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsLinearBIdeograms')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLinearBSyllabary...
- d pr 10i 0 extproc('xmlUCSIsLinearBSyllabary')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsLinearBSyllabary')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsLowSurrogates...
- d pr 10i 0 extproc('xmlUCSIsLowSurrogates')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsLowSurrogates')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMalayalam...
- d pr 10i 0 extproc('xmlUCSIsMalayalam')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsMalayalam')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMathematicalAlphanumericSymbols...
- d pr 10i 0 extproc('xmlUCSIsMathematicalAlphanu-
+ d pr extproc('xmlUCSIsMathematicalAlphanu-
d mericSymbols')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMathematicalOperators...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsMathematicalOperators')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMiscellaneousMathematicalSymbolsA...
- d pr 10i 0 extproc('xmlUCSIsMiscellaneousMathem-
+ d pr extproc('xmlUCSIsMiscellaneousMathem-
d aticalSymbolsA')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMiscellaneousMathematicalSymbolsB...
- d pr 10i 0 extproc('xmlUCSIsMiscellaneousMathem-
+ d pr extproc('xmlUCSIsMiscellaneousMathem-
d aticalSymbolsB')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMiscellaneousSymbols...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsMiscellaneousSymbols')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMiscellaneousSymbolsandArrows...
- d pr 10i 0 extproc('xmlUCSIsMiscellaneousSymbol-
+ d pr extproc('xmlUCSIsMiscellaneousSymbol-
d sandArrows')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMiscellaneousTechnical...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsMiscellaneousTechnical')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMongolian...
- d pr 10i 0 extproc('xmlUCSIsMongolian')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsMongolian')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMusicalSymbols...
- d pr 10i 0 extproc('xmlUCSIsMusicalSymbols')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsMusicalSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsMyanmar...
- d pr 10i 0 extproc('xmlUCSIsMyanmar')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsMyanmar')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsNumberForms...
- d pr 10i 0 extproc('xmlUCSIsNumberForms')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsNumberForms')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsOgham pr 10i 0 extproc('xmlUCSIsOgham')
- d code 10i 0 value
+ d xmlUCSIsOgham pr extproc('xmlUCSIsOgham')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsOldItalic...
- d pr 10i 0 extproc('xmlUCSIsOldItalic')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsOldItalic')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsOpticalCharacterRecognition...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsOpticalCharacterRecognition'
d )
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsOriya pr 10i 0 extproc('xmlUCSIsOriya')
- d code 10i 0 value
+ d xmlUCSIsOriya pr extproc('xmlUCSIsOriya')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsOsmanya...
- d pr 10i 0 extproc('xmlUCSIsOsmanya')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsOsmanya')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsPhoneticExtensions...
- d pr 10i 0 extproc('xmlUCSIsPhoneticExtensions')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsPhoneticExtensions')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsPrivateUse...
- d pr 10i 0 extproc('xmlUCSIsPrivateUse')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsPrivateUse')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsPrivateUseArea...
- d pr 10i 0 extproc('xmlUCSIsPrivateUseArea')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsPrivateUseArea')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsRunic pr 10i 0 extproc('xmlUCSIsRunic')
- d code 10i 0 value
+ d xmlUCSIsRunic pr extproc('xmlUCSIsRunic')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsShavian...
- d pr 10i 0 extproc('xmlUCSIsShavian')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsShavian')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSinhala...
- d pr 10i 0 extproc('xmlUCSIsSinhala')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsSinhala')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSmallFormVariants...
- d pr 10i 0 extproc('xmlUCSIsSmallFormVariants')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsSmallFormVariants')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSpacingModifierLetters...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsSpacingModifierLetters')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSpecials...
- d pr 10i 0 extproc('xmlUCSIsSpecials')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsSpecials')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSuperscriptsandSubscripts...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsSuperscriptsandSubscripts')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSupplementalArrowsA...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsSupplementalArrowsA')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSupplementalArrowsB...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsSupplementalArrowsB')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSupplementalMathematicalOperators...
- d pr 10i 0 extproc('xmlUCSIsSupplementalMathema-
+ d pr extproc('xmlUCSIsSupplementalMathema-
d ticalOperators')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSupplementaryPrivateUseAreaA...
- d pr 10i 0 extproc('xmlUCSIsSupplementaryPrivat-
+ d pr extproc('xmlUCSIsSupplementaryPrivat-
d eUseAreaA')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsSupplementaryPrivateUseAreaB...
- d pr 10i 0 extproc('xmlUCSIsSupplementaryPrivat-
+ d pr extproc('xmlUCSIsSupplementaryPrivat-
d eUseAreaB')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsSyriac pr 10i 0 extproc('xmlUCSIsSyriac')
- d code 10i 0 value
+ d xmlUCSIsSyriac pr extproc('xmlUCSIsSyriac')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsTagalog...
- d pr 10i 0 extproc('xmlUCSIsTagalog')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsTagalog')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsTagbanwa...
- d pr 10i 0 extproc('xmlUCSIsTagbanwa')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsTagbanwa')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsTags pr 10i 0 extproc('xmlUCSIsTags')
- d code 10i 0 value
+ d xmlUCSIsTags pr extproc('xmlUCSIsTags')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsTaiLe pr 10i 0 extproc('xmlUCSIsTaiLe')
- d code 10i 0 value
+ d xmlUCSIsTaiLe pr extproc('xmlUCSIsTaiLe')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsTaiXuanJingSymbols...
- d pr 10i 0 extproc('xmlUCSIsTaiXuanJingSymbols')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsTaiXuanJingSymbols')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsTamil pr 10i 0 extproc('xmlUCSIsTamil')
- d code 10i 0 value
+ d xmlUCSIsTamil pr extproc('xmlUCSIsTamil')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsTelugu pr 10i 0 extproc('xmlUCSIsTelugu')
- d code 10i 0 value
+ d xmlUCSIsTelugu pr extproc('xmlUCSIsTelugu')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsThaana pr 10i 0 extproc('xmlUCSIsThaana')
- d code 10i 0 value
+ d xmlUCSIsThaana pr extproc('xmlUCSIsThaana')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsThai pr 10i 0 extproc('xmlUCSIsThai')
- d code 10i 0 value
+ d xmlUCSIsThai pr extproc('xmlUCSIsThai')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsTibetan...
- d pr 10i 0 extproc('xmlUCSIsTibetan')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsTibetan')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsUgaritic...
- d pr 10i 0 extproc('xmlUCSIsUgaritic')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsUgaritic')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsUnifiedCanadianAboriginalSyllabics...
- d pr 10i 0 extproc('xmlUCSIsUnifiedCanadianAbor-
+ d pr extproc('xmlUCSIsUnifiedCanadianAbor-
d iginalSyllabics')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsVariationSelectors...
- d pr 10i 0 extproc('xmlUCSIsVariationSelectors')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsVariationSelectors')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsVariationSelectorsSupplement...
- d pr 10i 0 extproc('xmlUCSIsVariationSelectorsS-
+ d pr extproc('xmlUCSIsVariationSelectorsS-
d upplement')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsYiRadicals...
- d pr 10i 0 extproc('xmlUCSIsYiRadicals')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsYiRadicals')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsYiSyllables...
- d pr 10i 0 extproc('xmlUCSIsYiSyllables')
- d code 10i 0 value
+ d pr extproc('xmlUCSIsYiSyllables')
+ d like(xmlCint)
+ d code value like(xmlCint)
d xmlUCSIsYijingHexagramSymbols...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlUCSIsYijingHexagramSymbols')
- d code 10i 0 value
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsBlock pr 10i 0 extproc('xmlUCSIsBlock')
- d code 10i 0 value
+ d xmlUCSIsBlock pr extproc('xmlUCSIsBlock')
+ d like(xmlCint)
+ d code value like(xmlCint)
d block * value options(*string) const char *
- d xmlUCSIsCatC pr 10i 0 extproc('xmlUCSIsCatC')
- d code 10i 0 value
+ d xmlUCSIsCatC pr extproc('xmlUCSIsCatC')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatCc pr 10i 0 extproc('xmlUCSIsCatCc')
- d code 10i 0 value
+ d xmlUCSIsCatCc pr extproc('xmlUCSIsCatCc')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatCf pr 10i 0 extproc('xmlUCSIsCatCf')
- d code 10i 0 value
+ d xmlUCSIsCatCf pr extproc('xmlUCSIsCatCf')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatCo pr 10i 0 extproc('xmlUCSIsCatCo')
- d code 10i 0 value
+ d xmlUCSIsCatCo pr extproc('xmlUCSIsCatCo')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatCs pr 10i 0 extproc('xmlUCSIsCatCs')
- d code 10i 0 value
+ d xmlUCSIsCatCs pr extproc('xmlUCSIsCatCs')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatL pr 10i 0 extproc('xmlUCSIsCatL')
- d code 10i 0 value
+ d xmlUCSIsCatL pr extproc('xmlUCSIsCatL')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatLl pr 10i 0 extproc('xmlUCSIsCatLl')
- d code 10i 0 value
+ d xmlUCSIsCatLl pr extproc('xmlUCSIsCatLl')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatLm pr 10i 0 extproc('xmlUCSIsCatLm')
- d code 10i 0 value
+ d xmlUCSIsCatLm pr extproc('xmlUCSIsCatLm')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatLo pr 10i 0 extproc('xmlUCSIsCatLo')
- d code 10i 0 value
+ d xmlUCSIsCatLo pr extproc('xmlUCSIsCatLo')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatLt pr 10i 0 extproc('xmlUCSIsCatLt')
- d code 10i 0 value
+ d xmlUCSIsCatLt pr extproc('xmlUCSIsCatLt')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatLu pr 10i 0 extproc('xmlUCSIsCatLu')
- d code 10i 0 value
+ d xmlUCSIsCatLu pr extproc('xmlUCSIsCatLu')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatM pr 10i 0 extproc('xmlUCSIsCatM')
- d code 10i 0 value
+ d xmlUCSIsCatM pr extproc('xmlUCSIsCatM')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatMc pr 10i 0 extproc('xmlUCSIsCatMc')
- d code 10i 0 value
+ d xmlUCSIsCatMc pr extproc('xmlUCSIsCatMc')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatMe pr 10i 0 extproc('xmlUCSIsCatMe')
- d code 10i 0 value
+ d xmlUCSIsCatMe pr extproc('xmlUCSIsCatMe')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatMn pr 10i 0 extproc('xmlUCSIsCatMn')
- d code 10i 0 value
+ d xmlUCSIsCatMn pr extproc('xmlUCSIsCatMn')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatN pr 10i 0 extproc('xmlUCSIsCatN')
- d code 10i 0 value
+ d xmlUCSIsCatN pr extproc('xmlUCSIsCatN')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatNd pr 10i 0 extproc('xmlUCSIsCatNd')
- d code 10i 0 value
+ d xmlUCSIsCatNd pr extproc('xmlUCSIsCatNd')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatNl pr 10i 0 extproc('xmlUCSIsCatNl')
- d code 10i 0 value
+ d xmlUCSIsCatNl pr extproc('xmlUCSIsCatNl')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatNo pr 10i 0 extproc('xmlUCSIsCatNo')
- d code 10i 0 value
+ d xmlUCSIsCatNo pr extproc('xmlUCSIsCatNo')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatP pr 10i 0 extproc('xmlUCSIsCatP')
- d code 10i 0 value
+ d xmlUCSIsCatP pr extproc('xmlUCSIsCatP')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatPc pr 10i 0 extproc('xmlUCSIsCatPc')
- d code 10i 0 value
+ d xmlUCSIsCatPc pr extproc('xmlUCSIsCatPc')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatPd pr 10i 0 extproc('xmlUCSIsCatPd')
- d code 10i 0 value
+ d xmlUCSIsCatPd pr extproc('xmlUCSIsCatPd')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatPe pr 10i 0 extproc('xmlUCSIsCatPe')
- d code 10i 0 value
+ d xmlUCSIsCatPe pr extproc('xmlUCSIsCatPe')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatPf pr 10i 0 extproc('xmlUCSIsCatPf')
- d code 10i 0 value
+ d xmlUCSIsCatPf pr extproc('xmlUCSIsCatPf')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatPi pr 10i 0 extproc('xmlUCSIsCatPi')
- d code 10i 0 value
+ d xmlUCSIsCatPi pr extproc('xmlUCSIsCatPi')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatPo pr 10i 0 extproc('xmlUCSIsCatPo')
- d code 10i 0 value
+ d xmlUCSIsCatPo pr extproc('xmlUCSIsCatPo')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatPs pr 10i 0 extproc('xmlUCSIsCatPs')
- d code 10i 0 value
+ d xmlUCSIsCatPs pr extproc('xmlUCSIsCatPs')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatS pr 10i 0 extproc('xmlUCSIsCatS')
- d code 10i 0 value
+ d xmlUCSIsCatS pr extproc('xmlUCSIsCatS')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatSc pr 10i 0 extproc('xmlUCSIsCatSc')
- d code 10i 0 value
+ d xmlUCSIsCatSc pr extproc('xmlUCSIsCatSc')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatSk pr 10i 0 extproc('xmlUCSIsCatSk')
- d code 10i 0 value
+ d xmlUCSIsCatSk pr extproc('xmlUCSIsCatSk')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatSm pr 10i 0 extproc('xmlUCSIsCatSm')
- d code 10i 0 value
+ d xmlUCSIsCatSm pr extproc('xmlUCSIsCatSm')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatSo pr 10i 0 extproc('xmlUCSIsCatSo')
- d code 10i 0 value
+ d xmlUCSIsCatSo pr extproc('xmlUCSIsCatSo')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatZ pr 10i 0 extproc('xmlUCSIsCatZ')
- d code 10i 0 value
+ d xmlUCSIsCatZ pr extproc('xmlUCSIsCatZ')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatZl pr 10i 0 extproc('xmlUCSIsCatZl')
- d code 10i 0 value
+ d xmlUCSIsCatZl pr extproc('xmlUCSIsCatZl')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatZp pr 10i 0 extproc('xmlUCSIsCatZp')
- d code 10i 0 value
+ d xmlUCSIsCatZp pr extproc('xmlUCSIsCatZp')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCatZs pr 10i 0 extproc('xmlUCSIsCatZs')
- d code 10i 0 value
+ d xmlUCSIsCatZs pr extproc('xmlUCSIsCatZs')
+ d like(xmlCint)
+ d code value like(xmlCint)
- d xmlUCSIsCat pr 10i 0 extproc('xmlUCSIsCat')
- d code 10i 0 value
+ d xmlUCSIsCat pr extproc('xmlUCSIsCat')
+ d like(xmlCint)
+ d code value like(xmlCint)
d cat * value options(*string) const char *
/endif LIBXML_UNICODE_ENBLD
diff --git a/os400/libxmlrpg/xmlversion.rpgle.in b/os400/libxmlrpg/xmlversion.rpgle.in
index 81676be..955599e 100644
--- a/os400/libxmlrpg/xmlversion.rpgle.in
+++ b/os400/libxmlrpg/xmlversion.rpgle.in
@@ -8,6 +8,7 @@
/if not defined(XML_VERSION_H__)
/define XML_VERSION_H__
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/xmlexports"
* use those to be sure nothing nasty will happen if
@@ -16,7 +17,7 @@
d xmlCheckVersion...
d pr extproc('xmlCheckVersion')
- d version 10i 0 value
+ d version value like(xmlCint)
* LIBXML_DOTTED_VERSION:
*
diff --git a/os400/libxmlrpg/xmlwriter.rpgle b/os400/libxmlrpg/xmlwriter.rpgle
index f2d3d30..c8530f8 100644
--- a/os400/libxmlrpg/xmlwriter.rpgle
+++ b/os400/libxmlrpg/xmlwriter.rpgle
@@ -12,6 +12,7 @@
/if defined(LIBXML_WRITER_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/xmlstdarg"
/include "libxmlrpg/xmlIO"
/include "libxmlrpg/list"
@@ -31,32 +32,32 @@
d pr extproc('xmlNewTextWriterFilename')
d like(xmlTextWriterPtr)
d uri * value options(*string) const char *
- d compression 10i 0 value
+ d compression value like(xmlCint)
d xmlNewTextWriterMemory...
d pr extproc('xmlNewTextWriterMemory')
d like(xmlTextWriterPtr)
d buf value like(xmlBufferPtr)
- d compression 10i 0 value
+ d compression value like(xmlCint)
d xmlNewTextWriterPushParser...
d pr extproc('xmlNewTextWriterPushParser')
d like(xmlTextWriterPtr)
d ctxt value like(xmlParserCtxtPtr)
- d compression 10i 0 value
+ d compression value like(xmlCint)
d xmlNewTextWriterDoc...
d pr extproc('xmlNewTextWriterDoc')
d like(xmlTextWriterPtr)
d doc like(xmlDocPtr)
- d compression 10i 0 value
+ d compression value like(xmlCint)
d xmlNewTextWriterTree...
d pr extproc('xmlNewTextWriterTree')
d like(xmlTextWriterPtr)
d doc value like(xmlDocPtr)
d node value like(xmlNodePtr)
- d compression 10i 0 value
+ d compression value like(xmlCint)
d xmlFreeTextWriter...
d pr extproc('xmlFreeTextWriter')
@@ -67,29 +68,34 @@
* Document
d xmlTextWriterStartDocument...
- d pr 10i 0 extproc('xmlTextWriterStartDocument')
+ d pr extproc('xmlTextWriterStartDocument')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d version * value options(*string) const char *
d encoding * value options(*string) const char *
d standalone * value options(*string) const char *
d xmlTextWriterEndDocument...
- d pr 10i 0 extproc('xmlTextWriterEndDocument')
+ d pr extproc('xmlTextWriterEndDocument')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* Comments
d xmlTextWriterStartComment...
- d pr 10i 0 extproc('xmlTextWriterStartComment')
+ d pr extproc('xmlTextWriterStartComment')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d xmlTextWriterEndComment...
- d pr 10i 0 extproc('xmlTextWriterEndComment')
+ d pr extproc('xmlTextWriterEndComment')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d xmlTextWriterWriteFormatComment...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatComment')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string: *nopass) const char *
d #vararg1 * value options(*string: *nopass) void *
@@ -102,46 +108,53 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatComment...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatComment')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteComment...
- d pr 10i 0 extproc('xmlTextWriterWriteComment')
+ d pr extproc('xmlTextWriterWriteComment')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d content * value options(*string) const xmlChar *
* Elements
d xmlTextWriterStartElement...
- d pr 10i 0 extproc('xmlTextWriterStartElement')
+ d pr extproc('xmlTextWriterStartElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d xmlTextWriterStartElementNS...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterStartElementNS')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
d namespaceURI * value options(*string) const xmlChar *
d xmlTextWriterEndElement...
- d pr 10i 0 extproc('xmlTextWriterEndElement')
+ d pr extproc('xmlTextWriterEndElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d xmlTextWriterFullEndElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterFullEndElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* Elements conveniency functions
d xmlTextWriterWriteFormatElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
@@ -155,22 +168,25 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteElement...
- d pr 10i 0 extproc('xmlTextWriterWriteElement')
+ d pr extproc('xmlTextWriterWriteElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
d xmlTextWriterWriteFormatElementNS...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatElementNS')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
@@ -186,8 +202,9 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatElementNS...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatElementNS')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
@@ -196,8 +213,9 @@
d argptr likeds(xmlVaList)
d xmlTextWriterWriteElementNS...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteElementNS')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
@@ -207,8 +225,9 @@
* Text
d xmlTextWriterWriteFormatRaw...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatRaw')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string) const char *
d #vararg1 * value options(*string: *nopass) void *
@@ -221,26 +240,30 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatRaw...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatRaw')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteRawLen...
- d pr 10i 0 extproc('xmlTextWriterWriteRawLen')
+ d pr extproc('xmlTextWriterWriteRawLen')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d content * value options(*string) const xmlChar *
- d len 10i 0 value
+ d len value like(xmlCint)
d xmlTextWriterWriteRaw...
- d pr 10i 0 extproc('xmlTextWriterWriteRaw')
+ d pr extproc('xmlTextWriterWriteRaw')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d content * value options(*string) const xmlChar *
d xmlTextWriterWriteFormatString...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatString')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string) const char *
d #vararg1 * value options(*string: *nopass) void *
@@ -253,56 +276,64 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatString...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatString')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteString...
- d pr 10i 0 extproc('xmlTextWriterWriteString')
+ d pr extproc('xmlTextWriterWriteString')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d content * value options(*string) const xmlChar *
d xmlTextWriterWriteBase64...
- d pr 10i 0 extproc('xmlTextWriterWriteBase64')
+ d pr extproc('xmlTextWriterWriteBase64')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d data * value options(*string) const char *
- d start 10i 0 value
- d len 10i 0 value
+ d start value like(xmlCint)
+ d len value like(xmlCint)
d xmlTextWriterWriteBinHex...
- d pr 10i 0 extproc('xmlTextWriterWriteBinHex')
+ d pr extproc('xmlTextWriterWriteBinHex')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d data * value options(*string) const char *
- d start 10i 0 value
- d len 10i 0 value
+ d start value like(xmlCint)
+ d len value like(xmlCint)
* Attributes
d xmlTextWriterStartAttribute...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterStartAttribute')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d xmlTextWriterStartAttributeNS...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterStartAttributeNS')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
d namespaceURI * value options(*string) const xmlChar *
d xmlTextWriterEndAttribute...
- d pr 10i 0 extproc('xmlTextWriterEndAttribute')
+ d pr extproc('xmlTextWriterEndAttribute')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* Attributes conveniency functions
d xmlTextWriterWriteFormatAttribute...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatAttribute')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
@@ -316,24 +347,27 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatAttribute...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatAttribute')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteAttribute...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteAttribute')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
d xmlTextWriterWriteFormatAttributeNS...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatAttributeNS'
d )
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
@@ -349,8 +383,9 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatAttributeNS...
- d pr 10i 0 extproc('xmlTextWriterWriteVFormatAt-
+ d pr extproc('xmlTextWriterWriteVFormatAt-
d tributeNS')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
@@ -359,8 +394,9 @@
d argptr likeds(xmlVaList)
d xmlTextWriterWriteAttributeNS...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteAttributeNS')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d prefix * value options(*string) const xmlChar *
d name * value options(*string) const xmlChar *
@@ -370,18 +406,21 @@
* PI's
d xmlTextWriterStartPI...
- d pr 10i 0 extproc('xmlTextWriterStartPI')
+ d pr extproc('xmlTextWriterStartPI')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d target * value options(*string) const xmlChar *
d xmlTextWriterEndPI...
- d pr 10i 0 extproc('xmlTextWriterEndPI')
+ d pr extproc('xmlTextWriterEndPI')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* PI conveniency functions
d xmlTextWriterWriteFormatPI...
- d pr 10i 0 extproc('xmlTextWriterWriteFormatPI')
+ d pr extproc('xmlTextWriterWriteFormatPI')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d target * value options(*string) const xmlChar *
d format * value options(*string) const char *
@@ -395,15 +434,17 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatPI...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatPI')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d target * value options(*string) const xmlChar *
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWritePI...
- d pr 10i 0 extproc('xmlTextWriterWritePI')
+ d pr extproc('xmlTextWriterWritePI')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d target * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
@@ -413,7 +454,8 @@
* This macro maps to xmlTextWriterWritePI
d xmlTextWriterWriteProcessingInstruction...
- d pr 10i 0 extproc('xmlTextWriterWritePI')
+ d pr extproc('xmlTextWriterWritePI')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d target * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
@@ -421,18 +463,21 @@
* CDATA
d xmlTextWriterStartCDATA...
- d pr 10i 0 extproc('xmlTextWriterStartCDATA')
+ d pr extproc('xmlTextWriterStartCDATA')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d xmlTextWriterEndCDATA...
- d pr 10i 0 extproc('xmlTextWriterEndCDATA')
+ d pr extproc('xmlTextWriterEndCDATA')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* CDATA conveniency functions
d xmlTextWriterWriteFormatCDATA...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatCDATA')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string) const char *
d #vararg1 * value options(*string: *nopass) void *
@@ -445,35 +490,40 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatCDATA...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatCDATA')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteCDATA...
- d pr 10i 0 extproc('xmlTextWriterWriteCDATA')
+ d pr extproc('xmlTextWriterWriteCDATA')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d content * value options(*string) const xmlChar *
* DTD
d xmlTextWriterStartDTD...
- d pr 10i 0 extproc('xmlTextWriterStartDTD')
+ d pr extproc('xmlTextWriterStartDTD')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
d sysid * value options(*string) const xmlChar *
d xmlTextWriterEndDTD...
- d pr 10i 0 extproc('xmlTextWriterEndDTD')
+ d pr extproc('xmlTextWriterEndDTD')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* DTD conveniency functions
d xmlTextWriterWriteFormatDTD...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatDTD')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
@@ -489,8 +539,9 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatDTD...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatDTD')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
@@ -499,7 +550,8 @@
d argptr likeds(xmlVaList)
d xmlTextWriterWriteDTD...
- d pr 10i 0 extproc('xmlTextWriterWriteDTD')
+ d pr extproc('xmlTextWriterWriteDTD')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
@@ -511,7 +563,8 @@
* this macro maps to xmlTextWriterWriteDTD
d xmlTextWriterWriteDocType...
- d pr 10i 0 extproc('xmlTextWriterWriteDTD')
+ d pr extproc('xmlTextWriterWriteDTD')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
@@ -521,20 +574,23 @@
* DTD element definition
d xmlTextWriterStartDTDElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterStartDTDElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d xmlTextWriterEndDTDElement...
- d pr 10i 0 extproc('xmlTextWriterEndDTDElement')
+ d pr extproc('xmlTextWriterEndDTDElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* DTD element definition conveniency functions
d xmlTextWriterWriteFormatDTDElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatDTDElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
@@ -548,17 +604,19 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatDTDElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatDTDElement'
d )
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteDTDElement...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteDTDElement')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
@@ -566,20 +624,23 @@
* DTD attribute list definition
d xmlTextWriterStartDTDAttlist...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterStartDTDAttlist')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d xmlTextWriterEndDTDAttlist...
- d pr 10i 0 extproc('xmlTextWriterEndDTDAttlist')
+ d pr extproc('xmlTextWriterEndDTDAttlist')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* DTD attribute list definition conveniency functions
d xmlTextWriterWriteFormatDTDAttlist...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteFormatDTDAttlist')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
@@ -593,17 +654,19 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatDTDAttlist...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteVFormatDTDAttlist'
d )
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteDTDAttlist...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteDTDAttlist')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
@@ -611,23 +674,26 @@
* DTD entity definition
d xmlTextWriterStartDTDEntity...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterStartDTDEntity')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
- d pe 10i 0 value
+ d pe value like(xmlCint)
d name * value options(*string) const xmlChar *
d xmlTextWriterEndDTDEntity...
- d pr 10i 0 extproc('xmlTextWriterEndDTDEntity')
+ d pr extproc('xmlTextWriterEndDTDEntity')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
* DTD entity definition conveniency functions
d xmlTextWriterWriteFormatDTDInternalEntity...
- d pr 10i 0 extproc('xmlTextWriterWriteFormatDTD-
+ d pr extproc('xmlTextWriterWriteFormatDTD-
d InternalEntity')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
- d pe 10i 0 value
+ d pe value like(xmlCint)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
d #vararg1 * value options(*string: *nopass) void *
@@ -640,47 +706,52 @@
d #vararg8 * value options(*string: *nopass) void *
d xmlTextWriterWriteVFormatDTDInternalEntity...
- d pr 10i 0 extproc('xmlTextWriterWriteVFormatDT-
+ d pr extproc('xmlTextWriterWriteVFormatDT-
d DInternalEntity')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
- d pe 10i 0 value
+ d pe value like(xmlCint)
d name * value options(*string) const xmlChar *
d format * value options(*string) const char *
d argptr likeds(xmlVaList)
d xmlTextWriterWriteDTDInternalEntity...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteDTDInternalEntity'
d )
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
- d pe 10i 0 value
+ d pe value like(xmlCint)
d name * value options(*string) const xmlChar *
d content * value options(*string) const xmlChar *
d xmlTextWriterWriteDTDExternalEntity...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteDTDExternalEntity'
d )
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
- d pe 10i 0 value
+ d pe value like(xmlCint)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
d sysid * value options(*string) const xmlChar *
d ndataid * value options(*string) const xmlChar *
d xmlTextWriterWriteDTDExternalEntityContents...
- d pr 10i 0 extproc('xmlTextWriterWriteDTDExtern-
+ d pr extproc('xmlTextWriterWriteDTDExtern-
d alEntityContents')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d pubid * value options(*string) const xmlChar *
d sysid * value options(*string) const xmlChar *
d ndataid * value options(*string) const xmlChar *
d xmlTextWriterWriteDTDEntity...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteDTDEntity')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
- d pe 10i 0 value
+ d pe value like(xmlCint)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
d sysid * value options(*string) const xmlChar *
@@ -690,8 +761,9 @@
* DTD notation definition
d xmlTextWriterWriteDTDNotation...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterWriteDTDNotation')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d name * value options(*string) const xmlChar *
d pubid * value options(*string) const xmlChar *
@@ -700,25 +772,29 @@
* Indentation
d xmlTextWriterSetIndent...
- d pr 10i 0 extproc('xmlTextWriterSetIndent')
+ d pr extproc('xmlTextWriterSetIndent')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
- d indent 10i 0 value
+ d indent value like(xmlCint)
d xmlTextWriterSetIndentString...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlTextWriterSetIndentString')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d str * value options(*string) const xmlChar *
d xmlTextWriterSetQuoteChar...
- d pr 10i 0 extproc('xmlTextWriterSetQuoteChar')
+ d pr extproc('xmlTextWriterSetQuoteChar')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
d quotechar value like(xmlChar)
* misc
d xmlTextWriterFlush...
- d pr 10i 0 extproc('xmlTextWriterFlush')
+ d pr extproc('xmlTextWriterFlush')
+ d like(xmlCint)
d writer value like(xmlTextWriterPtr)
/endif LIBXML_WRITER_ENABLD
diff --git a/os400/libxmlrpg/xpath.rpgle b/os400/libxmlrpg/xpath.rpgle
index 3f3be32..6e591ee 100644
--- a/os400/libxmlrpg/xpath.rpgle
+++ b/os400/libxmlrpg/xpath.rpgle
@@ -21,6 +21,7 @@
/if defined(LIBXML_XPATH_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/xmlerror"
/include "libxmlrpg/tree"
/include "libxmlrpg/hash"
@@ -36,7 +37,8 @@
* The set of XPath error codes.
- d xmlXPathError s 10i 0 based(######typedef######) enum
+ d xmlXPathError s based(######typedef######)
+ d like(xmlCenum)
d XPATH_EXPRESSION_OK...
d c 0
d XPATH_NUMBER_ERROR...
@@ -94,8 +96,8 @@
d xmlNodeSet ds based(xmlNodeSetPtr)
d align qualified
- d nodeNr 10i 0 Set node count
- d nodeMax 10i 0 Max # nodes in set
+ d nodeNr like(xmlCint) Set node count
+ d nodeMax like(xmlCint) Max # nodes in set
d nodeTab * xmlNodePtr *
* An expression is evaluated to yield an object, which
@@ -108,7 +110,8 @@
* @@ XPointer will add more types !
d xmlXPathObjectType...
- d s 10i 0 based(######typedef######) enum
+ d s based(######typedef######)
+ d like(xmlCenum)
d XPATH_UNDEFINED...
d c 0
d XPATH_NODESET c 1
@@ -130,13 +133,13 @@
d align qualified
d type like(xmlXPathObjectType)
d nodesetval like(xmlNodeSetPtr)
- d boolval 10i 0
- d floatval 8f
+ d boolval like(xmlCint)
+ d floatval like(xmlCdouble)
d stringval * xmlChar *
d user * void *
- d index 10i 0
+ d index like(xmlCint)
d user2 * void *
- d index2 10i 0
+ d index2 like(xmlCint)
* xmlXPathConvertFunc:
* @obj: an XPath object
@@ -298,82 +301,82 @@
d node like(xmlNodePtr) Current node
*
d nb_variables_unused... Unused (hash table)
- d 10i 0
- d max_variables_unused... Unused (hash table)
- d 10i 0
- d varHash like(xmlHashTablePtr) Defined variables
+ d like(xmlCint)
+ d max_variables_unused... Unused (hash table)
+ d like(xmlCint)
+ d varHash like(xmlHashTablePtr) Defined variables
*
- d nb_types 10i 0 # of defined types
- d max_types 10i 0 Max number of types
- d types like(xmlXPathTypePtr) Defined types array
+ d nb_types like(xmlCint) # of defined types
+ d max_types like(xmlCint) Max number of types
+ d types like(xmlXPathTypePtr) Defined types array
*
d nb_funcs_unused... Unused (hash table)
- d 10i 0
- d max_funcs_unused... Unused (hash table)
- d 10i 0
- d funcHash like(xmlHashTablePtr) Defined functions
+ d like(xmlCint)
+ d max_funcs_unused... Unused (hash table)
+ d like(xmlCint)
+ d funcHash like(xmlHashTablePtr) Defined functions
*
- d nb_axis 10i 0 # of defined axis
- d max_axis 10i 0 Max number of axis
- d axis like(xmlXPathAxisPtr) Defined axis array
+ d nb_axis like(xmlCint) # of defined axis
+ d max_axis like(xmlCint) Max number of axis
+ d axis like(xmlXPathAxisPtr) Defined axis array
*
* the namespace nodes of the context node
*
- d namespaces * xmlNsPtr *
- d nsNr 10i 0 # scope namespaces
- d user * procptr Function to free
+ d namespaces * xmlNsPtr *
+ d nsNr like(xmlCint) # scope namespaces
+ d user * procptr Function to free
*
* extra variables
*
- d contextSize 10i 0 The context size
+ d contextSize like(xmlCint) The context size
d proximityPosition...
- d 10i 0
+ d like(xmlCint)
*
* extra stuff for XPointer
*
- d xptr 10i 0 XPointer context ?
- d here like(xmlNodePtr) For here()
- d origin like(xmlNodePtr) For origin()
+ d xptr like(xmlCint) XPointer context ?
+ d here like(xmlNodePtr) For here()
+ d origin like(xmlNodePtr) For origin()
*
* the set of namespace declarations in scope for the expression
*
- d nsHash like(xmlHashTablePtr) Namespace hashtable
- d varLookupFunc like(xmlXPathVariableLookupFunc) Var lookup function
- d varLookupData * void *
+ d nsHash like(xmlHashTablePtr) Namespace hashtable
+ d varLookupFunc like(xmlXPathVariableLookupFunc) Var lookup function
+ d varLookupData * void *
*
* Possibility to link in an extra item
*
- d extra * void *
+ d extra * void *
*
* The function name and URI when calling a function
*
- d function * const xmlChar *
- d functionURI * const xmlChar *
+ d function * const xmlChar *
+ d functionURI * const xmlChar *
*
* function lookup function and data
*
- d funcLookupFunc... Func lookup func
+ d funcLookupFunc... Func lookup func
d like(xmlXPathVariableLookupFunc)
- d funcLookupData... void *
+ d funcLookupData... void *
d *
*
* temporary namespace lists kept for walking the namespace axis
*
d tmpNsList * xmlNsPtr *
- d tmpNsNr 10i 0 # scope namespaces
+ d tmpNsNr like(xmlCint) # scope namespaces
*
* error reporting mechanism
*
d userData * void *
d error like(xmlStructuredErrorFunc) Error callback
- d lastError like(xmlError) The last error
+ d lastError likeds(xmlError) The last error
d debugNode like(xmlNodePtr) XSLT source node
*
* dictionary
*
d dict like(xmlDictPtr) Dictionary if any
*
- d flags 10i 0 Compilation control
+ d flags like(xmlCint) Compilation control
*
* Cache for reusal of XPath objects
*
@@ -395,19 +398,19 @@
d cur * const xmlChar *
d base * const xmlChar *
*
- d error 10i 0 Error code
+ d error like(xmlCint) Error code
*
d context like(xmlXPathContextPtr) Evaluation context
d value like(xmlXPathObjectPtr) The current value
- d valueNr 10i 0 Value stack depth
- d valueMax 10i 0 Max stack depth
+ d valueNr like(xmlCint) Value stack depth
+ d valueMax like(xmlCint) Max stack depth
d valueTab * xmlXPathObjectPtr *
*
d comp like(xmlXPathCompExprPtr) Precompiled expr.
- d xptr 10i 0 XPointer expression?
+ d xptr like(xmlCint) XPointer expression?
d ancestor like(xmlNodePtr) To walk prec. axis
*
- d valueFrame 10i 0 Limit stack pop
+ d valueFrame like(xmlCint) Limit stack pop
**************************************************************************
* *
@@ -417,9 +420,14 @@
* Objects and Nodesets handling
- d xmlXPathNAN s 8f import('xmlXPathNAN')
- d xmlXPathPINF s 8f import('xmlXPathPINF')
- d xmlXPathNINF s 8f import('xmlXPathNINF')
+ d xmlXPathNAN s import('xmlXPathNAN')
+ d like(xmlCdouble)
+
+ d xmlXPathPINF s import('xmlXPathPINF')
+ d like(xmlCdouble)
+
+ d xmlXPathNINF s import('xmlXPathNINF')
+ d like(xmlCdouble)
d xmlXPathFreeObject...
d pr extproc('xmlXPathFreeObject')
@@ -444,62 +452,71 @@
d val value like(xmlXPathObjectPtr)
d xmlXPathCmpNodes...
- d pr 10i 0 extproc('xmlXPathCmpNodes')
+ d pr extproc('xmlXPathCmpNodes')
+ d like(xmlCint)
d node1 value like(xmlNodePtr)
d node2 value like(xmlNodePtr)
* Conversion functions to basic types.
d xmlXPathCastNumberToBoolean...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXPathCastNumberToBoolean')
- d val 8f value
+ d like(xmlCint)
+ d val value like(xmlCdouble)
d xmlXPathCastStringToBoolean...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXPathCastStringToBoolean')
+ d like(xmlCint)
d val * value options(*string) const xmlChar *
d xmlXPathCastNodeSetToBoolean...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXPathCastNodeSetToBoolean')
+ d like(xmlCint)
d ns value like(xmlNodeSetPtr)
d xmlXPathCastToBoolean...
- d pr 10i 0 extproc('xmlXPathCastToBoolean')
+ d pr extproc('xmlXPathCastToBoolean')
+ d like(xmlCint)
d val value like(xmlXPathObjectPtr)
d xmlXPathCastBooleanToNumber...
d pr extproc(
d 'xmlXPathCastBooleanToNumber')
- d 8f
- d val 10i 0 value
+ d like(xmlCdouble)
+ d val value like(xmlCint)
d xmlXPathCastStringToNumber...
- d pr 8f extproc('xmlXPathCastStringToNumber')
+ d pr extproc('xmlXPathCastStringToNumber')
+ d like(xmlCdouble)
d val * value options(*string) const xmlChar *
d xmlXPathCastNodeToNumber...
- d pr 8f extproc('xmlXPathCastNodeToNumber')
+ d pr extproc('xmlXPathCastNodeToNumber')
+ d like(xmlCdouble)
d node value like(xmlNodePtr)
d xmlXPathCastNodeSetToNumber...
- d pr 8f extproc(
+ d pr extproc(
d 'xmlXPathCastNodeSetToNumber')
+ d like(xmlCdouble)
d ns value like(xmlNodeSetPtr)
d xmlXPathCastToNumber...
- d pr 8f extproc('xmlXPathCastToNumber')
+ d pr extproc('xmlXPathCastToNumber')
+ d like(xmlCdouble)
d val value like(xmlXPathObjectPtr)
d xmlXPathCastBooleanToString...
d pr * extproc( xmlChar *
d 'xmlXPathCastBooleanToString')
- d val 10i 0 value
+ d val value like(xmlCint)
d xmlXPathCastNumberToString...
d pr * extproc('xmlXPathCastNumberToString')xmlChar *
- d val 8f value
+ d val value like(xmlCdouble)
d xmlXPathCastNodeToString...
d pr * extproc('xmlXPathCastNodeToString') xmlChar *
@@ -541,20 +558,23 @@
d ctxt value like(xmlXPathContextPtr)
d xmlXPathContextSetCache...
- d pr 10i 0 extproc('xmlXPathContextSetCache')
+ d pr extproc('xmlXPathContextSetCache')
+ d like(xmlCint)
d ctxt value like(xmlXPathContextPtr)
- d active 10i 0 value
- d value 10i 0 value
- d options 10i 0 value
+ d active value like(xmlCint)
+ d value value like(xmlCint)
+ d options value like(xmlCint)
* Evaluation functions.
d xmlXPathOrderDocElems...
- d pr 20i 0 extproc('xmlXPathOrderDocElems')
+ d pr extproc('xmlXPathOrderDocElems')
+ d like(xmlClong)
d doc value like(xmlDocPtr)
d xmlXPathSetContextNode...
- d pr 10i 0 extproc('xmlXPathSetContextNode')
+ d pr extproc('xmlXPathSetContextNode')
+ d like(xmlCint)
d node value like(xmlNodePtr)
d ctx value like(xmlXPathContextPtr)
@@ -577,7 +597,8 @@
d ctxt value like(xmlXPathContextPtr)
d xmlXPathEvalPredicate...
- d pr 10i 0 extproc('xmlXPathEvalPredicate')
+ d pr extproc('xmlXPathEvalPredicate')
+ d like(xmlCint)
d ctxt value like(xmlXPathContextPtr)
d res value like(xmlXPathObjectPtr)
@@ -601,8 +622,9 @@
d ctx value like(xmlXPathContextPtr)
d xmlXPathCompiledEvalToBoolean...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXPathCompiledEvalToBoolean')
+ d like(xmlCint)
d comp value like(xmlXPathCompExprPtr)
d ctxt value like(xmlXPathContextPtr)
@@ -620,11 +642,13 @@
/if defined(XML_TESTVAL)
d xmlXPathInit pr extproc('xmlXPathInit')
- d xmlXPathIsNaN pr 10i 0 extproc('xmlXPathIsNaN')
- d val 8f value
+ d xmlXPathIsNaN pr extproc('xmlXPathIsNaN')
+ d like(xmlCint)
+ d val value like(xmlCdouble)
- d xmlXPathIsInf pr 10i 0 extproc('xmlXPathIsInf')
- d val 8f value
+ d xmlXPathIsInf pr extproc('xmlXPathIsInf')
+ d like(xmlCint)
+ d val value like(xmlCdouble)
/undefine XML_TESTVAL
/endif
@@ -633,17 +657,19 @@
/if defined(LIBXML_XPATH_ENABLED)
d xmlXPathNodeSetGetLength...
- d pr 10i 0 extproc('__xmlXPathNodeSetGetLength')
+ d pr extproc('__xmlXPathNodeSetGetLength')
+ d like(xmlCint)
d ns value like(xmlNodeSetPtr)
d xmlXPathNodeSetItem...
d pr extproc('__xmlXPathNodeSetItem')
d like(xmlNodePtr)
d ns value like(xmlNodeSetPtr)
- d index 10i 0 value
+ d index value like(xmlCint)
d xmlXPathNodeSetIsEmpty...
- d pr 10i 0 extproc('__xmlXPathNodeSetIsEmpty')
+ d pr extproc('__xmlXPathNodeSetIsEmpty')
+ d like(xmlCint)
d ns value like(xmlNodeSetPtr)
/endif LIBXML_XPATH_ENABLED
/endif XML_XPATH_H__
diff --git a/os400/libxmlrpg/xpathInternals.rpgle b/os400/libxmlrpg/xpathInternals.rpgle
index 69f3ae0..a6d12e1 100644
--- a/os400/libxmlrpg/xpathInternals.rpgle
+++ b/os400/libxmlrpg/xpathInternals.rpgle
@@ -11,10 +11,12 @@
/define XML_XPATH_INTERNALS_H__
/include "libxmlrpg/xmlversion"
- /include "libxmlrpg/xpath"
/if defined(LIBXML_XPATH_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
+ /include "libxmlrpg/xpath"
+
************************************************************************
* *
* Helpers *
@@ -25,11 +27,13 @@
* shouldn't be used in #ifdef's preprocessor instructions.
d xmlXPathPopBoolean...
- d pr 10i 0 extproc('xmlXPathPopBoolean')
+ d pr extproc('xmlXPathPopBoolean')
+ d like(xmlCint)
d ctxt value like(xmlXPathParserContextPtr)
d xmlXPathPopNumber...
- d pr 8f extproc('xmlXPathPopNumber')
+ d pr extproc('xmlXPathPopNumber')
+ d like(xmlCdouble)
d ctxt value like(xmlXPathParserContextPtr)
d xmlXPathPopString...
@@ -71,31 +75,32 @@
d pr extproc('xmlXPatherror')
d ctxt value like(xmlXPathParserContextPtr)
d file * value options(*string) const char *
- d line 10i 0 value
- d no 10i 0 value
+ d line value like(xmlCint)
+ d no value like(xmlCint)
d xmlXPathErr pr extproc('xmlXPathErr')
d ctxt value like(xmlXPathParserContextPtr)
- d error 10i 0 value
+ d error value like(xmlCint)
/if defined(LIBXML_DEBUG_ENABLED)
d xmlXPathDebugDumpObject...
d pr extproc('xmlXPathDebugDumpObject')
d output * value FILE *
d cur value like(xmlXPathObjectPtr)
- d depth 10i 0 value
+ d depth value like(xmlCint)
d xmlXPathDebugDumpCompExpr...
d pr extproc('xmlXPathDebugDumpCompExpr')
d output * value FILE *
d comp value like(xmlXPathCompExprPtr)
- d depth 10i 0 value
+ d depth value like(xmlCint)
/endif
* NodeSet handling.
d xmlXPathNodeSetContains...
- d pr 10i 0 extproc('xmlXPathNodeSetContains')
+ d pr extproc('xmlXPathNodeSetContains')
+ d like(xmlCint)
d cur value like(xmlNodeSetPtr)
d val value like(xmlNodePtr)
@@ -122,7 +127,8 @@
d nodes value like(xmlNodeSetPtr)
d xmlXPathHasSameNodes...
- d pr 10i 0 extproc('xmlXPathHasSameNodes')
+ d pr extproc('xmlXPathHasSameNodes')
+ d like(xmlCint)
d nodes1 value like(xmlNodeSetPtr)
d nodes2 value like(xmlNodeSetPtr)
@@ -177,7 +183,8 @@
* Extending a context.
d xmlXPathRegisterNs...
- d pr 10i 0 extproc('xmlXPathRegisterNs')
+ d pr extproc('xmlXPathRegisterNs')
+ d like(xmlCint)
d ctxt value like(xmlXPathContextPtr)
d prefix * value options(*string) const xmlChar *
d ns_uri * value options(*string) const xmlChar *
@@ -193,26 +200,30 @@
d ctxt value like(xmlXPathContextPtr)
d xmlXPathRegisterFunc...
- d pr 10i 0 extproc('xmlXPathRegisterFunc')
+ d pr extproc('xmlXPathRegisterFunc')
+ d like(xmlCint)
d ctxt value like(xmlXPathContextPtr)
d name * value options(*string) const xmlChar *
d f value like(xmlXPathFunction)
d xmlXPathRegisterFuncNS...
- d pr 10i 0 extproc('xmlXPathRegisterFuncNS')
+ d pr extproc('xmlXPathRegisterFuncNS')
+ d like(xmlCint)
d ctxt value like(xmlXPathContextPtr)
d name * value options(*string) const xmlChar *
d ns_uri * value options(*string) const xmlChar *
d f value like(xmlXPathFunction)
d xmlXPathRegisterVariable...
- d pr 10i 0 extproc('xmlXPathRegisterVariable')
+ d pr extproc('xmlXPathRegisterVariable')
+ d like(xmlCint)
d ctxt value like(xmlXPathContextPtr)
d name * value options(*string) const xmlChar *
d value value like(xmlXPathObjectPtr)
d xmlXPathRegisterVariableNS...
- d pr 10i 0 extproc('xmlXPathRegisterVariableNS')
+ d pr extproc('xmlXPathRegisterVariableNS')
+ d like(xmlCint)
d ctxt value like(xmlXPathContextPtr)
d name * value options(*string) const xmlChar *
d ns_uri * value options(*string) const xmlChar *
@@ -273,7 +284,8 @@
d like(xmlXPathObjectPtr)
d ctxt value like(xmlXPathParserContextPtr)
- d valuePush pr 10i 0 extproc('valuePush')
+ d valuePush pr extproc('valuePush')
+ d like(xmlCint)
d ctxt value like(xmlXPathParserContextPtr)
d value value like(xmlXPathObjectPtr)
@@ -300,12 +312,12 @@
d xmlXPathNewFloat...
d pr extproc('xmlXPathNewFloat')
d like(xmlXPathObjectPtr)
- d val 8f value
+ d val value like(xmlCdouble)
d xmlXPathNewBoolean...
d pr extproc('xmlXPathNewBoolean')
d like(xmlXPathObjectPtr)
- d val 10i 0 value
+ d val value like(xmlCint)
d xmlXPathNewNodeSet...
d pr extproc('xmlXPathNewNodeSet')
@@ -318,17 +330,20 @@
d val value like(xmlNodePtr)
d xmlXPathNodeSetAdd...
- d pr 10i 0 extproc('xmlXPathNodeSetAdd')
+ d pr extproc('xmlXPathNodeSetAdd')
+ d like(xmlCint)
d cur value like(xmlNodeSetPtr)
d val value like(xmlNodePtr)
d xmlXPathNodeSetAddUnique...
- d pr 10i 0 extproc('xmlXPathNodeSetAddUnique')
+ d pr extproc('xmlXPathNodeSetAddUnique')
+ d like(xmlCint)
d cur value like(xmlNodeSetPtr)
d val value like(xmlNodePtr)
d xmlXPathNodeSetAddNs...
- d pr 10i 0 extproc('xmlXPathNodeSetAddNs')
+ d pr extproc('xmlXPathNodeSetAddNs')
+ d like(xmlCint)
d cur value like(xmlNodeSetPtr)
d node value like(xmlNodePtr)
d ns value like(xmlNsPtr)
@@ -355,12 +370,14 @@
* Existing functions.
d xmlXPathStringEvalNumber...
- d pr 8f extproc('xmlXPathStringEvalNumber')
+ d pr extproc('xmlXPathStringEvalNumber')
+ d like(xmlCdouble)
d str * value options(*string) const xmlChar *
d xmlXPathEvaluatePredicateResult...
- d pr 10i 0 extproc(
+ d pr extproc(
d 'xmlXPathEvaluatePredicateResult')
+ d like(xmlCint)
d ctxt value like(xmlXPathParserContextPtr)
d res value like(xmlXPathObjectPtr)
@@ -383,7 +400,7 @@
d xmlXPathNodeSetRemove...
d pr extproc('xmlXPathNodeSetRemove')
d cur value like(xmlNodeSetPtr)
- d val 10i 0 value
+ d val value like(xmlCint)
d xmlXPathNewNodeSetList...
d pr extproc('xmlXPathNewNodeSetList')
@@ -401,18 +418,21 @@
d val * value void *
d xmlXPathEqualValues...
- d pr 10i 0 extproc('xmlXPathEqualValues')
+ d pr extproc('xmlXPathEqualValues')
+ d like(xmlCint)
d ctxt value like(xmlXPathParserContextPtr)
d xmlXPathNotEqualValues...
- d pr 10i 0 extproc('xmlXPathNotEqualValues')
+ d pr extproc('xmlXPathNotEqualValues')
+ d like(xmlCint)
d ctxt value like(xmlXPathParserContextPtr)
d xmlXPathCompareValues...
- d pr 10i 0 extproc('xmlXPathCompareValues')
+ d pr extproc('xmlXPathCompareValues')
+ d like(xmlCint)
d ctxt value like(xmlXPathParserContextPtr)
- d inf 10i 0 value
- d strict 10i 0 value
+ d inf value like(xmlCint)
+ d strict value like(xmlCint)
d xmlXPathValueFlipSign...
d pr extproc('xmlXPathValueFlipSign')
@@ -439,7 +459,8 @@
d ctxt value like(xmlXPathParserContextPtr)
d xmlXPathIsNodeType...
- d pr 10i 0 extproc('xmlXPathIsNodeType')
+ d pr extproc('xmlXPathIsNodeType')
+ d like(xmlCint)
d name * value options(*string) const xmlChar *
* Some of the axis navigation routines.
@@ -530,137 +551,137 @@
d xmlXPathLastFunction...
d pr extproc('xmlXPathLastFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathPositionFunction...
d pr extproc('xmlXPathPositionFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathCountFunction...
d pr extproc('xmlXPathCountFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathIdFunction...
d pr extproc('xmlXPathIdFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathLocalNameFunction...
d pr extproc('xmlXPathLocalNameFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathNamespaceURIFunction...
d pr extproc(
d 'xmlXPathNamespaceURIFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathStringFunction...
d pr extproc('xmlXPathStringFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathStringLengthFunction...
d pr extproc(
d 'xmlXPathStringLengthFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathConcatFunction...
d pr extproc('xmlXPathConcatFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathContainsFunction...
d pr extproc('xmlXPathContainsFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathStartsWithFunction...
d pr extproc('xmlXPathStartsWithFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathSubstringFunction...
d pr extproc('xmlXPathSubstringFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathSubstringBeforeFunction...
d pr extproc(
d 'xmlXPathSubstringBeforeFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathSubstringAfterFunction...
d pr extproc(
d 'xmlXPathSubstringAfterFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathNormalizeFunction...
d pr extproc('xmlXPathNormalizeFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathTranslateFunction...
d pr extproc('xmlXPathTranslateFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathNotFunction...
d pr extproc('xmlXPathNotFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathTrueFunction...
d pr extproc('xmlXPathTrueFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathFalseFunction...
d pr extproc('xmlXPathFalseFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathLangFunction...
d pr extproc('xmlXPathLangFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathNumberFunction...
d pr extproc('xmlXPathNumberFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathSumFunction...
d pr extproc('xmlXPathSumFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathFloorFunction...
d pr extproc('xmlXPathFloorFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathCeilingFunction...
d pr extproc('xmlXPathCeilingFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathRoundFunction...
d pr extproc('xmlXPathRoundFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPathBooleanFunction...
d pr extproc('xmlXPathBooleanFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
* Really internal functions
diff --git a/os400/libxmlrpg/xpointer.rpgle b/os400/libxmlrpg/xpointer.rpgle
index 6f43314..29ef0f3 100644
--- a/os400/libxmlrpg/xpointer.rpgle
+++ b/os400/libxmlrpg/xpointer.rpgle
@@ -19,6 +19,7 @@
/if defined(LIBXML_XPTR_ENABLED)
+ /include "libxmlrpg/xmlTypesC"
/include "libxmlrpg/tree"
/include "libxmlrpg/xpath"
@@ -29,8 +30,8 @@
d xmlLocationSet ds based(xmlLocationSetPtr)
d align qualified
- d locNr 10i 0 # locations in set
- d locMax 10i 0 Max locations in set
+ d locNr like(xmlCint) # locations in set
+ d locMax like(xmlCint) Max locations in set
d locTab * xmlXPathObjectPtr *
* Handling of location sets.
@@ -54,9 +55,9 @@
d pr extproc('xmlXPtrNewRange')
d like(xmlXPathObjectPtr)
d start value like(xmlNodePtr)
- d startindex 10i 0 value
+ d startindex value like(xmlCint)
d end value like(xmlNodePtr)
- d endindex 10i 0 value
+ d endindex value like(xmlCint)
d xmlXPtrNewRangePoints...
d pr extproc('xmlXPtrNewRangePoints')
@@ -123,7 +124,7 @@
d xmlXPtrLocationSetRemove...
d pr extproc('xmlXPtrLocationSetRemove')
d cur value like(xmlLocationSetPtr)
- d val 10i 0 value
+ d val value like(xmlCint)
* Functions.
@@ -142,7 +143,7 @@
d xmlXPtrRangeToFunction...
d pr extproc('xmlXPtrRangeToFunction')
d ctxt value like(xmlXPathParserContextPtr)
- d nargs 10i 0 value
+ d nargs value like(xmlCint)
d xmlXPtrBuildNodeList...
d pr extproc('xmlXPtrBuildNodeList')
diff --git a/os400/make-rpg.sh b/os400/make-rpg.sh
index 95d3249..664b47b 100644
--- a/os400/make-rpg.sh
+++ b/os400/make-rpg.sh
@@ -25,8 +25,6 @@
# Map file names to DB2 name syntax.
-> tmpsubstfile
-
for HFILE in *.rpgle *.rpgle.in
do NAME="`basename \"${HFILE}\" .in`"
VAR="`basename \"${NAME}\" .rpgle`"
@@ -36,9 +34,14 @@
then VAL=SCHMTYPES
fi
- echo "s/${VAR}/${VAL}/g" >> tmpsubstfile
eval "VAR_${VAR}=\"${VAL}\""
-done
+ echo "${VAR} s/${VAR}/${VAL}/g"
+done > tmpsubstfile1
+
+# Order substitution commands so that a prefix appears after all
+# file names beginning with the prefix.
+
+sort -r tmpsubstfile1 | sed 's/^[^ ]*[ ]*//' > tmpsubstfile2
change_include()
@@ -47,7 +50,7 @@
sed -e '\#^....../include *"libxmlrpg/#{' \
-e 's///' \
-e 's/".*//' \
- -f tmpsubstfile \
+ -f tmpsubstfile2 \
-e 's#.*# /include libxmlrpg,&#' \
-e '}'
}
diff --git a/os400/make-src.sh b/os400/make-src.sh
index f06cfaf..4c03c56 100644
--- a/os400/make-src.sh
+++ b/os400/make-src.sh
@@ -17,7 +17,7 @@
echo '#pragma comment(user, "libxml2 version '"${LIBXML_VERSION}"'")' > os400.c
echo '#pragma comment(user, __DATE__)' >> os400.c
echo '#pragma comment(user, __TIME__)' >> os400.c
-echo '#pragma comment(copyright, "Copyright (C) 1998-2014 Daniel Veillard. OS/400 version by P. Monnerat.")' >> os400.c
+echo '#pragma comment(copyright, "Copyright (C) 1998-2017 Daniel Veillard. OS/400 version by P. Monnerat.")' >> os400.c
make_module OS400 os400.c
LINK= # No need to rebuild service program yet.
MODULES=
@@ -62,11 +62,11 @@
# OS/400 specific modules first.
-make_module DLFCN "${SCRIPTDIR}/dlfcn/dlfcn.c" '' ebcdic
-make_module ICONV "${SCRIPTDIR}/iconv/iconv.c" '' ebcdic
-make_module WRAPPERS "${SCRIPTDIR}/wrappers.c" '' ebcdic
-make_module TRANSCODE "${SCRIPTDIR}/transcode.c"
-make_module RPGSUPPORT "${SCRIPTDIR}/rpgsupport.c"
+make_module --ebcdic DLFCN "${SCRIPTDIR}/dlfcn/dlfcn.c"
+make_module --ebcdic ICONV "${SCRIPTDIR}/iconv/iconv.c"
+make_module --ebcdic WRAPPERS "${SCRIPTDIR}/wrappers.c"
+make_module TRANSCODE "${SCRIPTDIR}/transcode.c"
+make_module RPGSUPPORT "${SCRIPTDIR}/rpgsupport.c"
# Regular libxml2 modules.
@@ -239,3 +239,117 @@
CMD="${CMD} OBJ((*LIBL/${SRVPGM} *SRVPGM))"
system "${CMD}"
fi
+
+
+# Compile the ASCII main() stub.
+
+make_module --ebcdic --sysiconv LIBXMLMAIN "${SCRIPTDIR}/libxmlmain.c"
+
+
+# Compile and link program xmllint.
+
+if action_needed "${LIBIFSNAME}/XMLLINT.PGM" "xmllint.c" ||
+ action_needed "${LIBIFSNAME}/XMLLINT.PGM" "${LIBIFSNAME}/${SRVPGM}.SRVPGM" ||
+ action_needed "${LIBIFSNAME}/XMLLINT.PGM" "${LIBIFSNAME}/LIBXMLMAIN.MODULE"
+then make_module XMLLINT xmllint.c
+ CMD="CRTPGM PGM(${TARGETLIB}/XMLLINT) MODULE(${TARGETLIB}/XMLLINT)"
+ CMD="${CMD} ENTMOD(${TARGETLIB}/LIBXMLMAIN)"
+ CMD="${CMD} BNDSRVPGM(QADRTTS) BNDDIR((${TARGETLIB}/${STATBNDDIR})"
+ if [ "${WITH_ZLIB}" -ne 0 ]
+ then CMD="${CMD} (${ZLIB_LIB}/${ZLIB_BNDDIR})"
+ fi
+ CMD="${CMD}) ACTGRP(*NEW) TEXT('XML tool')"
+ CMD="${CMD} TGTRLS(${TGTRLS})"
+ system "${CMD}"
+ rm -f "${LIBIFSNAME}/XMLLINT.MODULE"
+fi
+
+# Install xmllint in IFS.
+
+if [ ! -d "${IFSDIR}/bin" ]
+then mkdir -p "${IFSDIR}/bin"
+fi
+rm -f "${IFSDIR}/bin/xmllint"
+ln -s "${LIBIFSNAME}/XMLLINT.PGM" "${IFSDIR}/bin/xmllint"
+
+# Prepare the XMLLINT command and its response program.
+
+if action_needed "${LIBIFSNAME}/XMLLINTCL.PGM" "${SCRIPTDIR}/xmllintcl.c"
+then make_module --ebcdic XMLLINTCL "${SCRIPTDIR}/xmllintcl.c"
+ CMD="CRTPGM PGM(${TARGETLIB}/XMLLINTCL) MODULE(${TARGETLIB}/XMLLINTCL)"
+ CMD="${CMD} ACTGRP(*NEW) TEXT('XMLLINT command response')"
+ CMD="${CMD} TGTRLS(${TGTRLS})"
+ system "${CMD}"
+ rm -f "${LIBIFSNAME}/XMLLINTCL.MODULE"
+fi
+
+if action_needed "${LIBIFSNAME}/TOOLS.FILE/XMLLINT.MBR" \
+ "${SCRIPTDIR}/xmllint.cmd"
+then CMD="CPY OBJ('${SCRIPTDIR}/xmllint.cmd')"
+ CMD="${CMD} TOOBJ('${LIBIFSNAME}/TOOLS.FILE/XMLLINT.MBR')"
+ CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+fi
+
+if action_needed "${LIBIFSNAME}/XMLLINT.CMD" \
+ "${LIBIFSNAME}/TOOLS.FILE/XMLLINT.MBR"
+then CMD="CRTCMD CMD(${TARGETLIB}/XMLLINT) PGM(${TARGETLIB}/XMLLINTCL)"
+ CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(XMLLINT) THDSAFE(*YES)"
+ CMD="${CMD} TEXT('XML tool') REPLACE(*YES)"
+ system "${CMD}"
+fi
+
+
+# Compile and link program xmlcatalog.
+
+if action_needed "${LIBIFSNAME}/XMLCATALOG.PGM" "xmlcatalog.c" ||
+ action_needed "${LIBIFSNAME}/XMLCATALOG.PGM" \
+ "${LIBIFSNAME}/${SRVPGM}.SRVPGM" ||
+ action_needed "${LIBIFSNAME}/XMLCATALOG.PGM" \
+ "${LIBIFSNAME}/LIBXMLMAIN.MODULE"
+then make_module XMLCATALOG xmlcatalog.c
+ CMD="CRTPGM PGM(${TARGETLIB}/XMLCATALOG)"
+ CMD="${CMD} MODULE(${TARGETLIB}/XMLCATALOG)"
+ CMD="${CMD} ENTMOD(${TARGETLIB}/LIBXMLMAIN)"
+ CMD="${CMD} BNDSRVPGM(QADRTTS) BNDDIR((${TARGETLIB}/${STATBNDDIR})"
+ if [ "${WITH_ZLIB}" -ne 0 ]
+ then CMD="${CMD} (${ZLIB_LIB}/${ZLIB_BNDDIR})"
+ fi
+ CMD="${CMD}) ACTGRP(*NEW) TEXT('XML/SGML catalog tool')"
+ CMD="${CMD} TGTRLS(${TGTRLS})"
+ system "${CMD}"
+ rm -f "${LIBIFSNAME}/XMLCATALOG.MODULE"
+fi
+
+# Install xmlcatalog in IFS.
+
+rm -f "${IFSDIR}/bin/xmlcatalog"
+ln -s "${LIBIFSNAME}/XMLCATALOG.PGM" "${IFSDIR}/bin/xmlcatalog"
+
+# Prepare the XMLCATALOG command and its response program.
+
+if action_needed "${LIBIFSNAME}/XMLCATLGCL.PGM" "${SCRIPTDIR}/xmlcatlgcl.c"
+then make_module --ebcdic XMLCATLGCL "${SCRIPTDIR}/xmlcatlgcl.c"
+ CMD="CRTPGM PGM(${TARGETLIB}/XMLCATLGCL)"
+ CMD="${CMD} MODULE(${TARGETLIB}/XMLCATLGCL)"
+ CMD="${CMD} ACTGRP(*NEW) TEXT('XMLCATALOG command response')"
+ CMD="${CMD} TGTRLS(${TGTRLS})"
+ system "${CMD}"
+ rm -f "${LIBIFSNAME}/XMLCATLGCL.MODULE"
+fi
+
+if action_needed "${LIBIFSNAME}/TOOLS.FILE/XMLCATALOG.MBR" \
+ "${SCRIPTDIR}/xmlcatalog.cmd"
+then CMD="CPY OBJ('${SCRIPTDIR}/xmlcatalog.cmd')"
+ CMD="${CMD} TOOBJ('${LIBIFSNAME}/TOOLS.FILE/XMLCATALOG.MBR')"
+ CMD="${CMD} TOCCSID(${TGTCCSID}) DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+fi
+
+if action_needed "${LIBIFSNAME}/XMLCATALOG.CMD" \
+ "${LIBIFSNAME}/TOOLS.FILE/XMLCATALOG.MBR"
+then CMD="CRTCMD CMD(${TARGETLIB}/XMLCATALOG) PGM(${TARGETLIB}/XMLCATLGCL)"
+ CMD="${CMD} SRCFILE(${TARGETLIB}/TOOLS) SRCMBR(XMLCATALOG)"
+ CMD="${CMD} THDSAFE(*YES) TEXT('XML/SGML catalog tool') REPLACE(*YES)"
+ system "${CMD}"
+fi
diff --git a/os400/make.sh b/os400/make.sh
index 864e72b..860365e 100644
--- a/os400/make.sh
+++ b/os400/make.sh
@@ -34,7 +34,7 @@
# Copy some documentation files if needed.
for TEXT in "${TOPDIR}/AUTHORS" "${TOPDIR}/ChangeLog" \
- "${TOPDIR}/Copyright" "${TOPDIR}/HACKING" "${TOPDIR}/README" \
+ "${TOPDIR}/Copyright" "${TOPDIR}/CONTRIBUTING" "${TOPDIR}/README" \
"${TOPDIR}/MAINTAINERS" "${TOPDIR}/NEWS" "${TOPDIR}/TODO" \
"${TOPDIR}/TODO_SCHEMAS" "${TOPDIR}/os400/README400"
do if [ -f "${TEXT}" ]
@@ -42,7 +42,16 @@
MEMBER="${LIBIFSNAME}/DOCS.FILE/`db2_name \"${MEMBER}\"`.MBR"
if action_needed "${MEMBER}" "${TEXT}"
- then CMD="CPY OBJ('${TEXT}') TOOBJ('${MEMBER}')"
+ then # Sources are in UTF-8.
+ rm -f "${TOPDIR}/tmpfile"[12]
+ CMD="CPY OBJ('${TEXT}') TOOBJ('${TOPDIR}/tmpfile1')"
+ CMD="${CMD} FROMCCSID(1208) TOCCSID(${TGTCCSID})"
+ CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
+ system "${CMD}"
+ # Make sure all lines are < 100 characters.
+ sed -e 's/.\{99\}/&\
+/g' -e 's/\n$//' "${TOPDIR}/tmpfile1" > "${TOPDIR}/tmpfile2"
+ CMD="CPY OBJ('${TOPDIR}/tmpfile2') TOOBJ('${MEMBER}')"
CMD="${CMD} TOCCSID(${TGTCCSID})"
CMD="${CMD} DTAFMT(*TEXT) REPLACE(*YES)"
system "${CMD}"
diff --git a/os400/os400config.h.in b/os400/os400config.h.in
index 3966ac8..1840c17 100644
--- a/os400/os400config.h.in
+++ b/os400/os400config.h.in
@@ -6,9 +6,6 @@
*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
**/
-/* Define to 1 if you have the <ansidecl.h> header file. */
-#undef HAVE_ANSIDECL_H
-
/* Define to 1 if you have the <arpa/inet.h> header file. */
#define HAVE_ARPA_INET_H 1
@@ -18,9 +15,6 @@
/* Whether struct sockaddr::__ss_family exists */
#undef HAVE_BROKEN_SS_FAMILY
-/* Define to 1 if you have the `class' function. */
-#undef HAVE_CLASS
-
/* Define to 1 if you have the <ctype.h> header file. */
#define HAVE_CTYPE_H 1
@@ -42,24 +36,12 @@
/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
-/* Define to 1 if you have the `finite' function. */
-#undef HAVE_FINITE
-
/* Define to 1 if you have the <float.h> header file. */
#define HAVE_FLOAT_H 1
-/* Define to 1 if you have the `fpclass' function. */
-#undef HAVE_FPCLASS
-
/* Define to 1 if you have the `fprintf' function. */
#undef HAVE_FPRINTF /* Use trio. */
-/* Define to 1 if you have the `fp_class' function. */
-#undef HAVE_FP_CLASS
-
-/* Define to 1 if you have the <fp_class.h> header file. */
-#undef HAVE_FP_CLASS_H
-
/* Define to 1 if you have the `ftime' function. */
#undef HAVE_FTIME
@@ -69,9 +51,6 @@
/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY
-/* Define to 1 if you have the <ieeefp.h> header file. */
-#undef HAVE_IEEEFP_H
-
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
@@ -84,15 +63,9 @@
/* Define if isnan is there */
#undef HAVE_ISNAN
-/* Define to 1 if you have the `isnand' function. */
-#undef HAVE_ISNAND
-
/* Define if history library is there (-lhistory) */
#undef HAVE_LIBHISTORY
-/* Have compression library */
-#undef HAVE_LIBLZMA
-
/* Define if pthread library is there (-lpthread) */
#undef HAVE_LIBPTHREAD
@@ -108,9 +81,6 @@
/* Define to 1 if you have the `localtime' function. */
#define HAVE_LOCALTIME 1
-/* Define to 1 if you have the <lzma.h> header file. */
-#undef HAVE_LZMA_H
-
/* Define to 1 if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H
@@ -131,9 +101,6 @@
# undef /**/ HAVE_MMAP
#endif
-/* Define to 1 if you have the <nan.h> header file. */
-#undef HAVE_NAN_H
-
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
#undef HAVE_NDIR_H
@@ -206,12 +173,6 @@
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
-/* Define to 1 if you have the `strdup' function. */
-#define HAVE_STRDUP 1
-
-/* Define to 1 if you have the `strerror' function. */
-#define HAVE_STRERROR 1
-
/* Define to 1 if you have the `strftime' function. */
#define HAVE_STRFTIME 1
@@ -221,9 +182,6 @@
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
-/* Define to 1 if you have the `strndup' function. */
-#undef HAVE_STRNDUP
-
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
#undef HAVE_SYS_DIR_H
@@ -274,17 +232,6 @@
/* Define to 1 if you have the `vsprintf' function. */
#undef HAVE_VSPRINTF /* Use trio. */
-/* Define to 1 if you have the <zlib.h> header file. */
-/* Actually dependent on the compilation script. */
-#if @WITH_ZLIB@
-#define HAVE_ZLIB_H 1
-#else
-#undef HAVE_ZLIB_H
-#endif
-
-/* Define to 1 if you have the `_stat' function. */
-#undef HAVE__STAT
-
/* Whether __va_copy() is available */
#undef HAVE___VA_COPY
@@ -333,9 +280,6 @@
#define below would cause a syntax error. */
#undef _UINT32_T
-/* Using the Win32 Socket implementation */
-#undef _WINSOCKAPI_
-
/* ss_family is not defined here, use __ss_family instead */
#undef ss_family
diff --git a/os400/rpgsupport.c b/os400/rpgsupport.c
index a3609c0..ad4cc5d 100644
--- a/os400/rpgsupport.c
+++ b/os400/rpgsupport.c
@@ -219,7 +219,7 @@
__xmlXPathNodeSetGetLength(const xmlNodeSet * ns)
{
- return xmlXPathNodeSetGetLength(ns);
+ return xmlXPathNodeSetGetLength(ns);
}
@@ -227,7 +227,7 @@
__xmlXPathNodeSetItem(const xmlNodeSet * ns, int index)
{
- return xmlXPathNodeSetItem(ns, index);
+ return xmlXPathNodeSetItem(ns, index);
}
@@ -235,7 +235,7 @@
__xmlXPathNodeSetIsEmpty(const xmlNodeSet * ns)
{
- return xmlXPathNodeSetIsEmpty(ns);
+ return xmlXPathNodeSetIsEmpty(ns);
}
#endif
@@ -247,16 +247,16 @@
__htmlDefaultSubelement(const htmlElemDesc * elt)
{
- return htmlDefaultSubelement(elt);
+ return htmlDefaultSubelement(elt);
}
int
__htmlElementAllowedHereDesc(const htmlElemDesc * parent,
- const htmlElemDesc * elt)
+ const htmlElemDesc * elt)
{
- return htmlElementAllowedHereDesc(parent, elt);
+ return htmlElementAllowedHereDesc(parent, elt);
}
@@ -264,7 +264,7 @@
__htmlRequiredAttrs(const htmlElemDesc * elt)
{
- return htmlRequiredAttrs(elt);
+ return htmlRequiredAttrs(elt);
}
#endif
diff --git a/os400/rpgsupport.h b/os400/rpgsupport.h
index 6725b59..d8016d7 100644
--- a/os400/rpgsupport.h
+++ b/os400/rpgsupport.h
@@ -141,17 +141,17 @@
XMLPUBFUN void __xmlVaEnd(char * * list);
#ifdef LIBXML_XPATH_ENABLED
-XMLPUBFUN int __xmlXPathNodeSetGetLength(xmlNodeSetPtr ns);
-XMLPUBFUN xmlNodePtr __xmlXPathNodeSetItem(xmlNodeSetPtr ns, int index);
-XMLPUBFUN int __xmlXPathNodeSetIsEmpty(xmlNodeSetPtr ns);
+XMLPUBFUN int __xmlXPathNodeSetGetLength(xmlNodeSetPtr ns);
+XMLPUBFUN xmlNodePtr __xmlXPathNodeSetItem(xmlNodeSetPtr ns, int index);
+XMLPUBFUN int __xmlXPathNodeSetIsEmpty(xmlNodeSetPtr ns);
#endif
#ifdef LIBXML_HTML_ENABLED
-XMLPUBFUN const char * __htmlDefaultSubelement(const htmlElemDesc * elt);
-XMLPUBFUN int __htmlElementAllowedHereDesc(const htmlElemDesc * parent,
- const htmlElemDesc * elt);
+XMLPUBFUN const char * __htmlDefaultSubelement(const htmlElemDesc * elt);
+XMLPUBFUN int __htmlElementAllowedHereDesc(const htmlElemDesc * parent,
+ const htmlElemDesc * elt);
XMLPUBFUN const char * *
- __htmlRequiredAttrs(const htmlElemDesc * elt);
+ __htmlRequiredAttrs(const htmlElemDesc * elt);
#endif
#endif
diff --git a/os400/wrappers.c b/os400/wrappers.c
index 9f592b7..06f6c26 100644
--- a/os400/wrappers.c
+++ b/os400/wrappers.c
@@ -110,7 +110,7 @@
}
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
#include <zlib.h>
gzFile
diff --git a/os400/wrappers.h b/os400/wrappers.h
index 388ec8c..6f3e6c9 100644
--- a/os400/wrappers.h
+++ b/os400/wrappers.h
@@ -43,7 +43,7 @@
extern char * _lx_dlerror(void);
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
#include <zlib.h>
diff --git a/os400/xmlcatalog.cmd b/os400/xmlcatalog.cmd
new file mode 100644
index 0000000..92f0270
--- /dev/null
+++ b/os400/xmlcatalog.cmd
@@ -0,0 +1,112 @@
+/* XMLCATALOG CL command. */
+/* */
+/* See Copyright for the status of this software. */
+/* */
+/* Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. */
+
+/* Interface to program XMLCATLGCL */
+
+ CMD PROMPT('XML/SGML catalog tool')
+
+ /* Catalog file path. */
+
+ PARM KWD(INSTMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MIN(1) SPCVAL((*NEW '')) +
+ CHOICE('Stream file path') +
+ PROMPT('XML/SGML catalog file')
+
+ /* Catalog kind: XML/SGML. */
+
+ PARM KWD(KIND) TYPE(*CHAR) LEN(7) VARY(*YES *INT2) +
+ EXPR(*YES) RSTD(*YES) DFT(*XML) +
+ SPCVAL((*XML '') (*SGML '--sgml')) +
+ PROMPT('Catalog kind')
+
+ /* Output file. */
+
+ PARM KWD(OUTSTMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) DFT(*STDOUT) +
+ SPCVAL((*STDOUT '') (*INSTMF X'00')) +
+ CHOICE('*STDOUT, *INSTMF or file path') +
+ PROMPT('Output stream file path')
+
+ /* Convert SGML to XML catalog. */
+
+ PARM KWD(CONVERT) TYPE(*CHAR) LEN(10) VARY(*YES *INT2) +
+ RSTD(*YES) SPCVAL((*YES '--convert') (*NO '')) +
+ EXPR(*YES) DFT(*NO) PMTCTL(TYPEXML) +
+ PROMPT('Convert SGML to XML catalog')
+
+ /* SGML super catalog update. */
+
+ PARM KWD(SUPERUPD) TYPE(*CHAR) LEN(17) VARY(*YES *INT2) +
+ SPCVAL((*YES '') (*NO '--no-super-update')) +
+ EXPR(*YES) DFT(*YES) RSTD(*YES) PMTCTL(TYPESGML) +
+ PROMPT('Update the SGML super catalog')
+
+ /* Verbose/debug output. */
+
+ PARM KWD(VERBOSE) TYPE(*CHAR) LEN(4) VARY(*YES *INT2) +
+ RSTD(*YES) SPCVAL((*YES '-v') (*NO '')) +
+ EXPR(*YES) DFT(*NO) +
+ PROMPT('Output debugging information')
+
+ /* Interactive shell not supported. */
+
+ /* Values to delete. */
+
+ PARM KWD(DELETE) TYPE(*PNAME) LEN(256) VARY(*YES *INT2) +
+ CASE(*MIXED) MAX(64) EXPR(*YES) +
+ CHOICE('Identifier value') +
+ PROMPT('Delete System/URI identifier')
+
+ /* Values to add. */
+
+ PARM KWD(ADD) TYPE(XMLELEM) MAX(10) PMTCTL(TYPEXML) +
+ PROMPT('Add definition')
+XMLELEM: ELEM TYPE(*CHAR) LEN(16) VARY(*YES *INT2) DFT(*PUBLIC) +
+ PROMPT('Entry type') +
+ EXPR(*YES) RSTD(*YES) SPCVAL( +
+ (*PUBLIC 'public') +
+ (*SYSTEM 'system') +
+ (*URI 'uri') +
+ (*REWRITESYSTEM 'rewriteSystem') +
+ (*REWRITEURI 'rewriteURI') +
+ (*DELEGATEPUBLIC 'delegatePublic') +
+ (*DELEGATESYSTEM 'delegateSystem') +
+ (*DELEGATEURI 'delegateURI') +
+ (*NEXTCATALOG 'nextCatalog') +
+ )
+ ELEM TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES) +
+ CASE(*MIXED) PROMPT('Original reference/file name')
+ ELEM TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES) +
+ CASE(*MIXED) PROMPT('Replacement entity URI')
+
+ PARM KWD(SGMLADD) TYPE(SGMLELEM) MAX(10) +
+ PMTCTL(TYPESGML) PROMPT('Add SGML definition')
+SGMLELEM: ELEM TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES) +
+ CASE(*MIXED) PROMPT('SGML catalog file name')
+ ELEM TYPE(*PNAME) LEN(256) VARY(*YES *INT2) EXPR(*YES) +
+ CASE(*MIXED) PROMPT('SGML definition')
+
+ /* Entities to resolve. */
+
+ PARM KWD(ENTITY) TYPE(*PNAME) LEN(256) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MAX(150) +
+ PROMPT('Resolve entity')
+
+ /* Additional catalog files. */
+
+ PARM KWD(CATALOG) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MAX(150) DFT(*DEFAULT) +
+ CHOICE('Catalog stream file path') +
+ PROMPT('Additional catalog file') SPCVAL( +
+ (*DEFAULT '/etc/xml/catalog') +
+ (*NONE '') +
+ )
+
+
+ /* Conditional prompting. */
+
+TYPEXML: PMTCTL CTL(KIND) COND((*EQ ''))
+TYPESGML: PMTCTL CTL(KIND) COND((*NE ''))
diff --git a/os400/xmlcatlgcl.c b/os400/xmlcatlgcl.c
new file mode 100644
index 0000000..6f1e4ff
--- /dev/null
+++ b/os400/xmlcatlgcl.c
@@ -0,0 +1,288 @@
+/**
+*** XMLCATALOG command response program.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <qshell.h>
+
+
+/* Variable-length string, with 16-bit length. */
+typedef struct {
+ short len;
+ char string[5000];
+} vary2;
+
+
+/* Variable-length string, with 32-bit length. */
+typedef struct {
+ int len;
+ char string[5000];
+} vary4;
+
+
+/* Multiple occurrence parameter list. */
+#define paramlist(itemsize, itemtype) \
+ _Packed struct { \
+ short len; \
+ _Packed union { \
+ char _pad[itemsize]; \
+ itemtype param; \
+ } item[1]; \
+ }
+
+/* Add element list structure. */
+typedef struct {
+ short elcount; /* Element count (=3). */
+ paramlist(16, char) type; /* vary2(16). */
+ paramlist(256, char) origin; /* vary2(256). */
+ paramlist(256, char) replace; /* vary2(256). */
+} addelement;
+
+/* SGML add element list structure. */
+typedef struct {
+ short elcount; /* Element count (=3). */
+ paramlist(256, char) catalog; /* vary2(256). */
+ paramlist(256, char) ident; /* vary2(256). */
+} sgmladdelement;
+
+
+/* Arguments from CL command. */
+typedef struct {
+ char * pgm; /* Program name. */
+ vary2 * instmf; /* Input catalog file name. */
+ vary2 * kind; /* Catalog kind. */
+ vary2 * outstmf; /* Output catalog file name. */
+ vary2 * convert; /* Convert SGML to XML. */
+ vary2 * superupd; /* --no-super-update. */
+ vary2 * verbose; /* Verbose output. */
+ paramlist(256 + 2, vary2) * delete; /* Identifiers to delete. */
+ paramlist(2, unsigned short) * add; /* Items to add. */
+ paramlist(2, unsigned short) * sgmladd; /* SGML items to add. */
+ paramlist(256 + 2, vary2) * resolve; /* Identifiers to resolve. */
+ paramlist(5000 + 2, vary2) * catalog; /* Additional catalog files. */
+} arguments;
+
+
+/* Definition of QSHELL program. */
+extern void qshell(vary4 * cmd);
+#pragma linkage(qshell, OS)
+#pragma map(qshell, "QSHELL/QZSHQSHC")
+
+/* Macro to handle displacements. */
+#define OFFSETBY(t, p, n) ((t *) (((char *) (p)) + (n)))
+
+
+static void
+vary4nappend(vary4 * dst, const char * src, size_t len)
+
+{
+ if (len > sizeof(dst->string) - dst->len)
+ len = sizeof(dst->string) - dst->len;
+
+ if (len) {
+ memcpy(dst->string + dst->len, src, len);
+ dst->len += len;
+ }
+}
+
+
+static void
+vary4append(vary4 * dst, const char * src)
+
+{
+ vary4nappend(dst, src, strlen(src));
+}
+
+
+static void
+vary4arg(vary4 * dst, const char * arg)
+
+{
+ vary4nappend(dst, " ", 1);
+ vary4append(dst, arg);
+}
+
+
+static void
+vary4varg(vary4 * dst, vary2 * arg)
+
+{
+ vary4nappend(dst, " ", 1);
+ vary4nappend(dst, arg->string, arg->len);
+}
+
+
+static void
+vary4vescape(vary4 * dst, vary2 * arg)
+
+{
+ int i;
+
+ for (i = 0; i < arg->len; i++)
+ if (arg->string[i] == '\'')
+ vary4nappend(dst, "'\"'\"'", 5);
+ else
+ vary4nappend(dst, arg->string + i, 1);
+}
+
+
+static void
+vary4vargquote(vary4 * dst, vary2 * arg)
+
+{
+ vary4nappend(dst, " '", 2);
+ vary4vescape(dst, arg);
+ vary4nappend(dst, "'", 1);
+}
+
+
+int
+main(int argsc, arguments * args)
+
+{
+ vary4 cmd;
+ int i;
+ char c;
+ addelement * aelp;
+ sgmladdelement * saelp;
+
+ /* Specify additional catalogs. */
+ cmd.len = 0;
+ if (args->catalog->len) {
+ for (i = 0; i < args->catalog->len &&
+ !args->catalog->item[i].param.len; i++)
+ ;
+
+ vary4append(&cmd, "XML_CATALOG_FILES=");
+ if (i < args->catalog->len) {
+ c = '\'';
+ for (i = 0; i < args->catalog->len; i++) {
+ if (!args->catalog->item[i].param.len)
+ continue;
+ vary4nappend(&cmd, &c, 1);
+ c = ' ';
+ vary4vescape(&cmd,
+ &args->catalog->item[i].param);
+ }
+ vary4nappend(&cmd, "'", 1);
+ }
+ vary4nappend(&cmd, " ", 1);
+ }
+
+ /* find length of library name. */
+ for (i = 0; i < 10 && args->pgm[i] && args->pgm[i] != '/'; i++)
+ ;
+
+ /* Store program name in command buffer. */
+ vary4append(&cmd, "/QSYS.LIB/");
+ vary4nappend(&cmd, args->pgm, i);
+ vary4append(&cmd, ".LIB/XMLCATALOG.PGM");
+
+ /* Map command arguments to standard xmlcatalog argument vector. */
+ if (args->kind && args->kind->len)
+ vary4varg(&cmd, args->kind);
+
+ if (args->verbose && args->verbose->len)
+ vary4varg(&cmd, args->verbose);
+
+ if (args->delete)
+ for (i = 0; i < args->delete->len; i++) {
+ vary4arg(&cmd, "--del");
+ vary4vargquote(&cmd, &args->delete->item[i].param);
+ }
+
+ if (args->kind && args->kind->len) {
+ /* Process SGML-specific parameters. */
+ if (args->superupd && args->superupd->len)
+ vary4varg(&cmd, args->superupd);
+
+ if (args->sgmladd)
+ for (i = 0; i < args->sgmladd->len; i++) {
+ saelp = OFFSETBY(sgmladdelement, args->sgmladd,
+ args->sgmladd->item[i].param);
+ if (!((vary2 *) &saelp->catalog)->len)
+ continue;
+ vary4arg(&cmd, "--add");
+ vary4vargquote(&cmd, (vary2 *) &saelp->catalog);
+ vary4vargquote(&cmd, (vary2 *) &saelp->ident);
+ }
+ }
+ else {
+ /* Process XML-specific parameters. */
+ if (args->convert && args->convert->len)
+ vary4varg(&cmd, args->convert);
+
+ if (args->add)
+ for (i = 0; i < args->add->len; i++) {
+ aelp = OFFSETBY(addelement, args->add,
+ args->add->item[i].param);
+ if (!((vary2 *) &aelp->origin)->len)
+ continue;
+ vary4arg(&cmd, "--add");
+ vary4varg(&cmd, (vary2 *) &aelp->type);
+ vary4vargquote(&cmd, (vary2 *) &aelp->origin);
+ vary4vargquote(&cmd, (vary2 *) &aelp->replace);
+ }
+ }
+
+ /* Avoid INSTMF(*NEW) and OUTSMTF(*INSTMF). */
+ if (args->outstmf && args->outstmf->len && !args->outstmf->string[0])
+ if (args->instmf && args->instmf->len)
+ args->outstmf = args->instmf;
+ else
+ args->outstmf = NULL;
+
+ /* If INSTMF(*NEW) and OUTSTMF(somepath), Use --create --noout and
+ somepath as (unexisting) input file. */
+ if (args->outstmf && args->outstmf->len)
+ if (!args->instmf || !args->instmf->len) {
+ vary4arg(&cmd, "--create");
+ vary4arg(&cmd, "--noout");
+ args->instmf = args->outstmf;
+ args->outstmf = NULL;
+ }
+
+ /* If output to input file, use --noout option. */
+ if (args->instmf && args->outstmf && args->instmf->len &&
+ args->instmf->len == args->outstmf->len &&
+ !strncmp(args->instmf->string, args->outstmf->string,
+ args->instmf->len)) {
+ vary4arg(&cmd, "--noout");
+ args->outstmf = NULL;
+ }
+
+ /* If no input file create catalog, else specify the input file name. */
+ /* Specify the input file name: my be a dummy one. */
+ if (!args->instmf || !args->instmf->len) {
+ vary4arg(&cmd, "--create -");
+ vary4arg(&cmd, ".dmyxmlcatalog");
+ }
+ else {
+ vary4arg(&cmd, "-");
+ vary4vargquote(&cmd, args->instmf);
+ }
+
+ /* Query entities. */
+
+ if (args->resolve)
+ for (i = 0; i < args->resolve->len; i++)
+ vary4vargquote(&cmd, &args->resolve->item[i].param);
+
+ /* Redirect output if requested. */
+ if (args->outstmf && args->outstmf->len) {
+ vary4arg(&cmd, ">");
+ vary4vargquote(&cmd, args->outstmf);
+ }
+
+ /* Execute the shell command. */
+ qshell(&cmd);
+
+ /* Terminate. */
+ exit(0);
+}
diff --git a/os400/xmllint.cmd b/os400/xmllint.cmd
new file mode 100644
index 0000000..1582837
--- /dev/null
+++ b/os400/xmllint.cmd
@@ -0,0 +1,146 @@
+/* XMLLINT CL command. */
+/* */
+/* See Copyright for the status of this software. */
+/* */
+/* Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A. */
+
+/* Interface to program XMLLINTCL */
+
+ CMD PROMPT('XML tool')
+
+ /* XML input file location. */
+
+ PARM KWD(STMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MIN(1) +
+ CHOICE('Stream file path') +
+ PROMPT('XML Stream file')
+
+ /* DTD location. */
+
+ PARM KWD(DTD) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('ID, URL or stream file path') +
+ PROMPT('DTD id, URL or file path')
+
+ PARM KWD(DTDLOCATOR) TYPE(*CHAR) LEN(8) DFT(*DTDURL) +
+ SPCVAL(*DTDURL *DTDFPI) EXPR(*YES) RSTD(*YES) +
+ PROMPT('DTD locator is URL/FPI')
+
+ /* Schema location. */
+
+ PARM KWD(SCHEMA) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('URL or stream file path') +
+ PROMPT('Schema URL or stream file path')
+
+ PARM KWD(SCHEMAKIND) TYPE(*CHAR) LEN(12) VARY(*YES *INT2) +
+ RSTD(*YES) DFT(*XSD) +
+ PROMPT('Validating schema kind') +
+ CHOICE('Keyword') SPCVAL( +
+ (*XSD '--schema') +
+ (*RELAXNG '--relaxng') +
+ (*SCHEMATRON '--schematron') +
+ )
+
+ /* Output location. */
+
+ PARM KWD(OUTSTMF) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('Stream file path') +
+ PROMPT('Output stream file path')
+
+ /* Other parameters with arguments. */
+
+ PARM KWD(XPATH) TYPE(*CHAR) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('XPath expression') +
+ PROMPT('XPath filter')
+
+ PARM KWD(PATTERN) TYPE(*CHAR) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ CHOICE('Reader pattern') +
+ PROMPT('Reader node filter')
+
+ /* Paths for resources. */
+
+ PARM KWD(PATH) TYPE(*PNAME) LEN(5000) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) MAX(64) +
+ CHOICE('IFS directory path') +
+ PROMPT('Path for resources')
+
+ PARM KWD(PRETTY) TYPE(*CHAR) LEN(11) VARY(*YES *INT2) +
+ RSTD(*YES) DFT(*NONE) +
+ PROMPT('Pretty-print style') +
+ CHOICE('Keyword') SPCVAL( +
+ (*NONE '0') +
+ (*FORMAT '1') +
+ (*WHITESPACE '2') +
+ )
+
+ PARM KWD(MAXMEM) TYPE(*UINT4) EXPR(*YES) DFT(0) +
+ CHOICE('Number of bytes') +
+ PROMPT('Maximum dynamic memory')
+
+ PARM KWD(ENCODING) TYPE(*CHAR) LEN(32) VARY(*YES *INT2) +
+ CASE(*MIXED) EXPR(*YES) PASSVAL(*NULL) +
+ PMTCTL(ENCODING) CHOICE('Encoding name') +
+ PROMPT('Output character encoding')
+ENCODING: PMTCTL CTL(OUTSTMF) COND(*SPCFD)
+
+ /* Boolean options. */
+ /* --shell is not supported from command mode. */
+
+ PARM KWD(OPTIONS) TYPE(*CHAR) LEN(20) VARY(*YES *INT2) +
+ MAX(50) RSTD(*YES) PROMPT('Options') +
+ CHOICE('Keyword') SPCVAL( +
+ (*VERSION '--version') +
+ (*DEBUG '--debug') +
+ (*DEBUGENT '--debugent') +
+ (*COPY '--copy') +
+ (*RECOVER '--recover') +
+ (*HUGE '--huge') +
+ (*NOENT '--noent') +
+ (*NOENC '--noenc') +
+ (*NOOUT '--noout') +
+ (*LOADTRACE '--load-trace') +
+ (*NONET '--nonet') +
+ (*NOCOMPACT '--nocompact') +
+ (*HTMLOUT '--htmlout') +
+ (*NOWRAP '--nowrap') +
+ (*VALID '--valid') +
+ (*POSTVALID '--postvalid') +
+ (*TIMING '--timing') +
+ (*REPEAT '--repeat') +
+ (*INSERT '--insert') +
+ (*COMPRESS '--compress') +
+ (*HTML '--html') +
+ (*XMLOUT '--xmlout') +
+ (*NODEFDTD '--nodefdtd') +
+ (*PUSH '--push') +
+ (*PUSHSMALL '--pushsmall') +
+ (*MEMORY '--memory') +
+ (*NOWARNING '--nowarning') +
+ (*NOBLANKS '--noblanks') +
+ (*NOCDATA '--nocdata') +
+ (*FORMAT '--format') +
+ (*DROPDTD '--dropdtd') +
+ (*NSCLEAN '--nsclean') +
+ (*TESTIO '--testIO') +
+ (*CATALOGS '--catalogs') +
+ (*NOCATALOGS '--nocatalogs') +
+ (*AUTO '--auto') +
+ (*XINCLUDE '--xinclude') +
+ (*NOXINCLUDENODE '--noxincludenode') +
+ (*NOFIXUPBASEURIS '--nofixup-base-uris') +
+ (*LOADDTD '--loaddtd') +
+ (*DTDATTR '--dtdattr') +
+ (*STREAM '--stream') +
+ (*WALKER '--walker') +
+ (*CHKREGISTER '--chkregister') +
+ (*C14N '--c14n') +
+ (*C14N11 '--c14n11') +
+ (*EXCC14N '--exc-c14n') +
+ (*SAX1 '--sax1') +
+ (*SAX '--sax') +
+ (*OLDXML10 '--oldxml10') +
+ )
diff --git a/os400/xmllintcl.c b/os400/xmllintcl.c
new file mode 100644
index 0000000..1226385
--- /dev/null
+++ b/os400/xmllintcl.c
@@ -0,0 +1,216 @@
+/**
+*** XMLLINT command response program.
+***
+*** See Copyright for the status of this software.
+***
+*** Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
+**/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <qshell.h>
+
+
+/* Variable-length string, with 16-bit length. */
+typedef struct {
+ short len;
+ char string[5000];
+} vary2;
+
+
+/* Variable-length string, with 32-bit length. */
+typedef struct {
+ int len;
+ char string[5000];
+} vary4;
+
+
+/* Multiple occurrence parameter list. */
+#define paramlist(itemsize, itemtype) \
+ _Packed struct { \
+ short len; \
+ union { \
+ char _pad[itemsize]; \
+ itemtype param; \
+ } item[1]; \
+ }
+
+
+/* Arguments from CL command. */
+typedef struct {
+ char * pgm; /* Program name. */
+ vary2 * stmf; /* XML file name or URL. */
+ vary2 * dtd; /* DTD location or public identifier. */
+ char * dtdvalid; /* *DTDURL or *DTDFPI. */
+ vary2 * schema; /* Schema file name or URL. */
+ vary2 * schemakind; /* --schema/--relaxng/--schematron. */
+ vary2 * outstmf; /* Output stream file name. */
+ vary2 * xpath; /* XPath filter. */
+ vary2 * pattern; /* Reader filter pattern. */
+ paramlist(5000 + 2, vary2) * path; /* Path for resources. */
+ vary2 * pretty; /* Pretty-print style. */
+ unsigned long * maxmem; /* Maximum dynamic memory. */
+ vary2 * encoding; /* Output encoding. */
+ paramlist(20 + 2, vary2) * options; /* Other options. */
+} arguments;
+
+
+/* Definition of QSHELL program. */
+extern void qshell(vary4 * cmd);
+#pragma linkage(qshell, OS)
+#pragma map(qshell, "QSHELL/QZSHQSHC")
+
+
+static void
+vary4nappend(vary4 * dst, const char * src, size_t len)
+
+{
+ if (len > sizeof(dst->string) - dst->len)
+ len = sizeof(dst->string) - dst->len;
+
+ if (len) {
+ memcpy(dst->string + dst->len, src, len);
+ dst->len += len;
+ }
+}
+
+
+static void
+vary4append(vary4 * dst, const char * src)
+
+{
+ vary4nappend(dst, src, strlen(src));
+}
+
+
+static void
+vary4arg(vary4 * dst, const char * arg)
+
+{
+ vary4nappend(dst, " ", 1);
+ vary4append(dst, arg);
+}
+
+
+static void
+vary4varg(vary4 * dst, vary2 * arg)
+
+{
+ vary4nappend(dst, " ", 1);
+ vary4nappend(dst, arg->string, arg->len);
+}
+
+
+static void
+vary4vescape(vary4 * dst, vary2 * arg)
+
+{
+ int i;
+
+ for (i = 0; i < arg->len; i++)
+ if (arg->string[i] == '\'')
+ vary4nappend(dst, "'\"'\"'", 5);
+ else
+ vary4nappend(dst, arg->string + i, 1);
+}
+
+
+static void
+vary4vargquote(vary4 * dst, vary2 * arg)
+
+{
+ vary4nappend(dst, " '", 2);
+ vary4vescape(dst, arg);
+ vary4nappend(dst, "'", 1);
+}
+
+
+int
+main(int argsc, arguments * args)
+
+{
+ vary4 cmd;
+ int i;
+ char textbuf[20];
+ char * lang;
+
+ /* find length of library name. */
+ for (i = 0; i < 10 && args->pgm[i] && args->pgm[i] != '/'; i++)
+ ;
+
+ /* Store program name in command buffer. */
+ cmd.len = 0;
+ vary4append(&cmd, "/QSYS.LIB/");
+ vary4nappend(&cmd, args->pgm, i);
+ vary4append(&cmd, ".LIB/XMLLINT.PGM");
+
+ /* Map command arguments to standard xmllint argument vector. */
+
+ if (args->dtd && args->dtd->len) {
+ if (args->dtdvalid && args->dtdvalid[4] == 'F')
+ vary4arg(&cmd, "--dtdvalidfpi");
+ else
+ vary4arg(&cmd, "--dtdvalid");
+
+ vary4vargquote(&cmd, args->dtd);
+ }
+
+ if (args->schema && args->schema->len) {
+ vary4varg(&cmd, args->schemakind);
+ vary4vargquote(&cmd, args->schema);
+ }
+
+ if (args->outstmf && args->outstmf->len) {
+ vary4arg(&cmd, "--output");
+ vary4vargquote(&cmd, args->outstmf);
+
+ if (args->encoding && args->encoding->len) {
+ vary4arg(&cmd, "--encoding");
+ vary4vargquote(&cmd, args->encoding);
+ }
+ }
+
+ if (args->xpath && args->xpath->len) {
+ vary4arg(&cmd, "--xpath");
+ vary4vargquote(&cmd, args->xpath);
+ }
+
+ if (args->pattern && args->pattern->len) {
+ vary4arg(&cmd, "--pattern");
+ vary4vargquote(&cmd, args->pattern);
+ }
+
+ if (args->path && args->path->len) {
+ vary4arg(&cmd, "--path '");
+ vary4vescape(&cmd, &args->path->item[0].param);
+ for (i = 1; i < args->path->len; i++) {
+ vary4nappend(&cmd, ":", 1);
+ vary4vescape(&cmd, &args->path->item[i].param);
+ }
+ vary4nappend(&cmd, "'", 1);
+ }
+
+ if (args->pretty && args->pretty->len &&
+ args->pretty->string[0] != '0') {
+ vary4arg(&cmd, "--pretty");
+ vary4varg(&cmd, args->pretty);
+ }
+
+ if (args->maxmem && *args->maxmem) {
+ snprintf(textbuf, sizeof textbuf, "%lu", *args->maxmem);
+ vary4arg(&cmd, "--maxmem");
+ vary4arg(&cmd, textbuf);
+ }
+
+ for (i = 0; i < args->options->len; i++)
+ vary4varg(&cmd, &args->options->item[i].param);
+
+ vary4vargquote(&cmd, args->stmf);
+
+ /* Execute the shell command. */
+ qshell(&cmd);
+
+ /* Terminate. */
+ exit(0);
+}
diff --git a/parser.c b/parser.c
index 63ae15f..ca9fde2 100644
--- a/parser.c
+++ b/parser.c
@@ -30,10 +30,15 @@
* daniel@veillard.com
*/
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
#define IN_LIBXML
#include "libxml.h"
-#if defined(WIN32) && !defined (__CYGWIN__)
+#if defined(_WIN32) && !defined (__CYGWIN__)
#define XML_DIR_SEP '\\'
#else
#define XML_DIR_SEP '/'
@@ -43,6 +48,7 @@
#include <limits.h>
#include <string.h>
#include <stdarg.h>
+#include <stddef.h>
#include <libxml/xmlmemory.h>
#include <libxml/threads.h>
#include <libxml/globals.h>
@@ -77,12 +83,6 @@
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
-#ifdef HAVE_ZLIB_H
-#include <zlib.h>
-#endif
-#ifdef HAVE_LZMA_H
-#include <lzma.h>
-#endif
#include "buf.h"
#include "enc.h"
@@ -149,7 +149,7 @@
rep = xmlStringDecodeEntities(ctxt, ent->content,
XML_SUBSTITUTE_REF, 0, 0, 0);
--ctxt->depth;
- if (ctxt->errNo == XML_ERR_ENTITY_LOOP) {
+ if ((rep == NULL) || (ctxt->errNo == XML_ERR_ENTITY_LOOP)) {
ent->content[0] = 0;
}
@@ -1087,7 +1087,12 @@
struct _xmlDefAttrs {
int nbAttrs; /* number of defaulted attributes on that element */
int maxAttrs; /* the size of the array */
- const xmlChar *values[5]; /* array of localname/prefix/values/external */
+#if __STDC_VERSION__ >= 199901L
+ /* Using a C99 flexible array member avoids UBSan errors. */
+ const xmlChar *values[]; /* array of localname/prefix/values/external */
+#else
+ const xmlChar *values[5];
+#endif
};
/**
@@ -1324,7 +1329,7 @@
return;
xmlHashAddEntry2(ctxt->attsSpecial, fullname, fullattr,
- (void *) (long) type);
+ (void *) (ptrdiff_t) type);
return;
mem_error:
@@ -1343,7 +1348,7 @@
const xmlChar *unused ATTRIBUTE_UNUSED) {
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) data;
- if (((long) payload) == XML_ATTRIBUTE_CDATA) {
+ if (((ptrdiff_t) payload) == XML_ATTRIBUTE_CDATA) {
xmlHashRemoveEntry2(ctxt->attsSpecial, fullname, fullattr, NULL);
}
}
@@ -1855,7 +1860,7 @@
ctxt->name = value;
ctxt->pushTab[ctxt->nameNr * 3] = (void *) prefix;
ctxt->pushTab[ctxt->nameNr * 3 + 1] = (void *) URI;
- ctxt->pushTab[ctxt->nameNr * 3 + 2] = (void *) (long) nsNr;
+ ctxt->pushTab[ctxt->nameNr * 3 + 2] = (void *) (ptrdiff_t) nsNr;
return (ctxt->nameNr++);
mem_error:
xmlErrMemory(ctxt, NULL);
@@ -2037,10 +2042,8 @@
#define SKIP(val) do { \
ctxt->nbChars += (val),ctxt->input->cur += (val),ctxt->input->col+=(val); \
- if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt); \
- if ((*ctxt->input->cur == 0) && \
- (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0)) \
- xmlPopInput(ctxt); \
+ if (*ctxt->input->cur == 0) \
+ xmlParserInputGrow(ctxt->input, INPUT_CHUNK); \
} while (0)
#define SKIPL(val) do { \
@@ -2052,10 +2055,8 @@
ctxt->nbChars++; \
ctxt->input->cur++; \
} \
- if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt); \
- if ((*ctxt->input->cur == 0) && \
- (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0)) \
- xmlPopInput(ctxt); \
+ if (*ctxt->input->cur == 0) \
+ xmlParserInputGrow(ctxt->input, INPUT_CHUNK); \
} while (0)
#define SHRINK if ((ctxt->progressive == 0) && \
@@ -2065,10 +2066,9 @@
static void xmlSHRINK (xmlParserCtxtPtr ctxt) {
xmlParserInputShrink(ctxt->input);
- if ((*ctxt->input->cur == 0) &&
- (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0))
- xmlPopInput(ctxt);
- }
+ if (*ctxt->input->cur == 0)
+ xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
+}
#define GROW if ((ctxt->progressive == 0) && \
(ctxt->input->end - ctxt->input->cur < INPUT_CHUNK)) \
@@ -2080,7 +2080,8 @@
if (((curEnd > (unsigned long) XML_MAX_LOOKUP_LIMIT) ||
(curBase > (unsigned long) XML_MAX_LOOKUP_LIMIT)) &&
- ((ctxt->input->buf) && (ctxt->input->buf->readcallback != (xmlInputReadCallback) xmlNop)) &&
+ ((ctxt->input->buf) &&
+ (ctxt->input->buf->readcallback != xmlInputReadCallbackNop)) &&
((ctxt->options & XML_PARSE_HUGE) == 0)) {
xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR, "Huge input lookup");
xmlHaltParser(ctxt);
@@ -2093,9 +2094,8 @@
xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR, "cur index out of bound");
return;
}
- if ((ctxt->input->cur != NULL) && (*ctxt->input->cur == 0) &&
- (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0))
- xmlPopInput(ctxt);
+ if ((ctxt->input->cur != NULL) && (*ctxt->input->cur == 0))
+ xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
}
#define SKIP_BLANKS xmlSkipBlankChars(ctxt)
@@ -2115,7 +2115,6 @@
ctxt->input->line++; ctxt->input->col = 1; \
} else ctxt->input->col++; \
ctxt->input->cur += l; \
- if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt); \
} while (0)
#define CUR_CHAR(l) xmlCurrentChar(ctxt, &l)
@@ -2165,26 +2164,35 @@
}
ctxt->input->cur = cur;
} else {
- int cur;
- do {
- cur = CUR;
- while ((IS_BLANK_CH(cur) && /* CHECKED tstblanks.xml */
- (ctxt->instate != XML_PARSER_EOF))) {
+ int expandPE = ((ctxt->external != 0) || (ctxt->inputNr != 1));
+
+ while (1) {
+ if (IS_BLANK_CH(CUR)) { /* CHECKED tstblanks.xml */
NEXT;
- cur = CUR;
- res++;
- }
- while ((cur == 0) && (ctxt->inputNr > 1) &&
- (ctxt->instate != XML_PARSER_COMMENT)) {
- xmlPopInput(ctxt);
- cur = CUR;
- }
- /*
- * Need to handle support of entities branching here
- */
- if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt);
- } while ((IS_BLANK(cur)) && /* CHECKED tstblanks.xml */
- (ctxt->instate != XML_PARSER_EOF));
+ } else if (CUR == '%') {
+ /*
+ * Need to handle support of entities branching here
+ */
+ if ((expandPE == 0) || (IS_BLANK_CH(NXT(1))) || (NXT(1) == 0))
+ break;
+ xmlParsePEReference(ctxt);
+ } else if (CUR == 0) {
+ if (ctxt->inputNr <= 1)
+ break;
+ xmlPopInput(ctxt);
+ } else {
+ break;
+ }
+
+ /*
+ * Also increase the counter when entering or exiting a PERef.
+ * The spec says: "When a parameter-entity reference is recognized
+ * in the DTD and included, its replacement text MUST be enlarged
+ * by the attachment of one leading and one following space (#x20)
+ * character."
+ */
+ res++;
+ }
}
return(res);
}
@@ -2210,10 +2218,13 @@
if (xmlParserDebugEntities)
xmlGenericError(xmlGenericErrorContext,
"Popping input %d\n", ctxt->inputNr);
+ if ((ctxt->inputNr > 1) && (ctxt->inSubset == 0) &&
+ (ctxt->instate != XML_PARSER_EOF))
+ xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "Unfinished entity outside the DTD");
xmlFreeInputStream(inputPop(ctxt));
- if ((*ctxt->input->cur == 0) &&
- (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0))
- return(xmlPopInput(ctxt));
+ if (*ctxt->input->cur == 0)
+ xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
return(CUR);
}
@@ -2239,6 +2250,13 @@
xmlGenericError(xmlGenericErrorContext,
"Pushing input %d : %.30s\n", ctxt->inputNr+1, input->cur);
}
+ if (((ctxt->inputNr > 40) && ((ctxt->options & XML_PARSE_HUGE) == 0)) ||
+ (ctxt->inputNr > 1024)) {
+ xmlFatalErr(ctxt, XML_ERR_ENTITY_LOOP, NULL);
+ while (ctxt->inputNr > 1)
+ xmlFreeInputStream(inputPop(ctxt));
+ return(-1);
+ }
ret = inputPush(ctxt, input);
if (ctxt->instate == XML_PARSER_EOF)
return(-1);
@@ -2444,57 +2462,6 @@
}
/**
- * xmlNewBlanksWrapperInputStream:
- * @ctxt: an XML parser context
- * @entity: an Entity pointer
- *
- * Create a new input stream for wrapping
- * blanks around a PEReference
- *
- * Returns the new input stream or NULL
- */
-
-static void deallocblankswrapper (xmlChar *str) {xmlFree(str);}
-
-static xmlParserInputPtr
-xmlNewBlanksWrapperInputStream(xmlParserCtxtPtr ctxt, xmlEntityPtr entity) {
- xmlParserInputPtr input;
- xmlChar *buffer;
- size_t length;
- if (entity == NULL) {
- xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "xmlNewBlanksWrapperInputStream entity\n");
- return(NULL);
- }
- if (xmlParserDebugEntities)
- xmlGenericError(xmlGenericErrorContext,
- "new blanks wrapper for entity: %s\n", entity->name);
- input = xmlNewInputStream(ctxt);
- if (input == NULL) {
- return(NULL);
- }
- length = xmlStrlen(entity->name) + 5;
- buffer = xmlMallocAtomic(length);
- if (buffer == NULL) {
- xmlErrMemory(ctxt, NULL);
- xmlFree(input);
- return(NULL);
- }
- buffer [0] = ' ';
- buffer [1] = '%';
- buffer [length-3] = ';';
- buffer [length-2] = ' ';
- buffer [length-1] = 0;
- memcpy(buffer + 2, entity->name, length - 5);
- input->free = deallocblankswrapper;
- input->base = buffer;
- input->cur = buffer;
- input->length = length;
- input->end = &buffer[length];
- return(input);
-}
-
-/**
* xmlParserHandlePEReference:
* @ctxt: the parser context
*
@@ -2528,11 +2495,6 @@
*/
void
xmlParserHandlePEReference(xmlParserCtxtPtr ctxt) {
- const xmlChar *name;
- xmlEntityPtr entity = NULL;
- xmlParserInputPtr input;
-
- if (RAW != '%') return;
switch(ctxt->instate) {
case XML_PARSER_CDATA_SECTION:
return;
@@ -2587,128 +2549,7 @@
return;
}
- NEXT;
- name = xmlParseName(ctxt);
- if (xmlParserDebugEntities)
- xmlGenericError(xmlGenericErrorContext,
- "PEReference: %s\n", name);
- if (name == NULL) {
- xmlFatalErr(ctxt, XML_ERR_PEREF_NO_NAME, NULL);
- } else {
- if (RAW == ';') {
- NEXT;
- if ((ctxt->sax != NULL) && (ctxt->sax->getParameterEntity != NULL))
- entity = ctxt->sax->getParameterEntity(ctxt->userData, name);
- if (ctxt->instate == XML_PARSER_EOF)
- return;
- if (entity == NULL) {
-
- /*
- * [ WFC: Entity Declared ]
- * In a document without any DTD, a document with only an
- * internal DTD subset which contains no parameter entity
- * references, or a document with "standalone='yes'", ...
- * ... The declaration of a parameter entity must precede
- * any reference to it...
- */
- if ((ctxt->standalone == 1) ||
- ((ctxt->hasExternalSubset == 0) &&
- (ctxt->hasPErefs == 0))) {
- xmlFatalErrMsgStr(ctxt, XML_ERR_UNDECLARED_ENTITY,
- "PEReference: %%%s; not found\n", name);
- } else {
- /*
- * [ VC: Entity Declared ]
- * In a document with an external subset or external
- * parameter entities with "standalone='no'", ...
- * ... The declaration of a parameter entity must precede
- * any reference to it...
- */
- if ((ctxt->validate) && (ctxt->vctxt.error != NULL)) {
- xmlValidityError(ctxt, XML_WAR_UNDECLARED_ENTITY,
- "PEReference: %%%s; not found\n",
- name, NULL);
- } else
- xmlWarningMsg(ctxt, XML_WAR_UNDECLARED_ENTITY,
- "PEReference: %%%s; not found\n",
- name, NULL);
- ctxt->valid = 0;
- }
- xmlParserEntityCheck(ctxt, 0, NULL, 0);
- } else if (ctxt->input->free != deallocblankswrapper) {
- input = xmlNewBlanksWrapperInputStream(ctxt, entity);
- if (xmlPushInput(ctxt, input) < 0)
- return;
- } else {
- if ((entity->etype == XML_INTERNAL_PARAMETER_ENTITY) ||
- (entity->etype == XML_EXTERNAL_PARAMETER_ENTITY)) {
- xmlChar start[4];
- xmlCharEncoding enc;
-
- /*
- * Note: external parameter entities will not be loaded, it
- * is not required for a non-validating parser, unless the
- * option of validating, or substituting entities were
- * given. Doing so is far more secure as the parser will
- * only process data coming from the document entity by
- * default.
- */
- if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) &&
- ((ctxt->options & XML_PARSE_NOENT) == 0) &&
- ((ctxt->options & XML_PARSE_DTDVALID) == 0) &&
- ((ctxt->options & XML_PARSE_DTDLOAD) == 0) &&
- ((ctxt->options & XML_PARSE_DTDATTR) == 0) &&
- (ctxt->replaceEntities == 0) &&
- (ctxt->validate == 0))
- return;
-
- /*
- * handle the extra spaces added before and after
- * c.f. http://www.w3.org/TR/REC-xml#as-PE
- * this is done independently.
- */
- input = xmlNewEntityInputStream(ctxt, entity);
- if (xmlPushInput(ctxt, input) < 0)
- return;
-
- /*
- * Get the 4 first bytes and decode the charset
- * if enc != XML_CHAR_ENCODING_NONE
- * plug some encoding conversion routines.
- * Note that, since we may have some non-UTF8
- * encoding (like UTF16, bug 135229), the 'length'
- * is not known, but we can calculate based upon
- * the amount of data in the buffer.
- */
- GROW
- if (ctxt->instate == XML_PARSER_EOF)
- return;
- if ((ctxt->input->end - ctxt->input->cur)>=4) {
- start[0] = RAW;
- start[1] = NXT(1);
- start[2] = NXT(2);
- start[3] = NXT(3);
- enc = xmlDetectCharEncoding(start, 4);
- if (enc != XML_CHAR_ENCODING_NONE) {
- xmlSwitchEncoding(ctxt, enc);
- }
- }
-
- if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) &&
- (CMP5(CUR_PTR, '<', '?', 'x', 'm', 'l' )) &&
- (IS_BLANK_CH(NXT(5)))) {
- xmlParseTextDecl(ctxt);
- }
- } else {
- xmlFatalErrMsgStr(ctxt, XML_ERR_ENTITY_IS_PARAMETER,
- "PEReference: %s is not a parameter entity\n",
- name);
- }
- }
- } else {
- xmlFatalErr(ctxt, XML_ERR_PEREF_SEMICOL_MISSING, NULL);
- }
- }
+ xmlParsePEReference(ctxt);
}
/*
@@ -2790,9 +2631,9 @@
if (c == 0) break;
if ((c == '&') && (str[1] == '#')) {
int val = xmlParseStringCharRef(ctxt, &str);
- if (val != 0) {
- COPY_BUF(0,buffer,nbchars,val);
- }
+ if (val == 0)
+ goto int_error;
+ COPY_BUF(0,buffer,nbchars,val);
if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) {
growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
}
@@ -2802,9 +2643,6 @@
"String decoding Entity Reference: %.30s\n",
str);
ent = xmlParseStringEntityRef(ctxt, &str);
- if ((ctxt->lastError.code == XML_ERR_ENTITY_LOOP) ||
- (ctxt->lastError.code == XML_ERR_INTERNAL_ERROR))
- goto int_error;
xmlParserEntityCheck(ctxt, 0, ent, 0);
if (ent != NULL)
ctxt->nbentities += ent->checked / 2;
@@ -2818,30 +2656,27 @@
} else {
xmlFatalErrMsg(ctxt, XML_ERR_INTERNAL_ERROR,
"predefined entity has no content\n");
+ goto int_error;
}
} else if ((ent != NULL) && (ent->content != NULL)) {
ctxt->depth++;
rep = xmlStringDecodeEntities(ctxt, ent->content, what,
0, 0, 0);
ctxt->depth--;
+ if (rep == NULL)
+ goto int_error;
- if ((ctxt->lastError.code == XML_ERR_ENTITY_LOOP) ||
- (ctxt->lastError.code == XML_ERR_INTERNAL_ERROR))
- goto int_error;
-
- if (rep != NULL) {
- current = rep;
- while (*current != 0) { /* non input consuming loop */
- buffer[nbchars++] = *current++;
- if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) {
- if (xmlParserEntityCheck(ctxt, nbchars, ent, 0))
- goto int_error;
- growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
- }
- }
- xmlFree(rep);
- rep = NULL;
- }
+ current = rep;
+ while (*current != 0) { /* non input consuming loop */
+ buffer[nbchars++] = *current++;
+ if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) {
+ if (xmlParserEntityCheck(ctxt, nbchars, ent, 0))
+ goto int_error;
+ growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
+ }
+ }
+ xmlFree(rep);
+ rep = NULL;
} else if (ent != NULL) {
int i = xmlStrlen(ent->name);
const xmlChar *cur = ent->name;
@@ -2859,8 +2694,6 @@
xmlGenericError(xmlGenericErrorContext,
"String decoding PE Reference: %.30s\n", str);
ent = xmlParseStringPEReference(ctxt, &str);
- if (ctxt->lastError.code == XML_ERR_ENTITY_LOOP)
- goto int_error;
xmlParserEntityCheck(ctxt, 0, ent, 0);
if (ent != NULL)
ctxt->nbentities += ent->checked / 2;
@@ -2886,19 +2719,19 @@
rep = xmlStringDecodeEntities(ctxt, ent->content, what,
0, 0, 0);
ctxt->depth--;
- if (rep != NULL) {
- current = rep;
- while (*current != 0) { /* non input consuming loop */
- buffer[nbchars++] = *current++;
- if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) {
- if (xmlParserEntityCheck(ctxt, nbchars, ent, 0))
- goto int_error;
- growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
- }
- }
- xmlFree(rep);
- rep = NULL;
- }
+ if (rep == NULL)
+ goto int_error;
+ current = rep;
+ while (*current != 0) { /* non input consuming loop */
+ buffer[nbchars++] = *current++;
+ if (nbchars + XML_PARSER_BUFFER_SIZE > buffer_size) {
+ if (xmlParserEntityCheck(ctxt, nbchars, ent, 0))
+ goto int_error;
+ growBuffer(buffer, XML_PARSER_BUFFER_SIZE);
+ }
+ }
+ xmlFree(rep);
+ rep = NULL;
}
} else {
COPY_BUF(l,buffer,nbchars,c);
@@ -3406,13 +3239,6 @@
len += l;
NEXTL(l);
c = CUR_CHAR(l);
- if (c == 0) {
- count = 0;
- GROW;
- if (ctxt->instate == XML_PARSER_EOF)
- return(NULL);
- c = CUR_CHAR(l);
- }
}
}
if ((len > XML_MAX_NAME_LENGTH) &&
@@ -3420,15 +3246,18 @@
xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "Name");
return(NULL);
}
- if (ctxt->input->cur > ctxt->input->base && (*ctxt->input->cur == '\n') && (ctxt->input->cur[-1] == '\r')) {
- if (ctxt->input->base > ctxt->input->cur - (len + 1)) {
- return(NULL);
- }
+ if (ctxt->input->cur - ctxt->input->base < len) {
+ /*
+ * There were a couple of bugs where PERefs lead to to a change
+ * of the buffer. Check the buffer size to avoid passing an invalid
+ * pointer to xmlDictLookup.
+ */
+ xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "unexpected change of input buffer");
+ return (NULL);
+ }
+ if ((*ctxt->input->cur == '\n') && (ctxt->input->cur[-1] == '\r'))
return(xmlDictLookup(ctxt->dict, ctxt->input->cur - (len + 1), len));
- }
- if (ctxt->input->base > ctxt->input->cur - len) {
- return(NULL);
- }
return(xmlDictLookup(ctxt->dict, ctxt->input->cur - len, len));
}
@@ -3541,9 +3370,9 @@
*/
ctxt->input->cur -= l;
GROW;
- ctxt->input->cur += l;
if (ctxt->instate == XML_PARSER_EOF)
return(NULL);
+ ctxt->input->cur += l;
c = CUR_CHAR(l);
}
}
@@ -3899,10 +3728,8 @@
ctxt->instate = XML_PARSER_ENTITY_VALUE;
input = ctxt->input;
GROW;
- if (ctxt->instate == XML_PARSER_EOF) {
- xmlFree(buf);
- return(NULL);
- }
+ if (ctxt->instate == XML_PARSER_EOF)
+ goto error;
NEXT;
c = CUR_CHAR(l);
/*
@@ -3923,18 +3750,12 @@
tmp = (xmlChar *) xmlRealloc(buf, size * sizeof(xmlChar));
if (tmp == NULL) {
xmlErrMemory(ctxt, NULL);
- xmlFree(buf);
- return(NULL);
+ goto error;
}
buf = tmp;
}
COPY_BUF(l,buf,len,c);
NEXTL(l);
- /*
- * Pop-up of finished entities.
- */
- while ((RAW == 0) && (ctxt->inputNr > 1)) /* non input consuming */
- xmlPopInput(ctxt);
GROW;
c = CUR_CHAR(l);
@@ -3944,10 +3765,13 @@
}
}
buf[len] = 0;
- if (ctxt->instate == XML_PARSER_EOF) {
- xmlFree(buf);
- return(NULL);
+ if (ctxt->instate == XML_PARSER_EOF)
+ goto error;
+ if (c != stop) {
+ xmlFatalErr(ctxt, XML_ERR_ENTITY_NOT_FINISHED, NULL);
+ goto error;
}
+ NEXT;
/*
* Raise problem w.r.t. '&' and '%' being used in non-entities
@@ -3959,20 +3783,25 @@
if ((*cur == '%') || ((*cur == '&') && (cur[1] != '#'))) {
xmlChar *name;
xmlChar tmp = *cur;
+ int nameOk = 0;
cur++;
name = xmlParseStringName(ctxt, &cur);
- if ((name == NULL) || (*cur != ';')) {
+ if (name != NULL) {
+ nameOk = 1;
+ xmlFree(name);
+ }
+ if ((nameOk == 0) || (*cur != ';')) {
xmlFatalErrMsgInt(ctxt, XML_ERR_ENTITY_CHAR_ERROR,
"EntityValue: '%c' forbidden except for entities references\n",
tmp);
+ goto error;
}
if ((tmp == '%') && (ctxt->inSubset == 1) &&
(ctxt->inputNr == 1)) {
xmlFatalErr(ctxt, XML_ERR_ENTITY_PE_INTERNAL, NULL);
+ goto error;
}
- if (name != NULL)
- xmlFree(name);
if (*cur == 0)
break;
}
@@ -3981,28 +3810,24 @@
/*
* Then PEReference entities are substituted.
+ *
+ * NOTE: 4.4.7 Bypassed
+ * When a general entity reference appears in the EntityValue in
+ * an entity declaration, it is bypassed and left as is.
+ * so XML_SUBSTITUTE_REF is not set here.
*/
- if (c != stop) {
- xmlFatalErr(ctxt, XML_ERR_ENTITY_NOT_FINISHED, NULL);
- xmlFree(buf);
- } else {
- NEXT;
- /*
- * NOTE: 4.4.7 Bypassed
- * When a general entity reference appears in the EntityValue in
- * an entity declaration, it is bypassed and left as is.
- * so XML_SUBSTITUTE_REF is not set here.
- */
- ++ctxt->depth;
- ret = xmlStringDecodeEntities(ctxt, buf, XML_SUBSTITUTE_PEREF,
- 0, 0, 0);
- --ctxt->depth;
- if (orig != NULL)
- *orig = buf;
- else
- xmlFree(buf);
+ ++ctxt->depth;
+ ret = xmlStringDecodeEntities(ctxt, buf, XML_SUBSTITUTE_PEREF,
+ 0, 0, 0);
+ --ctxt->depth;
+ if (orig != NULL) {
+ *orig = buf;
+ buf = NULL;
}
+error:
+ if (buf != NULL)
+ xmlFree(buf);
return(ret);
}
@@ -4172,7 +3997,9 @@
ent->checked |= 1;
xmlFree(rep);
rep = NULL;
- }
+ } else {
+ ent->content[0] = 0;
+ }
}
/*
@@ -4596,7 +4423,7 @@
if (*in == ']') {
if ((in[1] == ']') && (in[2] == '>')) {
xmlFatalErr(ctxt, XML_ERR_MISPLACED_CDATA_END, NULL);
- ctxt->input->cur = in;
+ ctxt->input->cur = in + 1;
return;
}
in++;
@@ -4789,22 +4616,20 @@
*publicID = NULL;
if (CMP6(CUR_PTR, 'S', 'Y', 'S', 'T', 'E', 'M')) {
SKIP(6);
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after 'SYSTEM'\n");
}
- SKIP_BLANKS;
URI = xmlParseSystemLiteral(ctxt);
if (URI == NULL) {
xmlFatalErr(ctxt, XML_ERR_URI_REQUIRED, NULL);
}
} else if (CMP6(CUR_PTR, 'P', 'U', 'B', 'L', 'I', 'C')) {
SKIP(6);
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after 'PUBLIC'\n");
}
- SKIP_BLANKS;
*publicID = xmlParsePubidLiteral(ctxt);
if (*publicID == NULL) {
xmlFatalErr(ctxt, XML_ERR_PUBID_REQUIRED, NULL);
@@ -4813,26 +4638,20 @@
/*
* We don't handle [83] so "S SystemLiteral" is required.
*/
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after the Public Identifier\n");
}
} else {
/*
* We handle [83] so we return immediately, if
- * "S SystemLiteral" is not detected. From a purely parsing
- * point of view that's a nice mess.
+ * "S SystemLiteral" is not detected. We skip blanks if no
+ * system literal was found, but this is harmless since we must
+ * be at the end of a NotationDecl.
*/
- const xmlChar *ptr;
- GROW;
-
- ptr = CUR_PTR;
- if (!IS_BLANK_CH(*ptr)) return(NULL);
-
- while (IS_BLANK_CH(*ptr)) ptr++; /* TODO: dangerous, fix ! */
- if ((*ptr != '\'') && (*ptr != '"')) return(NULL);
+ if (SKIP_BLANKS == 0) return(NULL);
+ if ((CUR != '\'') && (CUR != '"')) return(NULL);
}
- SKIP_BLANKS;
URI = xmlParseSystemLiteral(ctxt);
if (URI == NULL) {
xmlFatalErr(ctxt, XML_ERR_URI_REQUIRED, NULL);
@@ -4962,7 +4781,8 @@
} else {
if (inputid != ctxt->input->id) {
xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
- "Comment doesn't start and stop in the same entity\n");
+ "Comment doesn't start and stop in the same"
+ " entity\n");
}
NEXT;
if ((ctxt->sax != NULL) && (ctxt->sax->comment != NULL) &&
@@ -5110,7 +4930,8 @@
if (in[2] == '>') {
if (ctxt->input->id != inputid) {
xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
- "comment doesn't start and stop in the same entity\n");
+ "comment doesn't start and stop in the"
+ " same entity\n");
}
SKIP(3);
if ((ctxt->sax != NULL) && (ctxt->sax->comment != NULL) &&
@@ -5278,7 +5099,7 @@
int count = 0;
if ((RAW == '<') && (NXT(1) == '?')) {
- xmlParserInputPtr input = ctxt->input;
+ int inputid = ctxt->input->id;
state = ctxt->instate;
ctxt->instate = XML_PARSER_PI;
/*
@@ -5294,9 +5115,10 @@
target = xmlParsePITarget(ctxt);
if (target != NULL) {
if ((RAW == '?') && (NXT(1) == '>')) {
- if (input != ctxt->input) {
+ if (inputid != ctxt->input->id) {
xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
- "PI declaration doesn't start and stop in the same entity\n");
+ "PI declaration doesn't start and stop in"
+ " the same entity\n");
}
SKIP(2);
@@ -5317,12 +5139,10 @@
ctxt->instate = state;
return;
}
- cur = CUR;
- if (!IS_BLANK(cur)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsgStr(ctxt, XML_ERR_SPACE_REQUIRED,
"ParsePI: PI %s space expected\n", target);
}
- SKIP_BLANKS;
cur = CUR_CHAR(l);
while (IS_CHAR(cur) && /* checked */
((cur != '?') || (NXT(1) != '>'))) {
@@ -5378,9 +5198,10 @@
xmlFatalErrMsgStr(ctxt, XML_ERR_PI_NOT_FINISHED,
"ParsePI: PI %s never end ...\n", target);
} else {
- if (input != ctxt->input) {
- xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
- "PI declaration doesn't start and stop in the same entity\n");
+ if (inputid != ctxt->input->id) {
+ xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+ "PI declaration doesn't start and stop in"
+ " the same entity\n");
}
SKIP(2);
@@ -5436,32 +5257,30 @@
xmlChar *Systemid;
if (CMP10(CUR_PTR, '<', '!', 'N', 'O', 'T', 'A', 'T', 'I', 'O', 'N')) {
- xmlParserInputPtr input = ctxt->input;
+ int inputid = ctxt->input->id;
SHRINK;
SKIP(10);
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after '<!NOTATION'\n");
return;
}
- SKIP_BLANKS;
name = xmlParseName(ctxt);
if (name == NULL) {
xmlFatalErr(ctxt, XML_ERR_NOTATION_NOT_STARTED, NULL);
return;
}
- if (!IS_BLANK_CH(CUR)) {
- xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
- "Space required after the NOTATION name'\n");
- return;
- }
if (xmlStrchr(name, ':') != NULL) {
xmlNsErr(ctxt, XML_NS_ERR_COLON,
"colons are forbidden from notation names '%s'\n",
name, NULL, NULL);
}
- SKIP_BLANKS;
+ if (SKIP_BLANKS == 0) {
+ xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
+ "Space required after the NOTATION name'\n");
+ return;
+ }
/*
* Parse the IDs.
@@ -5470,9 +5289,10 @@
SKIP_BLANKS;
if (RAW == '>') {
- if (input != ctxt->input) {
- xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
- "Notation declaration doesn't start and stop in the same entity\n");
+ if (inputid != ctxt->input->id) {
+ xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+ "Notation declaration doesn't start and stop"
+ " in the same entity\n");
}
NEXT;
if ((ctxt->sax != NULL) && (!ctxt->disableSAX) &&
@@ -5516,23 +5336,20 @@
const xmlChar *ndata = NULL;
int isParameter = 0;
xmlChar *orig = NULL;
- int skipped;
/* GROW; done in the caller */
if (CMP8(CUR_PTR, '<', '!', 'E', 'N', 'T', 'I', 'T', 'Y')) {
- xmlParserInputPtr input = ctxt->input;
+ int inputid = ctxt->input->id;
SHRINK;
SKIP(8);
- skipped = SKIP_BLANKS;
- if (skipped == 0) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after '<!ENTITY'\n");
}
if (RAW == '%') {
NEXT;
- skipped = SKIP_BLANKS;
- if (skipped == 0) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after '%%'\n");
}
@@ -5550,8 +5367,7 @@
"colons are forbidden from entities names '%s'\n",
name, NULL, NULL);
}
- skipped = SKIP_BLANKS;
- if (skipped == 0) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after the entity name\n");
}
@@ -5662,18 +5478,16 @@
xmlFreeURI(uri);
}
}
- if ((RAW != '>') && (!IS_BLANK_CH(CUR))) {
+ if ((RAW != '>') && (SKIP_BLANKS == 0)) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required before 'NDATA'\n");
}
- SKIP_BLANKS;
if (CMP5(CUR_PTR, 'N', 'D', 'A', 'T', 'A')) {
SKIP(5);
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after 'NDATA'\n");
}
- SKIP_BLANKS;
ndata = xmlParseName(ctxt);
if ((ctxt->sax != NULL) && (!ctxt->disableSAX) &&
(ctxt->sax->unparsedEntityDecl != NULL))
@@ -5712,16 +5526,17 @@
}
}
if (ctxt->instate == XML_PARSER_EOF)
- return;
+ goto done;
SKIP_BLANKS;
if (RAW != '>') {
xmlFatalErrMsgStr(ctxt, XML_ERR_ENTITY_NOT_FINISHED,
"xmlParseEntityDecl: entity %s not terminated\n", name);
xmlHaltParser(ctxt);
} else {
- if (input != ctxt->input) {
+ if (inputid != ctxt->input->id) {
xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
- "Entity declaration doesn't start and stop in the same entity\n");
+ "Entity declaration doesn't start and stop in"
+ " the same entity\n");
}
NEXT;
}
@@ -5743,17 +5558,17 @@
cur = xmlSAX2GetEntity(ctxt, name);
}
}
- if (cur != NULL) {
- if (cur->orig != NULL)
- xmlFree(orig);
- else
- cur->orig = orig;
- } else
- xmlFree(orig);
+ if ((cur != NULL) && (cur->orig == NULL)) {
+ cur->orig = orig;
+ orig = NULL;
+ }
}
+
+done:
if (value != NULL) xmlFree(value);
if (URI != NULL) xmlFree(URI);
if (literal != NULL) xmlFree(literal);
+ if (orig != NULL) xmlFree(orig);
}
}
@@ -5804,11 +5619,10 @@
if (CMP6(CUR_PTR, '#', 'F', 'I', 'X', 'E', 'D')) {
SKIP(6);
val = XML_ATTRIBUTE_FIXED;
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after '#FIXED'\n");
}
- SKIP_BLANKS;
}
ret = xmlParseAttValue(ctxt);
ctxt->instate = XML_PARSER_DTD;
@@ -5980,12 +5794,11 @@
xmlParseEnumeratedType(xmlParserCtxtPtr ctxt, xmlEnumerationPtr *tree) {
if (CMP8(CUR_PTR, 'N', 'O', 'T', 'A', 'T', 'I', 'O', 'N')) {
SKIP(8);
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after 'NOTATION'\n");
return(0);
}
- SKIP_BLANKS;
*tree = xmlParseNotationType(ctxt);
if (*tree == NULL) return(0);
return(XML_ATTRIBUTE_NOTATION);
@@ -6089,14 +5902,13 @@
xmlEnumerationPtr tree;
if (CMP9(CUR_PTR, '<', '!', 'A', 'T', 'T', 'L', 'I', 'S', 'T')) {
- xmlParserInputPtr input = ctxt->input;
+ int inputid = ctxt->input->id;
SKIP(9);
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after '<!ATTLIST'\n");
}
- SKIP_BLANKS;
elemName = xmlParseName(ctxt);
if (elemName == NULL) {
xmlFatalErrMsg(ctxt, XML_ERR_NAME_REQUIRED,
@@ -6106,7 +5918,6 @@
SKIP_BLANKS;
GROW;
while ((RAW != '>') && (ctxt->instate != XML_PARSER_EOF)) {
- const xmlChar *check = CUR_PTR;
int type;
int def;
xmlChar *defaultValue = NULL;
@@ -6120,12 +5931,11 @@
break;
}
GROW;
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after the attribute name\n");
break;
}
- SKIP_BLANKS;
type = xmlParseAttributeType(ctxt, &tree);
if (type <= 0) {
@@ -6133,14 +5943,13 @@
}
GROW;
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after the attribute type\n");
if (tree != NULL)
xmlFreeEnumeration(tree);
break;
}
- SKIP_BLANKS;
def = xmlParseDefaultDecl(ctxt, &defaultValue);
if (def <= 0) {
@@ -6155,7 +5964,7 @@
GROW;
if (RAW != '>') {
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after the attribute default value\n");
if (defaultValue != NULL)
@@ -6164,16 +5973,6 @@
xmlFreeEnumeration(tree);
break;
}
- SKIP_BLANKS;
- }
- if (check == CUR_PTR) {
- xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
- "in xmlParseAttributeListDecl\n");
- if (defaultValue != NULL)
- xmlFree(defaultValue);
- if (tree != NULL)
- xmlFreeEnumeration(tree);
- break;
}
if ((ctxt->sax != NULL) && (!ctxt->disableSAX) &&
(ctxt->sax->attributeDecl != NULL))
@@ -6195,10 +5994,10 @@
GROW;
}
if (RAW == '>') {
- if (input != ctxt->input) {
- xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
- "Attribute list declaration doesn't start and stop in the same entity\n",
- NULL, NULL);
+ if (inputid != ctxt->input->id) {
+ xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+ "Attribute list declaration doesn't start and"
+ " stop in the same entity\n");
}
NEXT;
}
@@ -6235,10 +6034,10 @@
SKIP_BLANKS;
SHRINK;
if (RAW == ')') {
- if ((ctxt->validate) && (ctxt->input->id != inputchk)) {
- xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
-"Element content declaration doesn't start and stop in the same entity\n",
- NULL, NULL);
+ if (ctxt->input->id != inputchk) {
+ xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+ "Element content declaration doesn't start and"
+ " stop in the same entity\n");
}
NEXT;
ret = xmlNewDocElementContent(ctxt->myDoc, NULL, XML_ELEMENT_CONTENT_PCDATA);
@@ -6279,7 +6078,7 @@
if (elem == NULL) {
xmlFatalErrMsg(ctxt, XML_ERR_NAME_REQUIRED,
"xmlParseElementMixedContentDecl : Name expected\n");
- xmlFreeDocElementContent(ctxt->myDoc, cur);
+ xmlFreeDocElementContent(ctxt->myDoc, ret);
return(NULL);
}
SKIP_BLANKS;
@@ -6294,10 +6093,10 @@
}
if (ret != NULL)
ret->ocur = XML_ELEMENT_CONTENT_MULT;
- if ((ctxt->validate) && (ctxt->input->id != inputchk)) {
- xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
-"Element content declaration doesn't start and stop in the same entity\n",
- NULL, NULL);
+ if (ctxt->input->id != inputchk) {
+ xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+ "Element content declaration doesn't start and"
+ " stop in the same entity\n");
}
SKIP(2);
} else {
@@ -6537,10 +6336,10 @@
if (last != NULL)
last->parent = cur;
}
- if ((ctxt->validate) && (ctxt->input->id != inputchk)) {
- xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
-"Element content declaration doesn't start and stop in the same entity\n",
- NULL, NULL);
+ if (ctxt->input->id != inputchk) {
+ xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+ "Element content declaration doesn't start and stop in"
+ " the same entity\n");
}
NEXT;
if (RAW == '?') {
@@ -6713,28 +6512,24 @@
/* GROW; done in the caller */
if (CMP9(CUR_PTR, '<', '!', 'E', 'L', 'E', 'M', 'E', 'N', 'T')) {
- xmlParserInputPtr input = ctxt->input;
+ int inputid = ctxt->input->id;
SKIP(9);
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after 'ELEMENT'\n");
return(-1);
}
- SKIP_BLANKS;
name = xmlParseName(ctxt);
if (name == NULL) {
xmlFatalErrMsg(ctxt, XML_ERR_NAME_REQUIRED,
"xmlParseElementDecl: no name for Element\n");
return(-1);
}
- while ((RAW == 0) && (ctxt->inputNr > 1))
- xmlPopInput(ctxt);
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space required after the element name\n");
}
- SKIP_BLANKS;
if (CMP5(CUR_PTR, 'E', 'M', 'P', 'T', 'Y')) {
SKIP(5);
/*
@@ -6766,12 +6561,6 @@
}
SKIP_BLANKS;
- /*
- * Pop-up of finished entities.
- */
- while ((RAW == 0) && (ctxt->inputNr > 1))
- xmlPopInput(ctxt);
- SKIP_BLANKS;
if (RAW != '>') {
xmlFatalErr(ctxt, XML_ERR_GT_REQUIRED, NULL);
@@ -6779,9 +6568,10 @@
xmlFreeDocElementContent(ctxt->myDoc, content);
}
} else {
- if (input != ctxt->input) {
+ if (inputid != ctxt->input->id) {
xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
- "Element declaration doesn't start and stop in the same entity\n");
+ "Element declaration doesn't start and stop in"
+ " the same entity\n");
}
NEXT;
@@ -6834,9 +6624,9 @@
return;
} else {
if (ctxt->input->id != id) {
- xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
- "All markup of the conditional section is not in the same entity\n",
- NULL, NULL);
+ xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+ "All markup of the conditional section is not"
+ " in the same entity\n");
}
NEXT;
}
@@ -6849,6 +6639,8 @@
"Entering INCLUDE Conditional Section\n");
}
+ SKIP_BLANKS;
+ GROW;
while (((RAW != 0) && ((RAW != ']') || (NXT(1) != ']') ||
(NXT(2) != '>'))) && (ctxt->instate != XML_PARSER_EOF)) {
const xmlChar *check = CUR_PTR;
@@ -6856,18 +6648,11 @@
if ((RAW == '<') && (NXT(1) == '!') && (NXT(2) == '[')) {
xmlParseConditionalSections(ctxt);
- } else if (IS_BLANK_CH(CUR)) {
- NEXT;
- } else if (RAW == '%') {
- xmlParsePEReference(ctxt);
} else
xmlParseMarkupDecl(ctxt);
- /*
- * Pop-up of finished entities.
- */
- while ((RAW == 0) && (ctxt->inputNr > 1))
- xmlPopInput(ctxt);
+ SKIP_BLANKS;
+ GROW;
if ((CUR_PTR == check) && (cons == ctxt->input->consumed)) {
xmlFatalErr(ctxt, XML_ERR_EXT_SUBSET_NOT_FINISHED, NULL);
@@ -6897,9 +6682,9 @@
return;
} else {
if (ctxt->input->id != id) {
- xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
- "All markup of the conditional section is not in the same entity\n",
- NULL, NULL);
+ xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+ "All markup of the conditional section is not"
+ " in the same entity\n");
}
NEXT;
}
@@ -6961,9 +6746,9 @@
xmlFatalErr(ctxt, XML_ERR_CONDSEC_NOT_FINISHED, NULL);
} else {
if (ctxt->input->id != id) {
- xmlValidityError(ctxt, XML_ERR_ENTITY_BOUNDARY,
- "All markup of the conditional section is not in the same entity\n",
- NULL, NULL);
+ xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
+ "All markup of the conditional section is not in"
+ " the same entity\n");
}
if ((ctxt-> instate != XML_PARSER_EOF) &&
((ctxt->input->cur + 3) <= ctxt->input->end))
@@ -7031,13 +6816,6 @@
return;
/*
- * This is only for internal subset. On external entities,
- * the replacement is done before parsing stage
- */
- if ((ctxt->external == 0) && (ctxt->inputNr == 1))
- xmlParsePEReference(ctxt);
-
- /*
* Conditional sections are allowed from entities included
* by PE References in the internal subset.
*/
@@ -7074,11 +6852,10 @@
return;
}
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space needed after '<?xml'\n");
}
- SKIP_BLANKS;
/*
* We may have the VersionInfo here.
@@ -7087,7 +6864,7 @@
if (version == NULL)
version = xmlCharStrdup(XML_DEFAULT_VERSION);
else {
- if (!IS_BLANK_CH(CUR)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"Space needed here\n");
}
@@ -7178,27 +6955,19 @@
ctxt->instate = XML_PARSER_DTD;
ctxt->external = 1;
+ SKIP_BLANKS;
while (((RAW == '<') && (NXT(1) == '?')) ||
((RAW == '<') && (NXT(1) == '!')) ||
- (RAW == '%') || IS_BLANK_CH(CUR)) {
+ (RAW == '%')) {
const xmlChar *check = CUR_PTR;
unsigned int cons = ctxt->input->consumed;
GROW;
if ((RAW == '<') && (NXT(1) == '!') && (NXT(2) == '[')) {
xmlParseConditionalSections(ctxt);
- } else if (IS_BLANK_CH(CUR)) {
- NEXT;
- } else if (RAW == '%') {
- xmlParsePEReference(ctxt);
} else
xmlParseMarkupDecl(ctxt);
-
- /*
- * Pop-up of finished entities.
- */
- while ((RAW == 0) && (ctxt->inputNr > 1))
- xmlPopInput(ctxt);
+ SKIP_BLANKS;
if ((CUR_PTR == check) && (cons == ctxt->input->consumed)) {
xmlFatalErr(ctxt, XML_ERR_EXT_SUBSET_NOT_FINISHED, NULL);
@@ -7420,6 +7189,8 @@
(ret != XML_WAR_UNDECLARED_ENTITY)) {
xmlFatalErrMsgStr(ctxt, XML_ERR_UNDECLARED_ENTITY,
"Entity '%s' failed to parse\n", ent->name);
+ if (ent->content != NULL)
+ ent->content[0] = 0;
xmlParserEntityCheck(ctxt, 0, ent, 0);
} else if (list != NULL) {
xmlFreeNodeList(list);
@@ -7427,6 +7198,9 @@
}
if (ent->checked == 0)
ent->checked = 2;
+
+ /* Prevent entity from being parsed and expanded twice (Bug 760367). */
+ was_checked = 0;
} else if (ent->checked != 1) {
ctxt->nbentities += ent->checked / 2;
}
@@ -8063,12 +7837,14 @@
NEXT;
name = xmlParseName(ctxt);
if (name == NULL) {
- xmlFatalErrMsg(ctxt, XML_ERR_NAME_REQUIRED,
- "xmlParsePEReference: no name\n");
+ xmlFatalErrMsg(ctxt, XML_ERR_PEREF_NO_NAME, "PEReference: no name\n");
return;
}
+ if (xmlParserDebugEntities)
+ xmlGenericError(xmlGenericErrorContext,
+ "PEReference: %s\n", name);
if (RAW != ';') {
- xmlFatalErr(ctxt, XML_ERR_ENTITYREF_SEMICOL_MISSING, NULL);
+ xmlFatalErr(ctxt, XML_ERR_PEREF_SEMICOL_MISSING, NULL);
return;
}
@@ -8110,10 +7886,15 @@
* ... The declaration of a parameter entity must
* precede any reference to it...
*/
- xmlWarningMsg(ctxt, XML_WAR_UNDECLARED_ENTITY,
- "PEReference: %%%s; not found\n",
- name, NULL);
- ctxt->valid = 0;
+ if ((ctxt->validate) && (ctxt->vctxt.error != NULL)) {
+ xmlValidityError(ctxt, XML_WAR_UNDECLARED_ENTITY,
+ "PEReference: %%%s; not found\n",
+ name, NULL);
+ } else
+ xmlWarningMsg(ctxt, XML_WAR_UNDECLARED_ENTITY,
+ "PEReference: %%%s; not found\n",
+ name, NULL);
+ ctxt->valid = 0;
}
xmlParserEntityCheck(ctxt, 0, NULL, 0);
} else {
@@ -8125,41 +7906,54 @@
xmlWarningMsg(ctxt, XML_WAR_UNDECLARED_ENTITY,
"Internal: %%%s; is not a parameter entity\n",
name, NULL);
- } else if (ctxt->input->free != deallocblankswrapper) {
- input = xmlNewBlanksWrapperInputStream(ctxt, entity);
- if (xmlPushInput(ctxt, input) < 0)
- return;
} else {
+ xmlChar start[4];
+ xmlCharEncoding enc;
+
if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) &&
((ctxt->options & XML_PARSE_NOENT) == 0) &&
- ((ctxt->options & XML_PARSE_DTDVALID) == 0) &&
- ((ctxt->options & XML_PARSE_DTDLOAD) == 0) &&
- ((ctxt->options & XML_PARSE_DTDATTR) == 0) &&
- (ctxt->replaceEntities == 0) &&
- (ctxt->validate == 0))
- return;
- /*
- * TODO !!!
- * handle the extra spaces added before and after
- * c.f. http://www.w3.org/TR/REC-xml#as-PE
- */
- input = xmlNewEntityInputStream(ctxt, entity);
- if (xmlPushInput(ctxt, input) < 0)
+ ((ctxt->options & XML_PARSE_DTDVALID) == 0) &&
+ ((ctxt->options & XML_PARSE_DTDLOAD) == 0) &&
+ ((ctxt->options & XML_PARSE_DTDATTR) == 0) &&
+ (ctxt->replaceEntities == 0) &&
+ (ctxt->validate == 0))
return;
- if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) &&
- (CMP5(CUR_PTR, '<', '?', 'x', 'm', 'l')) &&
- (IS_BLANK_CH(NXT(5)))) {
- xmlParseTextDecl(ctxt);
- if (ctxt->errNo ==
- XML_ERR_UNSUPPORTED_ENCODING) {
- /*
- * The XML REC instructs us to stop parsing
- * right here
- */
- xmlHaltParser(ctxt);
- return;
- }
- }
+
+ input = xmlNewEntityInputStream(ctxt, entity);
+ if (xmlPushInput(ctxt, input) < 0) {
+ xmlFreeInputStream(input);
+ return;
+ }
+
+ if (entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) {
+ /*
+ * Get the 4 first bytes and decode the charset
+ * if enc != XML_CHAR_ENCODING_NONE
+ * plug some encoding conversion routines.
+ * Note that, since we may have some non-UTF8
+ * encoding (like UTF16, bug 135229), the 'length'
+ * is not known, but we can calculate based upon
+ * the amount of data in the buffer.
+ */
+ GROW
+ if (ctxt->instate == XML_PARSER_EOF)
+ return;
+ if ((ctxt->input->end - ctxt->input->cur)>=4) {
+ start[0] = RAW;
+ start[1] = NXT(1);
+ start[2] = NXT(2);
+ start[3] = NXT(3);
+ enc = xmlDetectCharEncoding(start, 4);
+ if (enc != XML_CHAR_ENCODING_NONE) {
+ xmlSwitchEncoding(ctxt, enc);
+ }
+ }
+
+ if ((CMP5(CUR_PTR, '<', '?', 'x', 'm', 'l')) &&
+ (IS_BLANK_CH(NXT(5)))) {
+ xmlParseTextDecl(ctxt);
+ }
+ }
}
}
ctxt->hasPErefs = 1;
@@ -8335,6 +8129,7 @@
entity = ctxt->sax->getParameterEntity(ctxt->userData, name);
if (ctxt->instate == XML_PARSER_EOF) {
xmlFree(name);
+ *str = ptr;
return(NULL);
}
if (entity == NULL) {
@@ -8473,6 +8268,7 @@
* Is there any DTD definition ?
*/
if (RAW == '[') {
+ int baseInputNr = ctxt->inputNr;
ctxt->instate = XML_PARSER_DTD;
NEXT;
/*
@@ -8480,7 +8276,8 @@
* PEReferences.
* Subsequence (markupdecl | PEReference | S)*
*/
- while ((RAW != ']') && (ctxt->instate != XML_PARSER_EOF)) {
+ while (((RAW != ']') || (ctxt->inputNr > baseInputNr)) &&
+ (ctxt->instate != XML_PARSER_EOF)) {
const xmlChar *check = CUR_PTR;
unsigned int cons = ctxt->input->consumed;
@@ -8488,16 +8285,13 @@
xmlParseMarkupDecl(ctxt);
xmlParsePEReference(ctxt);
- /*
- * Pop-up of finished entities.
- */
- while ((RAW == 0) && (ctxt->inputNr > 1))
- xmlPopInput(ctxt);
-
if ((CUR_PTR == check) && (cons == ctxt->input->consumed)) {
xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
"xmlParseInternalSubset: error detected in Markup declaration\n");
- break;
+ if (ctxt->inputNr > baseInputNr)
+ xmlPopInput(ctxt);
+ else
+ break;
}
}
if (RAW == ']') {
@@ -8575,7 +8369,7 @@
ctxt->instate = XML_PARSER_CONTENT;
} else {
xmlFatalErrMsgStr(ctxt, XML_ERR_ATTRIBUTE_WITHOUT_VALUE,
- "Specification mandate value for attribute %s\n", name);
+ "Specification mandates value for attribute %s\n", name);
return(NULL);
}
@@ -8732,11 +8526,10 @@
GROW
if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>'))))
break;
- if (!IS_BLANK_CH(RAW)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"attributes construct error\n");
}
- SKIP_BLANKS;
if ((cons == ctxt->input->consumed) && (q == CUR_PTR) &&
(attname == NULL) && (attvalue == NULL)) {
xmlFatalErrMsg(ctxt, XML_ERR_INTERNAL_ERROR,
@@ -9274,8 +9067,8 @@
if (ctxt->attsSpecial != NULL) {
int type;
- type = (int) (long) xmlHashQLookup2(ctxt->attsSpecial,
- pref, elem, *prefix, name);
+ type = (int) (ptrdiff_t) xmlHashQLookup2(ctxt->attsSpecial,
+ pref, elem, *prefix, name);
if (type != 0)
normalize = 1;
}
@@ -9308,7 +9101,7 @@
ctxt->instate = XML_PARSER_CONTENT;
} else {
xmlFatalErrMsgStr(ctxt, XML_ERR_ATTRIBUTE_WITHOUT_VALUE,
- "Specification mandate value for attribute %s\n",
+ "Specification mandates value for attribute %s\n",
name);
return (NULL);
}
@@ -9391,9 +9184,8 @@
xmlChar *attvalue;
const xmlChar **atts = ctxt->atts;
int maxatts = ctxt->maxatts;
- int nratts, nbatts, nbdef;
- int i, j, nbNs, attval, oldline, oldcol, inputNr;
- const xmlChar *base;
+ int nratts, nbatts, nbdef, inputid;
+ int i, j, nbNs, attval;
unsigned long cur;
int nsNr = ctxt->nsNr;
@@ -9407,13 +9199,9 @@
* The Shrinking is only possible once the full set of attribute
* callbacks have been done.
*/
-reparse:
SHRINK;
- base = ctxt->input->base;
cur = ctxt->input->cur - ctxt->input->base;
- inputNr = ctxt->inputNr;
- oldline = ctxt->input->line;
- oldcol = ctxt->input->col;
+ inputid = ctxt->input->id;
nbatts = 0;
nratts = 0;
nbdef = 0;
@@ -9437,8 +9225,6 @@
*/
SKIP_BLANKS;
GROW;
- if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))
- goto base_changed;
while (((RAW != '>') &&
((RAW != '/') || (NXT(1) != '>')) &&
@@ -9449,211 +9235,181 @@
attname = xmlParseAttribute2(ctxt, prefix, localname,
&aprefix, &attvalue, &len, &alloc);
- if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr)) {
- if ((attvalue != NULL) && (alloc != 0))
- xmlFree(attvalue);
- attvalue = NULL;
- goto base_changed;
- }
- if ((attname != NULL) && (attvalue != NULL)) {
- if (len < 0) len = xmlStrlen(attvalue);
- if ((attname == ctxt->str_xmlns) && (aprefix == NULL)) {
- const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len);
- xmlURIPtr uri;
+ if ((attname == NULL) || (attvalue == NULL))
+ goto next_attr;
+ if (len < 0) len = xmlStrlen(attvalue);
- if (URL == NULL) {
- xmlErrMemory(ctxt, "dictionary allocation failure");
- if ((attvalue != NULL) && (alloc != 0))
- xmlFree(attvalue);
- return(NULL);
- }
- if (*URL != 0) {
- uri = xmlParseURI((const char *) URL);
- if (uri == NULL) {
- xmlNsErr(ctxt, XML_WAR_NS_URI,
- "xmlns: '%s' is not a valid URI\n",
- URL, NULL, NULL);
- } else {
- if (uri->scheme == NULL) {
- xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,
- "xmlns: URI %s is not absolute\n",
- URL, NULL, NULL);
- }
- xmlFreeURI(uri);
- }
- if (URL == ctxt->str_xml_ns) {
- if (attname != ctxt->str_xml) {
- xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
- "xml namespace URI cannot be the default namespace\n",
- NULL, NULL, NULL);
- }
- goto skip_default_ns;
- }
- if ((len == 29) &&
- (xmlStrEqual(URL,
- BAD_CAST "http://www.w3.org/2000/xmlns/"))) {
- xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
- "reuse of the xmlns namespace name is forbidden\n",
- NULL, NULL, NULL);
- goto skip_default_ns;
- }
- }
- /*
- * check that it's not a defined namespace
- */
- for (j = 1;j <= nbNs;j++)
- if (ctxt->nsTab[ctxt->nsNr - 2 * j] == NULL)
- break;
- if (j <= nbNs)
- xmlErrAttributeDup(ctxt, NULL, attname);
- else
- if (nsPush(ctxt, NULL, URL) > 0) nbNs++;
-skip_default_ns:
- if ((attvalue != NULL) && (alloc != 0)) {
- xmlFree(attvalue);
- attvalue = NULL;
- }
- if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>'))))
- break;
- if (!IS_BLANK_CH(RAW)) {
- xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
- "attributes construct error\n");
- break;
- }
- SKIP_BLANKS;
- if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))
- goto base_changed;
- continue;
- }
- if (aprefix == ctxt->str_xmlns) {
- const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len);
- xmlURIPtr uri;
+ if ((attname == ctxt->str_xmlns) && (aprefix == NULL)) {
+ const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len);
+ xmlURIPtr uri;
- if (attname == ctxt->str_xml) {
- if (URL != ctxt->str_xml_ns) {
- xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
- "xml namespace prefix mapped to wrong URI\n",
- NULL, NULL, NULL);
- }
- /*
- * Do not keep a namespace definition node
- */
- goto skip_ns;
- }
+ if (URL == NULL) {
+ xmlErrMemory(ctxt, "dictionary allocation failure");
+ if ((attvalue != NULL) && (alloc != 0))
+ xmlFree(attvalue);
+ return(NULL);
+ }
+ if (*URL != 0) {
+ uri = xmlParseURI((const char *) URL);
+ if (uri == NULL) {
+ xmlNsErr(ctxt, XML_WAR_NS_URI,
+ "xmlns: '%s' is not a valid URI\n",
+ URL, NULL, NULL);
+ } else {
+ if (uri->scheme == NULL) {
+ xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,
+ "xmlns: URI %s is not absolute\n",
+ URL, NULL, NULL);
+ }
+ xmlFreeURI(uri);
+ }
if (URL == ctxt->str_xml_ns) {
- if (attname != ctxt->str_xml) {
- xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
- "xml namespace URI mapped to wrong prefix\n",
- NULL, NULL, NULL);
- }
- goto skip_ns;
- }
- if (attname == ctxt->str_xmlns) {
- xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
- "redefinition of the xmlns prefix is forbidden\n",
- NULL, NULL, NULL);
- goto skip_ns;
- }
- if ((len == 29) &&
- (xmlStrEqual(URL,
- BAD_CAST "http://www.w3.org/2000/xmlns/"))) {
- xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
- "reuse of the xmlns namespace name is forbidden\n",
- NULL, NULL, NULL);
- goto skip_ns;
- }
- if ((URL == NULL) || (URL[0] == 0)) {
- xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
- "xmlns:%s: Empty XML namespace is not allowed\n",
- attname, NULL, NULL);
- goto skip_ns;
- } else {
- uri = xmlParseURI((const char *) URL);
- if (uri == NULL) {
- xmlNsErr(ctxt, XML_WAR_NS_URI,
- "xmlns:%s: '%s' is not a valid URI\n",
- attname, URL, NULL);
- } else {
- if ((ctxt->pedantic) && (uri->scheme == NULL)) {
- xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,
- "xmlns:%s: URI %s is not absolute\n",
- attname, URL, NULL);
- }
- xmlFreeURI(uri);
- }
- }
+ if (attname != ctxt->str_xml) {
+ xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+ "xml namespace URI cannot be the default namespace\n",
+ NULL, NULL, NULL);
+ }
+ goto next_attr;
+ }
+ if ((len == 29) &&
+ (xmlStrEqual(URL,
+ BAD_CAST "http://www.w3.org/2000/xmlns/"))) {
+ xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+ "reuse of the xmlns namespace name is forbidden\n",
+ NULL, NULL, NULL);
+ goto next_attr;
+ }
+ }
+ /*
+ * check that it's not a defined namespace
+ */
+ for (j = 1;j <= nbNs;j++)
+ if (ctxt->nsTab[ctxt->nsNr - 2 * j] == NULL)
+ break;
+ if (j <= nbNs)
+ xmlErrAttributeDup(ctxt, NULL, attname);
+ else
+ if (nsPush(ctxt, NULL, URL) > 0) nbNs++;
- /*
- * check that it's not a defined namespace
- */
- for (j = 1;j <= nbNs;j++)
- if (ctxt->nsTab[ctxt->nsNr - 2 * j] == attname)
- break;
- if (j <= nbNs)
- xmlErrAttributeDup(ctxt, aprefix, attname);
- else
- if (nsPush(ctxt, attname, URL) > 0) nbNs++;
-skip_ns:
- if ((attvalue != NULL) && (alloc != 0)) {
- xmlFree(attvalue);
- attvalue = NULL;
- }
- if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>'))))
- break;
- if (!IS_BLANK_CH(RAW)) {
- xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
- "attributes construct error\n");
- break;
- }
- SKIP_BLANKS;
- if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))
- goto base_changed;
- continue;
- }
+ } else if (aprefix == ctxt->str_xmlns) {
+ const xmlChar *URL = xmlDictLookup(ctxt->dict, attvalue, len);
+ xmlURIPtr uri;
- /*
- * Add the pair to atts
- */
- if ((atts == NULL) || (nbatts + 5 > maxatts)) {
- if (xmlCtxtGrowAttrs(ctxt, nbatts + 5) < 0) {
- if (attvalue[len] == 0)
- xmlFree(attvalue);
- goto failed;
- }
- maxatts = ctxt->maxatts;
- atts = ctxt->atts;
- }
- ctxt->attallocs[nratts++] = alloc;
- atts[nbatts++] = attname;
- atts[nbatts++] = aprefix;
- atts[nbatts++] = NULL; /* the URI will be fetched later */
- atts[nbatts++] = attvalue;
- attvalue += len;
- atts[nbatts++] = attvalue;
- /*
- * tag if some deallocation is needed
- */
- if (alloc != 0) attval = 1;
- } else {
- if ((attvalue != NULL) && (attvalue[len] == 0))
- xmlFree(attvalue);
- }
+ if (attname == ctxt->str_xml) {
+ if (URL != ctxt->str_xml_ns) {
+ xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+ "xml namespace prefix mapped to wrong URI\n",
+ NULL, NULL, NULL);
+ }
+ /*
+ * Do not keep a namespace definition node
+ */
+ goto next_attr;
+ }
+ if (URL == ctxt->str_xml_ns) {
+ if (attname != ctxt->str_xml) {
+ xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+ "xml namespace URI mapped to wrong prefix\n",
+ NULL, NULL, NULL);
+ }
+ goto next_attr;
+ }
+ if (attname == ctxt->str_xmlns) {
+ xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+ "redefinition of the xmlns prefix is forbidden\n",
+ NULL, NULL, NULL);
+ goto next_attr;
+ }
+ if ((len == 29) &&
+ (xmlStrEqual(URL,
+ BAD_CAST "http://www.w3.org/2000/xmlns/"))) {
+ xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+ "reuse of the xmlns namespace name is forbidden\n",
+ NULL, NULL, NULL);
+ goto next_attr;
+ }
+ if ((URL == NULL) || (URL[0] == 0)) {
+ xmlNsErr(ctxt, XML_NS_ERR_XML_NAMESPACE,
+ "xmlns:%s: Empty XML namespace is not allowed\n",
+ attname, NULL, NULL);
+ goto next_attr;
+ } else {
+ uri = xmlParseURI((const char *) URL);
+ if (uri == NULL) {
+ xmlNsErr(ctxt, XML_WAR_NS_URI,
+ "xmlns:%s: '%s' is not a valid URI\n",
+ attname, URL, NULL);
+ } else {
+ if ((ctxt->pedantic) && (uri->scheme == NULL)) {
+ xmlNsWarn(ctxt, XML_WAR_NS_URI_RELATIVE,
+ "xmlns:%s: URI %s is not absolute\n",
+ attname, URL, NULL);
+ }
+ xmlFreeURI(uri);
+ }
+ }
-failed:
+ /*
+ * check that it's not a defined namespace
+ */
+ for (j = 1;j <= nbNs;j++)
+ if (ctxt->nsTab[ctxt->nsNr - 2 * j] == attname)
+ break;
+ if (j <= nbNs)
+ xmlErrAttributeDup(ctxt, aprefix, attname);
+ else
+ if (nsPush(ctxt, attname, URL) > 0) nbNs++;
+
+ } else {
+ /*
+ * Add the pair to atts
+ */
+ if ((atts == NULL) || (nbatts + 5 > maxatts)) {
+ if (xmlCtxtGrowAttrs(ctxt, nbatts + 5) < 0) {
+ goto next_attr;
+ }
+ maxatts = ctxt->maxatts;
+ atts = ctxt->atts;
+ }
+ ctxt->attallocs[nratts++] = alloc;
+ atts[nbatts++] = attname;
+ atts[nbatts++] = aprefix;
+ /*
+ * The namespace URI field is used temporarily to point at the
+ * base of the current input buffer for non-alloced attributes.
+ * When the input buffer is reallocated, all the pointers become
+ * invalid, but they can be reconstructed later.
+ */
+ if (alloc)
+ atts[nbatts++] = NULL;
+ else
+ atts[nbatts++] = ctxt->input->base;
+ atts[nbatts++] = attvalue;
+ attvalue += len;
+ atts[nbatts++] = attvalue;
+ /*
+ * tag if some deallocation is needed
+ */
+ if (alloc != 0) attval = 1;
+ attvalue = NULL; /* moved into atts */
+ }
+
+next_attr:
+ if ((attvalue != NULL) && (alloc != 0)) {
+ xmlFree(attvalue);
+ attvalue = NULL;
+ }
GROW
if (ctxt->instate == XML_PARSER_EOF)
break;
- if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))
- goto base_changed;
if ((RAW == '>') || (((RAW == '/') && (NXT(1) == '>'))))
break;
- if (!IS_BLANK_CH(RAW)) {
+ if (SKIP_BLANKS == 0) {
xmlFatalErrMsg(ctxt, XML_ERR_SPACE_REQUIRED,
"attributes construct error\n");
break;
}
- SKIP_BLANKS;
if ((cons == ctxt->input->consumed) && (q == CUR_PTR) &&
(attname == NULL) && (attvalue == NULL)) {
xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
@@ -9661,8 +9417,27 @@
break;
}
GROW;
- if ((ctxt->input->base != base) || (inputNr != ctxt->inputNr))
- goto base_changed;
+ }
+
+ if (ctxt->input->id != inputid) {
+ xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
+ "Unexpected change of input\n");
+ localname = NULL;
+ goto done;
+ }
+
+ /* Reconstruct attribute value pointers. */
+ for (i = 0, j = 0; j < nratts; i += 5, j++) {
+ if (atts[i+2] != NULL) {
+ /*
+ * Arithmetic on dangling pointers is technically undefined
+ * behavior, but well...
+ */
+ ptrdiff_t offset = ctxt->input->base - atts[i+2];
+ atts[i+2] = NULL; /* Reset repurposed namespace URI */
+ atts[i+3] += offset; /* value */
+ atts[i+4] += offset; /* valuend */
+ }
}
/*
@@ -9809,6 +9584,7 @@
nsname, 0, NULL, nbatts / 5, nbdef, atts);
}
+done:
/*
* Free up attribute allocated strings if needed
*/
@@ -9819,34 +9595,6 @@
}
return(localname);
-
-base_changed:
- /*
- * the attribute strings are valid iif the base didn't changed
- */
- if (attval != 0) {
- for (i = 3,j = 0; j < nratts;i += 5,j++)
- if ((ctxt->attallocs[j] != 0) && (atts[i] != NULL))
- xmlFree((xmlChar *) atts[i]);
- }
-
- /*
- * We can't switch from one entity to another in the middle
- * of a start tag
- */
- if (inputNr != ctxt->inputNr) {
- xmlFatalErrMsg(ctxt, XML_ERR_ENTITY_BOUNDARY,
- "Start tag doesn't start and stop in the same entity\n");
- return(NULL);
- }
-
- ctxt->input->cur = ctxt->input->base + cur;
- ctxt->input->line = oldline;
- ctxt->input->col = oldcol;
- if (ctxt->wellFormed == 1) {
- goto reparse;
- }
- return(NULL);
}
/**
@@ -10115,11 +9863,6 @@
}
GROW;
- /*
- * Pop-up of finished entities.
- */
- while ((RAW == 0) && (ctxt->inputNr > 1))
- xmlPopInput(ctxt);
SHRINK;
if ((cons == ctxt->input->consumed) && (test == CUR_PTR)) {
@@ -11272,7 +11015,7 @@
* Check that the block of characters is okay as SCdata content [20]
*
* Returns the number of bytes to pass if okay, a negative index where an
- * UTF-8 error occured otherwise
+ * UTF-8 error occurred otherwise
*/
static int
xmlCheckCdataPush(const xmlChar *utf, int len, int complete) {
@@ -11414,13 +11157,6 @@
if ((ctxt->errNo != XML_ERR_OK) && (ctxt->disableSAX == 1))
return(0);
-
- /*
- * Pop-up of finished entities.
- */
- while ((RAW == 0) && (ctxt->inputNr > 1))
- xmlPopInput(ctxt);
-
if (ctxt->input == NULL) break;
if (ctxt->input->buf == NULL)
avail = ctxt->input->length -
@@ -11771,11 +11507,6 @@
ctxt->checkIndex = 0;
xmlParseCharData(ctxt, 0);
}
- /*
- * Pop-up of finished entities.
- */
- while ((RAW == 0) && (ctxt->inputNr > 1))
- xmlPopInput(ctxt);
if ((cons == ctxt->input->consumed) && (test == CUR_PTR)) {
xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
"detected an error in element content\n");
@@ -11798,9 +11529,10 @@
}
if (ctxt->sax2) {
xmlParseEndTag2(ctxt,
- (void *) ctxt->pushTab[ctxt->nameNr * 3 - 3],
- (void *) ctxt->pushTab[ctxt->nameNr * 3 - 2], 0,
- (int) (long) ctxt->pushTab[ctxt->nameNr * 3 - 1], 0);
+ (void *) ctxt->pushTab[ctxt->nameNr * 3 - 3],
+ (void *) ctxt->pushTab[ctxt->nameNr * 3 - 2], 0,
+ (int) (ptrdiff_t)
+ ctxt->pushTab[ctxt->nameNr * 3 - 1], 0);
nameNsPop(ctxt);
}
#ifdef LIBXML_SAX1_ENABLED
@@ -12486,6 +12218,7 @@
/* TODO 2.6.0 */
xmlGenericError(xmlGenericErrorContext,
"xmlParseChunk: encoder error\n");
+ xmlHaltParser(ctxt);
return(XML_ERR_INVALID_ENCODING);
}
xmlBufSetInputBaseCur(in->buffer, ctxt->input, base, current);
@@ -12718,6 +12451,8 @@
return;
ctxt->instate = XML_PARSER_EOF;
ctxt->disableSAX = 1;
+ while (ctxt->inputNr > 1)
+ xmlFreeInputStream(inputPop(ctxt));
if (ctxt->input != NULL) {
/*
* in case there was a specific allocation deallocate before
@@ -12729,6 +12464,7 @@
}
ctxt->input->cur = BAD_CAST"";
ctxt->input->base = ctxt->input->cur;
+ ctxt->input->end = ctxt->input->cur;
}
}
@@ -13497,7 +13233,7 @@
/*
* And record the last error if any
*/
- if (ctxt->lastError.code != XML_ERR_OK)
+ if ((oldctxt != NULL) && (ctxt->lastError.code != XML_ERR_OK))
xmlCopyError(&ctxt->lastError, &oldctxt->lastError);
if (sax != NULL)
@@ -13631,6 +13367,7 @@
ctxt->userData = ctxt;
if (ctxt->dict != NULL) xmlDictFree(ctxt->dict);
ctxt->dict = oldctxt->dict;
+ ctxt->input_id = oldctxt->input_id + 1;
ctxt->str_xml = xmlDictLookup(ctxt->dict, BAD_CAST "xml", 3);
ctxt->str_xmlns = xmlDictLookup(ctxt->dict, BAD_CAST "xmlns", 5);
ctxt->str_xml_ns = xmlDictLookup(ctxt->dict, XML_XML_NAMESPACE, 36);
@@ -13884,6 +13621,7 @@
xmlDetectSAX2(ctxt);
ctxt->myDoc = doc;
/* parsing in context, i.e. as within existing content */
+ ctxt->input_id = 2;
ctxt->instate = XML_PARSER_CONTENT;
fake = xmlNewComment(NULL);
@@ -14096,6 +13834,7 @@
newDoc->oldNs = doc->oldNs;
}
ctxt->instate = XML_PARSER_CONTENT;
+ ctxt->input_id = 2;
ctxt->depth = depth;
/*
@@ -14256,6 +13995,11 @@
if (pctx != NULL) {
ctxt->options = pctx->options;
ctxt->_private = pctx->_private;
+ /*
+ * this is a subparser of pctx, so the input_id should be
+ * incremented to distinguish from main entity
+ */
+ ctxt->input_id = pctx->input_id + 1;
}
uri = xmlBuildURI(URL, base);
@@ -15137,7 +14881,7 @@
xmlInitNodeInfoSeq(&ctxt->node_seq);
if (ctxt->attsDefault != NULL) {
- xmlHashFree(ctxt->attsDefault, (xmlHashDeallocator) xmlFree);
+ xmlHashFree(ctxt->attsDefault, xmlHashDefaultDeallocator);
ctxt->attsDefault = NULL;
}
if (ctxt->attsSpecial != NULL) {
diff --git a/parserInternals.c b/parserInternals.c
index bfc778a..8c0cd57 100644
--- a/parserInternals.c
+++ b/parserInternals.c
@@ -10,7 +10,7 @@
#define IN_LIBXML
#include "libxml.h"
-#if defined(WIN32) && !defined (__CYGWIN__)
+#if defined(_WIN32) && !defined (__CYGWIN__)
#define XML_DIR_SEP '\\'
#else
#define XML_DIR_SEP '/'
@@ -32,7 +32,7 @@
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
#include <zlib.h>
#endif
@@ -435,8 +435,6 @@
if ((*ctxt->input->cur == 0) &&
(xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0)) {
- if ((ctxt->instate != XML_PARSER_COMMENT))
- xmlPopInput(ctxt);
return;
}
@@ -470,8 +468,8 @@
c = *cur;
if (c & 0x80) {
- if (c == 0xC0)
- goto encoding_error;
+ if (c == 0xC0)
+ goto encoding_error;
if (cur[1] == 0) {
xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
cur = ctxt->input->cur;
@@ -523,8 +521,6 @@
ctxt->input->cur++;
ctxt->nbChars++;
- if (*ctxt->input->cur == 0)
- xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
} else {
/*
* Assume it's a fixed length encoding (1) with
@@ -538,14 +534,9 @@
ctxt->input->col++;
ctxt->input->cur++;
ctxt->nbChars++;
- if (*ctxt->input->cur == 0)
- xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
}
- if ((*ctxt->input->cur == '%') && (!ctxt->html))
- xmlParserHandlePEReference(ctxt);
- if ((*ctxt->input->cur == 0) &&
- (xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0))
- xmlPopInput(ctxt);
+ if (*ctxt->input->cur == 0)
+ xmlParserInputGrow(ctxt->input, INPUT_CHUNK);
return;
encoding_error:
/*
@@ -1101,8 +1092,15 @@
break;
}
}
- if (handler == NULL)
+ /*
+ * TODO: We could recover from errors in external entites if we
+ * didn't stop the parser. But most callers of this function don't
+ * check the return value.
+ */
+ if (handler == NULL) {
+ xmlStopParser(ctxt);
return(-1);
+ }
ctxt->charset = XML_CHAR_ENCODING_UTF8;
ret = xmlSwitchToEncodingInt(ctxt, handler, len);
if ((ret < 0) || (ctxt->errNo == XML_I18N_CONV_FAILED)) {
@@ -1216,7 +1214,7 @@
/*
* convert as much as possible of the buffer
*/
- nbchars = xmlCharEncInput(input->buf, 1);
+ nbchars = xmlCharEncInput(input->buf, 0);
} else {
/*
* convert just enough to get
@@ -1226,6 +1224,7 @@
*/
nbchars = xmlCharEncFirstLineInput(input->buf, len);
}
+ xmlBufResetInput(input->buf->buffer, input);
if (nbchars < 0) {
xmlErrInternal(ctxt,
"switching encoding: encoder error\n",
@@ -1233,7 +1232,6 @@
return (-1);
}
input->buf->rawconsumed += use - xmlBufUse(input->buf->raw);
- xmlBufResetInput(input->buf->buffer, input);
}
return (0);
} else if (input->length == 0) {
@@ -1797,7 +1795,7 @@
if (ctxt->pushTab != NULL) xmlFree(ctxt->pushTab);
if (ctxt->attallocs != NULL) xmlFree(ctxt->attallocs);
if (ctxt->attsDefault != NULL)
- xmlHashFree(ctxt->attsDefault, (xmlHashDeallocator) xmlFree);
+ xmlHashFree(ctxt->attsDefault, xmlHashDefaultDeallocator);
if (ctxt->attsSpecial != NULL)
xmlHashFree(ctxt->attsSpecial, NULL);
if (ctxt->freeElems != NULL) {
diff --git a/pattern.c b/pattern.c
index 33dee3a..0eb8d81 100644
--- a/pattern.c
+++ b/pattern.c
@@ -969,6 +969,7 @@
ERROR5(NULL, NULL, NULL,
"xmlCompileAttributeTest : no namespace bound to prefix %s\n",
prefix);
+ XML_PAT_FREE_STRING(ctxt, prefix);
ctxt->error = 1;
goto error;
}
diff --git a/python/drv_libxml2.py b/python/drv_libxml2.py
index c2ec3e2..71b1c67 100644
--- a/python/drv_libxml2.py
+++ b/python/drv_libxml2.py
@@ -44,8 +44,18 @@
__author__ = codecs.unicode_escape_decode(__author__)[0]
StringTypes = (str, unicode)
+ # libxml2 returns strings as UTF8
+ _decoder = codecs.lookup("utf8")[1]
+ def _d(s):
+ if s is None:
+ return s
+ else:
+ return _decoder(s)[0]
else:
StringTypes = str
+ # s is Unicode `str` already
+ def _d(s):
+ return s
from xml.sax._exceptions import *
from xml.sax import xmlreader, saxutils
@@ -61,14 +71,6 @@
property_dom_node, \
property_xml_string
-# libxml2 returns strings as UTF8
-_decoder = codecs.lookup("utf8")[1]
-def _d(s):
- if s is None:
- return s
- else:
- return _decoder(s)[0]
-
try:
import libxml2
except ImportError:
diff --git a/python/libxml.c b/python/libxml.c
index 30b71f3..5b1ff6e 100644
--- a/python/libxml.c
+++ b/python/libxml.c
@@ -906,7 +906,7 @@
type = 2;
if (type != 0) {
/*
- * the xmllib interface always generate a dictionnary,
+ * the xmllib interface always generates a dictionary,
* possibly empty
*/
if ((attrs == NULL) && (type == 1)) {
diff --git a/python/setup.py b/python/setup.py
deleted file mode 100755
index e1ff365..0000000
--- a/python/setup.py
+++ /dev/null
@@ -1,242 +0,0 @@
-#!/usr/bin/python -u
-#
-# Setup script for libxml2 and libxslt if found
-#
-import sys, os
-from distutils.core import setup, Extension
-
-# Below ROOT, we expect to find include, include/libxml2, lib and bin.
-# On *nix, it is not needed (but should not harm),
-# on Windows, it is set by configure.js.
-ROOT = r'/usr/local'
-
-# Thread-enabled libxml2
-with_threads = 1
-
-# If this flag is set (windows only),
-# a private copy of the dlls are included in the package.
-# If this flag is not set, the libxml2 and libxslt
-# dlls must be found somewhere in the PATH at runtime.
-WITHDLLS = 1 and sys.platform.startswith('win')
-
-def missing(file):
- if os.access(file, os.R_OK) == 0:
- return 1
- return 0
-
-try:
- HOME = os.environ['HOME']
-except:
- HOME="C:"
-
-if WITHDLLS:
- # libxml dlls (expected in ROOT/bin)
- dlls = [ 'iconv.dll','libxml2.dll','libxslt.dll','libexslt.dll' ]
- dlls = [os.path.join(ROOT,'bin',dll) for dll in dlls]
-
- # create __init__.py for the libxmlmods package
- if not os.path.exists("libxmlmods"):
- os.mkdir("libxmlmods")
- open("libxmlmods/__init__.py","w").close()
-
- def altImport(s):
- s = s.replace("import libxml2mod","from libxmlmods import libxml2mod")
- s = s.replace("import libxsltmod","from libxmlmods import libxsltmod")
- return s
-
-if sys.platform.startswith('win'):
- libraryPrefix = 'lib'
- platformLibs = []
-else:
- libraryPrefix = ''
- platformLibs = ["m","z"]
-
-# those are examined to find
-# - libxml2/libxml/tree.h
-# - iconv.h
-# - libxslt/xsltconfig.h
-includes_dir = [
-"/usr/include",
-"/usr/local/include",
-"/opt/include",
-os.path.join(ROOT,'include'),
-HOME
-];
-
-xml_includes=""
-for dir in includes_dir:
- if not missing(dir + "/libxml2/libxml/tree.h"):
- xml_includes=dir + "/libxml2"
- break;
-
-if xml_includes == "":
- print("failed to find headers for libxml2: update includes_dir")
- sys.exit(1)
-
-iconv_includes=""
-for dir in includes_dir:
- if not missing(dir + "/iconv.h"):
- iconv_includes=dir
- break;
-
-if iconv_includes == "":
- print("failed to find headers for libiconv: update includes_dir")
- sys.exit(1)
-
-# those are added in the linker search path for libraries
-libdirs = [
-os.path.join(ROOT,'lib'),
-]
-
-xml_files = ["libxml2-api.xml", "libxml2-python-api.xml",
- "libxml.c", "libxml.py", "libxml_wrap.h", "types.c",
- "xmlgenerator.py", "README", "TODO", "drv_libxml2.py"]
-
-xslt_files = ["libxslt-api.xml", "libxslt-python-api.xml",
- "libxslt.c", "libxsl.py", "libxslt_wrap.h",
- "xsltgenerator.py"]
-
-if missing("libxml2-py.c") or missing("libxml2.py"):
- try:
- try:
- import xmlgenerator
- except:
- import generator
- except:
- print("failed to find and generate stubs for libxml2, aborting ...")
- print(sys.exc_info()[0], sys.exc_info()[1])
- sys.exit(1)
-
- head = open("libxml.py", "r")
- generated = open("libxml2class.py", "r")
- result = open("libxml2.py", "w")
- for line in head.readlines():
- if WITHDLLS:
- result.write(altImport(line))
- else:
- result.write(line)
- for line in generated.readlines():
- result.write(line)
- head.close()
- generated.close()
- result.close()
-
-with_xslt=0
-if missing("libxslt-py.c") or missing("libxslt.py"):
- if missing("xsltgenerator.py") or missing("libxslt-api.xml"):
- print("libxslt stub generator not found, libxslt not built")
- else:
- try:
- import xsltgenerator
- except:
- print("failed to generate stubs for libxslt, aborting ...")
- print(sys.exc_info()[0], sys.exc_info()[1])
- else:
- head = open("libxsl.py", "r")
- generated = open("libxsltclass.py", "r")
- result = open("libxslt.py", "w")
- for line in head.readlines():
- if WITHDLLS:
- result.write(altImport(line))
- else:
- result.write(line)
- for line in generated.readlines():
- result.write(line)
- head.close()
- generated.close()
- result.close()
- with_xslt=1
-else:
- with_xslt=1
-
-if with_xslt == 1:
- xslt_includes=""
- for dir in includes_dir:
- if not missing(dir + "/libxslt/xsltconfig.h"):
- xslt_includes=dir + "/libxslt"
- break;
-
- if xslt_includes == "":
- print("failed to find headers for libxslt: update includes_dir")
- with_xslt = 0
-
-
-descr = "libxml2 package"
-modules = [ 'libxml2', 'drv_libxml2' ]
-if WITHDLLS:
- modules.append('libxmlmods.__init__')
-c_files = ['libxml2-py.c', 'libxml.c', 'types.c' ]
-includes= [xml_includes, iconv_includes]
-libs = [libraryPrefix + "xml2"] + platformLibs
-macros = []
-if with_threads:
- macros.append(('_REENTRANT','1'))
-if with_xslt == 1:
- descr = "libxml2 and libxslt package"
- if not sys.platform.startswith('win'):
- #
- # We are gonna build 2 identical shared libs with merge initializing
- # both libxml2mod and libxsltmod
- #
- c_files = c_files + ['libxslt-py.c', 'libxslt.c']
- xslt_c_files = c_files
- macros.append(('MERGED_MODULES', '1'))
- else:
- #
- # On windows the MERGED_MODULE option is not needed
- # (and does not work)
- #
- xslt_c_files = ['libxslt-py.c', 'libxslt.c', 'types.c']
- libs.insert(0, libraryPrefix + 'exslt')
- libs.insert(0, libraryPrefix + 'xslt')
- includes.append(xslt_includes)
- modules.append('libxslt')
-
-
-extens=[Extension('libxml2mod', c_files, include_dirs=includes,
- library_dirs=libdirs,
- libraries=libs, define_macros=macros)]
-if with_xslt == 1:
- extens.append(Extension('libxsltmod', xslt_c_files, include_dirs=includes,
- library_dirs=libdirs,
- libraries=libs, define_macros=macros))
-
-if missing("MANIFEST"):
-
- manifest = open("MANIFEST", "w")
- manifest.write("setup.py\n")
- for file in xml_files:
- manifest.write(file + "\n")
- if with_xslt == 1:
- for file in xslt_files:
- manifest.write(file + "\n")
- manifest.close()
-
-if WITHDLLS:
- ext_package = "libxmlmods"
- if sys.version >= "2.2":
- base = "lib/site-packages/"
- else:
- base = ""
- data_files = [(base+"libxmlmods",dlls)]
-else:
- ext_package = None
- data_files = []
-
-setup (name = "libxml2-python",
- # On *nix, the version number is created from setup.py.in
- # On windows, it is set by configure.js
- version = "2.9.2",
- description = descr,
- author = "Daniel Veillard",
- author_email = "veillard@redhat.com",
- url = "http://xmlsoft.org/python.html",
- licence="MIT Licence",
- py_modules=modules,
- ext_modules=extens,
- ext_package=ext_package,
- data_files=data_files,
- )
-
-sys.exit(0)
-
diff --git a/python/tests/xpathleak.py b/python/tests/xpathleak.py
index 33ab61c..6940b79 100755
--- a/python/tests/xpathleak.py
+++ b/python/tests/xpathleak.py
@@ -4,25 +4,15 @@
libxml2.debugMemory(True)
expect="""--> Invalid expression
---> xmlXPathEval: evaluation failed
--> Invalid expression
---> xmlXPathEval: evaluation failed
--> Invalid expression
---> xmlXPathEval: evaluation failed
--> Invalid expression
---> xmlXPathEval: evaluation failed
--> Invalid expression
---> xmlXPathEval: evaluation failed
--> Invalid expression
---> xmlXPathEval: evaluation failed
--> Invalid expression
---> xmlXPathEval: evaluation failed
--> Invalid expression
---> xmlXPathEval: evaluation failed
--> Invalid expression
---> xmlXPathEval: evaluation failed
--> Invalid expression
---> xmlXPathEval: evaluation failed
"""
err=""
def callback(ctx, str):
diff --git a/python/types.c b/python/types.c
index f237677..124af56 100644
--- a/python/types.c
+++ b/python/types.c
@@ -31,8 +31,6 @@
const char *mode;
fd = PyObject_AsFileDescriptor(f);
- if (!_PyVerify_fd(fd))
- return(NULL);
/*
* Get the flags on the fd to understand how it was opened
*/
diff --git a/relaxng.c b/relaxng.c
index 3d3e69c..88d351d 100644
--- a/relaxng.c
+++ b/relaxng.c
@@ -20,6 +20,7 @@
#include <string.h>
#include <stdio.h>
+#include <stddef.h>
#include <libxml/xmlmemory.h>
#include <libxml/parser.h>
#include <libxml/parserInternals.h>
@@ -2728,9 +2729,10 @@
* Free the structure associated to the type library
*/
static void
-xmlRelaxNGFreeTypeLibrary(xmlRelaxNGTypeLibraryPtr lib,
+xmlRelaxNGFreeTypeLibrary(void *payload,
const xmlChar * namespace ATTRIBUTE_UNUSED)
{
+ xmlRelaxNGTypeLibraryPtr lib = (xmlRelaxNGTypeLibraryPtr) payload;
if (lib == NULL)
return;
if (lib->namespace != NULL)
@@ -2841,8 +2843,7 @@
xmlSchemaCleanupTypes();
if (xmlRelaxNGTypeInitialized == 0)
return;
- xmlHashFree(xmlRelaxNGRegisteredTypes, (xmlHashDeallocator)
- xmlRelaxNGFreeTypeLibrary);
+ xmlHashFree(xmlRelaxNGRegisteredTypes, xmlRelaxNGFreeTypeLibrary);
xmlRelaxNGTypeInitialized = 0;
}
@@ -4310,10 +4311,11 @@
* algorithm
*/
static void
-xmlRelaxNGComputeInterleaves(xmlRelaxNGDefinePtr def,
- xmlRelaxNGParserCtxtPtr ctxt,
- xmlChar * name ATTRIBUTE_UNUSED)
+xmlRelaxNGComputeInterleaves(void *payload, void *data,
+ const xmlChar * name ATTRIBUTE_UNUSED)
{
+ xmlRelaxNGDefinePtr def = (xmlRelaxNGDefinePtr) payload;
+ xmlRelaxNGParserCtxtPtr ctxt = (xmlRelaxNGParserCtxtPtr) data;
xmlRelaxNGDefinePtr cur, *tmp;
xmlRelaxNGPartitionPtr partitions = NULL;
@@ -4404,7 +4406,7 @@
if ((*tmp)->type == XML_RELAXNG_TEXT) {
res = xmlHashAddEntry2(partitions->triage,
BAD_CAST "#text", NULL,
- (void *) (long) (i + 1));
+ (void *) (ptrdiff_t) (i + 1));
if (res != 0)
is_determinist = -1;
} else if (((*tmp)->type == XML_RELAXNG_ELEMENT) &&
@@ -4412,22 +4414,22 @@
if (((*tmp)->ns == NULL) || ((*tmp)->ns[0] == 0))
res = xmlHashAddEntry2(partitions->triage,
(*tmp)->name, NULL,
- (void *) (long) (i + 1));
+ (void *) (ptrdiff_t) (i + 1));
else
res = xmlHashAddEntry2(partitions->triage,
(*tmp)->name, (*tmp)->ns,
- (void *) (long) (i + 1));
+ (void *) (ptrdiff_t) (i + 1));
if (res != 0)
is_determinist = -1;
} else if ((*tmp)->type == XML_RELAXNG_ELEMENT) {
if (((*tmp)->ns == NULL) || ((*tmp)->ns[0] == 0))
res = xmlHashAddEntry2(partitions->triage,
BAD_CAST "#any", NULL,
- (void *) (long) (i + 1));
+ (void *) (ptrdiff_t) (i + 1));
else
res = xmlHashAddEntry2(partitions->triage,
BAD_CAST "#any", (*tmp)->ns,
- (void *) (long) (i + 1));
+ (void *) (ptrdiff_t) (i + 1));
if ((*tmp)->nameClass != NULL)
is_determinist = 2;
if (res != 0)
@@ -4662,7 +4664,7 @@
* Import import one references into the current grammar
*/
static void
-xmlRelaxNGParseImportRef(void *payload, void *data, xmlChar *name) {
+xmlRelaxNGParseImportRef(void *payload, void *data, const xmlChar *name) {
xmlRelaxNGParserCtxtPtr ctxt = (xmlRelaxNGParserCtxtPtr) data;
xmlRelaxNGDefinePtr def = (xmlRelaxNGDefinePtr) payload;
int tmp;
@@ -5669,10 +5671,10 @@
* element of a given grammar using the same name.
*/
static void
-xmlRelaxNGCheckReference(xmlRelaxNGDefinePtr ref,
- xmlRelaxNGParserCtxtPtr ctxt,
- const xmlChar * name)
+xmlRelaxNGCheckReference(void *payload, void *data, const xmlChar * name)
{
+ xmlRelaxNGDefinePtr ref = (xmlRelaxNGDefinePtr) payload;
+ xmlRelaxNGParserCtxtPtr ctxt = (xmlRelaxNGParserCtxtPtr) data;
xmlRelaxNGGrammarPtr grammar;
xmlRelaxNGDefinePtr def, cur;
@@ -5725,9 +5727,10 @@
* element of a given grammar using the same name.
*/
static void
-xmlRelaxNGCheckCombine(xmlRelaxNGDefinePtr define,
- xmlRelaxNGParserCtxtPtr ctxt, const xmlChar * name)
+xmlRelaxNGCheckCombine(void *payload, void *data, const xmlChar * name)
{
+ xmlRelaxNGDefinePtr define = (xmlRelaxNGDefinePtr) payload;
+ xmlRelaxNGParserCtxtPtr ctxt = (xmlRelaxNGParserCtxtPtr) data;
xmlChar *combine;
int choiceOrInterleave = -1;
int missing = 0;
@@ -6610,16 +6613,14 @@
*/
xmlRelaxNGCombineStart(ctxt, ret);
if (ret->defs != NULL) {
- xmlHashScan(ret->defs, (xmlHashScanner) xmlRelaxNGCheckCombine,
- ctxt);
+ xmlHashScan(ret->defs, xmlRelaxNGCheckCombine, ctxt);
}
/*
* link together defines and refs in this grammar
*/
if (ret->refs != NULL) {
- xmlHashScan(ret->refs, (xmlHashScanner) xmlRelaxNGCheckReference,
- ctxt);
+ xmlHashScan(ret->refs, xmlRelaxNGCheckReference, ctxt);
}
@@ -7550,8 +7551,7 @@
* try to preprocess interleaves
*/
if (ctxt->interleaves != NULL) {
- xmlHashScan(ctxt->interleaves,
- (xmlHashScanner) xmlRelaxNGComputeInterleaves, ctxt);
+ xmlHashScan(ctxt->interleaves, xmlRelaxNGComputeInterleaves, ctxt);
}
/*
@@ -8890,7 +8890,7 @@
if (ret != 0) {
break;
}
- /* no break on purpose */
+ /* Falls through. */
case XML_RELAXNG_ZEROORMORE:{
xmlChar *cur, *temp;
@@ -9387,7 +9387,7 @@
if (tmp == NULL) {
i = nbgroups;
} else {
- i = ((long) tmp) - 1;
+ i = ((ptrdiff_t) tmp) - 1;
if (partitions->flags & IS_NEEDCHECK) {
group = partitions->groups[i];
if (!xmlRelaxNGNodeMatchesList(cur, group->defs))
@@ -10167,7 +10167,7 @@
}
if (ctxt->errNr > errNr)
xmlRelaxNGPopErrors(ctxt, errNr);
- /* no break on purpose */
+ /* Falls through. */
case XML_RELAXNG_ZEROORMORE:{
int progress;
xmlRelaxNGStatesPtr states = NULL, res = NULL;
diff --git a/result/HTML/53867.html.sax b/result/HTML/53867.html.sax
index 81a9f15..1bb0d14 100644
--- a/result/HTML/53867.html.sax
+++ b/result/HTML/53867.html.sax
@@ -1,10 +1,10 @@
SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(style)
SAX.cdata(
@@ -15,12 +15,12 @@
SAX.cdata(................
............., 977)
SAX.endElement(style)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/758518-entity.html b/result/HTML/758518-entity.html
new file mode 100644
index 0000000..e72b0cb
--- /dev/null
+++ b/result/HTML/758518-entity.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html><body><p>&Ù</p></body></html>
diff --git a/result/HTML/758518-entity.html.err b/result/HTML/758518-entity.html.err
new file mode 100644
index 0000000..0186677
--- /dev/null
+++ b/result/HTML/758518-entity.html.err
@@ -0,0 +1,3 @@
+./test/HTML/758518-entity.html:1: HTML parser error : htmlParseEntityRef: expecting ';'
+Ù
+ ^
diff --git a/result/HTML/758518-entity.html.sax b/result/HTML/758518-entity.html.sax
new file mode 100644
index 0000000..3d017ab
--- /dev/null
+++ b/result/HTML/758518-entity.html.sax
@@ -0,0 +1,12 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.error: htmlParseEntityRef: expecting ';'
+SAX.startElement(html)
+SAX.startElement(body)
+SAX.startElement(p)
+SAX.characters(&, 1)
+SAX.characters(Ù, 2)
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.endDocument()
diff --git a/result/HTML/758518-tag.html b/result/HTML/758518-tag.html
new file mode 100644
index 0000000..f99f421
--- /dev/null
+++ b/result/HTML/758518-tag.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html><body><p>“</p></body></html>
diff --git a/result/HTML/758518-tag.html.err b/result/HTML/758518-tag.html.err
new file mode 100644
index 0000000..c912c91
--- /dev/null
+++ b/result/HTML/758518-tag.html.err
@@ -0,0 +1,3 @@
+./test/HTML/758518-tag.html:1: HTML parser error : PI is not started correctly
+
+^
diff --git a/result/HTML/758518-tag.html.sax b/result/HTML/758518-tag.html.sax
new file mode 100644
index 0000000..fd4aa94
--- /dev/null
+++ b/result/HTML/758518-tag.html.sax
@@ -0,0 +1,10 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.error: PI is not started correctlySAX.startElement(html)
+SAX.startElement(body)
+SAX.startElement(p)
+SAX.characters(“, 2)
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.endDocument()
diff --git a/result/HTML/758605.html b/result/HTML/758605.html
new file mode 100644
index 0000000..60b01d3
--- /dev/null
+++ b/result/HTML/758605.html
@@ -0,0 +1,3 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html><body><p>&ê
+</p></body></html>
diff --git a/result/HTML/758605.html.err b/result/HTML/758605.html.err
new file mode 100644
index 0000000..2086f96
--- /dev/null
+++ b/result/HTML/758605.html.err
@@ -0,0 +1,3 @@
+./test/HTML/758605.html:1: HTML parser error : htmlParseEntityRef: expecting ';'
+ê
+ ^
diff --git a/result/HTML/758605.html.sax b/result/HTML/758605.html.sax
new file mode 100644
index 0000000..1f18426
--- /dev/null
+++ b/result/HTML/758605.html.sax
@@ -0,0 +1,14 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.error: htmlParseEntityRef: expecting ';'
+SAX.startElement(html)
+SAX.startElement(body)
+SAX.startElement(p)
+SAX.characters(&, 1)
+SAX.characters(ê, 2)
+SAX.characters(
+, 1)
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.endDocument()
diff --git a/result/HTML/758606.html b/result/HTML/758606.html
new file mode 100644
index 0000000..4f21f62
--- /dev/null
+++ b/result/HTML/758606.html
@@ -0,0 +1,2 @@
+<!DOCTYPE >
+
diff --git a/result/HTML/758606.html.err b/result/HTML/758606.html.err
new file mode 100644
index 0000000..060433a
--- /dev/null
+++ b/result/HTML/758606.html.err
@@ -0,0 +1,16 @@
+./test/HTML/758606.html:1: HTML parser error : Comment not terminated
+<!--
+<!--<!doctype
+ ^
+./test/HTML/758606.html:1: HTML parser error : Invalid char in CDATA 0xC
+<!--<!doctype
+ ^
+./test/HTML/758606.html:1: HTML parser error : Misplaced DOCTYPE declaration
+<!--<!doctype
+ ^
+./test/HTML/758606.html:2: HTML parser error : htmlParseDocTypeDecl : no DOCTYPE name !
+
+^
+./test/HTML/758606.html:2: HTML parser error : DOCTYPE improperly terminated
+
+^
diff --git a/result/HTML/758606.html.sax b/result/HTML/758606.html.sax
new file mode 100644
index 0000000..d44a5cf
--- /dev/null
+++ b/result/HTML/758606.html.sax
@@ -0,0 +1,10 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.error: Comment not terminated
+<!--
+SAX.error: Invalid char in CDATA 0xC
+SAX.error: Misplaced DOCTYPE declaration
+SAX.error: htmlParseDocTypeDecl : no DOCTYPE name !
+SAX.error: DOCTYPE improperly terminated
+SAX.internalSubset((null), , )
+SAX.endDocument()
diff --git a/result/HTML/758606_2.html b/result/HTML/758606_2.html
new file mode 100644
index 0000000..273816a
--- /dev/null
+++ b/result/HTML/758606_2.html
@@ -0,0 +1,2 @@
+<!DOCTYPE >
+<html><body><p>‘</p></body></html>
diff --git a/result/HTML/758606_2.html.err b/result/HTML/758606_2.html.err
new file mode 100644
index 0000000..4be039f
--- /dev/null
+++ b/result/HTML/758606_2.html.err
@@ -0,0 +1,16 @@
+./test/HTML/758606_2.html:1: HTML parser error : Comment not terminated
+<!--
+<!--<!dOctYPE
+ ^
+./test/HTML/758606_2.html:1: HTML parser error : Invalid char in CDATA 0xC
+<!--<!dOctYPE
+ ^
+./test/HTML/758606_2.html:1: HTML parser error : Misplaced DOCTYPE declaration
+<!dOctYPE
+ ^
+./test/HTML/758606_2.html:2: HTML parser error : htmlParseDocTypeDecl : no DOCTYPE name !
+
+^
+./test/HTML/758606_2.html:2: HTML parser error : DOCTYPE improperly terminated
+
+^
diff --git a/result/HTML/758606_2.html.sax b/result/HTML/758606_2.html.sax
new file mode 100644
index 0000000..80ff3d7
--- /dev/null
+++ b/result/HTML/758606_2.html.sax
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.error: Comment not terminated
+<!--
+SAX.error: Invalid char in CDATA 0xC
+SAX.startElement(html)
+SAX.startElement(body)
+SAX.startElement(p)
+SAX.characters(‘, 2)
+SAX.error: Misplaced DOCTYPE declaration
+SAX.error: htmlParseDocTypeDecl : no DOCTYPE name !
+SAX.error: DOCTYPE improperly terminated
+SAX.internalSubset((null), , )
+SAX.endElement(p)
+SAX.endElement(body)
+SAX.endElement(html)
+SAX.endDocument()
diff --git a/result/HTML/Down.html.sax b/result/HTML/Down.html.sax
index c23c332..ae3c056 100644
--- a/result/HTML/Down.html.sax
+++ b/result/HTML/Down.html.sax
@@ -1,18 +1,18 @@
SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 3)
SAX.startElement(title)
SAX.characters(This service is temporary down, 30)
SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.startElement(body, bgcolor='#FFFFFF')
@@ -29,9 +29,9 @@
SAX.characters(
, 1)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/attrents.html.sax b/result/HTML/attrents.html.sax
index c1cfb42..30df683 100644
--- a/result/HTML/attrents.html.sax
+++ b/result/HTML/attrents.html.sax
@@ -1,7 +1,7 @@
SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.startElement(body, bgcolor='#FFFFFF')
SAX.characters(
@@ -13,9 +13,9 @@
SAX.characters(
, 2)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.endDocument()
diff --git a/result/HTML/autoclose.html.sax b/result/HTML/autoclose.html.sax
index 5a45627..c541c5e 100644
--- a/result/HTML/autoclose.html.sax
+++ b/result/HTML/autoclose.html.sax
@@ -4,7 +4,7 @@
SAX.startElement(body)
SAX.startElement(hr)
SAX.endElement(hr)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(body)
SAX.endElement(html)
diff --git a/result/HTML/cf_128.html.sax b/result/HTML/cf_128.html.sax
index 8f66a42..3913ebd 100644
--- a/result/HTML/cf_128.html.sax
+++ b/result/HTML/cf_128.html.sax
@@ -2,18 +2,18 @@
SAX.startDocument()
SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, http://www.w3.org/TR/REC-html40/strict.dtd)
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(title)
SAX.characters(gnome-xml push mode bug, 23)
SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(body)
SAX.characters(
@@ -61,9 +61,9 @@
SAX.characters(
, 3)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 3)
SAX.endDocument()
diff --git a/result/HTML/doc2.htm.sax b/result/HTML/doc2.htm.sax
index 7cbbc51..63c7164 100644
--- a/result/HTML/doc2.htm.sax
+++ b/result/HTML/doc2.htm.sax
@@ -8,31 +8,31 @@
SAX.startElement(title)
SAX.characters(Welcome to Copernic.com, 23)
SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(script, language='javascript')
SAX.cdata(
NS_ActualOpen=windo, 194)
SAX.endElement(script)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.comment( END Naviscope Javascript )
SAX.error: Misplaced DOCTYPE declaration
SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, )
SAX.comment( saved from url=(0027)http://www.agents-tech.com/ )
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(meta, content='text/html; charset=iso-8859-1', http-equiv='Content-Type')
SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(meta, content='Copernic.com Inc. develops innovative agent technology solutions to efficiently access and manage the overwhelming quantity of information available on the Internet and intranets.', name='DESCRIPTION')
SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(meta, content='agent,technology,intranet,extranet,management,filtering,ranking,solution,service,intelligent,intelligence,client,server,architecture,developer,development,information,telecommunication,announcement,press,product,profile,contact,multi-agent,meta-search,metasearch,multi-thread,mobile,wireless,shopping,robot,PCS,Copernic,engine,toolkit,CDK,EDK', name='KEYWORDS')
SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(meta, content='MSHTML 5.00.3103.1000', name='GENERATOR')
SAX.endElement(meta)
@@ -64,6 +64,6 @@
SAX.endElement(noframes)
SAX.endElement(frameset)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/doc3.htm.sax b/result/HTML/doc3.htm.sax
index 13477f1..fb33cf2 100644
--- a/result/HTML/doc3.htm.sax
+++ b/result/HTML/doc3.htm.sax
Binary files differ
diff --git a/result/HTML/entities.html.sax b/result/HTML/entities.html.sax
index 709b60d..3843f6d 100644
--- a/result/HTML/entities.html.sax
+++ b/result/HTML/entities.html.sax
@@ -20,7 +20,7 @@
SAX.characters( b
, 3)
SAX.endElement(p)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(body)
SAX.endElement(html)
diff --git a/result/HTML/entities2.html.sax b/result/HTML/entities2.html.sax
index c6efbe5..131b813 100644
--- a/result/HTML/entities2.html.sax
+++ b/result/HTML/entities2.html.sax
@@ -1,7 +1,7 @@
SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(body)
SAX.characters(
@@ -17,7 +17,7 @@
SAX.characters(
, 1)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
SAX.endDocument()
diff --git a/result/HTML/fp40.htm.sax b/result/HTML/fp40.htm.sax
index 6f77794..a51668c 100644
--- a/result/HTML/fp40.htm.sax
+++ b/result/HTML/fp40.htm.sax
@@ -2,27 +2,27 @@
SAX.startDocument()
SAX.internalSubset(html, -//IETF//DTD HTML//EN, )
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(meta, name='GENERATOR', content='Microsoft FrontPage 4.0')
SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(title)
SAX.characters(README - Microsoft FrontPage 2, 51)
SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(meta, name='Microsoft Theme', content='none')
SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.startElement(body)
@@ -455,9 +455,9 @@
SAX.characters(
, 1)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/html5_enc.html.sax b/result/HTML/html5_enc.html.sax
index 292be57..6c5802f 100644
--- a/result/HTML/html5_enc.html.sax
+++ b/result/HTML/html5_enc.html.sax
@@ -1,17 +1,17 @@
SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(meta, charset='iso-8859-1')
SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(body)
SAX.characters(
@@ -22,9 +22,9 @@
SAX.characters(
, 1)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/liclose.html.sax b/result/HTML/liclose.html.sax
index eabcdf6..50fa778 100644
--- a/result/HTML/liclose.html.sax
+++ b/result/HTML/liclose.html.sax
@@ -2,17 +2,17 @@
SAX.startDocument()
SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, http://www.w3.org/TR/REC-html40/loose.dtd)
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 3)
SAX.startElement(title)
SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(body)
SAX.characters(
@@ -33,6 +33,6 @@
, 2)
SAX.endElement(body)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/lt.html.sax b/result/HTML/lt.html.sax
index a4ab5e3..43e1b11 100644
--- a/result/HTML/lt.html.sax
+++ b/result/HTML/lt.html.sax
@@ -1,19 +1,19 @@
SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(meta, name='Author', content='Root <root@aol.com>')
SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/noscript.html.sax b/result/HTML/noscript.html.sax
index b69396f..a4d036f 100644
--- a/result/HTML/noscript.html.sax
+++ b/result/HTML/noscript.html.sax
@@ -2,24 +2,24 @@
SAX.startDocument()
SAX.internalSubset(html, , )
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 5)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 9)
SAX.startElement(title)
SAX.characters(omg, 3)
SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
, 9)
SAX.startElement(noscript)
SAX.startElement(link, rel='stylesheet', href='http://foo.com')
SAX.endElement(link)
SAX.endElement(noscript)
-SAX.ignorableWhitespace(
+SAX.characters(
, 5)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 5)
SAX.startElement(body, id='xxx')
SAX.characters(
@@ -30,9 +30,9 @@
SAX.characters(
, 5)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/pre.html.sax b/result/HTML/pre.html.sax
index f8782b7..bdf1b75 100644
--- a/result/HTML/pre.html.sax
+++ b/result/HTML/pre.html.sax
@@ -1,7 +1,7 @@
SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(body)
SAX.characters(
@@ -15,9 +15,9 @@
SAX.characters(
, 1)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/python.html.sax b/result/HTML/python.html.sax
index 665539c..ec300d3 100644
--- a/result/HTML/python.html.sax
+++ b/result/HTML/python.html.sax
@@ -3,27 +3,27 @@
SAX.internalSubset(html, -//W3C//DTD HTML 4.01 Transitional//EN, http://www.w3.org/TR/html4/loose.dtd)
SAX.processingInstruction(xml-stylesheet, href="./css/ht2html.css" type="text/css"?)
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.comment( THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. )
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(title)
SAX.characters(Python Programming Language, 27)
SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(body)
SAX.characters(
, 1)
SAX.endElement(body)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/reg1.html.sax b/result/HTML/reg1.html.sax
index c8ee3ac..758fd4f 100644
--- a/result/HTML/reg1.html.sax
+++ b/result/HTML/reg1.html.sax
@@ -1,18 +1,18 @@
SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(title)
SAX.characters(Regression test 1, 17)
SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(body)
SAX.characters(
@@ -28,9 +28,9 @@
, 20)
SAX.endElement(p)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/reg2.html.sax b/result/HTML/reg2.html.sax
index f85691e..c9fe5cb 100644
--- a/result/HTML/reg2.html.sax
+++ b/result/HTML/reg2.html.sax
@@ -1,18 +1,18 @@
SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(title)
SAX.characters(Regression test 2, 17)
SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(body)
SAX.characters(
@@ -33,9 +33,9 @@
, 20)
SAX.endElement(p)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/reg3.html.sax b/result/HTML/reg3.html.sax
index ec0f039..a2ea57e 100644
--- a/result/HTML/reg3.html.sax
+++ b/result/HTML/reg3.html.sax
@@ -1,18 +1,18 @@
SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(title)
SAX.characters(Regression test 3, 17)
SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(body)
SAX.characters(
@@ -37,9 +37,9 @@
, 20)
SAX.endElement(p)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/reg4.html.sax b/result/HTML/reg4.html.sax
index 4c5147c..3ed6c9d 100644
--- a/result/HTML/reg4.html.sax
+++ b/result/HTML/reg4.html.sax
@@ -1,18 +1,18 @@
SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(title)
SAX.characters(Regression test 4, 17)
SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(body)
SAX.characters(
@@ -35,9 +35,9 @@
SAX.characters(
, 1)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/repeat.html.sax b/result/HTML/repeat.html.sax
index 2dbf35c..50b3a76 100644
--- a/result/HTML/repeat.html.sax
+++ b/result/HTML/repeat.html.sax
@@ -6,7 +6,7 @@
SAX.endElement(td)
SAX.startElement(td)
SAX.comment( <a><b> )
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(td)
SAX.endElement(body)
diff --git a/result/HTML/script.html.sax b/result/HTML/script.html.sax
index b259f7f..5925ecc 100644
--- a/result/HTML/script.html.sax
+++ b/result/HTML/script.html.sax
@@ -1,14 +1,14 @@
SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(head)
SAX.startElement(title)
SAX.characters(Script tests, 12)
SAX.endElement(title)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(body)
SAX.characters(
@@ -24,9 +24,9 @@
SAX.characters(
, 1)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/script2.html.sax b/result/HTML/script2.html.sax
index 1971991..405549d 100644
--- a/result/HTML/script2.html.sax
+++ b/result/HTML/script2.html.sax
@@ -2,22 +2,22 @@
SAX.startDocument()
SAX.internalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd)
SAX.startElement(html, xmlns='http://www.w3.org/1999/xhtml')
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 3)
SAX.startElement(meta, http-equiv='Content-Type', content='text/html; charset=UTF-8')
SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(title)
SAX.characters(Test Page, 9)
SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(body)
SAX.characters(
@@ -41,10 +41,10 @@
SAX.characters(
, 1)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.endDocument()
diff --git a/result/HTML/test2.html.sax b/result/HTML/test2.html.sax
index 78bb090..fd328dd 100644
--- a/result/HTML/test2.html.sax
+++ b/result/HTML/test2.html.sax
@@ -3,12 +3,12 @@
SAX.internalSubset(HTML, -//W3C//DTD HTML 4.0 Transitional//EN, http://www.w3.org/TR/REC-html40/loose.dtd)
SAX.startElement(html)
SAX.startElement(head)
-SAX.ignorableWhitespace( , 1)
+SAX.characters( , 1)
SAX.startElement(title)
SAX.characters(Linux Today, 11)
SAX.endElement(title)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(body, bgcolor='White', link='Blue', text='Black', vlink='Black', alink='Red')
SAX.characters(
@@ -137,9 +137,9 @@
, 1)
SAX.endElement(p)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endDocument()
diff --git a/result/HTML/test3.html.sax b/result/HTML/test3.html.sax
index c9f6638..b75b211 100644
--- a/result/HTML/test3.html.sax
+++ b/result/HTML/test3.html.sax
@@ -1,17 +1,17 @@
SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.startElement(base, target='contents')
SAX.endElement(base)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.startElement(body)
SAX.startElement(a, name='ProblemDomain.Package')
@@ -225,6 +225,6 @@
, 2)
SAX.endElement(body)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.endDocument()
diff --git a/result/HTML/utf8bug.html.sax b/result/HTML/utf8bug.html.sax
index 06cdb15..e148358 100644
--- a/result/HTML/utf8bug.html.sax
+++ b/result/HTML/utf8bug.html.sax
@@ -1,35 +1,35 @@
SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.startElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(meta, http-equiv='Content-Language', content='en-us')
SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(meta, http-equiv='Content-Type', content='text/html; charset=utf-8')
SAX.endElement(meta)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(link, href='CSS.css', type='text/css', rel='stylesheet')
SAX.endElement(link)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(link, rel='SHORTCUT ICON', href='favicon.ico')
SAX.endElement(link)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.startElement(title)
SAX.characters(شهير , 17)
SAX.endElement(title)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(head)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.startElement(body)
diff --git a/result/HTML/wired.html.sax b/result/HTML/wired.html.sax
index 3860c76..d5b1629 100644
--- a/result/HTML/wired.html.sax
+++ b/result/HTML/wired.html.sax
@@ -2839,10 +2839,10 @@
SAX.characters(
, 1)
SAX.endElement(body)
-SAX.ignorableWhitespace(
+SAX.characters(
, 1)
SAX.endElement(html)
-SAX.ignorableWhitespace(
+SAX.characters(
, 2)
SAX.endDocument()
diff --git a/result/XPath/expr/base b/result/XPath/expr/base
index 3552866..57c93cf 100644
--- a/result/XPath/expr/base
+++ b/result/XPath/expr/base
@@ -18,3 +18,51 @@
========================
Expression: (1+2)*(3+4)
Object is a number : 21
+
+========================
+Expression: 1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1
+Object is a number : 21
+
+========================
+Expression: 0.000000000000000000000000000000000000000000000000001
+Object is a number : 1e-51
+
+========================
+Expression: -0.000000000000000000000000000000000000000000000000001
+Object is a number : -1e-51
+
+========================
+Expression: 1e2147483648
+Object is a number : Infinity
+
+========================
+Expression: 1e4294967296
+Object is a number : Infinity
+
+========================
+Expression: 1e9223372036854775808
+Object is a number : Infinity
+
+========================
+Expression: 1e18446744073709551616
+Object is a number : Infinity
+
+========================
+Expression: 1e-2147483649
+Object is a number : 0
+
+========================
+Expression: 1e-4294967296
+Object is a number : 0
+
+========================
+Expression: 1e-9223372036854775809
+Object is a number : 0
+
+========================
+Expression: 1e-18446744073709551616
+Object is a number : 0
+
+========================
+Expression: self::-name
+Object is empty (NULL)
diff --git a/result/XPath/expr/floats b/result/XPath/expr/floats
index b6255ce..157bd76 100644
--- a/result/XPath/expr/floats
+++ b/result/XPath/expr/floats
@@ -242,3 +242,11 @@
========================
Expression: 8 mod 3 = 2
Object is a Boolean : true
+
+========================
+Expression: 12345678901234567890
+Object is a number : 1.23457e+19
+
+========================
+Expression: -12345678901234567890
+Object is a number : -1.23457e+19
diff --git a/result/XPath/expr/functions b/result/XPath/expr/functions
index 10cc27e..e09eb4a 100644
--- a/result/XPath/expr/functions
+++ b/result/XPath/expr/functions
@@ -44,6 +44,26 @@
Object is a number : -6
========================
+Expression: floor(100000000000000000000)
+Object is a number : 1e+20
+
+========================
+Expression: floor(-100000000000000000000)
+Object is a number : -1e+20
+
+========================
+Expression: floor(0 div 0)
+Object is a number : NaN
+
+========================
+Expression: floor(1 div 0)
+Object is a number : Infinity
+
+========================
+Expression: floor(-1 div 0)
+Object is a number : -Infinity
+
+========================
Expression: ceiling(0.1)
Object is a number : 1
@@ -68,6 +88,26 @@
Object is a number : -5
========================
+Expression: ceiling(100000000000000000000)
+Object is a number : 1e+20
+
+========================
+Expression: ceiling(-100000000000000000000)
+Object is a number : -1e+20
+
+========================
+Expression: ceiling(0 div 0)
+Object is a number : NaN
+
+========================
+Expression: ceiling(1 div 0)
+Object is a number : Infinity
+
+========================
+Expression: ceiling(-1 div 0)
+Object is a number : -Infinity
+
+========================
Expression: round(0.1)
Object is a number : 0
@@ -98,3 +138,31 @@
========================
Expression: round(-5.6)
Object is a number : -6
+
+========================
+Expression: round(0.5)
+Object is a number : 1
+
+========================
+Expression: round(-0.5)
+Object is a number : 0
+
+========================
+Expression: round(100000000000000000000)
+Object is a number : 1e+20
+
+========================
+Expression: round(-100000000000000000000)
+Object is a number : -1e+20
+
+========================
+Expression: round(0 div 0)
+Object is a number : NaN
+
+========================
+Expression: round(1 div 0)
+Object is a number : Infinity
+
+========================
+Expression: round(-1 div 0)
+Object is a number : -Infinity
diff --git a/result/XPath/expr/strings b/result/XPath/expr/strings
index fad7048..1ae5cc4 100644
--- a/result/XPath/expr/strings
+++ b/result/XPath/expr/strings
@@ -20,6 +20,14 @@
Object is a string : false
========================
+Expression: string(12345678901234567890)
+Object is a string : 1.23456789012346e+19
+
+========================
+Expression: string(-12345678901234567890)
+Object is a string : -1.23456789012346e+19
+
+========================
Expression: concat("titi","toto")
Object is a string : tititoto
diff --git a/result/XPath/tests/chaptersbase b/result/XPath/tests/chaptersbase
index 03c6567..fd021d8 100644
--- a/result/XPath/tests/chaptersbase
+++ b/result/XPath/tests/chaptersbase
@@ -113,3 +113,28 @@
ATTRIBUTE id
TEXT
content=chapter5
+
+========================
+Expression: //p[1]
+Object is a Node Set :
+Set contains 5 nodes:
+1 ELEMENT p
+2 ELEMENT p
+3 ELEMENT p
+4 ELEMENT p
+5 ELEMENT p
+
+========================
+Expression: //p[0 div 0]
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: //p[100000000000000000000]
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: //p[-100000000000000000000]
+Object is a Node Set :
+Set contains 0 nodes:
diff --git a/result/XPath/tests/nssimple b/result/XPath/tests/nssimple
new file mode 100644
index 0000000..cd09a17
--- /dev/null
+++ b/result/XPath/tests/nssimple
@@ -0,0 +1,38 @@
+
+========================
+Expression: /doc/elem/namespace::node()/..
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT elem
+ namespace ns2 href=nsuri2
+
+========================
+Expression: /doc/elem/namespace::*/self::node()[true()]
+Object is a Node Set :
+Set contains 3 nodes:
+1 namespace xml href=http://www.w3.org/XML/1998/namespace
+2 namespace ns1 href=nsuri1
+3 namespace ns2 href=nsuri2
+
+========================
+Expression: //*[namespace::ns1]
+Object is a Node Set :
+Set contains 4 nodes:
+1 ELEMENT doc
+ namespace ns1 href=nsuri1
+2 ELEMENT preceding
+3 ELEMENT elem
+ namespace ns2 href=nsuri2
+4 ELEMENT following
+
+========================
+Expression: /doc/elem/namespace::ns2/following::*
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT following
+
+========================
+Expression: /doc/elem/namespace::ns2/preceding::*
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT preceding
diff --git a/result/XPath/tests/simplebase b/result/XPath/tests/simplebase
index 38fa144..6d4b347 100644
--- a/result/XPath/tests/simplebase
+++ b/result/XPath/tests/simplebase
@@ -60,6 +60,60 @@
content=
========================
+Expression: /child::EXAMPLE/attribute::prop1/self::node()
+Object is a Node Set :
+Set contains 1 nodes:
+1 ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/self::*
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/descendant-or-self::node()
+Object is a Node Set :
+Set contains 1 nodes:
+1 ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/descendant-or-self::*
+Object is a Node Set :
+Set contains 0 nodes:
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/ancestor-or-self::node()
+Object is a Node Set :
+Set contains 3 nodes:
+1 /
+2 ELEMENT EXAMPLE
+ ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+ ATTRIBUTE prop2
+ TEXT
+ content=& linux too
+3 ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+
+========================
+Expression: /child::EXAMPLE/attribute::prop1/ancestor-or-self::*
+Object is a Node Set :
+Set contains 1 nodes:
+1 ELEMENT EXAMPLE
+ ATTRIBUTE prop1
+ TEXT
+ content=gnome is great
+ ATTRIBUTE prop2
+ TEXT
+ content=& linux too
+
+========================
Expression: /descendant::title
Object is a Node Set :
Set contains 2 nodes:
@@ -71,3 +125,8 @@
Object is a Node Set :
Set contains 1 nodes:
1 ELEMENT chapter
+
+========================
+Expression: /child::EXAMPLE/attribute::prop2/preceding::text()
+Object is a Node Set :
+Set contains 0 nodes:
diff --git a/result/XPath/tests/strbase b/result/XPath/tests/strbase
new file mode 100644
index 0000000..e6035ca
--- /dev/null
+++ b/result/XPath/tests/strbase
@@ -0,0 +1,13 @@
+
+========================
+Expression: //p[.='abc']
+Object is a Node Set :
+Set contains 2 nodes:
+1 ELEMENT p
+ ATTRIBUTE id
+ TEXT
+ content=1
+2 ELEMENT p
+ ATTRIBUTE id
+ TEXT
+ content=2
diff --git a/result/XPath/xptr/vidbase b/result/XPath/xptr/vidbase
index 8b9e92d..f19193e 100644
--- a/result/XPath/xptr/vidbase
+++ b/result/XPath/xptr/vidbase
@@ -17,3 +17,16 @@
To node
ELEMENT p
+
+========================
+Expression: xpointer(range-to(id('chapter2')))
+Object is a Location Set:
+1 : Object is a range :
+ From node
+ /
+ To node
+ ELEMENT chapter
+ ATTRIBUTE id
+ TEXT
+ content=chapter2
+
diff --git a/result/XPath/xptr/viderror b/result/XPath/xptr/viderror
new file mode 100644
index 0000000..d589882
--- /dev/null
+++ b/result/XPath/xptr/viderror
@@ -0,0 +1,4 @@
+
+========================
+Expression: xpointer(non-existing-fn()/range-to(id('chapter2')))
+Object is empty (NULL)
diff --git a/result/cdata-2-byte-UTF-8.xml b/result/cdata-2-byte-UTF-8.xml
new file mode 100644
index 0000000..8552efc
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+<p><![CDATA[ ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+</doc>
diff --git a/result/cdata-2-byte-UTF-8.xml.rde b/result/cdata-2-byte-UTF-8.xml.rde
new file mode 100644
index 0000000..2eb2940
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml.rde
@@ -0,0 +1,15 @@
+0 8 #comment 0 1 This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes).
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ
+1 15 p 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/cdata-2-byte-UTF-8.xml.rdr b/result/cdata-2-byte-UTF-8.xml.rdr
new file mode 100644
index 0000000..2eb2940
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml.rdr
@@ -0,0 +1,15 @@
+0 8 #comment 0 1 This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes).
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ
+1 15 p 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/cdata-2-byte-UTF-8.xml.sax b/result/cdata-2-byte-UTF-8.xml.sax
new file mode 100644
index 0000000..f397f6a
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml.sax
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElement(doc)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata(ČČČČČČČČČČ, 1200)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( ÄÄÄÄÄÄÄÄÄÄ, 1201)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.endElement(doc)
+SAX.endDocument()
diff --git a/result/cdata-2-byte-UTF-8.xml.sax2 b/result/cdata-2-byte-UTF-8.xml.sax2
new file mode 100644
index 0000000..2da2d50
--- /dev/null
+++ b/result/cdata-2-byte-UTF-8.xml.sax2
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(ČČČČČČČČČČ, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ÄÄÄÄÄÄÄÄÄÄ, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/cdata-3-byte-UTF-8.xml b/result/cdata-3-byte-UTF-8.xml
new file mode 100644
index 0000000..b959a12
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+</doc>
diff --git a/result/cdata-3-byte-UTF-8.xml.rde b/result/cdata-3-byte-UTF-8.xml.rde
new file mode 100644
index 0000000..3f4d1c5
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml.rde
@@ -0,0 +1,20 @@
+0 8 #comment 0 1 This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes).
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/cdata-3-byte-UTF-8.xml.rdr b/result/cdata-3-byte-UTF-8.xml.rdr
new file mode 100644
index 0000000..3f4d1c5
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml.rdr
@@ -0,0 +1,20 @@
+0 8 #comment 0 1 This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes).
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
+1 15 p 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/cdata-3-byte-UTF-8.xml.sax b/result/cdata-3-byte-UTF-8.xml.sax
new file mode 100644
index 0000000..2f73e7c
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml.sax
@@ -0,0 +1,23 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElement(doc)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata(ççççççç, 1200)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( ççççççç, 1201)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( 牛牛牛牛牛牛, 1202)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.endElement(doc)
+SAX.endDocument()
diff --git a/result/cdata-3-byte-UTF-8.xml.sax2 b/result/cdata-3-byte-UTF-8.xml.sax2
new file mode 100644
index 0000000..3969579
--- /dev/null
+++ b/result/cdata-3-byte-UTF-8.xml.sax2
@@ -0,0 +1,23 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(ççççççç, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ççççççç, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( 牛牛牛牛牛牛, 1202)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/cdata-4-byte-UTF-8.xml b/result/cdata-4-byte-UTF-8.xml
new file mode 100644
index 0000000..4d1d9a8
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[ 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[ 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[ 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+</doc>
diff --git a/result/cdata-4-byte-UTF-8.xml.rde b/result/cdata-4-byte-UTF-8.xml.rde
new file mode 100644
index 0000000..437b79e
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml.rde
@@ -0,0 +1,25 @@
+0 8 #comment 0 1 This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes).
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/cdata-4-byte-UTF-8.xml.rdr b/result/cdata-4-byte-UTF-8.xml.rdr
new file mode 100644
index 0000000..437b79e
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml.rdr
@@ -0,0 +1,25 @@
+0 8 #comment 0 1 This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes).
+0 1 doc 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1
+
+1 1 p 0 0
+2 4 #cdata-section 0 1 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦
+1 15 p 0 0
+1 14 #text 0 1
+
+0 15 doc 0 0
diff --git a/result/cdata-4-byte-UTF-8.xml.sax b/result/cdata-4-byte-UTF-8.xml.sax
new file mode 100644
index 0000000..d8abcfb
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml.sax
@@ -0,0 +1,28 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElement(doc)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata(🍦🍦🍦🍦🍦, 1200)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( ð¦ð¦ð¦ð¦ð, 1201)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( ð¦ð¦ð¦ð¦ð, 1202)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.startElement(p)
+SAX.pcdata( ð¦ð¦ð¦ð¦ð, 1203)
+SAX.endElement(p)
+SAX.characters(
+, 1)
+SAX.endElement(doc)
+SAX.endDocument()
diff --git a/result/cdata-4-byte-UTF-8.xml.sax2 b/result/cdata-4-byte-UTF-8.xml.sax2
new file mode 100644
index 0000000..5e07d83
--- /dev/null
+++ b/result/cdata-4-byte-UTF-8.xml.sax2
@@ -0,0 +1,28 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(🍦🍦🍦🍦🍦, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ð¦ð¦ð¦ð¦ð, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ð¦ð¦ð¦ð¦ð, 1202)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ð¦ð¦ð¦ð¦ð, 1203)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/errors/754946.xml b/result/errors/754946.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/754946.xml
diff --git a/result/errors/754946.xml.err b/result/errors/754946.xml.err
new file mode 100644
index 0000000..be77781
--- /dev/null
+++ b/result/errors/754946.xml.err
@@ -0,0 +1,20 @@
+./test/errors/754946.xml:3: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+ %SYSTEM;
+ ^
+Entity: line 1:
+A<lbbbbbbbbbbbbbbbbbbb_
+^
+./test/errors/754946.xml:4: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+ <![
+ ^
+./test/errors/754946.xml:4: parser error : DOCTYPE improperly terminated
+ <![
+ ^
+./test/errors/754946.xml:4: parser error : StartTag: invalid element name
+ <![
+ ^
+./test/errors/754946.xml:4: parser error : Extra content at the end of the document
+ <![
+ ^
diff --git a/result/errors/754946.xml.str b/result/errors/754946.xml.str
new file mode 100644
index 0000000..49395b6
--- /dev/null
+++ b/result/errors/754946.xml.str
@@ -0,0 +1,4 @@
+./test/errors/754946.xml:1: parser error : Extra content at the end of the document
+<!DOCTYPE A [
+ ^
+./test/errors/754946.xml : failed to parse
diff --git a/result/errors/754947.xml b/result/errors/754947.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/754947.xml
diff --git a/result/errors/754947.xml.err b/result/errors/754947.xml.err
new file mode 100644
index 0000000..f45cb5a
--- /dev/null
+++ b/result/errors/754947.xml.err
@@ -0,0 +1,7 @@
+./test/errors/754947.xml:1: parser error : Input is not proper UTF-8, indicate encoding !
+Bytes: 0xEE 0x5D 0x5D 0x3E
+<d><![CDATA[0000000000000î]]>
+ ^
+./test/errors/754947.xml:1: parser error : Premature end of data in tag d line 1
+<d><![CDATA[0000000000000î]]>
+ ^
diff --git a/result/errors/754947.xml.str b/result/errors/754947.xml.str
new file mode 100644
index 0000000..4d2f52e
--- /dev/null
+++ b/result/errors/754947.xml.str
@@ -0,0 +1,5 @@
+./test/errors/754947.xml:1: parser error : Input is not proper UTF-8, indicate encoding !
+Bytes: 0xEE 0x5D 0x5D 0x3E
+<d><![CDATA[0000000000000î]]>
+ ^
+./test/errors/754947.xml : failed to parse
diff --git a/result/errors/758588.xml b/result/errors/758588.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/758588.xml
diff --git a/result/errors/758588.xml.err b/result/errors/758588.xml.err
new file mode 100644
index 0000000..dfa59bc
--- /dev/null
+++ b/result/errors/758588.xml.err
@@ -0,0 +1,9 @@
+./test/errors/758588.xml:1: namespace error : Namespace prefix a-340282366920938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867261d on a is not defined
+63472597946867209384634725979468672093846347259794686720938463472597946867261d:a
+ ^
+./test/errors/758588.xml:1: parser error : expected '>'
+2597946867209384634725979468672093846347259794686720938463472597946867261d:a></a
+ ^
+./test/errors/758588.xml:1: parser error : Opening and ending tag mismatch: a line 1 and a
+2597946867209384634725979468672093846347259794686720938463472597946867261d:a></a
+ ^
diff --git a/result/errors/758588.xml.str b/result/errors/758588.xml.str
new file mode 100644
index 0000000..303ee0c
--- /dev/null
+++ b/result/errors/758588.xml.str
@@ -0,0 +1,10 @@
+./test/errors/758588.xml:1: namespace error : Namespace prefix a-340282366920938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867261d on a is not defined
+63472597946867209384634725979468672093846347259794686720938463472597946867261d:a
+ ^
+./test/errors/758588.xml:1: parser error : expected '>'
+2597946867209384634725979468672093846347259794686720938463472597946867261d:a></a
+ ^
+./test/errors/758588.xml:1: parser error : Opening and ending tag mismatch: a line 1 and a
+2597946867209384634725979468672093846347259794686720938463472597946867261d:a></a
+ ^
+./test/errors/758588.xml : failed to parse
diff --git a/result/errors/759020.xml b/result/errors/759020.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/759020.xml
diff --git a/result/errors/759020.xml.err b/result/errors/759020.xml.err
new file mode 100644
index 0000000..a0d3051
--- /dev/null
+++ b/result/errors/759020.xml.err
@@ -0,0 +1,6 @@
+./test/errors/759020.xml:3: namespace warning : xmlns: URI 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 is not absolute
+0000000000000000000000000000000000000000000000000000000000000000000000000000000'
+ ^
+./test/errors/759020.xml:46: parser error : Couldn't find end of Start Tag s00 line 2
+
+ ^
diff --git a/result/errors/759020.xml.str b/result/errors/759020.xml.str
new file mode 100644
index 0000000..998d6d2
--- /dev/null
+++ b/result/errors/759020.xml.str
@@ -0,0 +1,7 @@
+./test/errors/759020.xml:3: namespace warning : xmlns: URI 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 is not absolute
+0000000000000000000000000000000000000000000000000000000000000000000000000000000'
+ ^
+./test/errors/759020.xml:46: parser error : Couldn't find end of Start Tag s00
+
+ ^
+./test/errors/759020.xml : failed to parse
diff --git a/result/errors/759398.xml b/result/errors/759398.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/759398.xml
diff --git a/result/errors/759398.xml.err b/result/errors/759398.xml.err
new file mode 100644
index 0000000..f6036a3
--- /dev/null
+++ b/result/errors/759398.xml.err
@@ -0,0 +1,12 @@
+./test/errors/759398.xml:210: parser error : StartTag: invalid element name
+need to worry about parsers whi<! don't expand PErefs finding
+ ^
+./test/errors/759398.xml:309: parser error : Opening and ending tag mismatch: №№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№№m line 308 and termdef
+and provide access to their content and structure.</termdef> <termdef
+ ^
+./test/errors/759398.xml:314: parser error : Opening and ending tag mismatch: spec line 50 and p
+data and the information it must provide to the application.</p>
+ ^
+./test/errors/759398.xml:316: parser error : Extra content at the end of the document
+<div2 id='sec-origin-goals'>
+^
diff --git a/result/errors/759398.xml.str b/result/errors/759398.xml.str
new file mode 100644
index 0000000..de9a28c
--- /dev/null
+++ b/result/errors/759398.xml.str
@@ -0,0 +1,5 @@
+./test/errors/759398.xml:210: parser error : internal error: detected an error in element content
+
+need to worry about parsers whi<! don't expand
+ ^
+./test/errors/759398.xml : failed to parse
diff --git a/result/errors/759573-2.xml b/result/errors/759573-2.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/759573-2.xml
diff --git a/result/errors/759573-2.xml.err b/result/errors/759573-2.xml.err
new file mode 100644
index 0000000..86d6420
--- /dev/null
+++ b/result/errors/759573-2.xml.err
@@ -0,0 +1,58 @@
+Entity: line 1: parser error : Space required after '<!ENTITY'
+%zz;
+ ^
+Entity: line 1:
+<!ENTITY<?xDOCTYPEm~?>
+ ^
+Entity: line 1: parser error : xmlParseEntityDecl: no name
+%zz;
+ ^
+Entity: line 1:
+<!ENTITY<?xDOCTYPEm~?>
+ ^
+Entity: line 1: parser error : ParsePI: PI xDOCTYPEm space expected
+%zz;
+ ^
+Entity: line 1:
+<!ENTITY<?xDOCTYPEm~?>
+ ^
+Entity: line 3: parser error : Space required after '<!ENTITY'
+%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
+ ^
+Entity: line 1:
+<!ENTITY<?xDOCTYPEm~?>
+ ^
+Entity: line 3: parser error : xmlParseEntityDecl: no name
+%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
+ ^
+Entity: line 1:
+<!ENTITY<?xDOCTYPEm~?>
+ ^
+Entity: line 3: parser error : ParsePI: PI xDOCTYPEm space expected
+%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
+ ^
+Entity: line 1:
+<!ENTITY<?xDOCTYPEm~?>
+ ^
+./test/errors/759573-2.xml:6: parser error : Space required after 'ELEMENT'
+%xx;ÿggKENSMYNT#MENTDŴzz;'>
+ ^
+Entity: line 3:
+%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
+ ^
+./test/errors/759573-2.xml:6: parser error : Content error in the external subset
+%xx;ÿggKENSMYNT#MENTDŴzz;'>
+ ^
+Entity: line 3:
+%zz;<!ELEMENTD(%MENT%MENTDŹMENTD%zNMT9KENSMYSYSTEM;MENT9%zz;
+ ^
+./test/errors/759573-2.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+
+^
+./test/errors/759573-2.xml:6: parser error : DOCTYPE improperly terminated
+
+^
+./test/errors/759573-2.xml:6: parser error : Start tag expected, '<' not found
+
+^
diff --git a/result/errors/759573-2.xml.str b/result/errors/759573-2.xml.str
new file mode 100644
index 0000000..baac164
--- /dev/null
+++ b/result/errors/759573-2.xml.str
@@ -0,0 +1,4 @@
+./test/errors/759573-2.xml:2: parser error : Extra content at the end of the document
+<!DOCTYPE test [
+ ^
+./test/errors/759573-2.xml : failed to parse
diff --git a/result/errors/759573.xml b/result/errors/759573.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/759573.xml
diff --git a/result/errors/759573.xml.err b/result/errors/759573.xml.err
new file mode 100644
index 0000000..554039f
--- /dev/null
+++ b/result/errors/759573.xml.err
@@ -0,0 +1,34 @@
+./test/errors/759573.xml:1: parser error : Space required after '<!ENTITY'
+ELEMENT t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ000%z;'><!ENTITY
+ ^
+./test/errors/759573.xml:1: parser error : Space required after the entity name
+LEMENT t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ000%z;'><!ENTITYz
+ ^
+./test/errors/759573.xml:1: parser error : Entity value required
+LEMENT t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ000%z;'><!ENTITYz
+ ^
+./test/errors/759573.xml:1: parser error : PEReference: no name
+T t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ000%z;'><!ENTITYz>%xx;
+ ^
+Entity: line 1:
+%<![INCLUDE[000%ஸ000%z;
+ ^
+./test/errors/759573.xml:1: parser error : Content error in the external subset
+T t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ000%z;'><!ENTITYz>%xx;
+ ^
+Entity: line 1:
+%<![INCLUDE[000%ஸ000%z;
+ ^
+./test/errors/759573.xml:1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+<?h?><!DOCTYPEt[<!ELEMENT t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ00
+ ^
+./test/errors/759573.xml:1: parser error : DOCTYPE improperly terminated
+<?h?><!DOCTYPEt[<!ELEMENT t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ00
+ ^
+./test/errors/759573.xml:1: parser error : StartTag: invalid element name
+<?h?><!DOCTYPEt[<!ELEMENT t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ00
+ ^
+./test/errors/759573.xml:1: parser error : Extra content at the end of the document
+<?h?><!DOCTYPEt[<!ELEMENT t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ00
+ ^
diff --git a/result/errors/759573.xml.str b/result/errors/759573.xml.str
new file mode 100644
index 0000000..1b6addb
--- /dev/null
+++ b/result/errors/759573.xml.str
@@ -0,0 +1,4 @@
+./test/errors/759573.xml:1: parser error : Extra content at the end of the document
+<?h?><!DOCTYPEt[<!ELEMENT t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ00
+ ^
+./test/errors/759573.xml : failed to parse
diff --git a/result/errors/759579.xml b/result/errors/759579.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors/759579.xml
diff --git a/result/errors/759579.xml.err b/result/errors/759579.xml.err
new file mode 100644
index 0000000..288026e
--- /dev/null
+++ b/result/errors/759579.xml.err
@@ -0,0 +1,6 @@
+Entity: line 2: parser error : Detected an entity reference loop
+ %z; %z; %z; %z; %z;
+ ^
+Entity: line 2:
+ %z; %z; %z; %z; %z;
+ ^
diff --git a/result/errors/759579.xml.str b/result/errors/759579.xml.str
new file mode 100644
index 0000000..09408f5
--- /dev/null
+++ b/result/errors/759579.xml.str
@@ -0,0 +1,7 @@
+Entity: line 2: parser error : Detected an entity reference loop
+ %z; %z; %z; %z; %z;
+ ^
+Entity: line 2:
+ %z; %z; %z; %z; %z;
+ ^
+./test/errors/759579.xml : failed to parse
diff --git a/result/errors/attr1.xml.err b/result/errors/attr1.xml.err
index 4f08538..c4c4fc8 100644
--- a/result/errors/attr1.xml.err
+++ b/result/errors/attr1.xml.err
@@ -1,6 +1,9 @@
./test/errors/attr1.xml:2: parser error : AttValue: ' expected
^
-./test/errors/attr1.xml:1: parser error : Extra content at the end of the document
-<foo foo="oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
- ^
+./test/errors/attr1.xml:2: parser error : attributes construct error
+
+^
+./test/errors/attr1.xml:2: parser error : Couldn't find end of Start Tag foo line 1
+
+^
diff --git a/result/errors/attr2.xml.err b/result/errors/attr2.xml.err
index c8a9c7d..77e342e 100644
--- a/result/errors/attr2.xml.err
+++ b/result/errors/attr2.xml.err
@@ -1,6 +1,9 @@
./test/errors/attr2.xml:2: parser error : AttValue: ' expected
^
-./test/errors/attr2.xml:1: parser error : Extra content at the end of the document
-<foo foo=">ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
- ^
+./test/errors/attr2.xml:2: parser error : attributes construct error
+
+^
+./test/errors/attr2.xml:2: parser error : Couldn't find end of Start Tag foo line 1
+
+^
diff --git a/result/errors/cdata.xml.str b/result/errors/cdata.xml.str
index e043441..cf83d2b 100644
--- a/result/errors/cdata.xml.str
+++ b/result/errors/cdata.xml.str
@@ -1,5 +1,5 @@
./test/errors/cdata.xml:2: parser error : Input is not proper UTF-8, indicate encoding !
-Bytes: 0x5B 0x43 0xE1 0x72
+Bytes: 0xE1 0x72 0x5D 0x5D
<A><![CDATA[Cár]]></A>
- ^
+ ^
./test/errors/cdata.xml : failed to parse
diff --git a/result/errors/content1.xml.err b/result/errors/content1.xml.err
index 425be39..9fcd603 100644
--- a/result/errors/content1.xml.err
+++ b/result/errors/content1.xml.err
@@ -13,4 +13,4 @@
^
./test/errors/content1.xml:7: parser error : Start tag expected, '<' not found
<!ELEMENT aElement (a |b * >
- ^
+ ^
diff --git a/result/errors/name2.xml.err b/result/errors/name2.xml.err
index a6649a1..8acef79 100644
--- a/result/errors/name2.xml.err
+++ b/result/errors/name2.xml.err
@@ -1,6 +1,9 @@
-./test/errors/name2.xml:2: parser error : Specification mandate value for attribute foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
+./test/errors/name2.xml:2: parser error : Specification mandates value for attribute foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
^
-./test/errors/name2.xml:1: parser error : Extra content at the end of the document
-<foo foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
- ^
+./test/errors/name2.xml:2: parser error : attributes construct error
+
+^
+./test/errors/name2.xml:2: parser error : Couldn't find end of Start Tag foo line 1
+
+^
diff --git a/result/errors/name2.xml.str b/result/errors/name2.xml.str
index daee090..90f8c08 100644
--- a/result/errors/name2.xml.str
+++ b/result/errors/name2.xml.str
@@ -1,4 +1,4 @@
-./test/errors/name2.xml:2: parser error : Specification mandate value for attribute foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
+./test/errors/name2.xml:2: parser error : Specification mandates value for attribute foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
^
./test/errors/name2.xml:2: parser error : attributes construct error
diff --git a/result/errors10/781205.xml b/result/errors10/781205.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors10/781205.xml
diff --git a/result/errors10/781205.xml.err b/result/errors10/781205.xml.err
new file mode 100644
index 0000000..3ddc203
--- /dev/null
+++ b/result/errors10/781205.xml.err
@@ -0,0 +1,17 @@
+./test/errors10/781205.xml:3: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+ %a;
+ ^
+Entity: line 1:
+<:0000
+^
+./test/errors10/781205.xml:4: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+
+^
+./test/errors10/781205.xml:4: parser error : DOCTYPE improperly terminated
+
+^
+./test/errors10/781205.xml:4: parser error : Start tag expected, '<' not found
+
+^
diff --git a/result/errors10/781361.xml b/result/errors10/781361.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/errors10/781361.xml
diff --git a/result/errors10/781361.xml.err b/result/errors10/781361.xml.err
new file mode 100644
index 0000000..655f41a
--- /dev/null
+++ b/result/errors10/781361.xml.err
@@ -0,0 +1,13 @@
+./test/errors10/781361.xml:4: parser error : xmlParseElementDecl: 'EMPTY', 'ANY' or '(' expected
+
+^
+./test/errors10/781361.xml:4: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+
+^
+./test/errors10/781361.xml:4: parser error : DOCTYPE improperly terminated
+
+^
+./test/errors10/781361.xml:4: parser error : Start tag expected, '<' not found
+
+^
diff --git a/result/icu_parse_test.xml b/result/icu_parse_test.xml
new file mode 100644
index 0000000..031a967
--- /dev/null
+++ b/result/icu_parse_test.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<foo>
+Text with EUC-JP chars at position 214 (0xd6)
+___
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______é®Äé___
+_</foo>
diff --git a/result/icu_parse_test.xml.rde b/result/icu_parse_test.xml.rde
new file mode 100644
index 0000000..54cd5f0
--- /dev/null
+++ b/result/icu_parse_test.xml.rde
@@ -0,0 +1,14 @@
+0 1 foo 0 0
+1 3 #text 0 1
+Text with EUC-JP chars at position 214 (0xd6)
+___
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______駪槗___
+_
+0 15 foo 0 0
diff --git a/result/icu_parse_test.xml.rdr b/result/icu_parse_test.xml.rdr
new file mode 100644
index 0000000..54cd5f0
--- /dev/null
+++ b/result/icu_parse_test.xml.rdr
@@ -0,0 +1,14 @@
+0 1 foo 0 0
+1 3 #text 0 1
+Text with EUC-JP chars at position 214 (0xd6)
+___
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______駪槗___
+_
+0 15 foo 0 0
diff --git a/result/icu_parse_test.xml.sax b/result/icu_parse_test.xml.sax
new file mode 100644
index 0000000..91e11d5
--- /dev/null
+++ b/result/icu_parse_test.xml.sax
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElement(foo)
+SAX.characters(
+Text with EUC-JP chars at pos, 170)
+SAX.characters(駪槗___
+_, 11)
+SAX.endElement(foo)
+SAX.endDocument()
diff --git a/result/icu_parse_test.xml.sax2 b/result/icu_parse_test.xml.sax2
new file mode 100644
index 0000000..eb0d6c6
--- /dev/null
+++ b/result/icu_parse_test.xml.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(foo, NULL, NULL, 0, 0, 0)
+SAX.characters(
+Text with EUC-JP chars at pos, 170)
+SAX.characters(駪槗___
+_, 11)
+SAX.endElementNs(foo, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att1.sax2 b/result/noent/att1.sax2
new file mode 100644
index 0000000..76ba131
--- /dev/null
+++ b/result/noent/att1.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(doc, NULL, NULL, 0, 1, 0, attr='to n...', 28)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att10.sax2 b/result/noent/att10.sax2
new file mode 100644
index 0000000..cc8b58e
--- /dev/null
+++ b/result/noent/att10.sax2
Binary files differ
diff --git a/result/noent/att11.sax2 b/result/noent/att11.sax2
new file mode 100644
index 0000000..518e231
--- /dev/null
+++ b/result/noent/att11.sax2
@@ -0,0 +1,20 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(attributes, , )
+SAX.elementDecl(attributes, 1, ...)
+SAX.attributeDecl(attributes, nmtoken, 7, 3, NULL, ...)
+SAX.attributeDecl(attributes, nmtokens, 8, 3, NULL, ...)
+SAX.entityDecl(ent, 1, (null), (null), entity&recursive; )
+SAX.getEntity(ent)
+SAX.entityDecl(recursive, 1, (null), (null), reference)
+SAX.getEntity(recursive)
+SAX.externalSubset(attributes, , )
+SAX.getEntity(ent)
+SAX.getEntity(recursive)
+SAX.getEntity(ent)
+SAX.getEntity(recursive)
+SAX.getEntity(ent)
+SAX.getEntity(recursive)
+SAX.startElementNs(attributes, NULL, NULL, 0, 2, 0, nmtoken='enti...', 47, nmtokens='Test...', 25)
+SAX.endElementNs(attributes, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att2.sax2 b/result/noent/att2.sax2
new file mode 100644
index 0000000..84aebcb
--- /dev/null
+++ b/result/noent/att2.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(doc, NULL, NULL, 0, 1, 0, attr='to n...', 27)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att3.sax2 b/result/noent/att3.sax2
new file mode 100644
index 0000000..8e7ca86
--- /dev/null
+++ b/result/noent/att3.sax2
@@ -0,0 +1,8 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(select, NULL, NULL, 0, 1, 0, onclick='aaaa...', 17)
+SAX.characters(f, 1)
+SAX.characters( , 2)
+SAX.characters(oo, 2)
+SAX.endElementNs(select, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att4.sax2 b/result/noent/att4.sax2
new file mode 100644
index 0000000..553148c
--- /dev/null
+++ b/result/noent/att4.sax2
@@ -0,0 +1,36976 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( edited with XML Spy v4.4 U (http://www.xmlspy.com) by Slava (GIVC) )
+SAX.startElementNs(electroxml, NULL, NULL, 0, 1, 0, modified='2002...', 15)
+SAX.characters(
+ , 2)
+SAX.startElementNs(data, NULL, NULL, 0, 2, 0, from='2002...', 11, to='2002...', 11)
+SAX.characters(
+ , 3)
+SAX.startElementNs(select, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 4)
+SAX.startElementNs(device, NULL, NULL, 0, 1, 0, serialnumb='E000...', 9)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1134...', 6, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='55"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1693...', 8, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='196....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='199....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='200....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='201....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='199....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='197....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='197....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='197....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='221....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='220"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='221....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='221....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='222"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='221....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='220"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='219"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='221....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='217....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='221....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='224....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='223....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='219"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='221....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='223....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='223....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='221"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='217....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='219"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='223....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='222"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='224....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='219"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='219....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='221"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='220....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='225....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='225"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='222....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='223....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='224....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='223....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='190"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='122....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='354....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='333....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='323....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='278....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='286....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='292....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='21.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='273....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='272....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='285....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='28.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='68.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='147....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='95.7...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='89.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='88.3...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='92.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='149....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='148....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='127....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='198....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='203....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='124....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='159....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='230....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='79.8...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='51.3...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='22.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='323....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='341....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='46.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='71.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='71.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='63.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='76.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='58.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='92"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='79.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='63.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='51.3...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='81.7...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='205....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='96.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='95.7...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='96.7...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='92.8...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='91.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='86.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='270"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='270....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='296....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='306....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='331....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='13.7...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='46.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='262....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='166....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='143....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='127....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='132....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='128....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='155....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='172....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='196....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='178....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='196....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='202....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='99.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='130....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='132....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='121....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='100....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='153....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='155....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='167....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='165....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='184....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='159....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='163....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='163....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='160....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='165"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='156....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='163....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='162....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='154....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='157....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='197....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='203....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='212....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='162"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='149....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='136....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='145....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='164....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='158....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='163"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='165....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='163....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='147....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='163"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='166....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='177....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='179....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='161"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='174....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='203....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='158....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='172....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='172....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='138"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='135....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='157....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='160....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='175....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='184....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='170"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='173....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='167"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='172....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='164....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='166....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='151....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='158....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='160....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='207....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='214....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='213....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='210....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='178....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='162....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='156....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='153....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='143....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='160....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='153....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='163....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='169....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='139....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='142....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='122....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='125....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='110....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='110....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='190....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='99.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='209....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='76.2...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='61.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='44.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='44.2...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='60.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='64.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='67.3...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='341....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='115....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='117....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='252....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='261....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='313....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='311....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='292"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='57.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='151....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='92.7...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='93.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='100....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='97.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='184"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='289....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='274....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='39.8...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='6.5"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='355....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='19.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='44.2...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='61.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='55.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='60.2...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='71.7...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='66.3...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='61.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='38.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='17.3...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='35.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='44.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='71.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='166....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='125"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='176"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='99.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='90"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='273....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='344....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='307....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='271....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='278....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='291....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='52.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='76.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='87.6...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='174....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='175....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='183....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='181....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='173....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='165....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='163....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='165....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='173....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='201....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='205....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='204....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='204....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='208....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='204....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='194....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='184....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='184....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='194....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='190....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='191....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='191....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='197....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='189....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='201....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='202....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='204....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='196....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='162....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='179....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='181....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='183....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='175....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='178....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='223....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='228....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='229....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='216....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='226....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='249....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='245....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='250....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='251....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='252....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='259....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='254....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='228....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='227....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='214....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='218....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='217"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='231....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='230....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='52"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='340....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='18.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='357....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='344....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='338....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='28.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='21.8...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='10.4...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='343....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='342....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='358....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='353....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='353....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='1.4"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='6.4"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='10.5...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='350....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='350....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='357....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='181....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='184....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='194....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='190....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='195"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='198....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='198....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='199....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='200....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='202....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='200....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='203....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='204....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='184....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='190....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='164....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='154....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='134....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='154....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='176"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='206....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='216....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='211....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='210....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='211....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='171....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='129....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='173....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='157....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='163....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='166....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='159....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='177....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='183....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='189....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='173....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='179....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='202....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='197....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='178....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='160....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='168....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='184"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='191....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='177....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='169....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='159....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='190....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='173....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='175....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='160"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='175....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='192....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='200....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='116....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='166....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='162....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='130....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='122"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='183....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='157....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='142....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='145....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='182....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='173....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='179....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='169....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='164....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='178....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='158"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='175....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='169....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='185....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='191....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='176....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='167....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='154....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='167"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='166....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='146....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='155....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='157....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='189....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='179....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='139....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='172"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='189....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='187....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='198....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='193....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='198....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='180....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='180"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='165....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='165....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='160....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='147....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='196....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='178....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='177....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='172"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='156....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='154....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='157"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='179....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='166"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='172....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='196....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='179....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='195....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='202....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='209....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='204....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='199....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='175....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='170....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='159....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='156....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='137....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='146"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='139....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='143....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='137....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='177....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='186....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='184....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='191....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='146....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='161....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='188....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1069...', 8, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='50.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='49.9...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='50"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='8612...', 4, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='25.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='24.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='23.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='26.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='28.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='34.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='40.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='40.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='38.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='35.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='34.1...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='0.04...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0.04...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='36.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='17.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='8.35...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='5.95...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='7.13...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='8.64...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='6.42...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='10.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='14.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='3.54...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='3.8"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='6.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='5.20...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='7.52...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='11.3...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='0.95...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='5.77...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='21.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='22.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='19.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='1.26...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='3.13...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='6.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='7.27...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='9.37...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='7.71...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='8.18...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='9.84...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='5.25...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='2.64...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='7.17...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='19.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='4.70...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='5.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='5.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='4.40...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='5.16...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='10.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='5.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='10.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='4.08...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='5.22...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='6.62...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='2.57...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='3.76...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='2.92...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='4.23...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='2.44...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='10.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='15.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='10.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='14.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='11.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='7.26...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='3.27...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='12.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='8.86...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='8.42...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='7.50...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='7.80...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='10.9...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='5.74...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='2.08...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='7.75...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='16.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='18.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='18.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='16.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='13.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='14.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='14.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='14.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='15.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='20.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='20.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='16.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='17.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='11.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='10.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='8.73...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='14.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='4.86...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='4.14...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='6.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='14.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='9.98...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='11.9...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='15.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='22.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='24.1...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='23.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='24.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='25.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='24.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='25.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='23.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='19.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='19.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='16.1...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='16.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='16.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='14.2...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='14.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='9.55...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='9.07...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='8.33...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='9.77...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='14.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='16.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='19.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='25.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='21.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='19.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='21.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='21.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='22.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='25.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='20.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='22.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='18.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='16.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='13.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='13.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='8.71...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='8.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='8.19...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='8.30...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='10.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='14.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='15.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='19.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='23.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='20.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='26.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='21.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='21.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='22.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='19.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0.01...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='0.01...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0.01...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='0.01...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0.27...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0.14...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0.20...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0.07...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0.05...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0.44...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0.16...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0.15...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0.23...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0.33...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0.04...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0.14...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0.08...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0.05...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0.23...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0.20...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0.16...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0.07...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0.15...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0.18...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.14...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0.15...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0.16...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0.30...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0.16...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0.14...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0.25...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0.19...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0.30...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0.03...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0.04...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0.14...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0.07...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0.17...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0.08...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0.60...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0.67...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0.72...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0.47...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0.47...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0.49...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0.49...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0.57...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0.62...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='35.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='33.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='35.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='32.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='28.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='29.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='30.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='28.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='27.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='28.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='25.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='25.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='30.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='32.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='38.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='64.3...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='63.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='60.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='57.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='59.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='56.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='60.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='56.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='37.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='40.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='38.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='32.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='30.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='26.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='21.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='21.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='21.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='20.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='19.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='20.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='25.6...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='29.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='31.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='28.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='32.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='32.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='29.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='29.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='29.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='29.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='29.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='10.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='18.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='23.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='25.8...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='13.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='15.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='22.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='20.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='14.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='17.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='18.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='14.8...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='11.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='6.40...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='13.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='18.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='16.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='16.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='17.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='16.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='16.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='4.33...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='4.33...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='21.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='20.8...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='22.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='22.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='34.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='33.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='32.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='33.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='34.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='36.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='36.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='36.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='37.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='37.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='37.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='32.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='31.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='31.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='15.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='17.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='17.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='16.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='17.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='18.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='32.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='37.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='36.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='37.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='37.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='35.9...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='34.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='31.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='27.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='27.7...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='27.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='9.65...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='8.98...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='8.87...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='11.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='11.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='13.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='12.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='13.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='12.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='12.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='12.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='11.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='11.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='13.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='20.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='17.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='17.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='17.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='15.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='18.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='19.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='15.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='14.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='14.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='10.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='10.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='10.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='12.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='18.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='17.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='24.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='27.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='31.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='28.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='26.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='27.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='31.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='30.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='33.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='31.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='27.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='26.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='22.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='21.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='20.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='20.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='17.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='14.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='14.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='13.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='14.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='18.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='22.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='29.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='30.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='31.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='30.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='30.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='29.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='29.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='30.4...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='31.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='28.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='28.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='27.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='26.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='24.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='18.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='17.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='16.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='18.4...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='9.83...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='9.73...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='12.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='17.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='17.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='19.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='25.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='28.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='28.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='23.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='22.6...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='22.1...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='27.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='27.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='29.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='27.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='25.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='25.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='21.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='19.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='15.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='16.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='15.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='13.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='14.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='15.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='18.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='22.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='26.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='34.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='35.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='36.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='34.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='32.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='33.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='31.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='36.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='30.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='28.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='28.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='27.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='26.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='21.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='20.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='17.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='17.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='17.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='16.1...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='17.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='20.9...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='21.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='25.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='31.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='33.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='82.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='46.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='22.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='31.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='30.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='28.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='30.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='31.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='28.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='27.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='24.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='22.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='17.5...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='17.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='18.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='20.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='19.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='18.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='18.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='18.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='18.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='23.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='23.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='26.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='24.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='23.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='23.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='24"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='22.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='26.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='25.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='25.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='24.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='23.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='18.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='15.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='8608...', 4, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='8604...', 4, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='21.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='20.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='19.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='19.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='18.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='18.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='22.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='24.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='29.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='35.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='35.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='33.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='30.7...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='29.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='0.07...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='30.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='16.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='10.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='3.83...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='3.30...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='4.19...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='2.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='4.91...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='7.89...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='2.93...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='1.48...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='2.19...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='1.67...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='5.98...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='10.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='3.65...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='7.25...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='19.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='21.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='18.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='3.45...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='4.91...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='7.33...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='7.20...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='9.19...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='8.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='7.68...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='8.66...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='7.73...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='5.14...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='5.08...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='18.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='4.67...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='3.97...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='2.24...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='2.51...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='4.78...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='10.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='5.86...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='9.66...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='5.19...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='5.35...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='7.74...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='3.65...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='4.23...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='3.28...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='5.65...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='2.24...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='12.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='15.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='11.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='15.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='12.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='8.53...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='1.47...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='7.44...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='4.26...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='3.80...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='3.75...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='5.53...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='9.52...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='1.98...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='4.15...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='9.62...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='17.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='19.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='19.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='14.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='12.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='13.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='13.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='13.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='13.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='18.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='17.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='15.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='15.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='11.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='9.89...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='7.99...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='13.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='6.33...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='5.63...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='7.36...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='14.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='9.67...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='12.8...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='14.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='21.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='21.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='22.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='20.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='22.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='22.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='24.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='23.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='23.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='22.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='18.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='18.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='15.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='16.3...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='15.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='12.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='12.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='8.94...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='8.83...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='8.79...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='10.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='13.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='15.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='19.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='22.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='21.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='23.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='20.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='18.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='20.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='19.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='21.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='23.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='21.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='19.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='20.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='17.3...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='16.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='13.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='12.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='8.96...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='8.31...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='8.35...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='8.49...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='10.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='13.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='15.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='18.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='22.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='19.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='23.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='20.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='19.8...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='20.8...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='18.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='0.02...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='0.02...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0.01...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0.00...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='0.01...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='0.01...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0.26...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0.12...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0.16...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0.22...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0.24...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0.23...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0.23...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0.07...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0.08...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0.41...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0.19...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0.15...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0.14...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0.30...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0.20...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0.09...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0.03...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0.08...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0.25...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0.22...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0.19...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0.04...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0.15...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0.12...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0.18...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0.28...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0.16...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0.15...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0.24...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0.21...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0.18...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0.09...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0.29...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0.06...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0.07...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0.06...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0.04...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0.05...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0.07...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0.03...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0.02...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0.07...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0.17...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0.22...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0.57...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0.63...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0.67...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0.45...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0.46...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0.47...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0.48...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0.56...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0.59...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='34.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='33.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='34.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='31.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='26.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='26.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='28.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='25.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='24.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='25.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='22.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='22.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='28.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='30.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='35.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='61.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='61.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='58.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='54.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='56.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='53.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='57.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='53.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='36.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='36.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='35.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='29.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='28.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='25.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='19.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='19.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='19.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='18.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='18.1...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='20.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='25.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='27.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='29.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='27.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='30.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='29.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='28.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='28.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='28.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='28.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='28.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='11.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='14.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='19.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='20.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='11.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='12.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='16.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='15.1...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='9.95...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='12.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='12.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='9.68...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='6.80...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='4.55...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='10.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='14.6...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='14.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='13.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='15.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='13.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='12.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='3.99...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='2.18...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='16.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='14.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='16.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='15.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='29.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='27.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='25.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='24.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='25.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='28.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='28.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='28.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='30.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='30.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='30.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='24.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='23.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='23.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='15.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='16.6...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='16.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='15.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='16.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='16.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='27.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='31.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='31.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='32.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='31.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='30.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='29.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='27.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='23.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='23.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='23.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='8.57...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='7.91...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='7.85...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='9.84...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='10.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='11.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='11.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='12.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='11.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='11.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='10.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='10.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='10.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='13.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='19.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='16.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='15.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='15.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='14.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='15.7...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='16.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='13.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='11.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='11.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='9.24...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='8.96...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='9.42...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='11.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='18.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='15.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='23.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='26.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='29.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='25.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='25.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='26.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='30.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='28.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='30.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='28.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='24.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='23.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='21.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='19.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='18.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='17.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='15.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='13.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='13.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='12.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='13.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='17.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='21.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='25.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='27.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='28.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='27.6...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='28.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='27.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='27.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='28.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='27.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='26.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='25.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='24.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='24.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='17.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='16.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='14.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='18.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='10.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='10.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='13.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='17.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='15.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='17.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='21.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='24.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='26.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='27.0...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='22.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='21.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='20.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='25.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='25.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='27.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='25.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='24.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='23.8...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='20.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='18.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='14.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='14.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='14.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='13.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='13.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='15.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='17.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='20.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='24.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='32.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='34.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='34.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='31.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='29.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='30.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='29.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='34.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='28.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='25.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='26.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='24.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='24.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='20.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='18.2...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='15.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='15.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='15.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='15.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='16.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='19.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='20.0...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='23.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='29.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='31.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='75.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='41.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='21.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='29.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='28.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='27.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='28.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='29.3...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='26.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='25.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='23.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='21.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='20.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='16.3...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='15.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='16.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='17.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='16.8...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='16.6...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='17.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='18.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='18.4...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='22.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='22.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='25.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='22.9...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='23.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='21.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='23.5...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='23.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='22.7...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='22.3...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='23.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='18.2...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='14.1...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='9812...', 4, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='114....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='109....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='124....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='127....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='113....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='113....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='118....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='116....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='114....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='114....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='113....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='125....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='127....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='128....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='127....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='127....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='127....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='124....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='124....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='121....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='115....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='124....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='125....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='119....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='9808...', 4, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='9804...', 4, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='113....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='109....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='125....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='127....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='112....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='113....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='114....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='114....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='121....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='113....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='124....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0.11...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0.11...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0.10...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='128....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='126....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='125....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='116....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='125....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='123....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='122....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='126....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='121....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='118....', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='120....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='123....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='125....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='115....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='119....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='117....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='114....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='124....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='124....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='116....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='118....', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='123....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='117....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='119....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='121....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='118....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='120....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='122....', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='4406...', 6, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='-127...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='-148...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='-156...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='-164...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='-144...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='-127...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='-104...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='-169...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='-176...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='-166...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='-206...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='-199...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='-192...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='-201...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='-184...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='-631...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='1564...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='-66"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='-393...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='-691...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='-883...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='-157...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='-220...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='109"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='-420...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='-859...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='-628...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='516"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='1839...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='293"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='1185...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='3946...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='4230...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='3689...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='248"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='430"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='1026...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='-526...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='-258...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='-65"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='-489...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='-842...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='1082...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='310"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='-111...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='3632...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='513"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='214"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='-292...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='-127...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='495"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='1815...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='818"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='1539...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='680"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='712"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='1280...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='397"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='493"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='250"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='785"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='-201...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='2156...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='2937...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='2107...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='2824...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='2269...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='1441...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='-297...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='-228...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='-118...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='-964...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='-442...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='261"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='1309...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='-849...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='178"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='1111...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='2750...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='2769...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='2973...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='1327...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='454"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='199"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='167"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='556"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='416"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='-370...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='-115...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='93"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='-843...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='171"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='-646...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='-723...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='2665...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='837"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='698"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='1097...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='2649...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='-495...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='1165...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='542"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='1871...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='979"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='1210...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='-356...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='1654...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='1368...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='1462...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='1612...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='1309...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='1886...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='1136...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='1169...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='1403...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='1316...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='-104...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='-119...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='-160...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='-199...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='-252...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='585"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='1069...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='1973...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='1831...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='1127...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='1767...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='1343...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='1564...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='849"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='805"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='1093...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='880"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='1254...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='2664...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='1368...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='1009...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='208"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='22"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='1142...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='286"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='-116...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='712"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='227"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='236"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='372"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='1441...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='2015...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='1211...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='1284...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='369"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='-310...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='-802...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='781"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='491"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='1023...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='516"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='2"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='2"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='2274...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='1775...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='1153...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='769"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='-846...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='-236...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='-296...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='-251...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='-244...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='-286...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='-227...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='-125...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='-716...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='-148...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='-200...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='-105...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='-978...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='-126...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='-317...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='-266...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='-254...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='-237...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='-112...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='1219...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='-106...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='-151...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='-128...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='-190...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='-162...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='-778...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='-173...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='-174...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='-187...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='-120...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='-211...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='1619...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='-764...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='-827...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='40"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='-199...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='-967...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='-680...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='-385...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='-241...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='371"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='471"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='61"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='-244...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='-344...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='-386...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='-165...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='-227...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='-413...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='-373...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='-265...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='-328...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='-337...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='-270...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='-797...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='-204...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='-279...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='-193...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='-209...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='-221...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='-267...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='-253...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='453"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='-157...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='1143...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='-146...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='-100...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='-140...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='2949...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='2229...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='1022...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='-162...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='-183...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='-211...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='-767...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='-792...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='173"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='776"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='1249...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='-957...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='-911...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='-243...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='-65"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='-308...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='-811...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='-806...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='-952...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='-716...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='-161...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='-191...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='-180...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='-222...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='-227...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='-231...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='-228...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='-233...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='-186...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='-213...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='-220...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='-296...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='-449...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='-142...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='-422...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='-365...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='-581...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='-263...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='-325...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='-142...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='-355...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='-310...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='496"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='660"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='1246...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='2889...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='1532...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='-143...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='-518...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='225"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='-166...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='-233...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='-172...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='-148...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='-151...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='-476...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='-193...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='128"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='376"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='2872...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='408"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='1923...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='1830...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='1798...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='334"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='1260...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='1815...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='2272...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='262"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='-387...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='-613...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='-251...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='-885...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='551"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='48"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='-982...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='-161...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='-112...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='-381...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='-441...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='71"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='1020...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='760"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='-319...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='-114...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='302"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='-319...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='-582...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='408"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='1031...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='1139...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='2082...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='-120...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='622"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='456"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='-736...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='-818...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='1684...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='307"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='-801...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='-125...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='3308...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='506"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='639"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='1963...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='2867...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='-831...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='-270...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='2010...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='3408...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='3190...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='-187...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='-225...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='531"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='-823...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='62"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='1079...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='1547...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='900"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='112"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='1780...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='1407...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='298"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='565"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='-311...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='-657...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='168"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='647"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='1427...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='829"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='-5"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='1197...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='3751...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='2991...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='2801...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='-118...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='-828...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='-799...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='57"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='4601...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='1911...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='799"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='-972...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='-708...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='-790...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='-490...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='-131...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='-825...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='-101...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='-117...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='-35"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='1352...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='1059...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='1290...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='2079...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='3618...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='-468...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='-247...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='-556...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='189"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='260"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='816"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='2489...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='2732...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='2234...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='57"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='1219...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='632"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='-136...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='38"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='-980...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='-150...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='-211...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='-161...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='-131...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='-432...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='309"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='685"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='1692...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='1899...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='3622...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='2709...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='3037...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='2898...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='3251...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='186"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='-636...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='-421...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='-729...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='-978...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='2670...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='1255...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='-496...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='4246...', 6, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='-431...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='-416...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='-410...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='-409...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='-398...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='-393...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='-443...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='-532...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='-629...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='-733...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='-754...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='-724...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='-686...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='-645...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='-646...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='-354...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='-986...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='697"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='776"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='925"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='125"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='456"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='903"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='278"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='27"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='43"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='173"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='947"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='728"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='-452...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='-117...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='23"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='182"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='-152...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='-423...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='-705...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='-790...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='-157...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='-202...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='-175...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='-172...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='-190...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='-741...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='-812...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='-891...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='652"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='411"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='516"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='398"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='382"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='470"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='591"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='267"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='770"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='164"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='438"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='-43"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='72"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='249"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='201"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='115"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='-425...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='-229...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='-284...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='-247...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='-135...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='-54"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='96"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='16"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='598"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='721"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='818"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='1067...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='1245...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='-117...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='-721...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='-150...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='-208...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='-255...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='-234...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='-292...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='-271...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='-285...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='-292...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='-280...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='-303...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='-401...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='-391...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='-341...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='-344...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='-256...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='-213...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='-176...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='-465...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='-702...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='-647...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='-676...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='-509...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='-215...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='-235...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='-317...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='-403...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='-433...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='-465...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='-466...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='-434...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='-457...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='-492...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='-460...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='-486...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='-430...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='-389...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='-378...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='-298...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='-309...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='-333...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='-268...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='-252...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='-207...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='-178...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='-179...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='-207...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='-269...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='-393...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='-440...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='-436...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='-469...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='-430...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='-392...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='-410...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='-418...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='-434...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='-416...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='-445...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='-413...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='-449...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='-388...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='-329...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='-286...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='-266...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='-177...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='-181...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='-182...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='-180...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='-159...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='-205...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='-296...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='-483...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='-429...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='-525...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='-440...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='-432...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='-442...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='-395...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='-686...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='-679...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='-725...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='-673...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='-603...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='-589...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='-606...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='-548...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='-544...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='-533...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='-498...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='-519...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='-631...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='-683...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='-785...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='-135...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='-133...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='-127...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='-118...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='-123...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='-117...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='-126...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='-118...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='-747...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='-812...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='-769...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='-653...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='-617...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='-566...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='-448...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='-430...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='-426...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='-411...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='-410...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='-451...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='-513...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='-603...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='-639...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='-589...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='-669...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='-660...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='-615...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='-612...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='-622...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='-604...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='-600...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='-229...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='-254...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='-308...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='-326...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='-226...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='-215...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='-153...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='-167...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='-960...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='-112...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='-106...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='-505...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='-536...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='-991...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='-181...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='-257...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='-284...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='-260...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='-292...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='-211...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='-207...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='354"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='438"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='3408...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='3269...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='3655...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='3521...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='5431...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='5560...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='5660...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='5623...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='5896...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='6656...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='6647...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='6733...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='6914...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='6873...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='6691...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='5814...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='5617...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='5608...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='-323...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='-365...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='-344...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='-360...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='-373...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='-599...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='-671...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='-658...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='-676...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='-680...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='-652...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='-617...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='-567...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='-491...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='-491...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='-480...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='-181...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='-183...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='-225...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='-232...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='-268...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='-267...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='-277...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='-268...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='-265...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='-255...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='-235...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='-231...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='-258...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='-281...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='-318...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='-357...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='-354...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='-314...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='-334...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='-313...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='-280...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='-250...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='-249...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='-215...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='-213...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='-215...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='-249...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='-236...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='-351...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='-456...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='-534...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='-605...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='-579...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='-534...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='-539...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='-597...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='-609...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='-677...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='-637...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='-547...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='-538...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='-460...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='-431...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='-405...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='-386...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='-348...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='-311...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='-301...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='-294...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='-281...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='-364...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='-449...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='-579...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='-619...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='-617...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='-610...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='-621...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='-589...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='-598...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='-563...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='-621...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='-578...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='-572...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='-553...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='-540...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='-460...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='-387...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='-361...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='-329...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='-168...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='-207...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='-205...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='-167...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='-179...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='-348...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='-391...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='-457...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='-478...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='-445...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='-469...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='-483...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='-465...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='-445...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='-539...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='-553...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='-586...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='-522...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='-516...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='-525...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='-438...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='-421...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='-401...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='-322...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='-331...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='-318...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='-297...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='-294...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='-293...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='-357...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='-454...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='-511...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='-573...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='-651...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='-677...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='-675...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='-636...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='-654...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='-627...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='-540...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='-579...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='-564...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='-574...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='-544...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='-544...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='-455...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='-401...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='-348...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='-361...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='-355...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='-340...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='-360...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='-402...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='-418...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='-499...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='-581...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='-559...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='-152...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='-869...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='-457...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='-631...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='-610...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='-575...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='-576...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='-564...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='-524...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='-556...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='-487...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='-461...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='-461...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='-361...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='-346...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='-356...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='-367...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='-361...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='-386...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='-396...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='-388...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='-438...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='-427...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='-396...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='-400...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='-356...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='-387...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='-356...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='-469...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='-519...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='-521...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='-503...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='-496...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='-404...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='-370...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='-321...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='4382...', 6, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='-110...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='-128...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='-135...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='-142...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='-124...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='-110...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='-909...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='-147...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='-152...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='-143...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='-178...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='-175...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='-168...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='-174...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='-159...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='-500...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='1379...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='-45"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='-346...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='-580...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='-752...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='-136...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='-190...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='101"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='-366...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='-740...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='-550...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='432"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='1595...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='275"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='1019...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='3444...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='3629...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='3203...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='215"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='380"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='890"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='-446...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='-200...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='-44"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='-424...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='-718...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='946"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='276"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='-944...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='3129...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='453"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='194"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='-246...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='-122...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='430"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='1582...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='720"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='1333...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='588"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='642"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='1096...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='313"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='374"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='204"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='692"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='-196...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='1888...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='2502...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='1840...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='2437...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='1930...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='1219...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='-250...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='-197...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='-102...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='-107...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='-388...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='229"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='1131...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='-726...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='166"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='965"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='2341...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='2354...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='2565...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='1136...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='367"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='173"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='156"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='460"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='358"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='-308...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='-100...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='93"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='-723...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='147"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='-551...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='-626...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='2316...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='714"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='600"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='953"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='2267...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='-403...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='999"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='475"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='1663...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='829"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='1055...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='-314...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='1431...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='1201...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='1280...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='1431...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='1145...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='1635...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='957"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='1019...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='1219...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='1143...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='-893...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='-101...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='-138...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='-182...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='-220...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='502"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='940"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='1719...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='1592...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='960"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='1537...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='1177...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='1337...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='737"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='723"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='917"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='794"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='1075...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='2328...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='1192...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='867"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='184"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='12"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='978"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='256"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='-100...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='614"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='205"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='195"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='316"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='1241...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='1748...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='1046...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='1099...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='309"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='-202...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='-722...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='680"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='440"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='870"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='475"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='2"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='1"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='1959...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='1506...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='1027...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='677"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='-759...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='-204...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='-255...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='-217...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='-212...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='-248...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='-107...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='-524...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='-136...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='-175...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='-893...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='-845...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='-114...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='-271...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='-229...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='-220...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='-203...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='-997...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='1048...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='-955...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='-133...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='-112...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='-162...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='-141...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='-671...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='-150...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='-151...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='-161...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='-103...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='-192...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='1397...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='-627...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='-711...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='20"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='-130...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='-843...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='-642...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='-320...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='-210...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='295"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='417"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='37"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='-210...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='-298...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='-332...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='-143...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='-357...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='-323...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='-228...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='-284...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='-294...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='-234...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='-171...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='-668...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='-176...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='-241...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='-172...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='-183...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='-188...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='-234...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='-217...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='374"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='-132...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='993"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='-150...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='-843...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='-119...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='2577...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='1582...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='909"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='-140...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='-159...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='-186...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='-658...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='-679...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='89"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='680"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='1095...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='-832...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='-785...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='-228...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='-40"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='-280...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='-697...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='-697...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='-811...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='-629...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='-140...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='-166...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='-157...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='-192...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='-197...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='-201...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='-200...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='-161...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='-185...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='-190...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='-251...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='-386...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='-121...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='-365...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='-313...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='-506...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='-232...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='-288...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='-121...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='-310...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='-245...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='439"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='609"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='1078...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='2491...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='1327...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='-115...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='-442...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='203"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='-143...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='-201...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='-149...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='-128...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='-130...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='-409...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='-162...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='90"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='319"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='2483...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='357"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='1681...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='1572...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='1575...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='302"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='1076...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='1555...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='1971...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='239"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='-351...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='-527...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='-215...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='-782...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='452"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='60"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='-848...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='-138...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='-989...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='-325...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='-382...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='60"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='884"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='659"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='-264...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='-990...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='289"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='-292...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='-542...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='366"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='909"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='992"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='1808...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='-104...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='543"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='377"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='-619...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='-712...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='1459...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='257"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='-696...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='-108...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='2873...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='421"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='557"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='1696...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='2480...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='-707...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='-237...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='1730...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='2990...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='2746...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='-174...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='-194...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='485"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='-729...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='70"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='907"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='1297...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='776"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='123"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='1557...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='1208...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='253"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='508"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='-274...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='-571...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='146"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='567"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='1222...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='733"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='8"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='1041...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='3222...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='2576...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='2422...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='-103...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='-746...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='-661...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='45"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='3983...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='1694...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='709"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='-844...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='-605...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='-661...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='-436...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='-115...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='-716...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='-877...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='-102...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='1185...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='884"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='1103...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='1789...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='3132...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='-403...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='-211...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='-498...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='174"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='210"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='710"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='2127...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='2386...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='1916...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='53"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='1070...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='564"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='-118...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='34"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='-847...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='-131...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='-184...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='-140...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='-112...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='-372...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='269"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='572"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='1413...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='1586...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='3161...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='2347...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='2627...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='2502...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='2818...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='158"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='-545...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='-370...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='-624...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='-847...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='2315...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='1099...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='-417...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='4222...', 6, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='-430...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e08"...', 3, v='-416...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c32...', 4, v='-409...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a3c...', 4, v='-408...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3835...', 4, v='-396...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4645...', 4, v='-396...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5455...', 4, v='-441...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6265...', 4, v='-535...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7075...', 4, v='-631...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e85...', 4, v='-729...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c96...', 4, v='-751...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aa5...', 4, v='-735...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8b6...', 4, v='-689...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6c5...', 4, v='-646...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4d7...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d30b...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0f6...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef06...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd17...', 4, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1274...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1518...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189b...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5d...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b3e...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c1f...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d00...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2246...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='278c...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='286d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='294e...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2b10...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2bf1...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2cd2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2db3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2e94...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2f75...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3056...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3137...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3219...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='32f9...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='33da...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='34bb...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='359d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='367d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='375e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3840...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3921...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3a01...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ae2...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3bc3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3ca4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3d85...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3e66...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='3f48...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4028...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4109...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='41ea...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='42cb...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='43ac...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='448d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='456e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='464f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='480f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='48f0...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='49d1...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ab4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4b95...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4c76...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4d57...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4e38...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4f19...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='4ffa...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='50dd...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='51bc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='529d...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='537e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5460...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5540...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5621...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5702...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='57e3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='58c4...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='59a7...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5a86...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5b67...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5c48...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5d29...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5e0a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5eeb...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5fcc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='60ad...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='618e...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='626f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6350...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6431...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6512...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='65f3...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='66d4...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='67b5...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6896...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6978...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6a58...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6b39...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6c1a...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6cfb...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ddc...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6ebd...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='6f9e...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='707f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7160...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7241...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7322...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7403...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='74e4...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='75c5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='76a6...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7787...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7868...', 5, v='-6"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7948...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7a29...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7b0a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7beb...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7ccc...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7dad...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7e8f...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f70...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8051...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8132...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8213...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='82f4...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='83d5...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='84b6...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8597...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8678...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8759...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='883a...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='891b...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='89fc...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8add...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8bbe...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8c9f...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8d80...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8e61...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='8f42...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9023...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9104...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='91e5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='92c6...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='93a8...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9488...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9569...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='964a...', 5, v='-9"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='972b...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='980c...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='98ed...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='99ce...', 5, v='-8"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9aaf...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9b90...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9c71...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9d52...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9e33...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9f14...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='9ff5...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a0d6...', 5, v='-7"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a1b7...', 5, v='-632...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a298...', 5, v='-351...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a379...', 5, v='-963...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a45a...', 5, v='644"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a53b...', 5, v='700"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a61c...', 5, v='942"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a6fd...', 5, v='99"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a7e0...', 5, v='464"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a8c0...', 5, v='912"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a0...', 5, v='289"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aa81...', 5, v='32"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ab62...', 5, v='46"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ac43...', 5, v='200"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ad24...', 5, v='921"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ae05...', 5, v='744"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='aee6...', 5, v='-561...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='afc7...', 5, v='-68"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b0a8...', 5, v='31"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b26a...', 5, v='142"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b34b...', 5, v='-123...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b42c...', 5, v='-451...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b50d...', 5, v='-729...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b5ee...', 5, v='-712...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b6cf...', 5, v='-158...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b7b0...', 5, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b891...', 5, v='-175...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='b972...', 5, v='-175...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ba53...', 5, v='-189...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bb34...', 5, v='-827...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bc15...', 5, v='-882...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bcf6...', 5, v='-899...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bdd8...', 5, v='644"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='beb8...', 5, v='417"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='bf99...', 5, v='524"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c07a...', 5, v='400"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c15b...', 5, v='372"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c23c...', 5, v='484"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c31d...', 5, v='591"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c3fe...', 5, v='336"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c4df...', 5, v='741"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c5c0...', 5, v='114"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c6a1...', 5, v='507"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c782...', 5, v='-51"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c863...', 5, v='136"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='c944...', 5, v='334"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ca25...', 5, v='235"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cb06...', 5, v='116"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cbe7...', 5, v='-417...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ccc8...', 5, v='-232...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cda9...', 5, v='-184...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ce8a...', 5, v='-219...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='cf6b...', 5, v='-134...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d04c...', 5, v='-51"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d12d...', 5, v='143"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d20e...', 5, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d2f0...', 5, v='11"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d3d0...', 5, v='600"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b1...', 5, v='644"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d592...', 5, v='836"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d673...', 5, v='1068...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d754...', 5, v='1213...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d835...', 5, v='-135...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d916...', 5, v='-755...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d9f7...', 5, v='-149...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dad8...', 5, v='-201...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dbb9...', 5, v='-256...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dc9a...', 5, v='-233...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='dd7b...', 5, v='-289...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='de5c...', 5, v='-278...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='df3d...', 5, v='-291...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e01d...', 5, v='-291...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e0fe...', 5, v='-283...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e1df...', 5, v='-301...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e2c0...', 5, v='-409...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e3a1...', 5, v='-397...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e482...', 5, v='-337...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e563...', 5, v='-342...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e644...', 5, v='-255...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e725...', 5, v='-218...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e806...', 5, v='-175...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e8e7...', 5, v='-477...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='e9c8...', 5, v='-709...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eaa9...', 5, v='-653...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eb8a...', 5, v='-653...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ec6b...', 5, v='-468...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ed4c...', 5, v='-211...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ee2d...', 5, v='-223...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ef0e...', 5, v='-319...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='eff0...', 5, v='-408...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f0d1...', 5, v='-430...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f1b2...', 5, v='-455...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f293...', 5, v='-462...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f374...', 5, v='-430...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f455...', 5, v='-460...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f536...', 5, v='-485...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f617...', 5, v='-461...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f6f8...', 5, v='-481...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f7d9...', 5, v='-424...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f8ba...', 5, v='-391...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='f99b...', 5, v='-380...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fa7c...', 5, v='-302...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fb5d...', 5, v='-303...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fc3e...', 5, v='-329...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fd1f...', 5, v='-268...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fe00...', 5, v='-253...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee1...', 5, v='-208...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='ffc2...', 5, v='-198...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='100a...', 6, v='-179...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1018...', 6, v='-179...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1026...', 6, v='-207...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1034...', 6, v='-272...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1042...', 6, v='-401...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1050...', 6, v='-432...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='105e...', 6, v='-433...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='106c...', 6, v='-472...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='107a...', 6, v='-433...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1088...', 6, v='-390...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1096...', 6, v='-411...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10a4...', 6, v='-432...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10b2...', 6, v='-434...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10c1...', 6, v='-416...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10cf...', 6, v='-435...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10dd...', 6, v='-416...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10eb...', 6, v='-445...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='10f9...', 6, v='-389...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1107...', 6, v='-328...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1115...', 6, v='-286...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1123...', 6, v='-266...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1131...', 6, v='-179...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='113f...', 6, v='-179...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='114d...', 6, v='-182...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='115b...', 6, v='-178...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1169...', 6, v='-158...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1177...', 6, v='-208...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1185...', 6, v='-288...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1193...', 6, v='-355...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11a2...', 6, v='-483...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11b0...', 6, v='-432...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11be...', 6, v='-539...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11cc...', 6, v='-445...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11da...', 6, v='-427...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11e8...', 6, v='-435...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='11f6...', 6, v='-390...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1205...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1213...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1221...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='122f...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='123d...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='124b...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1259...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1267...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1276...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1283...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='129f...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12ad...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12bb...', 6, v='-1"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12c9...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12d7...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12e5...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='12f3...', 6, v='-2"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1301...', 6, v='-4"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='130f...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='131d...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='132b...', 6, v='-3"/...', 2)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1339...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1347...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1355...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1364...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1372...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1380...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='138e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='139c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13aa...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13b8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13c6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13d4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13e2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13f0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='13fe...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='140c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='141a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1428...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1436...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1445...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1453...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1461...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='146f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='147d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='148b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1499...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14a7...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14b5...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14c3...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14d1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14df...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14ed...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='14fb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1509...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1517...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1526...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1542...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1550...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='155e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='156c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='157a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1588...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1596...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15a4...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15b2...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15c0...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ce...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15dc...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15ea...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='15f8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1607...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1615...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1623...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1631...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='163f...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='164d...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='165b...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1669...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1677...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1685...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1693...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16a1...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16af...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16bd...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16cb...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16d9...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16e8...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='16f6...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1704...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1712...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1720...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='172e...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='173c...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='174a...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1758...', 6, v='0"/>...', 1)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1766...', 6, v='-684...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1774...', 6, v='-684...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1782...', 6, v='-727...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1790...', 6, v='-671...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='179e...', 6, v='-604...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ac...', 6, v='-587...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17ba...', 6, v='-606...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17c9...', 6, v='-548...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='-543...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17e5...', 6, v='-534...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17f3...', 6, v='-498...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1801...', 6, v='-519...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='180f...', 6, v='-632...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='181d...', 6, v='-692...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='182b...', 6, v='-788...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1839...', 6, v='-134...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1847...', 6, v='-133...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1855...', 6, v='-128...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1863...', 6, v='-119...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1871...', 6, v='-124...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='187f...', 6, v='-116...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='188d...', 6, v='-125...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='189c...', 6, v='-119...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18b8...', 6, v='-756...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18c6...', 6, v='-810...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18d4...', 6, v='-767...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18e2...', 6, v='-656...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18f0...', 6, v='-616...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='18fe...', 6, v='-566...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='190c...', 6, v='-447...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='191a...', 6, v='-430...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1928...', 6, v='-425...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1936...', 6, v='-412...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1944...', 6, v='-412...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1952...', 6, v='-449...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1960...', 6, v='-513...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='196e...', 6, v='-596...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='197c...', 6, v='-635...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='198b...', 6, v='-596...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1999...', 6, v='-661...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19b5...', 6, v='-661...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19c3...', 6, v='-619...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19d1...', 6, v='-623...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19df...', 6, v='-631...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ed...', 6, v='-607...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19ee...', 6, v='-607...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='19fb...', 6, v='-239...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a09...', 6, v='-260...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a17...', 6, v='-305...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a25...', 6, v='-333...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a33...', 6, v='-223...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a41...', 6, v='-213...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a4f...', 6, v='-154...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a5e...', 6, v='-167...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a6c...', 6, v='-969...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a7a...', 6, v='-112...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a88...', 6, v='-107...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='-481...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aa4...', 6, v='-537...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ab2...', 6, v='-995...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ac0...', 6, v='-181...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ace...', 6, v='-263...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1adc...', 6, v='-292...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1aea...', 6, v='-259...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1af8...', 6, v='-289...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b06...', 6, v='-217...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1b14...', 6, v='-209...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='311"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c82...', 6, v='399"...', 3)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c90...', 6, v='3486...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c9e...', 6, v='3357...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cac...', 6, v='3670...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cba...', 6, v='3580...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cc8...', 6, v='5398...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cd6...', 6, v='5478...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ce4...', 6, v='5618...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1cf2...', 6, v='5659...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d01...', 6, v='5923...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d0f...', 6, v='6651...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d1d...', 6, v='6654...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d2b...', 6, v='6713...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d39...', 6, v='6885...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d47...', 6, v='6893...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d55...', 6, v='6705...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d63...', 6, v='5853...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d71...', 6, v='5545...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d7f...', 6, v='5589...', 4)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d8d...', 6, v='-321...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1d9b...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1da9...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1db7...', 6, v='-347...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dc5...', 6, v='-363...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dd3...', 6, v='-372...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1de1...', 6, v='-603...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1df0...', 6, v='-675...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1dfe...', 6, v='-664...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e0c...', 6, v='-677...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e1a...', 6, v='-679...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e28...', 6, v='-659...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e36...', 6, v='-613...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e44...', 6, v='-565...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e52...', 6, v='-491...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e60...', 6, v='-490...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e6e...', 6, v='-480...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e7c...', 6, v='-197...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e8a...', 6, v='-182...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1e98...', 6, v='-182...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ea6...', 6, v='-227...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eb4...', 6, v='-233...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ec2...', 6, v='-264...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ed1...', 6, v='-264...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1edf...', 6, v='-274...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1eed...', 6, v='-272...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1efb...', 6, v='-258...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f09...', 6, v='-254...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='-237...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f25...', 6, v='-233...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f33...', 6, v='-256...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f41...', 6, v='-278...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f4f...', 6, v='-319...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f5d...', 6, v='-358...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f6b...', 6, v='-359...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f79...', 6, v='-312...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f87...', 6, v='-333...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f95...', 6, v='-314...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fa4...', 6, v='-280...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fb2...', 6, v='-248...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fc0...', 6, v='-249...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fce...', 6, v='-217...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fdc...', 6, v='-213...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1fea...', 6, v='-215...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1ff8...', 6, v='-250...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2006...', 6, v='-239...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2014...', 6, v='-346...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2022...', 6, v='-451...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2030...', 6, v='-535...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='203e...', 6, v='-591...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='204c...', 6, v='-577...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='205a...', 6, v='-528...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2068...', 6, v='-538...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2076...', 6, v='-597...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2084...', 6, v='-610...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2093...', 6, v='-674...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20a1...', 6, v='-631...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20af...', 6, v='-553...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20bd...', 6, v='-545...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20cb...', 6, v='-463...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20d9...', 6, v='-434...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20e7...', 6, v='-404...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='20f5...', 6, v='-385...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2103...', 6, v='-351...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2111...', 6, v='-313...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='211f...', 6, v='-301...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='212d...', 6, v='-290...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='213b...', 6, v='-282...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2149...', 6, v='-368...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2157...', 6, v='-450...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2165...', 6, v='-584...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2174...', 6, v='-619...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2182...', 6, v='-616...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2190...', 6, v='-614...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='219e...', 6, v='-622...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ac...', 6, v='-593...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='-592...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21c8...', 6, v='-555...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21d6...', 6, v='-624...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21e4...', 6, v='-575...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21f2...', 6, v='-577...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2200...', 6, v='-546...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='220e...', 6, v='-539...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='221c...', 6, v='-454...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='222a...', 6, v='-387...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2238...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2247...', 6, v='-329...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2255...', 6, v='-168...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2263...', 6, v='-208...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2271...', 6, v='-204...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='227f...', 6, v='-167...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='228d...', 6, v='-178...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='229b...', 6, v='-349...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22a9...', 6, v='-408...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22b7...', 6, v='-445...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22c5...', 6, v='-481...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22d3...', 6, v='-440...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22e1...', 6, v='-462...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22ef...', 6, v='-482...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='22fd...', 6, v='-464...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='230b...', 6, v='-443...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2319...', 6, v='-539...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2327...', 6, v='-555...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2336...', 6, v='-588...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2344...', 6, v='-520...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2352...', 6, v='-520...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2360...', 6, v='-525...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='236e...', 6, v='-434...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='237c...', 6, v='-419...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='238a...', 6, v='-399...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2398...', 6, v='-319...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23a6...', 6, v='-332...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23b4...', 6, v='-319...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23c2...', 6, v='-296...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23d0...', 6, v='-295...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23de...', 6, v='-291...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23ec...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='23fa...', 6, v='-456...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2408...', 6, v='-501...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2417...', 6, v='-579...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2425...', 6, v='-660...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2433...', 6, v='-678...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2441...', 6, v='-673...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='244f...', 6, v='-643...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='-641...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2479...', 6, v='-626...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2487...', 6, v='-537...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2495...', 6, v='-570...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24a3...', 6, v='-566...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24b1...', 6, v='-581...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24bf...', 6, v='-549...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24cd...', 6, v='-536...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24db...', 6, v='-453...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24e9...', 6, v='-400...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='24f8...', 6, v='-348...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2506...', 6, v='-359...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2514...', 6, v='-357...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2522...', 6, v='-342...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2530...', 6, v='-361...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='253e...', 6, v='-406...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='254c...', 6, v='-420...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='255a...', 6, v='-497...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2568...', 6, v='-584...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2576...', 6, v='-566...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2584...', 6, v='-151...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2592...', 6, v='-862...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25a0...', 6, v='-460...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ae...', 6, v='-632...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25bc...', 6, v='-612...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25ca...', 6, v='-581...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25d9...', 6, v='-580...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25e7...', 6, v='-562...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='25f5...', 6, v='-531...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2603...', 6, v='-554...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2611...', 6, v='-491...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='261f...', 6, v='-458...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='262d...', 6, v='-467...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='263b...', 6, v='-369...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2649...', 6, v='-349...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2657...', 6, v='-358...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2665...', 6, v='-368...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2673...', 6, v='-360...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2681...', 6, v='-368...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='268f...', 6, v='-385...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='269d...', 6, v='-392...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ab...', 6, v='-395...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26ba...', 6, v='-446...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26c8...', 6, v='-425...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26d6...', 6, v='-391...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26e4...', 6, v='-389...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='26f2...', 6, v='-353...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2700...', 6, v='-379...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='-362...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='271c...', 6, v='-454...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='272a...', 6, v='-517...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2738...', 6, v='-503...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2746...', 6, v='-502...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2754...', 6, v='-502...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2762...', 6, v='-399...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2770...', 6, v='-355...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='277e...', 6, v='-320...', 5)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='6746...', 6, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='2212...', 155)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='6738...', 6, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0:0:...', 147)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='6734...', 6, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='7289...', 176)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='6730...', 6, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0:0:...', 87)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='2627...', 8, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::1...', 258)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::5...', 185)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='6::1...', 186)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='6::1...', 201)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='629:...', 257)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='2289...', 258)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='1954...', 292)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='2.48...', 279)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.00...', 304)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='5016...', 313)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1243...', 68)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='8197...', 288)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='8270...', 280)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='6511...', 268)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='3280...', 278)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='8226...', 56)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='2627...', 8, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::0...', 144)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='0::0...', 162)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='273:...', 298)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='16::...', 298)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='14::...', 323)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0::0...', 306)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.03...', 294)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='0::0...', 223)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='0::0...', 28)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1413...', 268)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='303:...', 270)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='5304...', 297)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='1514...', 280)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='1776...', 61)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='2627...', 8, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::4...', 265)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::8...', 208)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='8::1...', 206)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='8::1...', 222)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='2::4...', 228)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='0::0...', 292)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='4757...', 350)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='3.74...', 307)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0::0...', 234)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='1113...', 339)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='3972...', 63)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1295...', 285)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='3876...', 321)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='6481...', 322)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='7162...', 331)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='5709...', 61)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='2627...', 8, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::0...', 144)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='0::0...', 157)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='1070...', 279)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='1231...', 208)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='0::0...', 237)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='0.03...', 296)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='0::0...', 146)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='0::0...', 28)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='9208...', 271)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='0::0...', 25)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1314...', 7, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='2703...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1313...', 7, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='3066...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1313...', 7, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='1576...', 7)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='1313...', 7, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='1270...', 6)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='5251...', 8, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::1...', 324)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='2226...', 336)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='2243...', 334)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='2261...', 334)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='2937...', 336)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='3974...', 334)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='4804...', 369)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='5025...', 523)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='5025...', 490)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='5944...', 361)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1369...', 78)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1748...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='2118...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='2325...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='2434...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='2668...', 70)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='5251...', 8, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::0...', 144)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='0::0...', 165)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='2745...', 327)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='5015...', 334)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='9659...', 415)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1317...', 573)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1317...', 539)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='1382...', 386)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1443...', 78)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1627...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='1747...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='2013...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='2534...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='3009...', 70)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='5251...', 8, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::4...', 328)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='7309...', 336)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='7346...', 334)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='7382...', 334)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='8444...', 336)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='9988...', 377)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='2254...', 421)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1520...', 573)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1520...', 540)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='4071...', 386)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='7095...', 78)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='7709...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='8856...', 400)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='1085...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='1306...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='1537...', 79)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='5251...', 8, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='0::0...', 144)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='0::0...', 142)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='0::0...', 160)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='4546...', 306)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='1353...', 334)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='1715...', 374)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1715...', 526)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1715...', 486)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='1715...', 338)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1715...', 68)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='2636...', 367)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='1270...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='1270...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='1270...', 382)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='1270...', 70)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='3460...', 5, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='6094...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='6116...', 432)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='6117...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='6117...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='6123...', 432)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='6134...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='6142...', 449)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1448...', 572)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1448...', 543)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='6154...', 434)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='6231...', 88)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='6269...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='6306...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='6327...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='6338...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='6361...', 79)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='3380...', 5, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='8817...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='8817...', 480)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='8817...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='8817...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='8818...', 480)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='8822...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='8827...', 495)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='1111...', 570)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='1112...', 552)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='8831...', 482)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='8832...', 98)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='8834...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='8835...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='8838...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='8843...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='8848...', 88)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='3340...', 5, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='9437...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='9510...', 432)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='9511...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='9511...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='9522...', 432)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='9537...', 430)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='9663...', 449)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='8980...', 518)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1534...', 6, v='8983...', 507)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='17d7...', 6, v='9844...', 466)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1a96...', 6, v='1014...', 98)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1c74...', 6, v='1020...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1f17...', 6, v='1032...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='21ba...', 6, v='1052...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='246b...', 6, v='1074...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='270e...', 6, v='1097...', 88)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(par, NULL, NULL, 0, 2, 0, memind='3300...', 5, h='3dc1...', 8)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='0" v...', 1, v='3861...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='2a30...', 5, v='3861...', 480)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='5541...', 5, v='3861...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='7f71...', 5, v='3861...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='a9a1...', 5, v='3861...', 480)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='d4b2...', 5, v='3862...', 478)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='fee2...', 5, v='3862...', 498)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(val, NULL, NULL, 0, 2, 0, o='1291...', 6, v='2297...', 574)
+SAX.endElementNs(val, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(par, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.endElementNs(device, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(select, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(data, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(electroxml, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att5.sax2 b/result/noent/att5.sax2
new file mode 100644
index 0000000..22da39d
--- /dev/null
+++ b/result/noent/att5.sax2
@@ -0,0 +1,149 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.attributeDecl(normId, attr, 8, 3, NULL, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 3)
+SAX.comment( no normalization )
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr=' '...', 3)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr=' f...', 13)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr=' fo...', 8)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr=' foo...', 9)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='foob...', 8)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr=' & ...', 3)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr=' f...', 13)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr=' fo...', 9)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='&foo...', 9)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='foob...', 9)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr=' < ...', 3)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr=' f...', 13)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr=' fo...', 9)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='<foo...', 9)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='foob...', 9)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(norm, NULL, NULL, 0, 1, 0, attr='
+...', 6)
+SAX.endElementNs(norm, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.comment( normalization )
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr=''/>
+...', 0)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foo ...', 7)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 6)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foo ...', 7)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 6)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='&...', 1)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foo&...', 7)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 7)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='&foo...', 8)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 8)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='<...', 1)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foo<...', 7)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 7)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='<foo...', 8)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='foob...', 8)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(normId, NULL, NULL, 0, 1, 0, attr='
+ ...', 3)
+SAX.endElementNs(normId, NULL, NULL)
+SAX.characters( , 1)
+SAX.comment( PBM serializing back )
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att6.sax2 b/result/noent/att6.sax2
new file mode 100644
index 0000000..54dd6d3
--- /dev/null
+++ b/result/noent/att6.sax2
@@ -0,0 +1,20 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(Invoice, NULL, 'urn:oasis:names:tc:ubl:Invoice:1.0:0.70', 4, xmlns:ccts='urn:oasis:names:tc:ubl:CoreComponentParameters:1.0:0.70', xmlns:cct='urn:oasis:names:tc:ubl:CoreComponentTypes:1.0:0.70', xmlns:cat='urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70', xmlns='urn:oasis:names:tc:ubl:Invoice:1.0:0.70', 0, 0)
+SAX.characters(
+ , 4)
+SAX.startElementNs(ReferencedOrder, cat, 'urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(SellersOrderID, cat, 'urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70', 0, 11, 0, schemeID='pval...', 47, schemeAgencyID='pval...', 53, schemeVersionID='pval...', 54, schemeAgencySchemeID='pval...', 59, schemeAgencySchemeAgencyID='pval...', 65, schemeDataURI='pval...', 52, schemeURI='pval...', 48, UID='pval...', 42, UIDRef='pval...', 45, UIDRefs='pval...', 47, language='pval...', 47)
+SAX.characters(pvalue-, 7)
+SAX.characters(>, 1)
+SAX.characters(ReferencedOrder.SellersOrderID, 30)
+SAX.endElementNs(SellersOrderID, cat, 'urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70')
+SAX.characters(
+ , 4)
+SAX.endElementNs(ReferencedOrder, cat, 'urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70')
+SAX.characters(
+, 1)
+SAX.endElementNs(Invoice, NULL, 'urn:oasis:names:tc:ubl:Invoice:1.0:0.70')
+SAX.endDocument()
diff --git a/result/noent/att7.sax2 b/result/noent/att7.sax2
new file mode 100644
index 0000000..4a5f318
--- /dev/null
+++ b/result/noent/att7.sax2
@@ -0,0 +1,23 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(x, , )
+SAX.elementDecl(x, 4, ...)
+SAX.elementDecl(test, 1, ...)
+SAX.attributeDecl(test, att, 1, 1, attvalue, ...)
+SAX.entityDecl(test.ent, 1, (null), (null), <test/>)
+SAX.getEntity(test.ent)
+SAX.externalSubset(x, , )
+SAX.startElementNs(x, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(test, NULL, NULL, 0, 1, 1, att='attv...', 8)
+SAX.endElementNs(test, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.getEntity(test.ent)
+SAX.startElementNs(test, NULL, NULL, 0, 1, 1, att='attv...', 8)
+SAX.endElementNs(test, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(x, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/att8.sax2 b/result/noent/att8.sax2
new file mode 100644
index 0000000..1f2344a
--- /dev/null
+++ b/result/noent/att8.sax2
@@ -0,0 +1,29 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(response, ino, 'http://namespaces.softwareag.com/tamino/response2', 2, xmlns:ino='http://namespaces.softwareag.com/tamino/response2', xmlns:xql='http://metalab.unc.edu/xql/', 2, 0, ino:sessionid='556"...', 3, ino:sessionkey='1590...', 10)
+SAX.startElementNs(query, xql, 'http://metalab.unc.edu/xql/', 0, 0, 0)
+SAX.characters(/bsk:DocPart[@docId=, 20)
+SAX.characters(', 1)
+SAX.characters(20040308152601345236, 20)
+SAX.characters(', 1)
+SAX.characters( and @docPartNo=1], 18)
+SAX.endElementNs(query, xql, 'http://metalab.unc.edu/xql/')
+SAX.startElementNs(message, ino, 'http://namespaces.softwareag.com/tamino/response2', 0, 1, 0, ino:returnvalue='0"><...', 1)
+SAX.startElementNs(messageline, ino, 'http://namespaces.softwareag.com/tamino/response2', 0, 0, 0)
+SAX.characters(XQL Request processing, 22)
+SAX.endElementNs(messageline, ino, 'http://namespaces.softwareag.com/tamino/response2')
+SAX.endElementNs(message, ino, 'http://namespaces.softwareag.com/tamino/response2')
+SAX.startElementNs(result, xql, 'http://metalab.unc.edu/xql/', 0, 0, 0)
+SAX.startElementNs(DocPart, bsk, 'http://www.heitec.net/sara4/tamino/basket', 1, xmlns:bsk='http://www.heitec.net/sara4/tamino/basket', 3, 0, docId='2004...', 20, docPartNo='1" i...', 1, ino:id='1529...', 5)
+SAX.startElementNs(File, bsk, 'http://www.heitec.net/sara4/tamino/basket', 0, 2, 0, name='4898...', 13, size='7519...', 5)
+SAX.characters( , 1)
+SAX.endElementNs(File, bsk, 'http://www.heitec.net/sara4/tamino/basket')
+SAX.endElementNs(DocPart, bsk, 'http://www.heitec.net/sara4/tamino/basket')
+SAX.endElementNs(result, xql, 'http://metalab.unc.edu/xql/')
+SAX.startElementNs(message, ino, 'http://namespaces.softwareag.com/tamino/response2', 0, 1, 0, ino:returnvalue='0"><...', 1)
+SAX.startElementNs(messageline, ino, 'http://namespaces.softwareag.com/tamino/response2', 0, 0, 0)
+SAX.characters(XQL Request processed, 21)
+SAX.endElementNs(messageline, ino, 'http://namespaces.softwareag.com/tamino/response2')
+SAX.endElementNs(message, ino, 'http://namespaces.softwareag.com/tamino/response2')
+SAX.endElementNs(response, ino, 'http://namespaces.softwareag.com/tamino/response2')
+SAX.endDocument()
diff --git a/result/noent/att9.sax2 b/result/noent/att9.sax2
new file mode 100644
index 0000000..09b3a04
--- /dev/null
+++ b/result/noent/att9.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.attributeDecl(doc, a1, 8, 1, 1 2, ...)
+SAX.elementDecl(doc, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 1, 1, a1='1 2...', 3)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/attrib.xml.sax2 b/result/noent/attrib.xml.sax2
new file mode 100644
index 0000000..c7d2c87
--- /dev/null
+++ b/result/noent/attrib.xml.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(item, NULL, NULL, 0, 5, 0, title='Icro...', 173, url='http...', 24, first_time='9850...', 9, last_time='9850...', 9, visits='1"/>...', 1)
+SAX.endElementNs(item, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/badcomment.xml.sax2 b/result/noent/badcomment.xml.sax2
new file mode 100644
index 0000000..08e5622
--- /dev/null
+++ b/result/noent/badcomment.xml.sax2
@@ -0,0 +1,24 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(foo, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.comment( def='NT-Char')
+SAX.comment(>Char</nt>* ']]>' <nt def='NT-Char'>Char</nt>*))
+']]>'</rhs>
+<com>CDATA sections</com>
+<rhs>| '<!DOCTYPE'
+(<nt def="NT-Char">Char</nt> - ('[' | ']'))+
+('['
+<nt def="NT-simpleDTD">simpleDTD</nt>*
+']')? '>'</rhs>
+<com>doc type declaration</com>
+<prod id="NT-simpleDTD"><lhs>simpleDTD</lhs>
+<rhs>'<!&como;'
+(<nt def='NT-Char'>Char</nt>* -
+(<nt def='NT-Char'>Char</nt>* '&comc;' <nt def='NT-Char'>Char</nt>*))
+'&comc;>'</rhs>)
+SAX.characters(
+, 1)
+SAX.endElementNs(foo, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/bigentname.xml.sax2 b/result/noent/bigentname.xml.sax2
new file mode 100644
index 0000000..1067843
--- /dev/null
+++ b/result/noent/bigentname.xml.sax2
@@ -0,0 +1,15 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.entityDecl(very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name, 1, (null), (null), "Yes")
+SAX.getEntity(very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name)
+SAX.entityDecl(WhatHeSaid, 1, (null), (null), He said &very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name;)
+SAX.getEntity(WhatHeSaid)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.getEntity(WhatHeSaid)
+SAX.characters(He said , 8)
+SAX.getEntity(very_big_entity_name01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_very_big_ent_name)
+SAX.characters("Yes", 5)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/bigname.xml.sax2 b/result/noent/bigname.xml.sax2
new file mode 100644
index 0000000..ef939f9
--- /dev/null
+++ b/result/noent/bigname.xml.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(this_is_a_very_large_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(this_is_a_very_large_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/bigname2.xml.sax2 b/result/noent/bigname2.xml.sax2
new file mode 100644
index 0000000..6b406f4
--- /dev/null
+++ b/result/noent/bigname2.xml.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(start_nc_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name, this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix, 'http://www.example.com/testns/', 1, xmlns:this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix='http://www.example.com/testns/', 0, 0)
+SAX.endElementNs(start_nc_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_the_very_large_name, this_is_a_very_large_qualified_name_01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789_end_of_prefix, 'http://www.example.com/testns/')
+SAX.endDocument()
diff --git a/result/noent/cdata-2-byte-UTF-8.xml b/result/noent/cdata-2-byte-UTF-8.xml
new file mode 100644
index 0000000..8552efc
--- /dev/null
+++ b/result/noent/cdata-2-byte-UTF-8.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+<p><![CDATA[ ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+</doc>
diff --git a/result/noent/cdata-2-byte-UTF-8.xml.sax2 b/result/noent/cdata-2-byte-UTF-8.xml.sax2
new file mode 100644
index 0000000..2da2d50
--- /dev/null
+++ b/result/noent/cdata-2-byte-UTF-8.xml.sax2
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(ČČČČČČČČČČ, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ÄÄÄÄÄÄÄÄÄÄ, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/cdata-3-byte-UTF-8.xml b/result/noent/cdata-3-byte-UTF-8.xml
new file mode 100644
index 0000000..b959a12
--- /dev/null
+++ b/result/noent/cdata-3-byte-UTF-8.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+</doc>
diff --git a/result/noent/cdata-3-byte-UTF-8.xml.sax2 b/result/noent/cdata-3-byte-UTF-8.xml.sax2
new file mode 100644
index 0000000..3969579
--- /dev/null
+++ b/result/noent/cdata-3-byte-UTF-8.xml.sax2
@@ -0,0 +1,23 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(ççççççç, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ççççççç, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( 牛牛牛牛牛牛, 1202)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/cdata-4-byte-UTF-8.xml b/result/noent/cdata-4-byte-UTF-8.xml
new file mode 100644
index 0000000..4d1d9a8
--- /dev/null
+++ b/result/noent/cdata-4-byte-UTF-8.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[ 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[ 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[ 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+</doc>
diff --git a/result/noent/cdata-4-byte-UTF-8.xml.sax2 b/result/noent/cdata-4-byte-UTF-8.xml.sax2
new file mode 100644
index 0000000..5e07d83
--- /dev/null
+++ b/result/noent/cdata-4-byte-UTF-8.xml.sax2
@@ -0,0 +1,28 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata(🍦🍦🍦🍦🍦, 1200)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ð¦ð¦ð¦ð¦ð, 1201)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ð¦ð¦ð¦ð¦ð, 1202)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.pcdata( ð¦ð¦ð¦ð¦ð, 1203)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/cdata.sax2 b/result/noent/cdata.sax2
new file mode 100644
index 0000000..117b2b0
--- /dev/null
+++ b/result/noent/cdata.sax2
@@ -0,0 +1,10 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.pcdata(<greeting>Hello, wor, 34)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/cdata2.sax2 b/result/noent/cdata2.sax2
new file mode 100644
index 0000000..d1420e9
--- /dev/null
+++ b/result/noent/cdata2.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(collection, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(test, NULL, NULL, 0, 0, 0)
+SAX.pcdata(
+ <![CDATA[abc], 18)
+SAX.characters(], 1)
+SAX.characters(>, 1)
+SAX.pcdata(
+ , 3)
+SAX.endElementNs(test, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(collection, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/comment.xml.sax2 b/result/noent/comment.xml.sax2
new file mode 100644
index 0000000..da57f50
--- /dev/null
+++ b/result/noent/comment.xml.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.comment( document start )
+SAX.characters(
+, 1)
+SAX.startElementNs(empty, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(empty, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.comment( document end )
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/comment2.xml.sax2 b/result/noent/comment2.xml.sax2
new file mode 100644
index 0000000..a286744
--- /dev/null
+++ b/result/noent/comment2.xml.sax2
@@ -0,0 +1,13 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( document start )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(empty, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(empty, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.comment( document end )
+SAX.endDocument()
diff --git a/result/noent/comment3.xml.sax2 b/result/noent/comment3.xml.sax2
new file mode 100644
index 0000000..a5f1fd6
--- /dev/null
+++ b/result/noent/comment3.xml.sax2
@@ -0,0 +1,167 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( test of very very long comments and buffer limits
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+01234567890123456789012345678901234567890123456789
+)
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/comment4.xml.sax2 b/result/noent/comment4.xml.sax2
new file mode 100644
index 0000000..0e2611f
--- /dev/null
+++ b/result/noent/comment4.xml.sax2
@@ -0,0 +1,8 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( test of non ascii comments like là et très )
+SAX.comment(à another one )
+SAX.comment( another one à)
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/comment5.xml.sax2 b/result/noent/comment5.xml.sax2
new file mode 100644
index 0000000..f0940b2
--- /dev/null
+++ b/result/noent/comment5.xml.sax2
@@ -0,0 +1,12 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( test of hyphen and line break handling
+ some text - interrupted -
+- - - - - - - - - - - - - - - - - - - - - -
+ this should stop here^
+
+
+)
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/comment6.xml.sax2 b/result/noent/comment6.xml.sax2
new file mode 100644
index 0000000..7dd7dc0
--- /dev/null
+++ b/result/noent/comment6.xml.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment(
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+)
+SAX.internalSubset(a, , )
+SAX.elementDecl(a, 1, ...)
+SAX.externalSubset(a, , )
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(a, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dav1.sax2 b/result/noent/dav1.sax2
new file mode 100644
index 0000000..44ad11c
--- /dev/null
+++ b/result/noent/dav1.sax2
@@ -0,0 +1,81 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(BoxType, R, 'http://www.foo.bar/boxschema', 0, 0, 0)
+SAX.characters(Box type A, 10)
+SAX.endElementNs(BoxType, R, 'http://www.foo.bar/boxschema')
+SAX.characters(
+ , 7)
+SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema')
+SAX.characters(
+ , 7)
+SAX.startElementNs(author, R, 'http://www.foo.bar/boxschema', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(Name, R, 'http://www.foo.bar/boxschema', 0, 0, 0)
+SAX.characters(J.J. Dingleheimerschmidt, 24)
+SAX.endElementNs(Name, R, 'http://www.foo.bar/boxschema')
+SAX.characters(
+ , 7)
+SAX.endElementNs(author, R, 'http://www.foo.bar/boxschema')
+SAX.characters(
+ , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 200 OK, 15)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(DingALing, R, 'http://www.foo.bar/boxschema', 0, 0, 0)
+SAX.endElementNs(DingALing, R, 'http://www.foo.bar/boxschema')
+SAX.characters(
+ , 7)
+SAX.startElementNs(Random, R, 'http://www.foo.bar/boxschema', 0, 0, 0)
+SAX.endElementNs(Random, R, 'http://www.foo.bar/boxschema')
+SAX.characters(
+ , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 403 Forbidden, 22)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters( The user does not have access, 64)
+SAX.endElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters( There has been an access viol, 44)
+SAX.endElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav10.sax2 b/result/noent/dav10.sax2
new file mode 100644
index 0000000..e93e22c
--- /dev/null
+++ b/result/noent/dav10.sax2
@@ -0,0 +1,12 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(owner, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.ics.uci.edu/~ejw/co, 40)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(owner, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav11.sax2 b/result/noent/dav11.sax2
new file mode 100644
index 0000000..d0f2329
--- /dev/null
+++ b/result/noent/dav11.sax2
@@ -0,0 +1,62 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(lockdiscovery, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(activelock, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(locktype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(write, 5)
+SAX.endElementNs(locktype, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(exclusive, 9)
+SAX.endElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(addlocks, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.endElementNs(addlocks, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(owner, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ http://www.ics.uci.edu/~ejw, 46)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(owner, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(timeout, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(Second-604800, 13)
+SAX.endElementNs(timeout, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(locktoken, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ opaquelocktoken:xyz122393, 59)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(locktoken, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(activelock, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(lockdiscovery, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav12.sax2 b/result/noent/dav12.sax2
new file mode 100644
index 0000000..61715b6
--- /dev/null
+++ b/result/noent/dav12.sax2
@@ -0,0 +1,6 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(http://www.ics.uci.edu/~ejw/co, 40)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav13.sax2 b/result/noent/dav13.sax2
new file mode 100644
index 0000000..f6c5381
--- /dev/null
+++ b/result/noent/dav13.sax2
@@ -0,0 +1,46 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ http://webdav.sb.aol.com/, 66)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ http://webdav.sb.aol.com/, 54)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 202 Accepted, 21)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.bar/blah, 19)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 403 Forbidden, 22)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav15.sax2 b/result/noent/dav15.sax2
new file mode 100644
index 0000000..6040cd1
--- /dev/null
+++ b/result/noent/dav15.sax2
@@ -0,0 +1,76 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:F='http://www.foocorp.com/Project/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(Source, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(projfiles, F, 'http://www.foocorp.com/Project/', 0, 0, 0)
+SAX.characters(Source, 6)
+SAX.endElementNs(projfiles, F, 'http://www.foocorp.com/Project/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(src, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.bar/program, 22)
+SAX.endElementNs(src, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(dst, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.bar/src/main.c, 25)
+SAX.endElementNs(dst, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(link, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(projfiles, F, 'http://www.foocorp.com/Project/', 0, 0, 0)
+SAX.characters(Library, 7)
+SAX.endElementNs(projfiles, F, 'http://www.foocorp.com/Project/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(src, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.bar/program, 22)
+SAX.endElementNs(src, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(dst, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.bar/src/main.lib, 27)
+SAX.endElementNs(dst, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(link, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(projfiles, F, 'http://www.foocorp.com/Project/', 0, 0, 0)
+SAX.characters(Makefile, 8)
+SAX.endElementNs(projfiles, F, 'http://www.foocorp.com/Project/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(src, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.bar/program, 22)
+SAX.endElementNs(src, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(dst, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.bar/src/makefile, 27)
+SAX.endElementNs(dst, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(link, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(Source, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav16.sax2 b/result/noent/dav16.sax2
new file mode 100644
index 0000000..1ede22e
--- /dev/null
+++ b/result/noent/dav16.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(propfind, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(lockdiscovery, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(lockdiscovery, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(propfind, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav17.sax2 b/result/noent/dav17.sax2
new file mode 100644
index 0000000..48185a2
--- /dev/null
+++ b/result/noent/dav17.sax2
@@ -0,0 +1,78 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(lockdiscovery, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(activelock, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 11)
+SAX.startElementNs(locktype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(write, 5)
+SAX.endElementNs(locktype, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(exclusive, 9)
+SAX.endElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(addlocks, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 13)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://foo.com/doc/, 19)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 11)
+SAX.endElementNs(addlocks, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(owner, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(Jane Smith, 10)
+SAX.endElementNs(owner, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(timeout, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(Infinite, 8)
+SAX.endElementNs(timeout, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(locktoken, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 13)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(iamuri:unique!!!!!, 18)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 11)
+SAX.endElementNs(locktoken, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 9)
+SAX.endElementNs(activelock, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(lockdiscovery, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 200 OK, 15)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav18.sax2 b/result/noent/dav18.sax2
new file mode 100644
index 0000000..cddc100
--- /dev/null
+++ b/result/noent/dav18.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(propfind, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(supportedlock, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(supportedlock, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(propfind, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav19.sax2 b/result/noent/dav19.sax2
new file mode 100644
index 0000000..f0dd402
--- /dev/null
+++ b/result/noent/dav19.sax2
@@ -0,0 +1,62 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(supportedlock, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(LockEntry, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 11)
+SAX.startElementNs(locktype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(Write, 5)
+SAX.endElementNs(locktype, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(Exclusive, 9)
+SAX.endElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 9)
+SAX.endElementNs(LockEntry, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(LockEntry, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 11)
+SAX.startElementNs(locktype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(Write, 5)
+SAX.endElementNs(locktype, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(Shared, 6)
+SAX.endElementNs(lockscope, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 9)
+SAX.endElementNs(LockEntry, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(supportedlock, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 200 OK, 15)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav2.sax2 b/result/noent/dav2.sax2
new file mode 100644
index 0000000..22c7bb0
--- /dev/null
+++ b/result/noent/dav2.sax2
@@ -0,0 +1,84 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, S, 'http://www.ietf.org/standards/dav/', 2, xmlns:S='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/, 29)
+SAX.endElementNs(href, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(prop, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(BoxType, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.characters(Box type A, 10)
+SAX.endElementNs(BoxType, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(author, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(Name, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.characters(Hadrian, 7)
+SAX.endElementNs(Name, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(author, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(prop, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP 1.1 200 OK, 15)
+SAX.endElementNs(status, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/i, 39)
+SAX.endElementNs(href, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(prop, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(BoxType, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.characters(Box type B, 10)
+SAX.endElementNs(BoxType, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(prop, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, S, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP 1.1 200 OK, 15)
+SAX.endElementNs(status, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, S, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, S, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav3.sax2 b/result/noent/dav3.sax2
new file mode 100644
index 0000000..0088f29
--- /dev/null
+++ b/result/noent/dav3.sax2
@@ -0,0 +1,63 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/, 29)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(author, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.endElementNs(author, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP 1.1 200 OK, 15)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/i, 39)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(bigbox, R, 'http://www.foo.bar/boxschema/', 0, 0, 0)
+SAX.endElementNs(bigbox, R, 'http://www.foo.bar/boxschema/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP 1.1 200 OK, 15)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav4.sax2 b/result/noent/dav4.sax2
new file mode 100644
index 0000000..58fb8ac
--- /dev/null
+++ b/result/noent/dav4.sax2
@@ -0,0 +1,51 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(propertyupdate, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:Z='http://www.w3.com/standards/z39.50/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(set, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(authors, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(Author, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0)
+SAX.characters(Jim Whitehead, 13)
+SAX.endElementNs(Author, Z, 'http://www.w3.com/standards/z39.50/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(Author, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0)
+SAX.characters(Roy Fielding, 12)
+SAX.endElementNs(Author, Z, 'http://www.w3.com/standards/z39.50/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(authors, Z, 'http://www.w3.com/standards/z39.50/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(set, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(remove, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(Copyright-Owner, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0)
+SAX.endElementNs(Copyright-Owner, Z, 'http://www.w3.com/standards/z39.50/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(remove, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(propertyupdate, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav5.sax2 b/result/noent/dav5.sax2
new file mode 100644
index 0000000..6062cca
--- /dev/null
+++ b/result/noent/dav5.sax2
@@ -0,0 +1,54 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 2, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:Z='http://www.w3.com/standards/z39.50/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(Authors, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0)
+SAX.endElementNs(Authors, Z, 'http://www.w3.com/standards/z39.50/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 420 Method Failure, 27)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(Copyright-Owner, Z, 'http://www.w3.com/standards/z39.50/', 0, 0, 0)
+SAX.endElementNs(Copyright-Owner, Z, 'http://www.w3.com/standards/z39.50/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 409 Conflict, 21)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters( Copyright Owner can not be de, 47)
+SAX.endElementNs(responsedescription, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav6.sax2 b/result/noent/dav6.sax2
new file mode 100644
index 0000000..31952c5
--- /dev/null
+++ b/result/noent/dav6.sax2
@@ -0,0 +1,66 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/', 1, xmlns:D='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.microsoft.com/user/, 55)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(resourcetype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(collection, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.endElementNs(collection, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(resourcetype, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP 1.1 200 OK, 15)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ http://www.microsoft.co, 66)
+SAX.endElementNs(href, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(prop, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(resourcetype, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.endElementNs(resourcetype, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(prop, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, D, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP 1.1 200 OK, 15)
+SAX.endElementNs(status, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, D, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, D, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav7.sax2 b/result/noent/dav7.sax2
new file mode 100644
index 0000000..1d51e74
--- /dev/null
+++ b/result/noent/dav7.sax2
@@ -0,0 +1,60 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/', 1, xmlns:d='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/r, 38)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/r, 38)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 200 OK, 15)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/, 29)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 420 Method Failure, 27)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/r, 38)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 412 Precondition Fail, 32)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav8.sax2 b/result/noent/dav8.sax2
new file mode 100644
index 0000000..7de547e
--- /dev/null
+++ b/result/noent/dav8.sax2
@@ -0,0 +1,54 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/', 1, xmlns:d='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/othercontai, 43)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/othercontai, 43)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/othercontai, 34)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/othercontai, 39)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 201 Created, 20)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/othercontai, 37)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 412 Precondition Fail, 32)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/dav9.sax2 b/result/noent/dav9.sax2
new file mode 100644
index 0000000..26e4942
--- /dev/null
+++ b/result/noent/dav9.sax2
@@ -0,0 +1,70 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/', 1, xmlns:d='http://www.ietf.org/standards/dav/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/r, 38)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/r, 38)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/, 29)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/C, 34)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 201 Created, 20)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/container/C, 31)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 420 Method Failure, 27)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(response, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(href, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(http://www.foo.bar/othercontai, 36)
+SAX.endElementNs(href, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(status, d, 'http://www.ietf.org/standards/dav/', 0, 0, 0)
+SAX.characters(HTTP/1.1 409 Conflict, 21)
+SAX.endElementNs(status, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(response, d, 'http://www.ietf.org/standards/dav/')
+SAX.characters(
+, 1)
+SAX.endElementNs(multistatus, d, 'http://www.ietf.org/standards/dav/')
+SAX.endDocument()
diff --git a/result/noent/defattr.xml.sax2 b/result/noent/defattr.xml.sax2
new file mode 100644
index 0000000..dfeba49
--- /dev/null
+++ b/result/noent/defattr.xml.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 1, ...)
+SAX.attributeDecl(doc, xmlns, 1, 4, http://www.example.com/, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, 'http://www.example.com/', 1, xmlns='http://www.example.com/', 0, 0)
+SAX.endElementNs(doc, NULL, 'http://www.example.com/')
+SAX.endDocument()
diff --git a/result/noent/defattr2.xml.sax2 b/result/noent/defattr2.xml.sax2
new file mode 100644
index 0000000..0f77271
--- /dev/null
+++ b/result/noent/defattr2.xml.sax2
@@ -0,0 +1,11 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 1, ...)
+SAX.attributeDecl(doc, defatt, 9, 1, 0, ...)
+SAX.attributeDecl(doc, xmlns:tst, 1, 4, http://example.org, ...)
+SAX.attributeDecl(doc, tst:att, 9, 1, 1, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 1, xmlns:tst='http://example.org', 3, 2, att='1"/>...', 1, defatt='0...', 1, tst:att='1...', 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dia1.sax2 b/result/noent/dia1.sax2
new file mode 100644
index 0000000..4821c9b
--- /dev/null
+++ b/result/noent/dia1.sax2
@@ -0,0 +1,323 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='back...', 10)
+SAX.characters(
+ , 7)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#fff...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(layer, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 2, 0, name='Back...', 10, visible='true...', 4)
+SAX.characters(
+ , 5)
+SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 15, version='0" i...', 1, id='O0">...', 2)
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7)
+SAX.characters(
+ , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.95...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6)
+SAX.characters(
+ , 9)
+SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.9,...', 15)
+SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='conn...', 14)
+SAX.characters(
+ , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.95...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+ , 9)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+ , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0.1"...', 3)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+ , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='star...', 11)
+SAX.characters(
+ , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='end_...', 9)
+SAX.characters(
+ , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(connections, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(connection, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, handle='1" t...', 1, to='O2" ...', 2, connection='3"/>...', 1)
+SAX.endElementNs(connection, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(connections, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 15, version='0" i...', 1, id='O1">...', 2)
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7)
+SAX.characters(
+ , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='4.8,...', 8)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6)
+SAX.characters(
+ , 9)
+SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2.57...', 27)
+SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='text...', 4)
+SAX.characters(
+ , 9)
+SAX.startElementNs(composite, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, type='text...', 4)
+SAX.characters(
+ , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='stri...', 6)
+SAX.characters(
+ , 13)
+SAX.startElementNs(string, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='sdfs...', 7)
+SAX.endElementNs(string, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='font...', 4)
+SAX.characters(
+ , 13)
+SAX.startElementNs(font, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='Cour...', 7)
+SAX.endElementNs(font, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='heig...', 6)
+SAX.characters(
+ , 13)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1"/>...', 1)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='pos"...', 3)
+SAX.characters(
+ , 13)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='4.8,...', 8)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='colo...', 5)
+SAX.characters(
+ , 13)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='alig...', 9)
+SAX.characters(
+ , 13)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 9)
+SAX.endElementNs(composite, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 14, version='0" i...', 1, id='O2">...', 2)
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7)
+SAX.characters(
+ , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6)
+SAX.characters(
+ , 9)
+SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 20)
+SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 11)
+SAX.characters(
+ , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 10)
+SAX.characters(
+ , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2.05...', 4)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 11)
+SAX.characters(
+ , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2"/>...', 1)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='bord...', 12)
+SAX.characters(
+ , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0.1"...', 3)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='bord...', 12)
+SAX.characters(
+ , 9)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='inne...', 11)
+SAX.characters(
+ , 9)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#fff...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+ , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(layer, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+, 1)
+SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.endDocument()
diff --git a/result/noent/dia2.sax2 b/result/noent/dia2.sax2
new file mode 100644
index 0000000..4821c9b
--- /dev/null
+++ b/result/noent/dia2.sax2
@@ -0,0 +1,323 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='back...', 10)
+SAX.characters(
+ , 7)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#fff...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 3)
+SAX.startElementNs(layer, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 2, 0, name='Back...', 10, visible='true...', 4)
+SAX.characters(
+ , 5)
+SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 15, version='0" i...', 1, id='O0">...', 2)
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7)
+SAX.characters(
+ , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.95...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6)
+SAX.characters(
+ , 9)
+SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.9,...', 15)
+SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='conn...', 14)
+SAX.characters(
+ , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1.95...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+ , 9)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+ , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0.1"...', 3)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+ , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='star...', 11)
+SAX.characters(
+ , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='end_...', 9)
+SAX.characters(
+ , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(connections, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(connection, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, handle='1" t...', 1, to='O2" ...', 2, connection='3"/>...', 1)
+SAX.endElementNs(connection, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(connections, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 15, version='0" i...', 1, id='O1">...', 2)
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7)
+SAX.characters(
+ , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='4.8,...', 8)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6)
+SAX.characters(
+ , 9)
+SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2.57...', 27)
+SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='text...', 4)
+SAX.characters(
+ , 9)
+SAX.startElementNs(composite, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, type='text...', 4)
+SAX.characters(
+ , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='stri...', 6)
+SAX.characters(
+ , 13)
+SAX.startElementNs(string, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='sdfs...', 7)
+SAX.endElementNs(string, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='font...', 4)
+SAX.characters(
+ , 13)
+SAX.startElementNs(font, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='Cour...', 7)
+SAX.endElementNs(font, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='heig...', 6)
+SAX.characters(
+ , 13)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1"/>...', 1)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='pos"...', 3)
+SAX.characters(
+ , 13)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='4.8,...', 8)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='colo...', 5)
+SAX.characters(
+ , 13)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='alig...', 9)
+SAX.characters(
+ , 13)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='1"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 11)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 9)
+SAX.endElementNs(composite, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 3, 0, type='Stan...', 14, version='0" i...', 1, id='O2">...', 2)
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 7)
+SAX.characters(
+ , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='obj_...', 6)
+SAX.characters(
+ , 9)
+SAX.startElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 20)
+SAX.endElementNs(rectangle, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 11)
+SAX.characters(
+ , 9)
+SAX.startElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='10.9...', 9)
+SAX.endElementNs(point, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 10)
+SAX.characters(
+ , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2.05...', 4)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='elem...', 11)
+SAX.characters(
+ , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='2"/>...', 1)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='bord...', 12)
+SAX.characters(
+ , 9)
+SAX.startElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0.1"...', 3)
+SAX.endElementNs(real, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='bord...', 12)
+SAX.characters(
+ , 9)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#000...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='inne...', 11)
+SAX.characters(
+ , 9)
+SAX.startElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='#fff...', 7)
+SAX.endElementNs(color, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.startElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, name='line...', 10)
+SAX.characters(
+ , 9)
+SAX.startElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, val='0"/>...', 1)
+SAX.endElementNs(enum, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(attribute, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 5)
+SAX.endElementNs(object, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(layer, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+, 1)
+SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.endDocument()
diff --git a/result/noent/dtd1.sax2 b/result/noent/dtd1.sax2
new file mode 100644
index 0000000..47be5e0
--- /dev/null
+++ b/result/noent/dtd1.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(MEMO, -//SGMLSOURCE//DTD MEMO//EN, http://www.sgmlsource.com/dtds/memo.dtd)
+SAX.externalSubset(MEMO, -//SGMLSOURCE//DTD MEMO//EN, http://www.sgmlsource.com/dtds/memo.dtd)
+SAX.startElementNs(MEMO, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.endElementNs(MEMO, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd10.sax2 b/result/noent/dtd10.sax2
new file mode 100644
index 0000000..7f15a09
--- /dev/null
+++ b/result/noent/dtd10.sax2
@@ -0,0 +1,21 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 4, ...)
+SAX.elementDecl(a, 3, ...)
+SAX.elementDecl(b, 3, ...)
+SAX.elementDecl(c, 3, ...)
+SAX.elementDecl(d, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.characters(This, 4)
+SAX.endElementNs(b, NULL, NULL)
+SAX.startElementNs(c, NULL, NULL, 0, 0, 0)
+SAX.characters( is a, 5)
+SAX.endElementNs(c, NULL, NULL)
+SAX.startElementNs(d, NULL, NULL, 0, 0, 0)
+SAX.characters( valid document, 15)
+SAX.endElementNs(d, NULL, NULL)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd11.sax2 b/result/noent/dtd11.sax2
new file mode 100644
index 0000000..a9cae5d
--- /dev/null
+++ b/result/noent/dtd11.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 3, ...)
+SAX.attributeDecl(doc, val, 1, 3, NULL, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 1, 0, val='v1"/...', 2)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd12.sax2 b/result/noent/dtd12.sax2
new file mode 100644
index 0000000..53206d4
--- /dev/null
+++ b/result/noent/dtd12.sax2
@@ -0,0 +1,15 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.entityDecl(YN, 1, (null), (null), "Yes")
+SAX.getEntity(YN)
+SAX.entityDecl(WhatHeSaid, 1, (null), (null), He said &YN;)
+SAX.getEntity(WhatHeSaid)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.getEntity(WhatHeSaid)
+SAX.characters(He said , 8)
+SAX.getEntity(YN)
+SAX.characters("Yes", 5)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd13.sax2 b/result/noent/dtd13.sax2
new file mode 100644
index 0000000..b631501
--- /dev/null
+++ b/result/noent/dtd13.sax2
@@ -0,0 +1,10 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( comment before the DTD )
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 2, ...)
+SAX.externalSubset(doc, , )
+SAX.comment( comment after the DTD )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd2.sax2 b/result/noent/dtd2.sax2
new file mode 100644
index 0000000..ff6b568
--- /dev/null
+++ b/result/noent/dtd2.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(This is a valid document !, 26)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd3.sax2 b/result/noent/dtd3.sax2
new file mode 100644
index 0000000..9625ad5
--- /dev/null
+++ b/result/noent/dtd3.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 2, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(This is a valid document !, 26)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd4.sax2 b/result/noent/dtd4.sax2
new file mode 100644
index 0000000..8366d48
--- /dev/null
+++ b/result/noent/dtd4.sax2
@@ -0,0 +1,8 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 1, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd5.sax2 b/result/noent/dtd5.sax2
new file mode 100644
index 0000000..f48c01c
--- /dev/null
+++ b/result/noent/dtd5.sax2
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 3, ...)
+SAX.elementDecl(a, 3, ...)
+SAX.elementDecl(b, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.characters(This, 4)
+SAX.endElementNs(a, NULL, NULL)
+SAX.characters( is a , 6)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.characters(valid, 5)
+SAX.endElementNs(b, NULL, NULL)
+SAX.characters( document, 9)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd6.sax2 b/result/noent/dtd6.sax2
new file mode 100644
index 0000000..6e78924
--- /dev/null
+++ b/result/noent/dtd6.sax2
@@ -0,0 +1,19 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 4, ...)
+SAX.elementDecl(a, 3, ...)
+SAX.elementDecl(b, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.characters(This, 4)
+SAX.endElementNs(a, NULL, NULL)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.characters( is a valid, 11)
+SAX.endElementNs(b, NULL, NULL)
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.characters( document, 9)
+SAX.endElementNs(a, NULL, NULL)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd7.sax2 b/result/noent/dtd7.sax2
new file mode 100644
index 0000000..4a47191
--- /dev/null
+++ b/result/noent/dtd7.sax2
@@ -0,0 +1,16 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 4, ...)
+SAX.elementDecl(a, 3, ...)
+SAX.elementDecl(b, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.characters(This, 4)
+SAX.endElementNs(a, NULL, NULL)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.characters( is a valid document, 20)
+SAX.endElementNs(b, NULL, NULL)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd8.sax2 b/result/noent/dtd8.sax2
new file mode 100644
index 0000000..d38b60d
--- /dev/null
+++ b/result/noent/dtd8.sax2
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 4, ...)
+SAX.elementDecl(a, 3, ...)
+SAX.elementDecl(b, 3, ...)
+SAX.elementDecl(c, 3, ...)
+SAX.elementDecl(d, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.characters(This, 4)
+SAX.endElementNs(b, NULL, NULL)
+SAX.startElementNs(c, NULL, NULL, 0, 0, 0)
+SAX.characters( is a valid document, 20)
+SAX.endElementNs(c, NULL, NULL)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/dtd9.sax2 b/result/noent/dtd9.sax2
new file mode 100644
index 0000000..a5b537f
--- /dev/null
+++ b/result/noent/dtd9.sax2
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.elementDecl(doc, 4, ...)
+SAX.elementDecl(a, 3, ...)
+SAX.elementDecl(b, 3, ...)
+SAX.elementDecl(c, 3, ...)
+SAX.elementDecl(d, 3, ...)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.characters(This, 4)
+SAX.endElementNs(b, NULL, NULL)
+SAX.startElementNs(d, NULL, NULL, 0, 0, 0)
+SAX.characters( is a valid document, 20)
+SAX.endElementNs(d, NULL, NULL)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ebcdic_566012.xml.sax2 b/result/noent/ebcdic_566012.xml.sax2
new file mode 100644
index 0000000..b8a4ce0
--- /dev/null
+++ b/result/noent/ebcdic_566012.xml.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(test, NULL, NULL, 0, 1, 0, attr='ÄÖ...', 6)
+SAX.endElementNs(test, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/emptycdata.xml.sax2 b/result/noent/emptycdata.xml.sax2
new file mode 100644
index 0000000..7f80296
--- /dev/null
+++ b/result/noent/emptycdata.xml.sax2
@@ -0,0 +1,10 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(html, NULL, 'http://www.w3.org/1999/xhtml', 1, xmlns='http://www.w3.org/1999/xhtml', 0, 0)
+SAX.characters(
+, 1)
+SAX.pcdata(, 0)
+SAX.characters(
+, 1)
+SAX.endElementNs(html, NULL, 'http://www.w3.org/1999/xhtml')
+SAX.endDocument()
diff --git a/result/noent/ent1.sax2 b/result/noent/ent1.sax2
new file mode 100644
index 0000000..9f270ef
--- /dev/null
+++ b/result/noent/ent1.sax2
@@ -0,0 +1,15 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(EXAMPLE, , example.dtd)
+SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language)
+SAX.getEntity(xml)
+SAX.externalSubset(EXAMPLE, , example.dtd)
+SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.getEntity(xml)
+SAX.characters(Extensible Markup Language, 26)
+SAX.characters(
+, 1)
+SAX.endElementNs(EXAMPLE, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent10.sax2 b/result/noent/ent10.sax2
new file mode 100644
index 0000000..4b86bfb
--- /dev/null
+++ b/result/noent/ent10.sax2
@@ -0,0 +1,30 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(rnode, , )
+SAX.elementDecl(rnode, 4, ...)
+SAX.elementDecl(f, 3, ...)
+SAX.attributeDecl(f, att1, 1, 4, J, ...)
+SAX.entityDecl(f, 1, (null), (null),
+ <f>
+ hello world
+ </f>
+ )
+SAX.getEntity(f)
+SAX.externalSubset(rnode, , )
+SAX.startElementNs(rnode, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 4)
+SAX.getEntity(f)
+SAX.ignorableWhitespace(
+ , 4)
+SAX.startElementNs(f, NULL, NULL, 0, 1, 1, att1='J...', 1)
+SAX.characters(
+ hello world
+ , 19)
+SAX.endElementNs(f, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.characters(
+, 1)
+SAX.endElementNs(rnode, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent11.sax2 b/result/noent/ent11.sax2
new file mode 100644
index 0000000..5c2c916
--- /dev/null
+++ b/result/noent/ent11.sax2
Binary files differ
diff --git a/result/noent/ent12.sax2 b/result/noent/ent12.sax2
new file mode 100644
index 0000000..fd5c71e
--- /dev/null
+++ b/result/noent/ent12.sax2
@@ -0,0 +1,20 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(root, , )
+SAX.entityDecl(foo, 1, (null), (null), abc)
+SAX.getEntity(foo)
+SAX.entityDecl(bar, 1, (null), (null), def)
+SAX.getEntity(bar)
+SAX.externalSubset(root, , )
+SAX.getEntity(foo)
+SAX.startElementNs(root, NULL, NULL, 0, 1, 0, attribute='abc...', 3)
+SAX.characters(
+ , 4)
+SAX.startElementNs(element, NULL, NULL, 0, 0, 0)
+SAX.getEntity(bar)
+SAX.characters(def, 3)
+SAX.endElementNs(element, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(root, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent13.sax2 b/result/noent/ent13.sax2
new file mode 100644
index 0000000..9add146
--- /dev/null
+++ b/result/noent/ent13.sax2
@@ -0,0 +1,11 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(test, , )
+SAX.entityDecl(ampproblem, 1, (null), (null), &)
+SAX.getEntity(ampproblem)
+SAX.externalSubset(test, , )
+SAX.getEntity(ampproblem)
+SAX.startElementNs(t, NULL, NULL, 0, 1, 0, a='&...', 1)
+SAX.characters(a, 1)
+SAX.endElementNs(t, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent2.sax2 b/result/noent/ent2.sax2
new file mode 100644
index 0000000..88c6aa6
--- /dev/null
+++ b/result/noent/ent2.sax2
@@ -0,0 +1,37 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(EXAMPLE, , example.dtd)
+SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language)
+SAX.getEntity(xml)
+SAX.entityDecl(title, 2, -//MY-TITLE//FR, title.xml, (null))
+SAX.unparsedEntityDecl(image, (null), img.gif, GIF)
+SAX.externalSubset(EXAMPLE, , example.dtd)
+SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 3)
+SAX.getEntity(title)
+SAX.ignorableWhitespace(
+, 1)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(my title, 8)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.ignorableWhitespace(
+, 1)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(my title, 8)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.characters(
+ This text is about XML, the, 31)
+SAX.getEntity(xml)
+SAX.characters(Extensible Markup Language, 26)
+SAX.characters( and this is an embedded , 25)
+SAX.startElementNs(IMG, NULL, NULL, 0, 1, 0, src='imag...', 5)
+SAX.endElementNs(IMG, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(EXAMPLE, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent3.sax2 b/result/noent/ent3.sax2
new file mode 100644
index 0000000..96f605f
--- /dev/null
+++ b/result/noent/ent3.sax2
@@ -0,0 +1,12 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(EXAMPLE, , example.dtd)
+SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language)
+SAX.getEntity(xml)
+SAX.externalSubset(EXAMPLE, , example.dtd)
+SAX.getEntity(xml)
+SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 2, 0, prop1='a&b...', 3, prop2='Exte...', 26)
+SAX.characters(
+ Test of entities in attribu, 35)
+SAX.endElementNs(EXAMPLE, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent4.sax2 b/result/noent/ent4.sax2
new file mode 100644
index 0000000..b0a6b08
--- /dev/null
+++ b/result/noent/ent4.sax2
@@ -0,0 +1,16 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(EXAMPLE, , example.dtd)
+SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language)
+SAX.getEntity(xml)
+SAX.externalSubset(EXAMPLE, , example.dtd)
+SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ Test of , 11)
+SAX.characters(&, 1)
+SAX.characters(amp; behaviour a, 16)
+SAX.characters(&, 1)
+SAX.characters(b .
+, 4)
+SAX.endElementNs(EXAMPLE, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent5.sax2 b/result/noent/ent5.sax2
new file mode 100644
index 0000000..f7251e4
--- /dev/null
+++ b/result/noent/ent5.sax2
@@ -0,0 +1,13 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(EXAMPLE, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ This is an inverted excla, 42)
+SAX.characters(¡, 2)
+SAX.characters(
+ This is a space , 21)
+SAX.characters( , 1)
+SAX.characters(
+, 2)
+SAX.endElementNs(EXAMPLE, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent6.sax2 b/result/noent/ent6.sax2
new file mode 100644
index 0000000..a70d0bb
--- /dev/null
+++ b/result/noent/ent6.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.entityDecl(lt, 1, (null), (null), <)
+SAX.getEntity(lt)
+SAX.entityDecl(gt, 1, (null), (null), >)
+SAX.getEntity(gt)
+SAX.entityDecl(amp, 1, (null), (null), &)
+SAX.getEntity(amp)
+SAX.entityDecl(apos, 1, (null), (null), ')
+SAX.getEntity(apos)
+SAX.entityDecl(quot, 1, (null), (null), ")
+SAX.getEntity(quot)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent7.sax2 b/result/noent/ent7.sax2
new file mode 100644
index 0000000..3228de3
--- /dev/null
+++ b/result/noent/ent7.sax2
@@ -0,0 +1,17 @@
+xmlSAXUserParseFile returned error 27
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(item, , )
+SAX.entityDecl(sampleEnt, 4, (null), (null), <!ELEMENT item (para)+>)
+SAX.getParameterEntity(sampleEnt)
+SAX.entityDecl(sampleEnt, 1, (null), (null), the hyacinth girl)
+SAX.getEntity(sampleEnt)
+SAX.getParameterEntity(sampleEnt)
+SAX.error: PEReference: %sampleEnt; not found
+SAX.characters('they called me , 16)
+SAX.getEntity(sampleEnt)
+SAX.error: Entity 'sampleEnt' not defined
+SAX.reference(sampleEnt)
+SAX.characters(', 1)
+SAX.endDocument()
+xmlSAXUserParseFile returned error 27
diff --git a/result/noent/ent8.sax2 b/result/noent/ent8.sax2
new file mode 100644
index 0000000..c8418fa
--- /dev/null
+++ b/result/noent/ent8.sax2
@@ -0,0 +1,35 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.entityDecl(test1, 1, (null), (null), test 1)
+SAX.getEntity(test1)
+SAX.entityDecl(test2, 1, (null), (null), test 2)
+SAX.getEntity(test2)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 4)
+SAX.startElementNs(Content, NULL, NULL, 0, 0, 0)
+SAX.characters(Reten, 5)
+SAX.characters(ç, 2)
+SAX.characters(ã, 2)
+SAX.characters(o, 1)
+SAX.endElementNs(Content, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(Content, NULL, NULL, 0, 0, 0)
+SAX.characters(<, 1)
+SAX.characters(>, 1)
+SAX.endElementNs(Content, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(Content, NULL, NULL, 0, 0, 0)
+SAX.getEntity(test1)
+SAX.characters(test 1, 6)
+SAX.getEntity(test2)
+SAX.characters(test 2, 6)
+SAX.endElementNs(Content, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent9.sax2 b/result/noent/ent9.sax2
new file mode 100644
index 0000000..442333e
--- /dev/null
+++ b/result/noent/ent9.sax2
@@ -0,0 +1,308 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(doc, , )
+SAX.entityDecl(test1, 1, (null), (null), <a/>,<b/>,<c/>,<d/>)
+SAX.getEntity(test1)
+SAX.externalSubset(doc, , )
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 4)
+SAX.startElementNs(ent, NULL, NULL, 0, 0, 0)
+SAX.getEntity(test1)
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(a, NULL, NULL)
+SAX.characters(,, 1)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(b, NULL, NULL)
+SAX.characters(,, 1)
+SAX.startElementNs(c, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(c, NULL, NULL)
+SAX.characters(,, 1)
+SAX.startElementNs(d, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(d, NULL, NULL)
+SAX.endElementNs(ent, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters( WE need lot of garbage now to, 50)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(ent, NULL, NULL, 0, 0, 0)
+SAX.getEntity(test1)
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(a, NULL, NULL)
+SAX.characters(,, 1)
+SAX.startElementNs(b, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(b, NULL, NULL)
+SAX.characters(,, 1)
+SAX.startElementNs(c, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(c, NULL, NULL)
+SAX.characters(,, 1)
+SAX.startElementNs(d, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(d, NULL, NULL)
+SAX.endElementNs(ent, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ent_738805.xml.sax2 b/result/noent/ent_738805.xml.sax2
new file mode 100644
index 0000000..d8a4f1e
--- /dev/null
+++ b/result/noent/ent_738805.xml.sax2
@@ -0,0 +1,54 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(somedoc, , )
+SAX.entityDecl(a, 1, (null), (null), something)
+SAX.getEntity(a)
+SAX.entityDecl(b, 1, (null), (null), &a;)
+SAX.getEntity(b)
+SAX.externalSubset(somedoc, , )
+SAX.startElementNs(somedoc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+
+, 2)
+SAX.getEntity(b)
+SAX.getEntity(a)
+SAX.startElementNs(somebeacon, NULL, NULL, 0, 1, 0, someattribute='some...', 9)
+SAX.endElementNs(somebeacon, NULL, NULL)
+SAX.characters(
+
+, 2)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters( should appear after colon: , 28)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters(
+, 1)
+SAX.getEntity(b)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters( should appear after colon: , 28)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters(
+, 1)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters( should appear after colon: , 28)
+SAX.getEntity(b)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters(
+, 1)
+SAX.getEntity(b)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters( should appear after colon: , 28)
+SAX.getEntity(b)
+SAX.getEntity(a)
+SAX.characters(something, 9)
+SAX.characters(
+
+, 2)
+SAX.endElementNs(somedoc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/eve.xml.sax2 b/result/noent/eve.xml.sax2
new file mode 100644
index 0000000..ea3b430
--- /dev/null
+++ b/result/noent/eve.xml.sax2
@@ -0,0 +1,11 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(spec, -//testspec//, dtds/eve.dtd)
+SAX.entityDecl(iso6.doc.date, 1, (null), (null), 29-May-1999)
+SAX.getEntity(iso6.doc.date)
+SAX.externalSubset(spec, -//testspec//, dtds/eve.dtd)
+SAX.startElementNs(spec, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.endElementNs(spec, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/icu_parse_test.xml b/result/noent/icu_parse_test.xml
new file mode 100644
index 0000000..031a967
--- /dev/null
+++ b/result/noent/icu_parse_test.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<foo>
+Text with EUC-JP chars at position 214 (0xd6)
+___
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______é®Äé___
+_</foo>
diff --git a/result/noent/icu_parse_test.xml.sax2 b/result/noent/icu_parse_test.xml.sax2
new file mode 100644
index 0000000..eb0d6c6
--- /dev/null
+++ b/result/noent/icu_parse_test.xml.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(foo, NULL, NULL, 0, 0, 0)
+SAX.characters(
+Text with EUC-JP chars at pos, 170)
+SAX.characters(駪槗___
+_, 11)
+SAX.endElementNs(foo, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/intsubset.xml.sax2 b/result/noent/intsubset.xml.sax2
new file mode 100644
index 0000000..f4db2a8
--- /dev/null
+++ b/result/noent/intsubset.xml.sax2
@@ -0,0 +1,9 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(root, , )
+SAX.elementDecl(root, 1, ...)
+SAX.comment( " )
+SAX.externalSubset(root, , )
+SAX.startElementNs(root, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(root, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/intsubset2.xml.sax2 b/result/noent/intsubset2.xml.sax2
new file mode 100644
index 0000000..5558701
--- /dev/null
+++ b/result/noent/intsubset2.xml.sax2
@@ -0,0 +1,286 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(kanjidic2, , )
+SAX.comment( Version 1.3
+ This is the DTD of the XML-format kanji file combining information from
+ the KANJIDIC and KANJD212 files. It is intended to be largely self-
+ documenting, with each field being accompanied by an explanatory
+ comment.
+
+ The file covers the following kanji:
+ (a) the 6,355 kanji from JIS X 0208;
+ (b) the 5,801 kanji from JIS X 0212;
+ (c) the 3,625 kanji from JIS X 0213 as follows:
+ (i) the 2,741 kanji which are also in JIS X 0212 have
+ JIS X 0213 code-points (kuten) added to the existing entry;
+ (ii) the 884 "new" kanji have new entries.
+
+ At the end of the explanation for a number of fields there is a tag
+ with the format [N]. This indicates the leading letter(s) of the
+ equivalent field in the KANJIDIC and KANJD212 files.
+
+ The KANJIDIC documentation should also be read for additional
+ information about the information in the file.
+ )
+SAX.elementDecl(kanjidic2, 4, ...)
+SAX.elementDecl(header, 4, ...)
+SAX.comment(
+ The single header element will contain identification information
+ about the version of the file
+ )
+SAX.elementDecl(file_version, 3, ...)
+SAX.comment(
+ This field denotes the version of kanjidic2 structure, as more
+ than one version may exist.
+ )
+SAX.elementDecl(database_version, 3, ...)
+SAX.comment(
+ The version of the file, in the format YYYY-NN, where NN will be
+ a number starting with 01 for the first version released in a
+ calendar year, then increasing for each version in that year.
+ )
+SAX.elementDecl(date_of_creation, 3, ...)
+SAX.comment(
+ The date the file was created in international format (YYYY-MM-DD).
+ )
+SAX.elementDecl(character, 4, ...)
+SAX.elementDecl(literal, 3, ...)
+SAX.comment(
+ The character itself in UTF8 coding.
+ )
+SAX.elementDecl(codepoint, 4, ...)
+SAX.comment(
+ The codepoint element states the code of the character in the various
+ character set standards.
+ )
+SAX.elementDecl(cp_value, 3, ...)
+SAX.comment(
+ The cp_value contains the codepoint of the character in a particular
+ standard. The standard will be identified in the cp_type attribute.
+ )
+SAX.attributeDecl(cp_value, cp_type, 1, 2, NULL, ...)
+SAX.comment(
+ The cp_type attribute states the coding standard applying to the
+ element. The values assigned so far are:
+ jis208 - JIS X 0208-1997 - kuten coding (nn-nn)
+ jis212 - JIS X 0212-1990 - kuten coding (nn-nn)
+ jis213 - JIS X 0213-2000 - kuten coding (p-nn-nn)
+ ucs - Unicode 4.0 - hex coding (4 or 5 hexadecimal digits)
+ )
+SAX.elementDecl(radical, 4, ...)
+SAX.elementDecl(rad_value, 3, ...)
+SAX.comment(
+ The radical number, in the range 1 to 214. The particular
+ classification type is stated in the rad_type attribute.
+ )
+SAX.attributeDecl(rad_value, rad_type, 1, 2, NULL, ...)
+SAX.comment(
+ The rad_type attribute states the type of radical classification.
+ classical - as recorded in the KangXi Zidian.
+ nelson - as used in the Nelson "Modern Japanese-English
+ Character Dictionary" (i.e. the Classic, not the New Nelson).
+ This will only be used where Nelson reclassified the kanji.
+ )
+SAX.elementDecl(misc, 4, ...)
+SAX.elementDecl(grade, 3, ...)
+SAX.comment(
+ The Jouyou Kanji grade level. 1 through 6 indicate the grade in which
+ the kanji is taught in Japanese schools. 8 indicates it is one of the
+ remaining Jouyou Kanji to be learned in junior high school, and 9
+ indicates it is a Jinmeiyou (for use in names) kanji. [G]
+ )
+SAX.elementDecl(stroke_count, 3, ...)
+SAX.comment(
+ The stroke count of the kanji, including the radical. If more than
+ one, the first is considered the accepted count, while subsequent ones
+ are common miscounts. (See Appendix E. of the KANJIDIC documentation
+ for some of the rules applied when counting strokes in some of the
+ radicals.) [S]
+ )
+SAX.elementDecl(variant, 3, ...)
+SAX.comment(
+ A cross-reference code to another kanji, usually regarded as a variant.
+ The type of cross-reference is given in the var_type attribute.
+ )
+SAX.attributeDecl(variant, var_type, 1, 2, NULL, ...)
+SAX.comment(
+ The var_type attribute indicates the type of variant code. The current
+ values are:
+ jis208 - in JIS X 0208 - kuten coding
+ jis212 - in JIS X 0212 - kuten coding
+ jis213 - in JIS X 0213 - kuten coding
+ deroo - De Roo number - numeric
+ njecd - Halpern NJECD index number - numeric
+ s_h - The Kanji Dictionary (Spahn & Hadamitzky) - descriptor
+ nelson - "Classic" Nelson - numeric
+ oneill - Japanese Names (O'Neill) - numeric
+ )
+SAX.elementDecl(freq, 3, ...)
+SAX.comment(
+ A frequency-of-use ranking. The 2,500 most-used characters have a
+ ranking; those characters that lack this field are not ranked. The
+ frequency is a number from 1 to 2,500 that expresses the relative
+ frequency of occurrence of a character in modern Japanese. This is
+ based on a survey in newspapers, so it is biassed towards kanji
+ used in newspaper articles. The discrimination between the less
+ frequently used kanji is not strong.
+ )
+SAX.elementDecl(rad_name, 3, ...)
+SAX.comment(
+ When the kanji is itself a radical and has a name, this element
+ contains the name (in hiragana.) [T2]
+ )
+SAX.elementDecl(dic_number, 4, ...)
+SAX.comment(
+ This element contains the index numbers and similar unstructured
+ information such as page numbers in a number of published dictionaries,
+ and instructional books on kanji.
+ )
+SAX.elementDecl(dic_ref, 3, ...)
+SAX.comment(
+ Each dic_ref contains an index number. The particular dictionary,
+ etc. is defined by the dr_type attribute.
+ )
+SAX.attributeDecl(dic_ref, dr_type, 1, 2, NULL, ...)
+SAX.comment(
+ The dr_type defines the dictionary or reference book, etc. to which
+ dic_ref element applies. The initial allocation is:
+ nelson_c - "Modern Reader's Japanese-English Character Dictionary",
+ edited by Andrew Nelson (now published as the "Classic"
+ Nelson).
+ nelson_n - "The New Nelson Japanese-English Character Dictionary",
+ edited by John Haig.
+ halpern_njecd - "New Japanese-English Character Dictionary",
+ edited by Jack Halpern.
+ halpern_kkld - "Kanji Learners Dictionary" (Kodansha) edited by
+ Jack Halpern.
+ heisig - "Remembering The Kanji" by James Heisig.
+ gakken - "A New Dictionary of Kanji Usage" (Gakken)
+ oneill_names - "Japanese Names", by P.G. O'Neill.
+ oneill_kk - "Essential Kanji" by P.G. O'Neill.
+ moro - "Daikanwajiten" compiled by Morohashi. For some kanji two
+ additional attributes are used: m_vol: the volume of the
+ dictionary in which the kanji is found, and m_page: the page
+ number in the volume.
+ henshall - "A Guide To Remembering Japanese Characters" by
+ Kenneth G. Henshall.
+ sh_kk - "Kanji and Kana" by Spahn and Hadamitzky.
+ sakade - "A Guide To Reading and Writing Japanese" edited by
+ Florence Sakade.
+ henshall3 - "A Guide To Reading and Writing Japanese" 3rd
+ edition, edited by Henshall, Seeley and De Groot.
+ tutt_cards - Tuttle Kanji Cards, compiled by Alexander Kask.
+ crowley - "The Kanji Way to Japanese Language Power" by
+ Dale Crowley.
+ kanji_in_context - "Kanji in Context" by Nishiguchi and Kono.
+ busy_people - "Japanese For Busy People" vols I-III, published
+ by the AJLT. The codes are the volume.chapter.
+ kodansha_compact - the "Kodansha Compact Kanji Guide".
+ )
+SAX.attributeDecl(dic_ref, m_vol, 1, 3, NULL, ...)
+SAX.comment(
+ See above under "moro".
+ )
+SAX.attributeDecl(dic_ref, m_page, 1, 3, NULL, ...)
+SAX.comment(
+ See above under "moro".
+ )
+SAX.elementDecl(query_code, 4, ...)
+SAX.comment(
+ These codes contain information relating to the glyph, and can be used
+ for finding a required kanji. The type of code is defined by the
+ qc_type attribute.
+ )
+SAX.elementDecl(q_code, 3, ...)
+SAX.comment(
+ The q_code contains the actual query-code value, according to the
+ qc_type attribute.
+ )
+SAX.attributeDecl(q_code, qc_type, 1, 2, NULL, ...)
+SAX.comment(
+ The q_code attribute defines the type of query code. The current values
+ are:
+ skip - Halpern's SKIP (System of Kanji Indexing by Patterns)
+ code. The format is n-nn-nn. See the KANJIDIC documentation
+ for a description of the code and restrictions on the
+ commercial use of this data. [P]
+
+ sh_desc - the descriptor codes for The Kanji Dictionary (Tuttle
+ 1996) by Spahn and Hadamitzky. They are in the form nxnn.n,
+ e.g. 3k11.2, where the kanji has 3 strokes in the
+ identifying radical, it is radical "k" in the SH
+ classification system, there are 11 other strokes, and it is
+ the 2nd kanji in the 3k11 sequence. (I am very grateful to
+ Mark Spahn for providing the list of these descriptor codes
+ for the kanji in this file.) [I]
+ four_corner - the "Four Corner" code for the kanji. This is a code
+ invented by Wang Chen in 1928. See the KANJIDIC documentation
+ for an overview of the Four Corner System. [Q]
+
+ deroo - the codes developed by the late Father Joseph De Roo, and
+ published in his book "2001 Kanji" (Bojinsha). Fr De Roo
+ gave his permission for these codes to be included. [DR]
+ misclass - a possible misclassification of the kanji according
+ to one of the code types. (See the "Z" codes in the KANJIDIC
+ documentation for more details.)
+
+ )
+SAX.elementDecl(reading_meaning, 4, ...)
+SAX.comment(
+ The readings for the kanji in several languages, and the meanings, also
+ in several languages. The readings and meanings are grouped to enable
+ the handling of the situation where the meaning is differentiated by
+ reading. [T1]
+ )
+SAX.elementDecl(nanori, 3, ...)
+SAX.comment(
+ Japanese readings that are now only associated with names.
+ )
+SAX.elementDecl(rmgroup, 4, ...)
+SAX.elementDecl(reading, 3, ...)
+SAX.comment(
+ The reading element contains the reading or pronunciation
+ of the kanji.
+ )
+SAX.attributeDecl(reading, r_type, 1, 2, NULL, ...)
+SAX.comment(
+ The r_type attribute defines the type of reading in the reading
+ element. The current values are:
+ pinyin - the modern PinYin romanization of the Chinese reading
+ of the kanji. The tones are represented by a concluding
+ digit. [Y]
+ korean_r - the romanized form of the Korean reading(s) of the
+ kanji. The readings are in the (Republic of Korea) Ministry
+ of Education style of romanization. [W]
+ korean_h - the Korean reading(s) of the kanji in hangul.
+ ja_on - the "on" Japanese reading of the kanji, in katakana. A
+ second attribute r_status, if present, will indicate with
+ a value of "jy" whether the reading is approved for a
+ "Jouyou kanji".
+ ja_kun - the "kun" Japanese reading of the kanji, in hiragana.
+ Where relevant the okurigana is also included separated by a
+ ".". Readings associated with prefixes and suffixes are
+ marked with a "-". A second attribute r_status, if present,
+ will indicate with a value of "jy" whether the reading is
+ approved for a "Jouyou kanji".
+ )
+SAX.attributeDecl(reading, r_status, 1, 3, NULL, ...)
+SAX.comment(
+ See under ja_on and ja_kun above.
+ )
+SAX.elementDecl(meaning, 3, ...)
+SAX.comment(
+ The meaning associated with the kanji.
+ )
+SAX.attributeDecl(meaning, m_lang, 1, 3, NULL, ...)
+SAX.comment(
+ The m_lang attribute defines the target language of the meaning. It
+ will be coded using the two-letter language code from the ISO 639
+ standard. When absent, the value "en" (i.e. English) is implied. [{}]
+ )
+SAX.externalSubset(kanjidic2, , )
+SAX.startElementNs(kanjidic2, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.endElementNs(kanjidic2, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/isolat1.sax2 b/result/noent/isolat1.sax2
new file mode 100644
index 0000000..b97920a
--- /dev/null
+++ b/result/noent/isolat1.sax2
@@ -0,0 +1,7 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(très, NULL, NULL, 0, 0, 0)
+SAX.characters(l, 1)
+SAX.characters(à, 2)
+SAX.endElementNs(très, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/isolat2.sax2 b/result/noent/isolat2.sax2
new file mode 100644
index 0000000..0ac3f56
--- /dev/null
+++ b/result/noent/isolat2.sax2
@@ -0,0 +1,35 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(tst, NULL, NULL, 0, 0, 0)
+SAX.characters(
+
+ The following table d, 345)
+SAX.characters(¡ INVERTED EXCLAMATION MA, 300)
+SAX.characters( 250 168 A8 ¨ , 300)
+SAX.characters(SOFT HYPHEN
+ 256 174 , 300)
+SAX.characters( 264 180 B4 ´ AC, 300)
+SAX.characters(SCULINE ORDINAL INDICATOR
+ , 300)
+SAX.characters(1 BF ¿ INVERTED QUE, 300)
+SAX.characters( A WITH TILDE
+ 304 196, 300)
+SAX.characters( C8 È LATIN CAPITAL , 300)
+SAX.characters(APITAL LETTER I WITH GRAVE
+ , 300)
+SAX.characters( 321 209 D1 Ñ LA, 300)
+SAX.characters( LATIN CAPITAL LETTER O WITH T, 300)
+SAX.characters( 332 218 DA Ú LAT, 300)
+SAX.characters( LATIN CAPITAL LETTER THORN, 300)
+SAX.characters(3 227 E3 ã LATIN , 300)
+SAX.characters(R C WITH CEDILLA
+ 350 , 300)
+SAX.characters(36 EC ì LATIN SMALL, 300)
+SAX.characters(LETTER ETH
+ 361 241 , 300)
+SAX.characters( õ LATIN SMALL LETTER O , 300)
+SAX.characters( 250 FA ú LATIN SMA, 300)
+SAX.characters(L LETTER THORN
+ 377 25, 85)
+SAX.endElementNs(tst, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/isolat3.sax2 b/result/noent/isolat3.sax2
new file mode 100644
index 0000000..31296af
--- /dev/null
+++ b/result/noent/isolat3.sax2
@@ -0,0 +1,29 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(rec, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(eg, NULL, NULL, 0, 0, 0)
+SAX.pcdata(<!ENTITY % pub "&, 162)
+SAX.endElementNs(eg, NULL, NULL)
+SAX.characters(
+then the replacement text for, 43)
+SAX.startElementNs(code, NULL, NULL, 0, 0, 0)
+SAX.characters(book, 4)
+SAX.endElementNs(code, NULL, NULL)
+SAX.characters(" is:
+, 6)
+SAX.startElementNs(eg, NULL, NULL, 0, 0, 0)
+SAX.characters(La Peste: Albert Camus,
+, 25)
+SAX.characters(©, 2)
+SAX.characters( 1947 , 6)
+SAX.characters(É, 2)
+SAX.characters(ditions Gallimard. , 19)
+SAX.characters(&, 1)
+SAX.characters(rights;, 7)
+SAX.endElementNs(eg, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(rec, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/japancrlf.xml.sax2 b/result/noent/japancrlf.xml.sax2
new file mode 100644
index 0000000..878eae4
--- /dev/null
+++ b/result/noent/japancrlf.xml.sax2
@@ -0,0 +1,11 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(入力メッセージ, NULL, 'http://schemas.cordys.com/webapps/1.0/bpm/c8c8b82a-0ac0-3d19-01e2-bda74af9b826', 1, xmlns='http://schemas.cordys.com/webapps/1.0/bpm/c8c8b82a-0ac0-3d19-01e2-bda74af9b826', 0, 0)
+SAX.characters(
+ , 2)
+SAX.startElementNs(Ele, c8c, 'http://schemas.cordys.com/webapps/1.0/bpm/c8c8b82a-0ac0-3d19-01e2-bda74af9b826', 1, xmlns:c8c='http://schemas.cordys.com/webapps/1.0/bpm/c8c8b82a-0ac0-3d19-01e2-bda74af9b826', 0, 0)
+SAX.endElementNs(Ele, c8c, 'http://schemas.cordys.com/webapps/1.0/bpm/c8c8b82a-0ac0-3d19-01e2-bda74af9b826')
+SAX.characters(
+, 1)
+SAX.endElementNs(入力メッセージ, NULL, 'http://schemas.cordys.com/webapps/1.0/bpm/c8c8b82a-0ac0-3d19-01e2-bda74af9b826')
+SAX.endDocument()
diff --git a/result/noent/ns.sax2 b/result/noent/ns.sax2
new file mode 100644
index 0000000..c615db3
--- /dev/null
+++ b/result/noent/ns.sax2
@@ -0,0 +1,11 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/', 0, 1, 0, dia:testattr='test...', 4)
+SAX.endElementNs(diagramdata, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.characters(
+, 1)
+SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.endDocument()
diff --git a/result/noent/ns2.sax2 b/result/noent/ns2.sax2
new file mode 100644
index 0000000..fc8d6f4
--- /dev/null
+++ b/result/noent/ns2.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 1, 0, dia:testattr='test...', 4)
+SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.endDocument()
diff --git a/result/noent/ns3.sax2 b/result/noent/ns3.sax2
new file mode 100644
index 0000000..fc8d6f4
--- /dev/null
+++ b/result/noent/ns3.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/', 1, xmlns:dia='http://www.lysator.liu.se/~alla/dia/', 1, 0, dia:testattr='test...', 4)
+SAX.endElementNs(diagram, dia, 'http://www.lysator.liu.se/~alla/dia/')
+SAX.endDocument()
diff --git a/result/noent/ns4.sax2 b/result/noent/ns4.sax2
new file mode 100644
index 0000000..e31cc56
--- /dev/null
+++ b/result/noent/ns4.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(diagram, NULL, NULL, 0, 4, 0, testattr='test...', 4, xml:lang='en" ...', 2, xml:link='simp...', 6, xml:space='pres...', 8)
+SAX.endElementNs(diagram, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ns5.sax2 b/result/noent/ns5.sax2
new file mode 100644
index 0000000..a434d6b
--- /dev/null
+++ b/result/noent/ns5.sax2
@@ -0,0 +1,11 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(element, NULL, 'http://example.org/ns/1', 2, xmlns:rng='http://example.org/ns/1', xmlns='http://example.org/ns/1', 1, 0, name='foo"...', 3)
+SAX.characters(
+ , 3)
+SAX.startElementNs(empty, NULL, 'http://example.org/ns/1', 0, 0, 0)
+SAX.endElementNs(empty, NULL, 'http://example.org/ns/1')
+SAX.characters(
+, 1)
+SAX.endElementNs(element, NULL, 'http://example.org/ns/1')
+SAX.endDocument()
diff --git a/result/noent/ns6.sax2 b/result/noent/ns6.sax2
new file mode 100644
index 0000000..7b54552
--- /dev/null
+++ b/result/noent/ns6.sax2
@@ -0,0 +1,15 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(root, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(foo, NULL, 'http://abc', 1, xmlns='http://abc', 0, 0)
+SAX.endElementNs(foo, NULL, 'http://abc')
+SAX.characters(
+ , 3)
+SAX.startElementNs(bar, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(bar, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(root, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/ns7.sax2 b/result/noent/ns7.sax2
new file mode 100644
index 0000000..2a2c714
--- /dev/null
+++ b/result/noent/ns7.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(test, xml, 'http://www.w3.org/XML/1998/namespace', 0, 0, 0)
+SAX.endElementNs(test, xml, 'http://www.w3.org/XML/1998/namespace')
+SAX.endDocument()
diff --git a/result/noent/nsclean.xml.sax2 b/result/noent/nsclean.xml.sax2
new file mode 100644
index 0000000..d443e2b
--- /dev/null
+++ b/result/noent/nsclean.xml.sax2
@@ -0,0 +1,13 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(article, NULL, 'tag:foofoofoofoofoofoofoofoo', 3, xmlns='tag:foofoofoofoofoofoofoofoo', xmlns:dc='http://purl.org/dc/elements/1.1/', xmlns:dcterms='http://purl.org/dc/terms/', 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(content, foop, 'tag:foofoofoofoofoofoofoofoo', 2, xmlns='http://www.w3.org/1999/xhtml', xmlns:foop='tag:foofoofoofoofoofoofoofoo', 0, 0)
+SAX.characters(
+, 1)
+SAX.endElementNs(content, foop, 'tag:foofoofoofoofoofoofoofoo')
+SAX.characters(
+, 1)
+SAX.endElementNs(article, NULL, 'tag:foofoofoofoofoofoofoofoo')
+SAX.endDocument()
diff --git a/result/noent/p3p.sax2 b/result/noent/p3p.sax2
new file mode 100644
index 0000000..6815789
--- /dev/null
+++ b/result/noent/p3p.sax2
@@ -0,0 +1,65 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 2, xmlns:p3p='http://www.w3.org/TR/1998/WD-P3P10-syntax#proposal.DTD', xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#', 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(PROP, NULL, NULL, 0, 4, 0, realm='http...', 37, entity='Cool...', 11, agreeID='94df...', 16, assurance='http...', 22)
+SAX.characters(
+ , 3)
+SAX.startElementNs(USES, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(STATEMENT, NULL, NULL, 0, 4, 0, purp='2,3"...', 3, recpnt='0" i...', 1, id='0"
+ ...', 1, consq='a si...', 37)
+SAX.characters(
+ , 5)
+SAX.startElementNs(WITH, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(PREFIX, NULL, NULL, 0, 1, 0, name='User...', 5)
+SAX.characters(
+ , 6)
+SAX.startElementNs(REF, NULL, NULL, 0, 1, 0, name='Name...', 10)
+SAX.endElementNs(REF, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(REF, NULL, NULL, 0, 2, 0, name='Bdat...', 10, optional='1"/>...', 1)
+SAX.endElementNs(REF, NULL, NULL)
+SAX.characters(
+ , 6)
+SAX.startElementNs(REF, NULL, NULL, 0, 1, 0, name='Gend...', 6)
+SAX.endElementNs(REF, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(PREFIX, NULL, NULL)
+SAX.endElementNs(WITH, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(STATEMENT, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(USES, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(USES, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(STATEMENT, NULL, NULL, 0, 4, 0, action='read...', 10, purp='0" r...', 1, recpnt='0" i...', 1, id='1">
+...', 1)
+SAX.characters(
+ , 5)
+SAX.startElementNs(REF, NULL, NULL, 0, 1, 0, name='User...', 14)
+SAX.endElementNs(REF, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(STATEMENT, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(USES, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(DISCLOSURE, NULL, NULL, 0, 3, 0, discURI='http...', 47, access='3" o...', 1, other='0,1"...', 3)
+SAX.endElementNs(DISCLOSURE, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(PROP, NULL, NULL)
+SAX.endElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.endDocument()
diff --git a/result/noent/pi.xml.sax2 b/result/noent/pi.xml.sax2
new file mode 100644
index 0000000..a4490ea
--- /dev/null
+++ b/result/noent/pi.xml.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.processingInstruction(document-start, doc)
+SAX.characters(
+, 1)
+SAX.startElementNs(empty, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(empty, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.processingInstruction(document-end, doc)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/pi2.xml.sax2 b/result/noent/pi2.xml.sax2
new file mode 100644
index 0000000..1e6caad
--- /dev/null
+++ b/result/noent/pi2.xml.sax2
@@ -0,0 +1,13 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.processingInstruction(document-start, doc)
+SAX.startElementNs(doc, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(empty, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(empty, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(doc, NULL, NULL)
+SAX.processingInstruction(document-end, doc)
+SAX.endDocument()
diff --git a/result/noent/rdf1.sax2 b/result/noent/rdf1.sax2
new file mode 100644
index 0000000..24822e1
--- /dev/null
+++ b/result/noent/rdf1.sax2
@@ -0,0 +1,186 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 2, xmlns:RPM='http://www.rpm.org/', xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(Description, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 1, 0, HREF='ftp:...', 78)
+SAX.characters(
+ , 5)
+SAX.startElementNs(Name, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(rpm, 3)
+SAX.endElementNs(Name, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Version, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(2.5, 3)
+SAX.endElementNs(Version, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Release, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(2, 1)
+SAX.endElementNs(Release, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Arch, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(i386, 4)
+SAX.endElementNs(Arch, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Os, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Linux, 5)
+SAX.endElementNs(Os, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Distribution, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Manhattan , 10)
+SAX.endElementNs(Distribution, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Vendor, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Red Hat Software, 16)
+SAX.endElementNs(Vendor, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Packager, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Red Hat Software , 17)
+SAX.characters(<, 1)
+SAX.characters(bugs@redhat.com, 15)
+SAX.characters(>, 1)
+SAX.endElementNs(Packager, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Group, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Utilities/System, 16)
+SAX.endElementNs(Group, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Summary, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Red Hat Package Manager, 23)
+SAX.endElementNs(Summary, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Description, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(RPM is a powerful package mana, 248)
+SAX.endElementNs(Description, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Copyright, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(GPL, 3)
+SAX.endElementNs(Copyright, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Changelog, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(* Sun May 10 1998 Prospector S, 36)
+SAX.characters(<, 1)
+SAX.characters(bugs@redhat.com, 15)
+SAX.characters(>, 1)
+SAX.characters(
+ - translations modified for, 42)
+SAX.endElementNs(Changelog, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Sources, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(rpm-2.5-2.src.rpm, 17)
+SAX.endElementNs(Sources, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(SourcesFtp, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(ftp://ftp.redhat.com/pub/redha, 48)
+SAX.endElementNs(SourcesFtp, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(BuildDate, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Sun May 10 14:52:32 1998, 24)
+SAX.endElementNs(BuildDate, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Date, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(894826352, 9)
+SAX.endElementNs(Date, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Size, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(850599, 6)
+SAX.endElementNs(Size, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(BuildHost, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(porky.redhat.com, 16)
+SAX.endElementNs(BuildHost, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Provides, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(rpm, 3)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.characters(
+ , 5)
+SAX.endElementNs(Provides, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Requires, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(/bin/sh, 7)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(ld-linux.so.2, 13)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(libc.so.6, 9)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(libdb.so.2, 10)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(libz.so.1, 9)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(/bin/bash, 9)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(/bin/sh, 7)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.characters(
+ , 5)
+SAX.endElementNs(Requires, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Files, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(/bin/rpm
+/usr/bin/find-provide, 885)
+SAX.endElementNs(Files, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(Description, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.characters(
+, 1)
+SAX.endElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.endDocument()
diff --git a/result/noent/rdf2.sax2 b/result/noent/rdf2.sax2
new file mode 100644
index 0000000..388174f
--- /dev/null
+++ b/result/noent/rdf2.sax2
@@ -0,0 +1,191 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 2, xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#', xmlns:RPM='http://www.rpm.org/', 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(Description, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 1, 0, about='ftp:...', 71)
+SAX.characters(
+ , 5)
+SAX.startElementNs(Name, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(ncurses4, 8)
+SAX.endElementNs(Name, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Version, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(4.2, 3)
+SAX.endElementNs(Version, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Release, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(3, 1)
+SAX.endElementNs(Release, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Arch, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(i386, 4)
+SAX.endElementNs(Arch, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Os, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Linux, 5)
+SAX.endElementNs(Os, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Distribution, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(DLD, 3)
+SAX.endElementNs(Distribution, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Vendor, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(delix Computer GmbH, 19)
+SAX.endElementNs(Vendor, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Packager, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Till Bubeck , 12)
+SAX.characters(<, 1)
+SAX.characters(bubeck@delix.de, 15)
+SAX.characters(>, 1)
+SAX.characters(, Ngo Than , 11)
+SAX.characters(<, 1)
+SAX.characters(than@delix.de, 13)
+SAX.characters(>, 1)
+SAX.endElementNs(Packager, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Group, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Libraries, 9)
+SAX.endElementNs(Group, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Summary, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Bibliothek zur Ansteuerung von, 40)
+SAX.endElementNs(Summary, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Description, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Diese Library stellt dem Progr, 57)
+SAX.characters(ä, 2)
+SAX.characters(ngige
+Routinen zur Ansteuerung, 57)
+SAX.characters(ü, 2)
+SAX.characters(gung, die
+speziell optimiert s, 57)
+SAX.characters(', 1)
+SAX.characters(new curses, 10)
+SAX.characters(', 1)
+SAX.characters( (ncurses) Variante und ist de, 51)
+SAX.characters(ü, 2)
+SAX.characters(r die klassische Curses-Librar, 70)
+SAX.endElementNs(Description, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Copyright, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(GPL, 3)
+SAX.endElementNs(Copyright, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Sources, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(ncurses4-4.2-3.src.rpm, 22)
+SAX.endElementNs(Sources, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(BuildDate, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(Tue May 12 19:30:26 1998, 24)
+SAX.endElementNs(BuildDate, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Date, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(895015826, 9)
+SAX.endElementNs(Date, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Size, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(1373513, 7)
+SAX.endElementNs(Size, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(BuildHost, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(erdbeere.delix.de, 17)
+SAX.endElementNs(BuildHost, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Provides, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(
+ , 7)
+SAX.startElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#', 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 37)
+SAX.characters(ncurses4, 8)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 42)
+SAX.characters(libpanel.so.4, 13)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 44)
+SAX.characters(libncurses.so.4, 15)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 41)
+SAX.characters(libmenu.so.4, 12)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 41)
+SAX.characters(libform.so.4, 12)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 9)
+SAX.startElementNs(Resource, RPM, 'http://www.rpm.org/', 0, 1, 0, href='../....', 36)
+SAX.characters(ncurses, 7)
+SAX.endElementNs(Resource, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 7)
+SAX.endElementNs(Bag, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.characters(
+ , 5)
+SAX.endElementNs(Provides, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(Files, RPM, 'http://www.rpm.org/', 0, 0, 0)
+SAX.characters(/lib/libncurses.so.4
+/lib/libn, 2008)
+SAX.characters(/share/ncurses4/terminfo/P/P14, 4000)
+SAX.characters(es4/terminfo/a/alt7pc
+/usr/sha, 4000)
+SAX.characters(/a/att4415-w
+/usr/share/ncurse, 4000)
+SAX.characters(ses4/terminfo/b/bee
+/usr/share, 4000)
+SAX.characters(r/share/ncurses4/terminfo/c/co, 4000)
+SAX.characters(/usr/share/ncurses4/terminfo/d, 4000)
+SAX.characters(sr/share/ncurses4/terminfo/g/g, 4000)
+SAX.characters(/terminfo/h/hp2626-12x40
+/usr/, 4000)
+SAX.characters(e/ncurses4/terminfo/i/intertub, 4000)
+SAX.characters(rses4/terminfo/m/mskermit22714, 4000)
+SAX.characters(are/ncurses4/terminfo/p/p12-m
+, 4000)
+SAX.characters(pt100w
+/usr/share/ncurses4/ter, 4000)
+SAX.characters(sr/share/ncurses4/terminfo/s/s, 4000)
+SAX.characters(usr/share/ncurses4/terminfo/t/, 4000)
+SAX.characters(share/ncurses4/terminfo/v/vi55, 4000)
+SAX.characters(are/ncurses4/terminfo/w/wy160-, 4000)
+SAX.characters(/wy99gt-vb
+/usr/share/ncurses4, 4000)
+SAX.characters(/w/wyse99gt
+/usr/share/ncurses, 2907)
+SAX.endElementNs(Files, RPM, 'http://www.rpm.org/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(Description, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.characters(
+, 1)
+SAX.endElementNs(RDF, RDF, 'http://www.w3.org/TR/WD-rdf-syntax#')
+SAX.endDocument()
diff --git a/result/noent/slashdot.rdf.sax2 b/result/noent/slashdot.rdf.sax2
new file mode 100644
index 0000000..c561cf8
--- /dev/null
+++ b/result/noent/slashdot.rdf.sax2
@@ -0,0 +1,221 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(RDF, rdf, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#', 2, xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#', xmlns='http://my.netscape.com/rdf/simple/0.9/', 0, 0)
+SAX.characters(
+
+ , 4)
+SAX.startElementNs(channel, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Slashdot:News for Nerds. Stuff, 44)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/, 20)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(description, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(News for Nerds. Stuff that Ma, 35)
+SAX.endElementNs(description, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(channel, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+
+ , 4)
+SAX.startElementNs(image, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Slashdot, 8)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/images/sla, 41)
+SAX.endElementNs(url, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org, 19)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(image, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+
+ , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(100 Mbit/s on Fibre to the hom, 31)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+
+ , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Gimp 1.2 Preview, 16)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+
+ , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Sony's AIBO robot Sold Out, 26)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+
+ , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Ask Slashdot: Another Word for, 40)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/askslashdo, 54)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+
+ , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Corel Linux FAQ, 15)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+
+ , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Upside downsides MP3.COM., 25)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+
+ , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(2 Terabits of Bandwidth, 23)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+
+ , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Suppression of cold fusion res, 36)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+
+ , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(California Gov. Halts Wage Inf, 36)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 50)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+
+ , 6)
+SAX.startElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(Red Hat Announces IPO, 21)
+SAX.endElementNs(title, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 5)
+SAX.startElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/', 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(link, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+ , 3)
+SAX.endElementNs(item, NULL, 'http://my.netscape.com/rdf/simple/0.9/')
+SAX.characters(
+, 1)
+SAX.endElementNs(RDF, rdf, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#')
+SAX.endDocument()
diff --git a/result/noent/slashdot.xml.sax2 b/result/noent/slashdot.xml.sax2
new file mode 100644
index 0000000..2ead70d
--- /dev/null
+++ b/result/noent/slashdot.xml.sax2
@@ -0,0 +1,517 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(ultramode, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(100 Mbit/s on Fibre to the hom, 31)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:39:59, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(wouldn't-it-be-nice, 19)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(internet, 8)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(20, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicinternet.jpg, 17)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Gimp 1.2 Preview, 16)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:38:40, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-read, 13)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(gimp, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(12, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicgimp.gif, 13)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Sony's AIBO robot Sold Out, 26)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:32:51, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-see, 12)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(tech, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(10, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topictech2.jpg, 14)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Ask Slashdot: Another Word for, 40)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/askslashdo, 54)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 20:00:00, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Cliff, 5)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(hacker-vs-cracker, 17)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(news, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(385, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(askslashdot, 11)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicnews.gif, 13)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Corel Linux FAQ, 15)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 18:42:06, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-read, 13)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(corel, 5)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(164, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topiccorel.gif, 14)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Upside downsides MP3.COM., 25)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 15:56:45, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-think-about, 20)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(music, 5)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(48, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicmusic.gif, 14)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(2 Terabits of Bandwidth, 23)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 15:53:43, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(faster-porn, 11)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(internet, 8)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(66, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicinternet.jpg, 17)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Suppression of cold fusion res, 36)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-04 23:12:29, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Hemos, 5)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(possibly-probably, 17)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(science, 7)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(217, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicscience.gif, 16)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(California Gov. Halts Wage Inf, 36)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 50)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-04 23:05:34, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Hemos, 5)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(woo-hoo!, 8)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(usa, 3)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(16, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicus.gif, 11)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Red Hat Announces IPO, 21)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-04 19:30:18, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Justin, 6)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(details-sketchy, 15)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(redhat, 6)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(155, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicredhat.gif, 15)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(ultramode, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/slashdot16.xml.sax2 b/result/noent/slashdot16.xml.sax2
new file mode 100644
index 0000000..785e699
--- /dev/null
+++ b/result/noent/slashdot16.xml.sax2
@@ -0,0 +1,721 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(ultramode, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(100 Mbit/s on Fibre to the hom, 31)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:39:59, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(wouldn't-it-be-nice, 19)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(internet, 8)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(20, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicinternet.jpg, 17)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Gimp 1.2 Preview, 16)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:38:40, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-read, 13)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(gimp, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(12, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicgimp.gif, 13)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Sony's AIBO robot Sold Out, 26)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:32:51, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-see, 12)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(tech, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(10, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topictech2.jpg, 14)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Ask Slashdot: Another Word for, 40)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/askslashdo, 54)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 20:00:00, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Cliff, 5)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(hacker-vs-cracker, 17)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(news, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(385, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(askslashdot, 11)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicnews.gif, 13)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(100 Mbit/s on Fibre to the hom, 31)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:39:59, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(wouldn't-it-be-nice, 19)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(internet, 8)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(20, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicinternet.jpg, 17)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Gimp 1.2 Preview, 16)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:38:40, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-read, 13)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(gimp, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(12, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicgimp.gif, 13)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Sony's AIBO robot Sold Out, 26)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-06 14:32:51, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-see, 12)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(tech, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(10, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topictech2.jpg, 14)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Ask Slashdot: Another Word for, 40)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/askslashdo, 54)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 20:00:00, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Cliff, 5)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(hacker-vs-cracker, 17)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(news, 4)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(385, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(askslashdot, 11)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicnews.gif, 13)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Corel Linux FAQ, 15)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 18:42:06, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-read, 13)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(corel, 5)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(164, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topiccorel.gif, 14)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Upside downsides MP3.COM., 25)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 15:56:45, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(stuff-to-think-about, 20)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(music, 5)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(48, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicmusic.gif, 14)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(2 Terabits of Bandwidth, 23)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-05 15:53:43, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(CmdrTaco, 8)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(faster-porn, 11)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(internet, 8)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(66, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicinternet.jpg, 17)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Suppression of cold fusion res, 36)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-04 23:12:29, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Hemos, 5)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(possibly-probably, 17)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(science, 7)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(217, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicscience.gif, 16)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(California Gov. Halts Wage Inf, 36)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 50)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-04 23:05:34, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Hemos, 5)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(woo-hoo!, 8)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(usa, 3)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(16, 2)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicus.gif, 11)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(story, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Red Hat Announces IPO, 21)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(url, NULL, NULL, 0, 0, 0)
+SAX.characters(http://slashdot.org/articles/9, 51)
+SAX.endElementNs(url, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(time, NULL, NULL, 0, 0, 0)
+SAX.characters(1999-06-04 19:30:18, 19)
+SAX.endElementNs(time, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(author, NULL, NULL, 0, 0, 0)
+SAX.characters(Justin, 6)
+SAX.endElementNs(author, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(department, NULL, NULL, 0, 0, 0)
+SAX.characters(details-sketchy, 15)
+SAX.endElementNs(department, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(topic, NULL, NULL, 0, 0, 0)
+SAX.characters(redhat, 6)
+SAX.endElementNs(topic, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(comments, NULL, NULL, 0, 0, 0)
+SAX.characters(155, 3)
+SAX.endElementNs(comments, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(section, NULL, NULL, 0, 0, 0)
+SAX.characters(articles, 8)
+SAX.endElementNs(section, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(image, NULL, NULL, 0, 0, 0)
+SAX.characters(topicredhat.gif, 15)
+SAX.endElementNs(image, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(story, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(ultramode, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/svg1.sax2 b/result/noent/svg1.sax2
new file mode 100644
index 0000000..7b81459
--- /dev/null
+++ b/result/noent/svg1.sax2
@@ -0,0 +1,613 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd)
+SAX.externalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd)
+SAX.startElementNs(svg, NULL, NULL, 0, 2, 0, width='242p...', 5, height='383p...', 5)
+SAX.characters(
+, 1)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 69,...', 337)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 142...', 190)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 127...', 71)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 178...', 128)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 56,...', 273)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 74,...', 203)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 212...', 448)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 151...', 208)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 106)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 21,...', 90)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 71,...', 150)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 139...', 101)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 105...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 141...', 70)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 98,...', 156)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 97,...', 156)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 147...', 238)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 85,...', 69)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 86,...', 217)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 93,...', 65)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 144...', 70)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 57,...', 294)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 83,...', 194)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 109...', 70)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 122...', 80)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 156)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 82,...', 284)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 142...', 239)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 115...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 114...', 80)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 102...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 51,...', 154)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 2,3...', 120)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 7,3...', 154)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 11,...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 13,...', 97)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 202...', 152)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 151...', 168)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 91,...', 202)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 31,...', 96)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 147...', 76)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 181...', 91)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 132...', 80)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 146...', 80)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 99,...', 78)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 20,...', 105)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 93,...', 92)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 105...', 70)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 122...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 115...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 116...', 260)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 74,...', 245)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 133...', 104)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 133...', 64)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 121...', 334)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 79,...', 70)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 91,...', 80)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 110...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 126...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 30,...', 266)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 44,...', 319)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 13,...', 84)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 10,...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 9,2...', 45)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 33,...', 385)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 7,3...', 51)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 44,...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 32,...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 139...', 128)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 208...', 360)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 106...', 152)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 107...', 93)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 148...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 80,...', 192)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 87,...', 55)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 85,...', 55)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 115...', 119)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 145...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 26,...', 60)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 160...', 91)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 98,...', 265)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 146...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 148...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 106...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 108...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 106...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 50,...', 144)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 147...', 231)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 155...', 102)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 112...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 195)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 67,...', 109)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 56,...', 276)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 101...', 307)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 41,...', 116)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 32,...', 245)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 134...', 136)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 173...', 280)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 165...', 88)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 99,...', 124)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 117...', 64)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 117...', 64)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 122...', 64)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 69,...', 262)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 100...', 54)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 115...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 127...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 5,2...', 218)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 10,...', 48)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 25,...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 37,...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 49,...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 130...', 88)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 106...', 49)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 139...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 25,...', 91)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 98,...', 92)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 83,...', 56)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 155...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 153...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 152...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 68,...', 58)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 105...', 68)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 108...', 65)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 85,...', 156)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 140...', 126)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 146...', 237)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 150...', 320)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 147...', 64)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 157...', 72)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 99,...', 63)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.endElementNs(svg, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/svg2.sax2 b/result/noent/svg2.sax2
new file mode 100644
index 0000000..ab73992
--- /dev/null
+++ b/result/noent/svg2.sax2
@@ -0,0 +1,189 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd)
+SAX.externalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd)
+SAX.startElementNs(svg, NULL, NULL, 0, 2, 0, width='268p...', 5, height='207p...', 5)
+SAX.characters(
+, 1)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters(
+ , 5)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d=' M 2...', 9)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d=' L 1...', 9)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 32,...', 46)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters(
+ , 5)
+SAX.startElementNs(rect, NULL, NULL, 0, 4, 0, x='30" ...', 2, y='101"...', 3, width='51" ...', 2, height='33"/...', 2)
+SAX.endElementNs(rect, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(ellipse, NULL, NULL, 0, 5, 0, cx='182"...', 3, cy='127"...', 3, major='37" ...', 2, minor='31" ...', 2, angle='90"/...', 2)
+SAX.endElementNs(ellipse, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(polyline, NULL, NULL, 0, 1, 0, verts=' 78,...', 445)
+SAX.endElementNs(polyline, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.startElementNs(g, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 6)
+SAX.startElementNs(desc, NULL, NULL, 0, 0, 0)
+SAX.characters( Java Font definition:Dialog 0, 30)
+SAX.endElementNs(desc, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(g, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 6)
+SAX.startElementNs(desc, NULL, NULL, 0, 0, 0)
+SAX.characters( Java Font definition:Helvetic, 33)
+SAX.endElementNs(desc, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters(
+ , 5)
+SAX.startElementNs(text, NULL, NULL, 0, 2, 0, x='188"...', 3, y='36" ...', 2)
+SAX.characters(this is text, 12)
+SAX.endElementNs(text, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters(
+ , 5)
+SAX.startElementNs(g, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 6)
+SAX.startElementNs(desc, NULL, NULL, 0, 0, 0)
+SAX.characters( Java Font definition:Dialog 0, 30)
+SAX.endElementNs(desc, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(g, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 6)
+SAX.startElementNs(desc, NULL, NULL, 0, 0, 0)
+SAX.characters( Java Font definition:Helvetic, 35)
+SAX.endElementNs(desc, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters(
+ , 5)
+SAX.startElementNs(text, NULL, NULL, 0, 2, 0, x='176"...', 3, y='85" ...', 2)
+SAX.characters(sadfsadfsad, 11)
+SAX.endElementNs(text, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(ellipse, NULL, NULL, 0, 5, 0, cx='208"...', 3, cy='180"...', 3, major='45" ...', 2, minor='31" ...', 2, angle='0"/>...', 1)
+SAX.endElementNs(ellipse, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 15)
+SAX.characters(
+, 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 5)
+SAX.startElementNs(g, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 6)
+SAX.startElementNs(desc, NULL, NULL, 0, 0, 0)
+SAX.characters( Java Font definition:Dialog 7, 32)
+SAX.endElementNs(desc, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 4)
+SAX.startElementNs(g, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 6)
+SAX.startElementNs(desc, NULL, NULL, 0, 0, 0)
+SAX.characters( Java Font definition:Dialog 7, 32)
+SAX.endElementNs(desc, NULL, NULL)
+SAX.characters(
+ , 5)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(g, NULL, NULL)
+SAX.endElementNs(svg, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/svg3.sax2 b/result/noent/svg3.sax2
new file mode 100644
index 0000000..b63dff0
--- /dev/null
+++ b/result/noent/svg3.sax2
@@ -0,0 +1,2407 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(svg, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M77....', 149)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M81....', 149)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M108...', 153)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M105...', 157)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M101...', 157)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M90....', 150)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M83....', 149)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M80....', 151)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M91....', 144)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M71....', 105)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M72....', 150)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 49)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M72....', 145)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 29)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M70....', 3523)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 29)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M499...', 1458)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M84....', 598)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M333...', 739)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M334...', 757)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M336...', 760)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M337...', 761)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M338...', 762)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M340...', 760)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M341...', 760)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M342...', 760)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M343...', 725)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M345...', 762)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M84....', 637)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M125...', 221)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M265...', 273)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M145...', 431)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M178...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M188...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M201...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M178...', 131)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M179...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M165...', 911)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M170...', 501)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M192...', 262)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M190...', 209)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M194...', 475)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 29)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M190...', 405)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M191...', 219)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M271...', 327)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M228...', 98)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M180...', 137)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M185...', 152)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M190...', 152)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M197...', 154)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M203...', 154)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M210...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M181...', 132)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M215...', 142)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M233...', 211)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M247...', 50)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M253...', 56)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M174...', 179)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M188...', 219)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M111...', 221)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M132...', 208)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M133...', 334)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M177...', 183)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M140...', 161)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M147...', 160)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M154...', 158)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M161...', 158)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M125...', 182)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M190...', 247)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M243...', 361)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M208...', 393)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M208...', 393)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M209...', 393)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M210...', 393)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M244...', 301)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M290...', 155)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M294...', 309)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M247...', 193)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M243...', 200)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M255...', 77)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 191)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M141...', 411)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M140...', 486)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M148...', 494)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M148...', 484)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M148...', 495)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M140...', 486)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M137...', 119)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M120...', 115)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M128...', 132)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M214...', 1619)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M409...', 389)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M464...', 271)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M463...', 289)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M463...', 287)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M462...', 280)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M462...', 289)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M462...', 250)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M250...', 709)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M389...', 91)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M436...', 125)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M492...', 99)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M304...', 123)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M494...', 111)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M343...', 2441)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M309...', 1201)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M380...', 429)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M368...', 1598)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M291...', 929)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M259...', 1006)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 383)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M217...', 181)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M233...', 2425)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M251...', 74)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M224...', 84)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M221...', 112)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 30)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M222...', 114)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M220...', 6993)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M197...', 185)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M138...', 193)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M138...', 197)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M134...', 195)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M134...', 11)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M89 ...', 570)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M87....', 491)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M91 ...', 497)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M88....', 626)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M79....', 183)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M101...', 359)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M240...', 1223)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M231...', 816)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M294...', 902)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M257...', 3281)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M202...', 837)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M182...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M142...', 177)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M133...', 289)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M120...', 215)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M349...', 1047)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M339...', 444)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M173...', 503)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M180...', 445)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M177...', 379)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M196...', 438)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M188...', 109)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M181...', 113)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M171...', 105)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M163...', 113)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M201...', 111)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M191...', 114)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M180...', 109)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M173...', 105)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M166...', 111)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M205...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M215...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M226...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M236...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M209...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M219...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M196...', 109)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M123...', 117)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M105...', 111)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M125...', 101)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M129...', 1246)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M126...', 311)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M125...', 125)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M127...', 160)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M129...', 160)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M130...', 158)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 157)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M242...', 154)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M239...', 158)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M236...', 157)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M204...', 387)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M277...', 379)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M218...', 127)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M211...', 126)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M201...', 126)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M193...', 128)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M235...', 128)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 126)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M254...', 129)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M264...', 126)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M226...', 126)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M262...', 161)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M265...', 363)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M207...', 143)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M217...', 147)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M229...', 143)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M239...', 137)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M181...', 133)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M172...', 135)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M164...', 137)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M211...', 160)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M222...', 160)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M201...', 158)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M181...', 161)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M193...', 155)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M174...', 159)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M167...', 160)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M236...', 161)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M203...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M213...', 135)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M220...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M228...', 161)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M238...', 161)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M198...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M188...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M249...', 159)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M257...', 159)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 47)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M267...', 159)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M156...', 111)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M187...', 105)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M178...', 111)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M82....', 121)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M84....', 121)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M77....', 121)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M157...', 137)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M245...', 349)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M234...', 346)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M194...', 445)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M168...', 247)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M155...', 396)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M171...', 206)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M186...', 803)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M246...', 179)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M231...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M221...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M211...', 139)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M192...', 261)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M189...', 131)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M167...', 181)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M161...', 183)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M155...', 99)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M140...', 181)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M470...', 101)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M476...', 97)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M493...', 91)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='fill...', 13)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M501...', 67)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 14)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M110...', 25)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 14)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M161...', 38)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 14)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M166...', 40)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.startElementNs(g, NULL, NULL, 0, 1, 0, style='stro...', 14)
+SAX.characters(
+ , 3)
+SAX.startElementNs(path, NULL, NULL, 0, 1, 0, d='M220...', 46)
+SAX.endElementNs(path, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(g, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(svg, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/title.xml.sax2 b/result/noent/title.xml.sax2
new file mode 100644
index 0000000..6fa4fa9
--- /dev/null
+++ b/result/noent/title.xml.sax2
@@ -0,0 +1,6 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(my title, 8)
+SAX.endElementNs(title, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/tstblanks.xml.sax2 b/result/noent/tstblanks.xml.sax2
new file mode 100644
index 0000000..45563a4
--- /dev/null
+++ b/result/noent/tstblanks.xml.sax2
@@ -0,0 +1,6 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(a, NULL, NULL, 0, 1, 0, test='pass...', 6)
+SAX.characters(content, 7)
+SAX.endElementNs(a, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/utf16bebom.xml.sax2 b/result/noent/utf16bebom.xml.sax2
new file mode 100644
index 0000000..4326890
--- /dev/null
+++ b/result/noent/utf16bebom.xml.sax2
@@ -0,0 +1,8 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This file is encoded in UTF-16BE )
+SAX.startElementNs(repository, NULL, NULL, 0, 1, 0, repositroy_id='test...', 4)
+SAX.startElementNs(namespace, NULL, NULL, 0, 1, 0, name='test...', 4)
+SAX.endElementNs(namespace, NULL, NULL)
+SAX.endElementNs(repository, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/utf16bom.xml.sax2 b/result/noent/utf16bom.xml.sax2
new file mode 100644
index 0000000..2b2db15
--- /dev/null
+++ b/result/noent/utf16bom.xml.sax2
@@ -0,0 +1,7 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(repository, NULL, NULL, 0, 1, 0, repositroy_id='test...', 4)
+SAX.startElementNs(namespace, NULL, NULL, 0, 1, 0, name='test...', 4)
+SAX.endElementNs(namespace, NULL, NULL)
+SAX.endElementNs(repository, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/utf16lebom.xml.sax2 b/result/noent/utf16lebom.xml.sax2
new file mode 100644
index 0000000..3b62346
--- /dev/null
+++ b/result/noent/utf16lebom.xml.sax2
@@ -0,0 +1,8 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment( This file is encoded in UTF-16LE )
+SAX.startElementNs(repository, NULL, NULL, 0, 1, 0, repositroy_id='test...', 4)
+SAX.startElementNs(namespace, NULL, NULL, 0, 1, 0, name='test...', 4)
+SAX.endElementNs(namespace, NULL, NULL)
+SAX.endElementNs(repository, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/utf8bom.xml.sax2 b/result/noent/utf8bom.xml.sax2
new file mode 100644
index 0000000..cf7f20f
--- /dev/null
+++ b/result/noent/utf8bom.xml.sax2
@@ -0,0 +1,5 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(foo, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(foo, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/wap.xml.sax2 b/result/noent/wap.xml.sax2
new file mode 100644
index 0000000..6d40b25
--- /dev/null
+++ b/result/noent/wap.xml.sax2
@@ -0,0 +1,87 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://dark.wapit.com/vswap/tests/wap/DTD/wml11.dtd)
+SAX.externalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://dark.wapit.com/vswap/tests/wap/DTD/wml11.dtd)
+SAX.comment( (C) 1999, 2000 WAP Forum Ltd. All rights reserved )
+SAX.startElementNs(wml, NULL, NULL, 0, 0, 0)
+SAX.characters(
+, 1)
+SAX.startElementNs(card, NULL, NULL, 0, 1, 0, id='card...', 5)
+SAX.characters(
+, 1)
+SAX.startElementNs(onevent, NULL, NULL, 0, 1, 0, type='onen...', 14)
+SAX.characters(
+, 1)
+SAX.startElementNs(go, NULL, NULL, 0, 1, 0, href='/vsw...', 21)
+SAX.characters(
+ , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='var"...', 3, value='$tes...', 5)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+ , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='v" v...', 1, value='dark...', 4)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+ , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='ts" ...', 2, value='0003...', 4)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+ , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='tp" ...', 2, value='wml/...', 29)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+ , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='ti" ...', 2, value='1"/>...', 1)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+ , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='expe...', 8, value='var:...', 8)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(go, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(onevent, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters(If automatic testing failed, s, 36)
+SAX.startElementNs(anchor, NULL, NULL, 0, 0, 0)
+SAX.characters(Failed, 6)
+SAX.startElementNs(go, NULL, NULL, 0, 1, 0, href='/vsw...', 21)
+SAX.characters(
+ , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='SUBM...', 6, value='No"/...', 2)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='v"
+v...', 1, value='dark...', 4)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+ , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='ts" ...', 2, value='0003...', 4)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+ , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='tp" ...', 2, value='wml/...', 29)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+ , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='ti" ...', 2, value='1"/>...', 1)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.characters(
+ , 9)
+SAX.startElementNs(postfield, NULL, NULL, 0, 2, 0, name='expe...', 8, value='var:...', 8)
+SAX.endElementNs(postfield, NULL, NULL)
+SAX.endElementNs(go, NULL, NULL)
+SAX.endElementNs(anchor, NULL, NULL)
+SAX.characters(., 1)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(card, NULL, NULL)
+SAX.characters(
+
+, 2)
+SAX.endElementNs(wml, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/winblanks.xml.sax2 b/result/noent/winblanks.xml.sax2
new file mode 100644
index 0000000..6e9d693
--- /dev/null
+++ b/result/noent/winblanks.xml.sax2
@@ -0,0 +1,18 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(B, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 9)
+SAX.startElementNs(C, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(C, NULL, NULL)
+SAX.characters( , 3)
+SAX.characters(
+, 1)
+SAX.endElementNs(B, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(a, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/wml.xml.sax2 b/result/noent/wml.xml.sax2
new file mode 100644
index 0000000..7772d04
--- /dev/null
+++ b/result/noent/wml.xml.sax2
@@ -0,0 +1,31 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://www.wapforum.org/DTD/wml_1.1.xml)
+SAX.externalSubset(wml, -//WAPFORUM//DTD WML 1.1//EN, http://www.wapforum.org/DTD/wml_1.1.xml)
+SAX.startElementNs(wml, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(card, NULL, NULL, 0, 2, 0, id='card...', 5, title='Rubr...', 15)
+SAX.characters(
+ , 2)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(a, NULL, NULL, 0, 1, 0, href='rubm...', 26)
+SAX.characters(Cin, 3)
+SAX.characters(é, 2)
+SAX.characters(ma, 2)
+SAX.endElementNs(a, NULL, NULL)
+SAX.startElementNs(br, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(br, NULL, NULL)
+SAX.characters(
+ , 2)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+
+, 2)
+SAX.endElementNs(card, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(wml, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/xhtml1.sax2 b/result/noent/xhtml1.sax2
new file mode 100644
index 0000000..e6952c8
--- /dev/null
+++ b/result/noent/xhtml1.sax2
@@ -0,0 +1,104 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd)
+SAX.externalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd)
+SAX.comment( 3.1.1 3/ )
+SAX.startElementNs(html, NULL, NULL, 0, 2, 0, xml:lang='en" ...', 2, lang='en">...', 2)
+SAX.characters(
+ , 3)
+SAX.startElementNs(head, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(title, NULL, NULL, 0, 0, 0)
+SAX.characters(Virtual Library, 15)
+SAX.endElementNs(title, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(head, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.comment( 4.8 )
+SAX.characters(
+ , 3)
+SAX.startElementNs(script, NULL, NULL, 0, 1, 0, type='text...', 15)
+SAX.characters(
+ ... unescaped script , 24)
+SAX.characters(<, 1)
+SAX.characters( content ...
+ , 15)
+SAX.endElementNs(script, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(body, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters(Moved to , 9)
+SAX.startElementNs(a, NULL, NULL, 0, 1, 0, href='http...', 19)
+SAX.characters(example.org, 11)
+SAX.endElementNs(a, NULL, NULL)
+SAX.characters(., 1)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(body, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.comment( C2 )
+SAX.characters(
+ , 3)
+SAX.startElementNs(img, NULL, NULL, 0, 2, 0, src='foo....', 7, alt='foo"...', 3)
+SAX.endElementNs(img, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.comment( C3 )
+SAX.characters(
+ , 3)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.comment( C7 )
+SAX.characters(
+ , 3)
+SAX.startElementNs(p, NULL, NULL, 0, 1, 0, lang='fr">...', 2)
+SAX.characters(coucou, 6)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(p, NULL, NULL, 0, 1, 0, xml:lang='fr">...', 2)
+SAX.characters(salut, 5)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.comment( C8 )
+SAX.characters(
+ , 3)
+SAX.startElementNs(p, NULL, NULL, 0, 1, 0, name='frag...', 6)
+SAX.characters(test, 4)
+SAX.endElementNs(p, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.comment( 4.5 )
+SAX.characters(
+ , 3)
+SAX.startElementNs(dl, NULL, NULL, 0, 1, 0, compact='">
+ ...', 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(dt, NULL, NULL, 0, 0, 0)
+SAX.characters(Internet Engineering Task Forc, 31)
+SAX.endElementNs(dt, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.startElementNs(dd, NULL, NULL, 0, 0, 0)
+SAX.characters(An organization which establis, 70)
+SAX.endElementNs(dd, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(dl, NULL, NULL)
+SAX.characters(
+
+, 2)
+SAX.endElementNs(html, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/xhtmlcomp.sax2 b/result/noent/xhtmlcomp.sax2
new file mode 100644
index 0000000..085b770
--- /dev/null
+++ b/result/noent/xhtmlcomp.sax2
@@ -0,0 +1,23 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd)
+SAX.externalSubset(html, -//W3C//DTD XHTML 1.0 Strict//EN, http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd)
+SAX.startElementNs(html, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 3)
+SAX.startElementNs(body, NULL, NULL, 0, 0, 0)
+SAX.characters(
+ , 5)
+SAX.startElementNs(h1, NULL, NULL, 0, 0, 0)
+SAX.startElementNs(abbr, NULL, NULL, 0, 0, 0)
+SAX.characters(a, 1)
+SAX.endElementNs(abbr, NULL, NULL)
+SAX.characters( b, 2)
+SAX.endElementNs(h1, NULL, NULL)
+SAX.characters(
+ , 3)
+SAX.endElementNs(body, NULL, NULL)
+SAX.characters(
+, 1)
+SAX.endElementNs(html, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/xml1.sax2 b/result/noent/xml1.sax2
new file mode 100644
index 0000000..2dce925
--- /dev/null
+++ b/result/noent/xml1.sax2
@@ -0,0 +1,22 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(test, , )
+SAX.entityDecl(example, 1, (null), (null), <p>An ampersand (&) may be escaped
+ numerically (&#38;) or with a general entity
+ (&amp;).</p>)
+SAX.getEntity(example)
+SAX.externalSubset(test, , )
+SAX.startElementNs(test, NULL, NULL, 0, 0, 0)
+SAX.getEntity(example)
+SAX.startElementNs(p, NULL, NULL, 0, 0, 0)
+SAX.characters(An ampersand (, 14)
+SAX.characters(&, 1)
+SAX.characters() may be escaped
+ numerically , 31)
+SAX.characters(&, 1)
+SAX.characters(#38;) or with a general entity, 34)
+SAX.characters(&, 1)
+SAX.characters(amp;)., 6)
+SAX.endElementNs(p, NULL, NULL)
+SAX.endElementNs(test, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/xml2.sax2 b/result/noent/xml2.sax2
new file mode 100644
index 0000000..141accd
--- /dev/null
+++ b/result/noent/xml2.sax2
@@ -0,0 +1,18 @@
+xmlSAXUserParseFile returned error 27
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(test, , )
+SAX.elementDecl(test, 3, ...)
+SAX.entityDecl(xx, 4, (null), (null), %zz;)
+SAX.getParameterEntity(xx)
+SAX.entityDecl(zz, 4, (null), (null), <!ENTITY tricky "error-prone" >)
+SAX.getParameterEntity(zz)
+SAX.getParameterEntity(xx)
+SAX.error: PEReference: %xx; not found
+SAX.characters(This sample shows a , 20)
+SAX.getEntity(tricky)
+SAX.error: Entity 'tricky' not defined
+SAX.reference(tricky)
+SAX.characters( method., 8)
+SAX.endDocument()
+xmlSAXUserParseFile returned error 27
diff --git a/result/relaxng/565219_0 b/result/relaxng/565219_0
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/565219_0
diff --git a/result/relaxng/565219_0.err b/result/relaxng/565219_0.err
new file mode 100644
index 0000000..e3f73fa
--- /dev/null
+++ b/result/relaxng/565219_0.err
@@ -0,0 +1,2 @@
+./test/relaxng/565219_0.xml:1: element foo: Relax-NG validity error : Element foo has wrong namespace: expecting http://bar.com/
+./test/relaxng/565219_0.xml fails to validate
diff --git a/result/relaxng/565219_1 b/result/relaxng/565219_1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/565219_1
diff --git a/result/relaxng/565219_1.err b/result/relaxng/565219_1.err
new file mode 100644
index 0000000..2999bba
--- /dev/null
+++ b/result/relaxng/565219_1.err
@@ -0,0 +1 @@
+./test/relaxng/565219_1.xml validates
diff --git a/result/relaxng/565219_2 b/result/relaxng/565219_2
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/565219_2
diff --git a/result/relaxng/565219_2.err b/result/relaxng/565219_2.err
new file mode 100644
index 0000000..7a997d3
--- /dev/null
+++ b/result/relaxng/565219_2.err
@@ -0,0 +1,2 @@
+./test/relaxng/565219_2.xml:1: element foo: Relax-NG validity error : Element foo has wrong namespace: expecting http://bar.com/
+./test/relaxng/565219_2.xml fails to validate
diff --git a/result/relaxng/565219_err b/result/relaxng/565219_err
new file mode 100644
index 0000000..c43e67c
--- /dev/null
+++ b/result/relaxng/565219_err
@@ -0,0 +1 @@
+./test/relaxng/565219.rng validates
diff --git a/result/relaxng/565219_valid b/result/relaxng/565219_valid
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/565219_valid
diff --git a/result/relaxng/710744_err b/result/relaxng/710744_err
new file mode 100644
index 0000000..54f0226
--- /dev/null
+++ b/result/relaxng/710744_err
@@ -0,0 +1 @@
+./test/relaxng/710744.rng validates
diff --git a/result/relaxng/710744_valid b/result/relaxng/710744_valid
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/710744_valid
diff --git a/result/relaxng/pattern3_1 b/result/relaxng/pattern3_1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/pattern3_1
diff --git a/result/relaxng/pattern3_1.err b/result/relaxng/pattern3_1.err
new file mode 100644
index 0000000..b1a9803
--- /dev/null
+++ b/result/relaxng/pattern3_1.err
@@ -0,0 +1 @@
+./test/relaxng/pattern3_1.xml validates
diff --git a/result/relaxng/pattern3_err b/result/relaxng/pattern3_err
new file mode 100644
index 0000000..a7a1f46
--- /dev/null
+++ b/result/relaxng/pattern3_err
@@ -0,0 +1 @@
+./test/relaxng/pattern3.rng validates
diff --git a/result/relaxng/pattern3_valid b/result/relaxng/pattern3_valid
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/relaxng/pattern3_valid
diff --git a/result/schemas/regexp-char-ref_0_0.err b/result/schemas/regexp-char-ref_0_0.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/regexp-char-ref_0_0.err
diff --git a/result/schemas/regexp-char-ref_1_0.err b/result/schemas/regexp-char-ref_1_0.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/schemas/regexp-char-ref_1_0.err
diff --git a/result/scripts/set3.err b/result/scripts/set3.err
index 18f0d69..0dd7792 100644
--- a/result/scripts/set3.err
+++ b/result/scripts/set3.err
@@ -1,3 +1,3 @@
-./test/scripts/set3.xml:1: parser warning : xmlns: URI bar is not absolute
+./test/scripts/set3.xml:1: namespace warning : xmlns: URI bar is not absolute
<a xmlns="bar">foo</a>
^
diff --git a/result/valid/737840.xml b/result/valid/737840.xml
new file mode 100644
index 0000000..433c6d6
--- /dev/null
+++ b/result/valid/737840.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<!DOCTYPE root [
+<!ELEMENT root (elem)>
+<!ELEMENT elem (#PCDATA)>
+<!ATTLIST elem id ID #IMPLIED>
+<!ENTITY target SYSTEM "dtds/737840.ent">
+]>
+<root>
+ ⌖
+</root>
diff --git a/result/valid/737840.xml.err b/result/valid/737840.xml.err
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/valid/737840.xml.err
diff --git a/result/valid/737840.xml.err.rdr b/result/valid/737840.xml.err.rdr
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/valid/737840.xml.err.rdr
diff --git a/result/valid/766956.xml b/result/valid/766956.xml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/result/valid/766956.xml
diff --git a/result/valid/766956.xml.err b/result/valid/766956.xml.err
new file mode 100644
index 0000000..b4ac1e5
--- /dev/null
+++ b/result/valid/766956.xml.err
@@ -0,0 +1,9 @@
+test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';'
+%ä%ent;
+ ^
+test/valid/dtds/766956.dtd:2: parser error : Content error in the external subset
+%ä%ent;
+ ^
+Entity: line 1:
+value
+^
diff --git a/result/valid/766956.xml.err.rdr b/result/valid/766956.xml.err.rdr
new file mode 100644
index 0000000..4286379
--- /dev/null
+++ b/result/valid/766956.xml.err.rdr
@@ -0,0 +1,10 @@
+test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';'
+%ä%ent;
+ ^
+test/valid/dtds/766956.dtd:2: parser error : Content error in the external subset
+%ä%ent;
+ ^
+Entity: line 1:
+value
+^
+./test/valid/766956.xml : failed to parse
diff --git a/result/valid/781333.xml b/result/valid/781333.xml
new file mode 100644
index 0000000..45dc451
--- /dev/null
+++ b/result/valid/781333.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<!DOCTYPE a [
+<!ELEMENT a (pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp:llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll)>
+]>
+<a/>
diff --git a/result/valid/781333.xml.err b/result/valid/781333.xml.err
new file mode 100644
index 0000000..b401b49
--- /dev/null
+++ b/result/valid/781333.xml.err
@@ -0,0 +1,3 @@
+./test/valid/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got
+<a/>
+ ^
diff --git a/result/valid/781333.xml.err.rdr b/result/valid/781333.xml.err.rdr
new file mode 100644
index 0000000..5ff5699
--- /dev/null
+++ b/result/valid/781333.xml.err.rdr
@@ -0,0 +1,6 @@
+./test/valid/781333.xml:4: element a: validity error : Element a content does not follow the DTD, expecting ( ..., got
+<a/>
+ ^
+./test/valid/781333.xml:5: element a: validity error : Element a content does not follow the DTD, Expecting more child
+
+^
diff --git a/result/valid/t8.xml.err b/result/valid/t8.xml.err
index d795788..5272694 100644
--- a/result/valid/t8.xml.err
+++ b/result/valid/t8.xml.err
@@ -1,19 +1,21 @@
-Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+./test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
- %defroot;
- ^
+%defroot; %defmiddle; %deftest;
+ ^
Entity: line 1:
<!ELEMENT root (middle) >
^
-Entity: line 1: parser error : DOCTYPE improperly terminated
- %defroot;
- ^
+./test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot; %defmiddle; %deftest;
+ ^
Entity: line 1:
-<!ELEMENT root (middle) >
+<!ELEMENT middle (test) >
^
-Entity: line 1: parser error : Start tag expected, '<' not found
- %defroot;
- ^
+./test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot; %defmiddle; %deftest;
+ ^
Entity: line 1:
-<!ELEMENT root (middle) >
- ^
+<!ELEMENT test (#PCDATA) >
+^
diff --git a/result/valid/t8.xml.err.rdr b/result/valid/t8.xml.err.rdr
index c198a16..8da08fb 100644
--- a/result/valid/t8.xml.err.rdr
+++ b/result/valid/t8.xml.err.rdr
@@ -1,14 +1,22 @@
-Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+./test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
- %defroot;
- ^
+%defroot; %defmiddle; %deftest;
+ ^
Entity: line 1:
<!ELEMENT root (middle) >
^
-Entity: line 1: parser error : DOCTYPE improperly terminated
- %defroot;
- ^
+./test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot; %defmiddle; %deftest;
+ ^
Entity: line 1:
-<!ELEMENT root (middle) >
+<!ELEMENT middle (test) >
+^
+./test/valid/t8.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot; %defmiddle; %deftest;
+ ^
+Entity: line 1:
+<!ELEMENT test (#PCDATA) >
^
./test/valid/t8.xml : failed to parse
diff --git a/result/valid/t8a.xml.err b/result/valid/t8a.xml.err
index d795788..2846b19 100644
--- a/result/valid/t8a.xml.err
+++ b/result/valid/t8a.xml.err
@@ -1,19 +1,21 @@
-Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+./test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
- %defroot;
- ^
+%defroot;%defmiddle;%deftest;
+ ^
Entity: line 1:
<!ELEMENT root (middle) >
^
-Entity: line 1: parser error : DOCTYPE improperly terminated
- %defroot;
- ^
+./test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot;%defmiddle;%deftest;
+ ^
Entity: line 1:
-<!ELEMENT root (middle) >
+<!ELEMENT middle (test) >
^
-Entity: line 1: parser error : Start tag expected, '<' not found
- %defroot;
- ^
+./test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot;%defmiddle;%deftest;
+ ^
Entity: line 1:
-<!ELEMENT root (middle) >
- ^
+<!ELEMENT test (#PCDATA) >
+^
diff --git a/result/valid/t8a.xml.err.rdr b/result/valid/t8a.xml.err.rdr
index b6bdcbe..6abe75a 100644
--- a/result/valid/t8a.xml.err.rdr
+++ b/result/valid/t8a.xml.err.rdr
@@ -1,14 +1,22 @@
-Entity: line 1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+./test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
- %defroot;
- ^
+%defroot;%defmiddle;%deftest;
+ ^
Entity: line 1:
<!ELEMENT root (middle) >
^
-Entity: line 1: parser error : DOCTYPE improperly terminated
- %defroot;
- ^
+./test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot;%defmiddle;%deftest;
+ ^
Entity: line 1:
-<!ELEMENT root (middle) >
+<!ELEMENT middle (test) >
+^
+./test/valid/t8a.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
+
+%defroot;%defmiddle;%deftest;
+ ^
+Entity: line 1:
+<!ELEMENT test (#PCDATA) >
^
./test/valid/t8a.xml : failed to parse
diff --git a/rngparser.c b/rngparser.c
index e681e0c..7731d4d 100644
--- a/rngparser.c
+++ b/rngparser.c
@@ -95,7 +95,7 @@
xmlHashTablePtr datatypes;
/*
- * dictionnary and keywords
+ * dictionary and keywords
*/
xmlDictPtr dict;
const xmlChar *key_attribute;
diff --git a/runtest.c b/runtest.c
index 02fe09a..605c1d1 100644
--- a/runtest.c
+++ b/runtest.c
@@ -23,8 +23,10 @@
#include <fcntl.h>
#include <libxml/parser.h>
+#include <libxml/parserInternals.h>
#include <libxml/tree.h>
#include <libxml/uri.h>
+#include <libxml/encoding.h>
#ifdef LIBXML_OUTPUT_ENABLED
#ifdef LIBXML_READER_ENABLED
@@ -81,8 +83,10 @@
*/
#ifdef O_BINARY
#define RD_FLAGS O_RDONLY | O_BINARY
+#define WR_FLAGS O_WRONLY | O_CREAT | O_TRUNC | O_BINARY
#else
-#define RD_FLAGS O_RDONLY
+#define RD_FLAGS O_RDONLY
+#define WR_FLAGS O_WRONLY | O_CREAT | O_TRUNC
#endif
typedef int (*functest) (const char *filename, const char *result,
@@ -100,6 +104,7 @@
int options; /* parser options for the test */
};
+static int update_results = 0;
static int checkTestFile(const char *filename);
#if defined(_WIN32) && !defined(__CYGWIN__)
@@ -115,8 +120,8 @@
} glob_t;
#define GLOB_DOOFFS 0
-static int glob(const char *pattern, int flags,
- int errfunc(const char *epath, int eerrno),
+static int glob(const char *pattern, ATTRIBUTE_UNUSED int flags,
+ ATTRIBUTE_UNUSED int errfunc(const char *epath, int eerrno),
glob_t *pglob) {
glob_t *ret;
WIN32_FIND_DATA FindFileData;
@@ -604,12 +609,34 @@
return(1);
}
-static int compareFiles(const char *r1, const char *r2) {
+static int compareFiles(const char *r1 /* temp */, const char *r2 /* result */) {
int res1, res2;
int fd1, fd2;
char bytes1[4096];
char bytes2[4096];
+ if (update_results) {
+ fd1 = open(r1, RD_FLAGS);
+ if (fd1 < 0)
+ return(-1);
+ fd2 = open(r2, WR_FLAGS, 0644);
+ if (fd2 < 0) {
+ close(fd1);
+ return(-1);
+ }
+ do {
+ res1 = read(fd1, bytes1, 4096);
+ if (res1 <= 0)
+ break;
+ res2 = write(fd2, bytes1, res1);
+ if (res2 <= 0 || res2 != res1)
+ break;
+ } while (1);
+ close(fd2);
+ close(fd1);
+ return(res1 != 0);
+ }
+
fd1 = open(r1, RD_FLAGS);
if (fd1 < 0)
return(-1);
@@ -646,13 +673,31 @@
int idx = 0;
struct stat info;
- if (stat(filename, &info) < 0)
+ if (update_results) {
+ fd = open(filename, WR_FLAGS, 0644);
+ if (fd < 0) {
+ fprintf(stderr, "failed to open %s for writing", filename);
+ return(-1);
+ }
+ res = write(fd, mem, size);
+ close(fd);
+ return(res != size);
+ }
+
+ if (stat(filename, &info) < 0) {
+ fprintf(stderr, "failed to stat %s\n", filename);
return(-1);
- if (info.st_size != size)
+ }
+ if (info.st_size != size) {
+ fprintf(stderr, "file %s is %ld bytes, result is %d bytes\n",
+ filename, (long) info.st_size, size);
return(-1);
+ }
fd = open(filename, RD_FLAGS);
- if (fd < 0)
+ if (fd < 0) {
+ fprintf(stderr, "failed to open %s for reading", filename);
return(-1);
+ }
while (idx < size) {
res = read(fd, bytes, 4096);
if (res <= 0)
@@ -671,6 +716,9 @@
idx += res;
}
close(fd);
+ if (idx != size) {
+ fprintf(stderr,"Compare error index %d, size %d\n", idx, size);
+ }
return(idx != size);
}
@@ -1631,7 +1679,6 @@
static xmlSAXHandlerPtr debugHTMLSAXHandler = &debugHTMLSAXHandlerStruct;
#endif /* LIBXML_HTML_ENABLED */
-#ifdef LIBXML_SAX1_ENABLED
/**
* saxParseTest:
* @filename: the file to parse
@@ -1672,7 +1719,15 @@
ret = 0;
} else
#endif
- ret = xmlSAXUserParseFile(emptySAXHandler, NULL, filename);
+ {
+ xmlParserCtxtPtr ctxt = xmlCreateFileParserCtxt(filename);
+ memcpy(ctxt->sax, emptySAXHandler, sizeof(xmlSAXHandler));
+ xmlCtxtUseOptions(ctxt, options);
+ xmlParseDocument(ctxt);
+ ret = ctxt->wellFormed ? 0 : ctxt->errNo;
+ xmlFreeDoc(ctxt->myDoc);
+ xmlFreeParserCtxt(ctxt);
+ }
if (ret == XML_WAR_UNDECLARED_ENTITY) {
fprintf(SAXdebug, "xmlSAXUserParseFile returned error %d\n", ret);
ret = 0;
@@ -1688,10 +1743,19 @@
ret = 0;
} else
#endif
- if (options & XML_PARSE_SAX1) {
- ret = xmlSAXUserParseFile(debugSAXHandler, NULL, filename);
- } else {
- ret = xmlSAXUserParseFile(debugSAX2Handler, NULL, filename);
+ {
+ xmlParserCtxtPtr ctxt = xmlCreateFileParserCtxt(filename);
+ if (options & XML_PARSE_SAX1) {
+ memcpy(ctxt->sax, debugSAXHandler, sizeof(xmlSAXHandler));
+ options -= XML_PARSE_SAX1;
+ } else {
+ memcpy(ctxt->sax, debugSAX2Handler, sizeof(xmlSAXHandler));
+ }
+ xmlCtxtUseOptions(ctxt, options);
+ xmlParseDocument(ctxt);
+ ret = ctxt->wellFormed ? 0 : ctxt->errNo;
+ xmlFreeDoc(ctxt->myDoc);
+ xmlFreeParserCtxt(ctxt);
}
if (ret == XML_WAR_UNDECLARED_ENTITY) {
fprintf(SAXdebug, "xmlSAXUserParseFile returned error %d\n", ret);
@@ -1715,7 +1779,6 @@
return(ret);
}
-#endif
/************************************************************************
* *
@@ -1808,6 +1871,7 @@
const char *base;
int size, res;
int cur = 0;
+ int chunkSize = 4;
nb_tests++;
/*
@@ -1818,17 +1882,21 @@
return(-1);
}
+ if (chunkSize > size)
+ chunkSize = size;
+
#ifdef LIBXML_HTML_ENABLED
if (options & XML_PARSE_HTML)
- ctxt = htmlCreatePushParserCtxt(NULL, NULL, base + cur, 4, filename,
+ ctxt = htmlCreatePushParserCtxt(NULL, NULL, base + cur, chunkSize, filename,
XML_CHAR_ENCODING_NONE);
else
#endif
- ctxt = xmlCreatePushParserCtxt(NULL, NULL, base + cur, 4, filename);
+ ctxt = xmlCreatePushParserCtxt(NULL, NULL, base + cur, chunkSize, filename);
xmlCtxtUseOptions(ctxt, options);
- cur += 4;
- while (cur < size) {
- if (cur + 1024 >= size) {
+ cur += chunkSize;
+ chunkSize = 1024;
+ do {
+ if (cur + chunkSize >= size) {
#ifdef LIBXML_HTML_ENABLED
if (options & XML_PARSE_HTML)
htmlParseChunk(ctxt, base + cur, size - cur, 1);
@@ -1839,13 +1907,13 @@
} else {
#ifdef LIBXML_HTML_ENABLED
if (options & XML_PARSE_HTML)
- htmlParseChunk(ctxt, base + cur, 1024, 0);
+ htmlParseChunk(ctxt, base + cur, chunkSize, 0);
else
#endif
- xmlParseChunk(ctxt, base + cur, 1024, 0);
- cur += 1024;
+ xmlParseChunk(ctxt, base + cur, chunkSize, 0);
+ cur += chunkSize;
}
- }
+ } while (cur < size);
doc = ctxt->myDoc;
#ifdef LIBXML_HTML_ENABLED
if (options & XML_PARSE_HTML)
@@ -1871,7 +1939,7 @@
if ((base == NULL) || (res != 0)) {
if (base != NULL)
xmlFree((char *)base);
- fprintf(stderr, "Result for %s failed\n", filename);
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
return(-1);
}
xmlFree((char *)base);
@@ -1926,7 +1994,7 @@
if ((base == NULL) || (res != 0)) {
if (base != NULL)
xmlFree((char *)base);
- fprintf(stderr, "Result for %s failed\n", filename);
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
return(-1);
}
xmlFree((char *)base);
@@ -2037,16 +2105,16 @@
xmlDocDumpMemory(doc, (xmlChar **) &base, &size);
}
res = compareFileMem(result, base, size);
+ if (res != 0) {
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
+ return(-1);
+ }
}
if (doc != NULL) {
if (base != NULL)
xmlFree((char *)base);
xmlFreeDoc(doc);
}
- if (res != 0) {
- fprintf(stderr, "Result for %s failed\n", filename);
- return(-1);
- }
if (err != NULL) {
res = compareFileMem(err, testErrors, testErrorsSize);
if (res != 0) {
@@ -2096,7 +2164,8 @@
}
static int
streamProcessTest(const char *filename, const char *result, const char *err,
- xmlTextReaderPtr reader, const char *rng, int options) {
+ xmlTextReaderPtr reader, const char *rng,
+ int options ATTRIBUTE_UNUSED) {
int ret;
char *temp = NULL;
FILE *t = NULL;
@@ -2159,7 +2228,7 @@
free(temp);
}
if (ret) {
- fprintf(stderr, "Result for %s failed\n", filename);
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
return(-1);
}
}
@@ -2271,10 +2340,19 @@
static xmlDocPtr xpathDocument;
static void
+ignoreGenericError(void *ctx ATTRIBUTE_UNUSED,
+ const char *msg ATTRIBUTE_UNUSED, ...) {
+}
+
+static void
testXPath(const char *str, int xptr, int expr) {
+ xmlGenericErrorFunc handler = ignoreGenericError;
xmlXPathObjectPtr res;
xmlXPathContextPtr ctxt;
+ /* Don't print generic errors to stderr. */
+ initGenericErrorDefaultFunc(&handler);
+
nb_tests++;
#if defined(LIBXML_XPTR_ENABLED)
if (xptr) {
@@ -2303,6 +2381,9 @@
xmlXPathDebugDumpObject(xpathOutput, res, 0);
xmlXPathFreeObject(res);
xmlXPathFreeContext(ctxt);
+
+ /* Reset generic error handler. */
+ initGenericErrorDefaultFunc(NULL);
}
/**
@@ -2362,7 +2443,7 @@
if (result != NULL) {
ret = compareFiles(temp, result);
if (ret) {
- fprintf(stderr, "Result for %s failed\n", filename);
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
}
}
@@ -2533,7 +2614,7 @@
if (result != NULL) {
ret = compareFiles(temp, result);
if (ret) {
- fprintf(stderr, "Result for %s failed\n", filename);
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
res = 1;
}
}
@@ -2661,7 +2742,7 @@
if (result != NULL) {
ret = compareFiles(temp, result);
if (ret) {
- fprintf(stderr, "Result for %s failed\n", filename);
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
res = 1;
}
}
@@ -3430,11 +3511,11 @@
result[499] = 0;
memcpy(xml + len, ".xml", 5);
- if (!checkTestFile(xml)) {
+ if (!checkTestFile(xml) && !update_results) {
fprintf(stderr, "Missing xml file %s\n", xml);
return(-1);
}
- if (!checkTestFile(result)) {
+ if (!checkTestFile(result) && !update_results) {
fprintf(stderr, "Missing result file %s\n", result);
return(-1);
}
@@ -3533,7 +3614,7 @@
ret = compareFiles(temp, result);
if (ret) {
- fprintf(stderr, "Result for %s failed\n", filename);
+ fprintf(stderr, "Result for %s failed in %s\n", filename, result);
ret = 1;
}
if (temp != NULL) {
@@ -3805,7 +3886,7 @@
prefix[len] = 0;
snprintf(buf, 499, "result/c14n/%s/%s", subdir,prefix);
- if (!checkTestFile(buf)) {
+ if (!checkTestFile(buf) && !update_results) {
fprintf(stderr, "Missing result file %s", buf);
return(-1);
}
@@ -3859,7 +3940,7 @@
return(c14nCommonTest(filename, 0, XML_C14N_1_1, "1-1-without-comments"));
}
#endif
-#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED) && defined (LIBXML_SAX1_ENABLED)
+#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED)
/************************************************************************
* *
* Catalog and threads test *
@@ -3871,19 +3952,23 @@
*/
#define MAX_ARGC 20
-static const char *catalog = "test/threads/complex.xml";
-static const char *testfiles[] = {
- "test/threads/abc.xml",
- "test/threads/acb.xml",
- "test/threads/bac.xml",
- "test/threads/bca.xml",
- "test/threads/cab.xml",
- "test/threads/cba.xml",
- "test/threads/invalid.xml",
-};
+typedef struct {
+ const char *filename;
+ int okay;
+} xmlThreadParams;
-static const char *Okay = "OK";
-static const char *Failed = "Failed";
+static const char *catalog = "test/threads/complex.xml";
+static xmlThreadParams threadParams[] = {
+ { "test/threads/abc.xml", 0 },
+ { "test/threads/acb.xml", 0 },
+ { "test/threads/bac.xml", 0 },
+ { "test/threads/bca.xml", 0 },
+ { "test/threads/cab.xml", 0 },
+ { "test/threads/cba.xml", 0 },
+ { "test/threads/invalid.xml", 0 }
+};
+static const unsigned int num_threads = sizeof(threadParams) /
+ sizeof(threadParams[0]);
#ifndef xmlDoValidityCheckingDefaultValue
#error xmlDoValidityCheckingDefaultValue is not a macro
@@ -3896,7 +3981,8 @@
thread_specific_data(void *private_data)
{
xmlDocPtr myDoc;
- const char *filename = (const char *) private_data;
+ xmlThreadParams *params = (xmlThreadParams *) private_data;
+ const char *filename = params->filename;
int okay = 1;
if (!strcmp(filename, "test/threads/invalid.xml")) {
@@ -3906,7 +3992,11 @@
xmlDoValidityCheckingDefaultValue = 1;
xmlGenericErrorContext = stderr;
}
+#ifdef LIBXML_SAX1_ENABLED
myDoc = xmlParseFile(filename);
+#else
+ myDoc = xmlReadFile(filename, NULL, XML_WITH_CATALOG);
+#endif
if (myDoc) {
xmlFreeDoc(myDoc);
} else {
@@ -3932,12 +4022,11 @@
okay = 0;
}
}
- if (okay == 0)
- return ((void *) Failed);
- return ((void *) Okay);
+ params->okay = okay;
+ return(NULL);
}
-#if defined WIN32
+#if defined(_WIN32) && !defined(__CYGWIN__)
#include <windows.h>
#include <string.h>
@@ -3948,15 +4037,14 @@
static DWORD WINAPI
win32_thread_specific_data(void *private_data)
{
- return((DWORD) thread_specific_data(private_data));
+ thread_specific_data(private_data);
+ return(0);
}
static int
testThread(void)
{
unsigned int i, repeat;
- unsigned int num_threads = sizeof(testfiles) / sizeof(testfiles[0]);
- DWORD results[MAX_ARGC];
BOOL ret;
int res = 0;
@@ -3966,7 +4054,6 @@
nb_tests++;
for (i = 0; i < num_threads; i++) {
- results[i] = 0;
tid[i] = (HANDLE) - 1;
}
@@ -3975,7 +4062,7 @@
tid[i] = CreateThread(NULL, 0,
win32_thread_specific_data,
- (void *) testfiles[i], 0,
+ (void *) &threadParams[i], 0,
&useless);
if (tid[i] == NULL) {
fprintf(stderr, "CreateThread failed\n");
@@ -3990,7 +4077,8 @@
}
for (i = 0; i < num_threads; i++) {
- ret = GetExitCodeThread(tid[i], &results[i]);
+ DWORD exitCode;
+ ret = GetExitCodeThread(tid[i], &exitCode);
if (ret == 0) {
fprintf(stderr, "GetExitCodeThread failed\n");
return(1);
@@ -4000,9 +4088,9 @@
xmlCatalogCleanup();
for (i = 0; i < num_threads; i++) {
- if (results[i] != (DWORD) Okay) {
+ if (threadParams[i].okay == 0) {
fprintf(stderr, "Thread %d handling %s failed\n",
- i, testfiles[i]);
+ i, threadParams[i].filename);
res = 1;
}
}
@@ -4020,8 +4108,6 @@
testThread(void)
{
unsigned int i, repeat;
- unsigned int num_threads = sizeof(testfiles) / sizeof(testfiles[0]);
- void *results[MAX_ARGC];
status_t ret;
int res = 0;
@@ -4029,13 +4115,12 @@
for (repeat = 0; repeat < 500; repeat++) {
xmlLoadCatalog(catalog);
for (i = 0; i < num_threads; i++) {
- results[i] = NULL;
tid[i] = (thread_id) - 1;
}
for (i = 0; i < num_threads; i++) {
tid[i] =
spawn_thread(thread_specific_data, "xmlTestThread",
- B_NORMAL_PRIORITY, (void *) testfiles[i]);
+ B_NORMAL_PRIORITY, (void *) &threadParams[i]);
if (tid[i] < B_OK) {
fprintf(stderr, "beos_thread_create failed\n");
return (1);
@@ -4043,7 +4128,8 @@
printf("beos_thread_create %d -> %d\n", i, tid[i]);
}
for (i = 0; i < num_threads; i++) {
- ret = wait_for_thread(tid[i], &results[i]);
+ void *result;
+ ret = wait_for_thread(tid[i], &result);
printf("beos_thread_wait %d -> %d\n", i, ret);
if (ret != B_OK) {
fprintf(stderr, "beos_thread_wait failed\n");
@@ -4054,8 +4140,9 @@
xmlCatalogCleanup();
ret = B_OK;
for (i = 0; i < num_threads; i++)
- if (results[i] != (void *) Okay) {
- printf("Thread %d handling %s failed\n", i, testfiles[i]);
+ if (threadParams[i].okay == 0) {
+ printf("Thread %d handling %s failed\n", i,
+ threadParams[i].filename);
ret = B_ERROR;
}
}
@@ -4073,8 +4160,6 @@
testThread(void)
{
unsigned int i, repeat;
- unsigned int num_threads = sizeof(testfiles) / sizeof(testfiles[0]);
- void *results[MAX_ARGC];
int ret;
int res = 0;
@@ -4085,20 +4170,20 @@
nb_tests++;
for (i = 0; i < num_threads; i++) {
- results[i] = NULL;
tid[i] = (pthread_t) - 1;
}
for (i = 0; i < num_threads; i++) {
ret = pthread_create(&tid[i], 0, thread_specific_data,
- (void *) testfiles[i]);
+ (void *) &threadParams[i]);
if (ret != 0) {
fprintf(stderr, "pthread_create failed\n");
return (1);
}
}
for (i = 0; i < num_threads; i++) {
- ret = pthread_join(tid[i], &results[i]);
+ void *result;
+ ret = pthread_join(tid[i], &result);
if (ret != 0) {
fprintf(stderr, "pthread_join failed\n");
return (1);
@@ -4107,9 +4192,9 @@
xmlCatalogCleanup();
for (i = 0; i < num_threads; i++)
- if (results[i] != (void *) Okay) {
+ if (threadParams[i].okay == 0) {
fprintf(stderr, "Thread %d handling %s failed\n",
- i, testfiles[i]);
+ i, threadParams[i].filename);
res = 1;
}
}
@@ -4156,6 +4241,9 @@
{ "Error cases regression tests",
errParseTest, "./test/errors/*.xml", "result/errors/", "", ".err",
0 },
+ { "Error cases regression tests (old 1.0)",
+ errParseTest, "./test/errors10/*.xml", "result/errors10/", "", ".err",
+ XML_PARSE_OLD10 },
#ifdef LIBXML_READER_ENABLED
{ "Error cases stream regression tests",
streamParseTest, "./test/errors/*.xml", "result/errors/", NULL, ".str",
@@ -4177,10 +4265,13 @@
{ "SAX1 callbacks regression tests" ,
saxParseTest, "./test/*", "result/", ".sax", NULL,
XML_PARSE_SAX1 },
+#endif
{ "SAX2 callbacks regression tests" ,
saxParseTest, "./test/*", "result/", ".sax2", NULL,
0 },
-#endif
+ { "SAX2 callbacks regression tests with entity substitution" ,
+ saxParseTest, "./test/*", "result/noent/", ".sax2", NULL,
+ XML_PARSE_NOENT },
#ifdef LIBXML_PUSH_ENABLED
{ "XML push regression tests" ,
pushParseTest, "./test/*", "result/", "", NULL,
@@ -4195,12 +4286,10 @@
pushParseTest, "./test/HTML/*", "result/HTML/", "", ".err",
XML_PARSE_HTML },
#endif
-#ifdef LIBXML_SAX1_ENABLED
{ "HTML SAX regression tests" ,
saxParseTest, "./test/HTML/*", "result/HTML/", ".sax", NULL,
XML_PARSE_HTML },
#endif
-#endif
#ifdef LIBXML_VALID_ENABLED
{ "Valid documents regression tests" ,
errParseTest, "./test/VCM/*", NULL, NULL, NULL,
@@ -4303,7 +4392,7 @@
c14n11WithoutCommentTest, "./test/c14n/1-1-without-comments/*.xml", NULL, NULL, NULL,
0 },
#endif
-#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_SAX1_ENABLED)
+#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED)
{ "Catalog and Threads regression tests" ,
threadsTest, NULL, NULL, NULL, NULL,
0 },
@@ -4324,6 +4413,9 @@
char *result;
char *error;
int mem;
+ xmlCharEncodingHandlerPtr ebcdicHandler;
+
+ ebcdicHandler = xmlGetCharEncodingHandler(XML_CHAR_ENCODING_EBCDIC);
if (tst == NULL) return(-1);
if (tst->in != NULL) {
@@ -4334,6 +4426,9 @@
for (i = 0;i < globbuf.gl_pathc;i++) {
if (!checkTestFile(globbuf.gl_pathv[i]))
continue;
+ if ((ebcdicHandler == NULL) &&
+ (strstr(globbuf.gl_pathv[i], "ebcdic") != NULL))
+ continue;
if (tst->suffix != NULL) {
result = resultFilename(globbuf.gl_pathv[i], tst->out,
tst->suffix);
@@ -4354,9 +4449,9 @@
} else {
error = NULL;
}
- if ((result) &&(!checkTestFile(result))) {
+ if ((result) &&(!checkTestFile(result)) && !update_results) {
fprintf(stderr, "Missing result file %s\n", result);
- } else if ((error) &&(!checkTestFile(error))) {
+ } else if ((error) &&(!checkTestFile(error)) && !update_results) {
fprintf(stderr, "Missing error file %s\n", error);
} else {
mem = xmlMemUsed();
@@ -4399,6 +4494,9 @@
err++;
}
}
+
+ xmlCharEncCloseFunc(ebcdicHandler);
+
return(err);
}
@@ -4435,11 +4533,18 @@
int i, a, ret = 0;
int subset = 0;
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ setvbuf(stdout, NULL, _IONBF, 0);
+ setvbuf(stderr, NULL, _IONBF, 0);
+#endif
+
initializeLibxml2();
for (a = 1; a < argc;a++) {
if (!strcmp(argv[a], "-v"))
verbose = 1;
+ else if (!strcmp(argv[a], "-u"))
+ update_results = 1;
else if (!strcmp(argv[a], "-quiet"))
tests_quiet = 1;
else {
diff --git a/test/HTML/758518-entity.html b/test/HTML/758518-entity.html
new file mode 100644
index 0000000..d31c8ff
--- /dev/null
+++ b/test/HTML/758518-entity.html
@@ -0,0 +1 @@
+&jÙ
\ No newline at end of file
diff --git a/test/HTML/758518-tag.html b/test/HTML/758518-tag.html
new file mode 100644
index 0000000..935e752
--- /dev/null
+++ b/test/HTML/758518-tag.html
@@ -0,0 +1 @@
+<?a
\ No newline at end of file
diff --git a/test/HTML/758605.html b/test/HTML/758605.html
new file mode 100644
index 0000000..9b1b3c2
--- /dev/null
+++ b/test/HTML/758605.html
@@ -0,0 +1 @@
+&:ê
diff --git a/test/HTML/758606.html b/test/HTML/758606.html
new file mode 100644
index 0000000..01a013c
--- /dev/null
+++ b/test/HTML/758606.html
@@ -0,0 +1 @@
+<!--<!doctype
diff --git a/test/HTML/758606_2.html b/test/HTML/758606_2.html
new file mode 100644
index 0000000..daa185b
--- /dev/null
+++ b/test/HTML/758606_2.html
@@ -0,0 +1 @@
+<!--<!dOctYPE
diff --git a/test/XPath/docs/ns b/test/XPath/docs/ns
new file mode 100644
index 0000000..2338a6f
--- /dev/null
+++ b/test/XPath/docs/ns
@@ -0,0 +1,5 @@
+<doc xmlns:ns1="nsuri1">
+ <preceding/>
+ <elem xmlns:ns2="nsuri2"/>
+ <following/>
+</doc>
diff --git a/test/XPath/docs/str b/test/XPath/docs/str
index 547e54d..449de01 100644
--- a/test/XPath/docs/str
+++ b/test/XPath/docs/str
@@ -6,4 +6,6 @@
<p><p>a span</p>n<p>ing one</p></p>
<p><p>and an unbal</p><empty/>anced test</p>
<p>for empty string <seq>123</seq></p>
+ <p id="1">a<b>b</b>c</p>
+ <p id="2"><!--X-->abc</p>
</chapter>
diff --git a/test/XPath/expr/base b/test/XPath/expr/base
index 9aaed4f..cc18735 100644
--- a/test/XPath/expr/base
+++ b/test/XPath/expr/base
@@ -3,3 +3,15 @@
2*3
1+2*3+4
(1+2)*(3+4)
+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1+1*1
+0.000000000000000000000000000000000000000000000000001
+-0.000000000000000000000000000000000000000000000000001
+1e2147483648
+1e4294967296
+1e9223372036854775808
+1e18446744073709551616
+1e-2147483649
+1e-4294967296
+1e-9223372036854775809
+1e-18446744073709551616
+self::-name
diff --git a/test/XPath/expr/floats b/test/XPath/expr/floats
index 96c10d1..b447524 100644
--- a/test/XPath/expr/floats
+++ b/test/XPath/expr/floats
@@ -59,3 +59,5 @@
-5 mod 2
-5 mod -2
8 mod 3 = 2
+12345678901234567890
+-12345678901234567890
diff --git a/test/XPath/expr/functions b/test/XPath/expr/functions
index d168b18..00b9461 100644
--- a/test/XPath/expr/functions
+++ b/test/XPath/expr/functions
@@ -9,12 +9,22 @@
floor(0)
floor(5.2)
floor(-5.2)
+floor(100000000000000000000)
+floor(-100000000000000000000)
+floor(0 div 0)
+floor(1 div 0)
+floor(-1 div 0)
ceiling(0.1)
ceiling(-0.1)
ceiling(-0)
ceiling(0)
ceiling(5.2)
ceiling(-5.2)
+ceiling(100000000000000000000)
+ceiling(-100000000000000000000)
+ceiling(0 div 0)
+ceiling(1 div 0)
+ceiling(-1 div 0)
round(0.1)
round(5.2)
round(5.5)
@@ -23,3 +33,10 @@
round(-5.2)
round(-5.5)
round(-5.6)
+round(0.5)
+round(-0.5)
+round(100000000000000000000)
+round(-100000000000000000000)
+round(0 div 0)
+round(1 div 0)
+round(-1 div 0)
diff --git a/test/XPath/expr/strings b/test/XPath/expr/strings
index 849ca14..ba02c79 100644
--- a/test/XPath/expr/strings
+++ b/test/XPath/expr/strings
@@ -3,6 +3,8 @@
string(-0.5)
string(true())
string(false())
+string(12345678901234567890)
+string(-12345678901234567890)
concat("titi","toto")
concat("titi","toto","tata")
concat("titi",'toto')
diff --git a/test/XPath/tests/chaptersbase b/test/XPath/tests/chaptersbase
index daa53b7..f8fbe2a 100644
--- a/test/XPath/tests/chaptersbase
+++ b/test/XPath/tests/chaptersbase
@@ -7,3 +7,7 @@
/child::EXAMPLE/child::head/node()
/descendant::title
/descendant::p/ancestor::chapter
+//p[1]
+//p[0 div 0]
+//p[100000000000000000000]
+//p[-100000000000000000000]
diff --git a/test/XPath/tests/nssimple b/test/XPath/tests/nssimple
new file mode 100644
index 0000000..8b343a3
--- /dev/null
+++ b/test/XPath/tests/nssimple
@@ -0,0 +1,5 @@
+/doc/elem/namespace::node()/..
+/doc/elem/namespace::*/self::node()[true()]
+//*[namespace::ns1]
+/doc/elem/namespace::ns2/following::*
+/doc/elem/namespace::ns2/preceding::*
diff --git a/test/XPath/tests/simplebase b/test/XPath/tests/simplebase
index 7e4203a..7b302af 100644
--- a/test/XPath/tests/simplebase
+++ b/test/XPath/tests/simplebase
@@ -5,5 +5,12 @@
/child::EXAMPLE/child::head/child::title
/child::EXAMPLE/child::head/child::title/child::text()
/child::EXAMPLE/child::head/node()
+/child::EXAMPLE/attribute::prop1/self::node()
+/child::EXAMPLE/attribute::prop1/self::*
+/child::EXAMPLE/attribute::prop1/descendant-or-self::node()
+/child::EXAMPLE/attribute::prop1/descendant-or-self::*
+/child::EXAMPLE/attribute::prop1/ancestor-or-self::node()
+/child::EXAMPLE/attribute::prop1/ancestor-or-self::*
/descendant::title
/descendant::p/ancestor::chapter
+/child::EXAMPLE/attribute::prop2/preceding::text()
diff --git a/test/XPath/tests/strbase b/test/XPath/tests/strbase
new file mode 100644
index 0000000..b818325
--- /dev/null
+++ b/test/XPath/tests/strbase
@@ -0,0 +1 @@
+//p[.='abc']
diff --git a/test/XPath/xptr/viderror b/test/XPath/xptr/viderror
new file mode 100644
index 0000000..da8c53b
--- /dev/null
+++ b/test/XPath/xptr/viderror
@@ -0,0 +1 @@
+xpointer(non-existing-fn()/range-to(id('chapter2')))
diff --git a/test/cdata-2-byte-UTF-8.xml b/test/cdata-2-byte-UTF-8.xml
new file mode 100644
index 0000000..8552efc
--- /dev/null
+++ b/test/cdata-2-byte-UTF-8.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that two-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+<p><![CDATA[ ČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČČ]]></p>
+</doc>
diff --git a/test/cdata-3-byte-UTF-8.xml b/test/cdata-3-byte-UTF-8.xml
new file mode 100644
index 0000000..b959a12
--- /dev/null
+++ b/test/cdata-3-byte-UTF-8.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that three-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+<p><![CDATA[ 牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛]]></p>
+</doc>
diff --git a/test/cdata-4-byte-UTF-8.xml b/test/cdata-4-byte-UTF-8.xml
new file mode 100644
index 0000000..4d1d9a8
--- /dev/null
+++ b/test/cdata-4-byte-UTF-8.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This tests that four-byte UTF-8 characters are parsed properly when split across a buffer boundary of length XML_PARSER_BIG_BUFFER_SIZE (300 bytes). -->
+<doc>
+<p><![CDATA[🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[ 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[ 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+<p><![CDATA[ 🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦🍦]]></p>
+</doc>
diff --git a/test/errors/754946.xml b/test/errors/754946.xml
new file mode 100644
index 0000000..edeab32
--- /dev/null
+++ b/test/errors/754946.xml
@@ -0,0 +1,4 @@
+<!DOCTYPE A [
+ <!ENTITY % SYSTEM "A<lbbbbbbbbbbbbbbbbbbb_">
+ %SYSTEM;
+ <![
diff --git a/test/errors/754947.xml b/test/errors/754947.xml
new file mode 100644
index 0000000..bd9997e
--- /dev/null
+++ b/test/errors/754947.xml
@@ -0,0 +1 @@
+<d><![CDATA[0000000000000î]]>
\ No newline at end of file
diff --git a/test/errors/758588.xml b/test/errors/758588.xml
new file mode 100644
index 0000000..bec7e93
--- /dev/null
+++ b/test/errors/758588.xml
@@ -0,0 +1 @@
+<a-340282366920938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867209384634725979468672093846347259794686720938463472597946867261d:a></a
\ No newline at end of file
diff --git a/test/errors/759020.xml b/test/errors/759020.xml
new file mode 100644
index 0000000..db23275
--- /dev/null
+++ b/test/errors/759020.xml
@@ -0,0 +1,46 @@
+<?l 00000000000000000000000000000?>
+<s00 w0000="000" h00000="000"
+ xmlns = '00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/errors/759398.xml b/test/errors/759398.xml
new file mode 100755
index 0000000..132e029
--- /dev/null
+++ b/test/errors/759398.xml
@@ -0,0 +1,326 @@
+<?xml version='1.0' encoding='ISO-8859-5' standalone='no'?>
+<!DOCTYPE spec SYSTEM "dtds/spec.dtd" [
+
+<!-- LAST TOUCHED BY: Tim Bray, 8 February 1997 -->
+
+<!-- The words 'FINAL EDIT' in comments mark places where changes
+need to be made after approval of the document by the ERB, before
+publication. -->
+
+<!ENTITY XML.version "1.0">
+<!ENTITY doc.date "10 February 1998">
+<!ENTITY iso6.doc.date "19980210">
+<!ENTITY w3c.doc.date "02-Feb-1998">
+<!ENTITY draft.day '10'>
+<!ENTITY draft.month 'February'>
+<!ENTITY draft.year '1998'>
+
+<!ENTITY WebSGML
+ 'WebSGML Adaptations Annex to ISO 8879'>
+
+<!ENTITY lt "<">
+<!ENTITY gt ">">
+<!ENTITY xmlpio "'<?xml'">
+<!ENTITY pic "'?>'">
+<!ENTITY br "\n">
+<!ENTITY cellback '#c0d9c0'>
+<!ENTITY mdash "--"> <!-- —, but nsgmls doesn't grok hex -->
+<!ENTITY com "--">
+<!ENTITY como "--">
+<!ENTITY comc "--">
+<!ENTITY hcro "&#x">
+<!-- <!ENTITY nbsp " "> -->
+<!ENTITY nbsp " ">
+<!ENTITY magicents "<code>amp</code>,
+<code>lt</code>,
+<code>gt</code>,
+<code>apos</code>,
+<code>quot</code>">
+
+<!-- audience and distribution status: for use at publication time -->
+<!ENTITY doc.audience "public review and discussion">
+<!ENTITY doc.distribution "may be dislributed freely, as long as
+all text and legal notices remain intact">
+
+]>
+
+<!-- for Panorama *-->
+<?VERBATIM "eg" ?>
+
+<spec>
+<header>
+<title>Extensible Markup Language (XML) 1.0</title>
+<version></version>
+<w3c-designation>REC-xml-&iso6.doc.date;</w3c-designation>
+<w3c-doctype>W3C Recommendation</w3c-doctype>
+<pubdate><day>&draft.day;</day><month>&draft.month;</month><year>&draft.year;</year></pubdate>
+
+<publoc>
+<loc href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;</loc>
+<loc href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.xml">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.xml</loc>
+<loc href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.html">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.html</loc>
+<loc href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.pdf">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.pdf</loc>
+<loc href="http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.ps">
+http://www.w3.org/TR/1998/REC-xml-&iso6.doc.date;.ps</loc>
+</publoc>
+<latestloc>
+<loc href="http://www.w3.org/TR/REC-xml">
+httÿÿÿwww.w3.org/TR/REC-xml</loc>
+</latestloc>
+<prevlocs>
+<loc href="http://www.w3.org/TR/PR-xml-971208">
+http://www.w3.org/TR/PR-xml-971208</loc>
+<!--
+<loc href='http://www.w3.org/TR/WD-xml-961114'>
+http://www.w3.org/TR/WD-xml-961114</loc>
+<loc href='http://www.w3.org/TR/WD-xml-lang-970331'>
+http://www.w3.org/TR/WD-xml-lang-970331</loc>
+<loc href='http://www.w3.org/TR/WD-xml-lang-970630'>
+http://www.w3.org/TR/WD-xml-lang-970630</loc>
+<loc href='http://www.w3.org/TR/WD-xml-970807'>
+http://www.w3.org/TR/WD-xml-970807</loc>
+<loc href='http://www.w3.org/TR/WD-xml-971117'>
+http://www.w3.org/TR/WD-xml-971117</loc>-->
+</prevlocs>
+<authlist>
+<author><name>Tim Bray</name>
+<affiliation>Textuality and Netscape</affiliation>
+<email
+href="mailto:tbray@textuality.com">tbray@textuality.com</email></author>
+<author><name>Jean Paoli</name>
+<affiliation>Microsoft</affiliation>
+<email href="mailto:jeanpa@microsoft.com">jeanpa@microsoft.com</email></author>
+<author><name>C. M. Sperberg-McQueen</name>
+<affiliation>University of Illinois at Chicago</affiliation>
+<email href="mailto:cmsmcq@uic.edu">cmsmcq@uic.edu</email></author>
+</authlist>
+<abstract>
+<p>The Extensible Markup Language (XML) is a subset of
+SGML that is completely described in this document. Its goal is to
+enable generic SGML to be served, received, and processed on the Web
+in the way that is now possible with HTML. XML has been designed for
+ease of implementation and for interoperability with both SGML and
+HTML.</p>
+</abstract>
+<status>
+<p>This document has been reviewed by W3C Members and
+other interested parties and has been endorsed by the
+Director as a W3C Recommendation. It is a stable
+document and may be used as reference material or cited
+as a normative reference from another document. W3C's
+role in making the Recommendation is to draw attention
+to the spPcification and to promote its widespread
+deployment. This enhances the functionality and
+interoperability of the Web.</p>
+<p>
+This document specifies a syntax created by subsetting an existing,
+widely used international text processing standard (Standard
+Generalized Markup Language, ISO 8879:1986(E) as amended and
+corrected) for use on the World Wide Web. It is a product of the W3C
+XML Activity, details of which can be found at <loc
+href='http://www.w3.org/XML'>http://www.w3.org/XML</loc>. A list of
+current W3C Recommendations and other technical documents can be found
+at <loc href='http://www.w3.org/TR'>http://www.w3.org/TR</loc>.
+</p>
+<p>This specification uses the term URI, which is defined by <bibref
+ref="Berners-Lee"/>, a work in progress expected to update <bibref
+ref="RFC1738"/> and <bibref ref="RFC1808"/>.
+</p>
+<p>The list of known errors in this specification is
+available at
+<loc href='http://www.w3.org/XML/xml-19980210-errata'>http://www.w3.org/XML/xml-19980210-errata</loc>.</p>
+<p>Please report errors in this document to
+<loc href='mailto:xml-editor@w3.org'>xml-editor@w3.org</loc>.
+</p>
+</status>
+
+
+<pubstmt>
+<p>Chicago, Vancouver, Mountain View, et al.:
+World-Wide Web Consortium, XML Working Group, 1996, 1997.</p>
+</pubstmt>
+<sourcedesc>
+<p>Created in electronic form.</p>
+</sourcedesc>
+<langusage>
+<language id='EN'>English</language>
+<language id='ebnf'>Extended Backus-Naur Form (formal grammar)</language>
+</langusage>
+<revisiondesc>
+<slist>
+<sitem>1997-12-03 : CMSMcQ : yet further changes</sitem>
+<sitem>1997-12-02 : TB : further changes (see TB to XML WG,
+2 December 1997)</sitem>
+<sitem>1997-12-02 : CMSMcQ : deal with as many corrections and
+comments from the proofreaders as possible:
+entify hard-coded document date in pubdate element,
+change expansion of entity WebSGML,
+update status description as per Dan Connolly (am not sure
+about refernece to Berners-Lee et al.),
+add 'The' to abstract as per WG decision,
+move Relationship to Existing Standards to back matter and
+combine with References,
+re-order back matter so normative appendices come first,
+re-tag back matter so informative appendices are tagged informdiv1,
+remove XXX XXX from list of 'normative' specs in prose,
+move some references from Other References to Normative References,
+add RFC 1738, 1808, and 2141 to Other References (they are not
+normative since we do not require the processor to enforce any
+rules based on them),
+add reference to 'Fielding draft' (Berners-Lee et al.),
+move notation section to end of body,
+drop URIchar non-terminal and use SkipLit instead,
+lose stray reference to defunct nonterminal 'markupdecls',
+move reference to Aho et al. into appendix (Tim's right),
+add prose note saying that hash marks and fragment identifiers are
+NOT part of the URI formally speaking, and are NOT legal in
+system identifiers (processor 'may' signal an error).
+Work through:
+Tim Bray reacting to James Clark,
+Tim Bray on his own,
+Eve Maler,
+
+NOT DONE YET:
+change binary / text to unparsed / parsed.
+handle James's suggestion about < in attriubte values
+uppercase hex characters,
+namechar list,
+</sitem>
+<sitem>1997-12-01 : JB : add some column-width parameters</sitem>
+<sitem>1997-12-01 : CMSMcQ : begin round of changes to incorporate
+recent WG decisions and other corrections:
+binding sources of character encoding info (27 Aug / 3 Sept),
+correct wording of Faust quotation (restore dropped line),
+drop SDD from EncodingDecl,
+change text at version number 1.0,
+drop misleading (wrong!) sentence about ignorables and extenders,
+modify definÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙÙxamples with Byte Order Mark.
+Add content model as a term and clarify that it applies to both
+mixed and element content.
+</sitem>
+<sitem>1997-06-30 : CMSMcQ : change date, some cosmetic changes,
+changes to productions for choice, seq, Mixed, NotationType,
+Enumeration. Follow James Clark's suggestion and prohibit
+conditional sections in internal subset. TO DO: simplify
+production for ignored sections as a result, since we don't
+need to worry about parsers whi<! don't expand PErefs finding
+a conditional section.</sitem>
+<sitem>1997-06-29 : TB : various edits</sitem>
+<sitem>1997-06-29 : CMSMcQ : further changes:
+Suppress old FINAL EDIT comments and some dead material.
+Revise occurrences of % in grammar to exploit Henry Thompson's pun,
+especially markupdecl and attdef.
+Remove RMD requirement relating to element content (?).
+</sitem>
+<sitem>1997-06-28 : CMSMcQ : Various changes for 1 July draft:
+Add text for draconian error handling (introduce
+the term Fatal Error).
+RE deleta est (changing wording from
+original announcement to restrict the requirement to validating
+parsers).
+Tag definition of validawwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww it meant 'may or may not'.</sitem>
+<sitem>1997-03-21 : TB : massive changes on plane flight from Chicago
+to Vancouver</sitem>
+<sitem>1997-03-21 : CMSMcQ : correct as many reported errors as possible.
+</sitem>
+<sitem>1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec.</sitem>
+<sitem>1997 James Clark:
+Define the set of characters from which [^abc] subtracts.
+Charref should use just [0-9] not Digit.
+Location info needs cleaner treatment: remove? (ERB
+question).
+One example of a PI has wrong pic.
+Clarify discussion of encoding names.
+Encoding failure should lead to unspecified results; don't
+prescribe error recovery.
+Don't require exposure of entity boundaries.
+Ignore white space in element content.
+Reserve entity names of the form u-NNNN.
+Clarify relative URLs.
+And some of my own:
+Correct productions for content model: model cannot
+consist of a name, so "elements ::= cp" is no good.
+</sitem>
+<sitem>1996-11-11 : CMSMcQ : revise for style.
+Add new rhs to entity declaration, for parameter entities.</sitem>
+<sitem>1996-11-10 : CMSMcQ : revise for style.
+Fix / complete section on names, characters.
+Add sections on parameter entities, conditional sections.
+Still to do: Add compatibility note on deterministic content models.
+Finish stylistic revision.</sitem>
+<sitem>1996-10-31 : TB : Add Entity Handling section</sitem>
+<sitem>1996-10-30 : TB : Clean up term & termdef. Slip in
+ERB decision re EMPTY.</sitem>
+<sitem>1996-10-28 : TB : Change DTD. Implement some of Michael's
+suggestions. Change comments back to //. Introduce language for
+XML namespace reservation. Add section on white-space handling.
+Lots more cleanup.</sitem>
+<sitem>1996-10-24 : CMSMcQ : quick tweaks, implement some ERB
+decisions. Characters are not integers. Comments are /* */ not //.
+Add bibliographic refs to 10646, HyTime, Unicode.
+Rename old Cdata as MsData since it's <emph>only</emph> seen
+in marked sections. Call them attribute-value pairs not
+name-value pairs, except once. Internal subset is optional, needs
+'?'. Implied attributes should be signaled to the app, not
+have values supplied by processor.</sitem>
+<sitem>1996-10-16 : TB : track down & excise all DSD references;
+introduce some EBNF for entity declarations.</sitem>
+<sitem>1996-10-?? nsistency check, fix up scraps so
+they all parse, get formatter working, correct a few productions.</sitem>
+<sitem>1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and
+organizational changes:
+Replace a few literals with xmlpio and
+pi""entities, to make them consistent and ensure we can change pic
+reliably when the ERB votes.
+Drop paragraph on recognizers from notation section.
+Add match, exact match to terminology.
+Move old 2.2 XML Processors and Apps into intro.
+Mention comments, PIs, and marked sections in discussion of
+delimiter escaping.
+Streamline discussion of doctype decl syntax.
+Drop old section of 'PI syntax' for doctype decl, and add
+section on partial-DTD summary PIs to end of Logical Structures
+section.
+Revise DSD syntax section to use Tim's subset-in-a-PI
+mechanism.</sitem>
+<sitem>1996-10-10 : TB : eliminate name recognizers (and more?)</sitem>
+<sitem>1996-10-09 : CMSMcQ : revise for style, consistency through 2.3
+(Characters)</sitem>
+<sitem>1996-10-09 : CMSMcQ : re-unite everything for convenience,
+at least temporarily, and revise quickly</sitem>
+<sitem>1996-10-08 : TB : first major homogenization pass</sitem>
+<sitem>1996-10-08 : TB : turn "current" attribute on div type into
+CDATA</sitem>
+<sitem>1996-10-02 : TB : remould into skeleton + entities</sitem>
+<sitem>1996-09-30 : CMSMcQ : add a few more sections prior to exchange
+ with Tim.</sitem>
+<sitem>1996-09-20 : CMSMcQ : finish transcribing notes.</sitem>
+<sitem>1996-09-19 : CMSMcQ : begin transcribing notes for draft.</sitem>
+<sitem>1996-09-13 : CMSMcQ : made outline from notes of 09-06,
+do some housekeeping</sitem>
+</slist>
+</revisiondesc>
+</header>
+<ðððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððððm> is used to read XML documents
+and provide access to their content and structure.</termdef> <termdef
+id="dt-app" term="Application">It is @ssumed that an XML processor is
+doing its work on behalf of another module, called the
+<term>application</term>.</termdef> This specification describes the
+required beh\vior of an XML processor in terms of how it must read XML
+data and the information it must provide to the application.</p>
+
+<div2 id='sec-origin-goals'>
+<head>Origin and Goals</head>
+<p>XML was developed by an XML Working Group (orisable over the
+Internet.</p></item>
+<item><p>XML shall support a wide variey of applications.</p></item>
+<item><p>XML shall be compatible with SGML.</p></item>
+<item><p>It shall be easy to write programs which process XML
+documents.</p></item>
+<item><p>The number of optional features in XML is to be kept to the
+absolute minimum, ideally zero.</p></item>
+<item><p>XML documents shou
\ No newline at end of file
diff --git a/test/errors/759573-2.xml b/test/errors/759573-2.xml
new file mode 100644
index 0000000..5ad655f
--- /dev/null
+++ b/test/errors/759573-2.xml
Binary files differ
diff --git a/test/errors/759573.xml b/test/errors/759573.xml
new file mode 100644
index 0000000..69ebb57
--- /dev/null
+++ b/test/errors/759573.xml
@@ -0,0 +1 @@
+<?h?><!DOCTYPEt[<!ELEMENT t (A)><!ENTITY % xx '%<![INCLUDE[000%ஸ000%z;'><!ENTITYz>%xx;
\ No newline at end of file
diff --git a/test/errors/759579.xml b/test/errors/759579.xml
new file mode 100644
index 0000000..7fadd70
--- /dev/null
+++ b/test/errors/759579.xml
@@ -0,0 +1,11 @@
+<!DOCTYPE doc [
+ <!ENTITY % z '
+ %z; %z; %z; %z; %z;
+ %z; %z; %z; %z; %z;
+ %z; %z; %z; %z; %z;
+ %z; %z; %z; %z; %z;
+ %z; %z; %z; %z; %z;
+ '>
+ %z;
+]>
+<doc/>
diff --git a/test/errors10/781205.xml b/test/errors10/781205.xml
new file mode 100644
index 0000000..d9e9e83
--- /dev/null
+++ b/test/errors10/781205.xml
@@ -0,0 +1,3 @@
+<!DOCTYPE D [
+ <!ENTITY % a "<:0000">
+ %a;
diff --git a/test/errors10/781361.xml b/test/errors10/781361.xml
new file mode 100644
index 0000000..67476bc
--- /dev/null
+++ b/test/errors10/781361.xml
@@ -0,0 +1,3 @@
+<!DOCTYPE doc [
+ <!ENTITY % elem "<!ELEMENT e0000000000">
+ %elem;
diff --git a/test/icu_parse_test.xml b/test/icu_parse_test.xml
new file mode 100644
index 0000000..031a967
--- /dev/null
+++ b/test/icu_parse_test.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="EUC-JP"?>
+<foo>
+Text with EUC-JP chars at position 214 (0xd6)
+___
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______________
+_______é®Äé___
+_</foo>
diff --git a/test/relaxng/565219.rng b/test/relaxng/565219.rng
new file mode 100644
index 0000000..087ed95
--- /dev/null
+++ b/test/relaxng/565219.rng
@@ -0,0 +1,14 @@
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+ <start>
+ <element>
+ <anyName>
+ <except>
+ <nsName ns="http://bar.com/"/>
+ <nsName ns="http://foo.com/"/>
+ </except>
+ </anyName>
+ <empty/>
+ </element>
+ </start>
+</grammar>
+
diff --git a/test/relaxng/565219_0.xml b/test/relaxng/565219_0.xml
new file mode 100644
index 0000000..a964a07
--- /dev/null
+++ b/test/relaxng/565219_0.xml
@@ -0,0 +1 @@
+<foo xmlns="http://foo.com/"/>
diff --git a/test/relaxng/565219_1.xml b/test/relaxng/565219_1.xml
new file mode 100644
index 0000000..f1999f8
--- /dev/null
+++ b/test/relaxng/565219_1.xml
@@ -0,0 +1 @@
+<foo/>
diff --git a/test/relaxng/565219_2.xml b/test/relaxng/565219_2.xml
new file mode 100644
index 0000000..a964a07
--- /dev/null
+++ b/test/relaxng/565219_2.xml
@@ -0,0 +1 @@
+<foo xmlns="http://foo.com/"/>
diff --git a/test/relaxng/pattern3.rng b/test/relaxng/pattern3.rng
new file mode 100644
index 0000000..fa4434f
--- /dev/null
+++ b/test/relaxng/pattern3.rng
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
+datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <start>
+ <element name="test">
+ <data type="token">
+ <param name="pattern">[a-z]+</param>
+ </data>
+ </element>
+ </start>
+</grammar>
diff --git a/test/relaxng/pattern3_1.xml b/test/relaxng/pattern3_1.xml
new file mode 100644
index 0000000..f559cd3
--- /dev/null
+++ b/test/relaxng/pattern3_1.xml
@@ -0,0 +1 @@
+<test> ooo </test>
diff --git a/test/valid/737840.xml b/test/valid/737840.xml
new file mode 100644
index 0000000..2d27b73
--- /dev/null
+++ b/test/valid/737840.xml
@@ -0,0 +1,10 @@
+<!DOCTYPE root [
+<!ELEMENT root (elem)>
+<!ELEMENT elem (#PCDATA)>
+<!ATTLIST elem id ID #IMPLIED>
+<!ENTITY target SYSTEM "dtds/737840.ent">
+]>
+
+<root>
+ ⌖
+</root>
diff --git a/test/valid/766956.xml b/test/valid/766956.xml
new file mode 100644
index 0000000..19a95a0
--- /dev/null
+++ b/test/valid/766956.xml
@@ -0,0 +1,2 @@
+<!DOCTYPE test SYSTEM "dtds/766956.dtd">
+<test/>
diff --git a/test/valid/781333.xml b/test/valid/781333.xml
new file mode 100644
index 0000000..b29e5a6
--- /dev/null
+++ b/test/valid/781333.xml
@@ -0,0 +1,4 @@
+<!DOCTYPE a [
+ <!ELEMENT a (pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp:llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll)>
+]>
+<a/>
diff --git a/test/valid/dtds/737840.ent b/test/valid/dtds/737840.ent
new file mode 100644
index 0000000..e972132
--- /dev/null
+++ b/test/valid/dtds/737840.ent
@@ -0,0 +1 @@
+<elem id="id0"/>
\ No newline at end of file
diff --git a/test/valid/dtds/766956.dtd b/test/valid/dtds/766956.dtd
new file mode 100644
index 0000000..dddde68
--- /dev/null
+++ b/test/valid/dtds/766956.dtd
@@ -0,0 +1,2 @@
+<!ENTITY % ent "value">
+%ä%ent;
diff --git a/testModule.c b/testModule.c
index e399f5c..77b7ba1 100644
--- a/testModule.c
+++ b/testModule.c
@@ -47,7 +47,7 @@
/* build the module filename, and confirm the module exists */
xmlStrPrintf(filename, sizeof(filename),
- (const xmlChar*) "%s/testdso%s",
+ "%s/testdso%s",
(const xmlChar*)MODULE_PATH,
(const xmlChar*)LIBXML_MODULE_EXTENSION);
diff --git a/testThreads.c b/testThreads.c
index bff5391..2ef70a7 100644
--- a/testThreads.c
+++ b/testThreads.c
@@ -3,7 +3,7 @@
#include <stdlib.h>
#include <stdio.h>
-#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED) && defined(LIBXML_SAX1_ENABLED)
+#if defined(LIBXML_THREAD_ENABLED) && defined(LIBXML_CATALOG_ENABLED)
#include <libxml/globals.h>
#include <libxml/threads.h>
#include <libxml/parser.h>
@@ -61,7 +61,11 @@
xmlDoValidityCheckingDefaultValue = 1;
xmlGenericErrorContext = stderr;
}
+#ifdef LIBXML_SAX1_ENABLED
myDoc = xmlParseFile(filename);
+#else
+ myDoc = xmlReadFile(filename, NULL, XML_WITH_CATALOG);
+#endif
if (myDoc) {
xmlFreeDoc(myDoc);
} else {
diff --git a/testapi.c b/testapi.c
index 0367ffd..4a751e2 100644
--- a/testapi.c
+++ b/testapi.c
@@ -737,7 +737,8 @@
#define gen_nb_xmlHashDeallocator 2
static void
-test_xmlHashDeallocator(void *payload ATTRIBUTE_UNUSED, xmlChar *name ATTRIBUTE_UNUSED) {
+test_xmlHashDeallocator(void *payload ATTRIBUTE_UNUSED,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
}
static xmlHashDeallocator gen_xmlHashDeallocator(int no, int nr ATTRIBUTE_UNUSED) {
@@ -1034,10 +1035,10 @@
#define gen_nb_xmlBufferAllocationScheme 4
static xmlBufferAllocationScheme gen_xmlBufferAllocationScheme(int no, int nr ATTRIBUTE_UNUSED) {
- if (no == 1) return(XML_BUFFER_ALLOC_DOUBLEIT);
- if (no == 2) return(XML_BUFFER_ALLOC_EXACT);
- if (no == 3) return(XML_BUFFER_ALLOC_HYBRID);
- if (no == 4) return(XML_BUFFER_ALLOC_IMMUTABLE);
+ if (no == 1) return(XML_BUFFER_ALLOC_BOUNDED);
+ if (no == 2) return(XML_BUFFER_ALLOC_DOUBLEIT);
+ if (no == 3) return(XML_BUFFER_ALLOC_EXACT);
+ if (no == 4) return(XML_BUFFER_ALLOC_HYBRID);
return(0);
}
@@ -1480,6 +1481,9 @@
mem_base = xmlMemBlocks();
buffer = gen_const_char_ptr(n_buffer, 0);
size = gen_int(n_size, 1);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
ret_val = htmlCreateMemoryParserCtxt((const char *)buffer, size);
desret_htmlParserCtxtPtr(ret_val);
@@ -1547,6 +1551,9 @@
size = gen_int(n_size, 3);
filename = gen_fileoutput(n_filename, 4);
enc = gen_xmlCharEncoding(n_enc, 5);
+ if ((chunk != NULL) &&
+ (size > (int) strlen((const char *) chunk) + 1))
+ continue;
ret_val = htmlCreatePushParserCtxt(sax, user_data, (const char *)chunk, size, filename, enc);
desret_htmlParserCtxtPtr(ret_val);
@@ -1721,6 +1728,9 @@
URL = gen_filepath(n_URL, 3);
encoding = gen_const_char_ptr(n_encoding, 4);
options = gen_int(n_options, 5);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
ret_val = htmlCtxtReadMemory(ctxt, (const char *)buffer, size, URL, (const char *)encoding, options);
desret_htmlDocPtr(ret_val);
@@ -2278,6 +2288,9 @@
chunk = gen_const_char_ptr(n_chunk, 1);
size = gen_int(n_size, 2);
terminate = gen_int(n_terminate, 3);
+ if ((chunk != NULL) &&
+ (size > (int) strlen((const char *) chunk) + 1))
+ continue;
ret_val = htmlParseChunk(ctxt, (const char *)chunk, size, terminate);
if (ctxt != NULL) {xmlFreeDoc(ctxt->myDoc); ctxt->myDoc = NULL;}
@@ -2321,16 +2334,16 @@
char * encoding; /* a free form C string describing the HTML document encoding, or NULL */
int n_encoding;
- for (n_cur = 0;n_cur < gen_nb_xmlChar_ptr;n_cur++) {
+ for (n_cur = 0;n_cur < gen_nb_const_xmlChar_ptr;n_cur++) {
for (n_encoding = 0;n_encoding < gen_nb_const_char_ptr;n_encoding++) {
mem_base = xmlMemBlocks();
- cur = gen_xmlChar_ptr(n_cur, 0);
+ cur = gen_const_xmlChar_ptr(n_cur, 0);
encoding = gen_const_char_ptr(n_encoding, 1);
- ret_val = htmlParseDoc(cur, (const char *)encoding);
+ ret_val = htmlParseDoc((const xmlChar *)cur, (const char *)encoding);
desret_htmlDocPtr(ret_val);
call_tests++;
- des_xmlChar_ptr(n_cur, cur, 0);
+ des_const_xmlChar_ptr(n_cur, (const xmlChar *)cur, 0);
des_const_char_ptr(n_encoding, (const char *)encoding, 1);
xmlResetLastError();
if (mem_base != xmlMemBlocks()) {
@@ -2621,6 +2634,9 @@
URL = gen_filepath(n_URL, 2);
encoding = gen_const_char_ptr(n_encoding, 3);
options = gen_int(n_options, 4);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
ret_val = htmlReadMemory((const char *)buffer, size, URL, (const char *)encoding, options);
desret_htmlDocPtr(ret_val);
@@ -2670,20 +2686,20 @@
void * userData; /* if using SAX, this pointer will be provided on callbacks. */
int n_userData;
- for (n_cur = 0;n_cur < gen_nb_xmlChar_ptr;n_cur++) {
+ for (n_cur = 0;n_cur < gen_nb_const_xmlChar_ptr;n_cur++) {
for (n_encoding = 0;n_encoding < gen_nb_const_char_ptr;n_encoding++) {
for (n_sax = 0;n_sax < gen_nb_htmlSAXHandlerPtr;n_sax++) {
for (n_userData = 0;n_userData < gen_nb_userdata;n_userData++) {
mem_base = xmlMemBlocks();
- cur = gen_xmlChar_ptr(n_cur, 0);
+ cur = gen_const_xmlChar_ptr(n_cur, 0);
encoding = gen_const_char_ptr(n_encoding, 1);
sax = gen_htmlSAXHandlerPtr(n_sax, 2);
userData = gen_userdata(n_userData, 3);
- ret_val = htmlSAXParseDoc(cur, (const char *)encoding, sax, userData);
+ ret_val = htmlSAXParseDoc((const xmlChar *)cur, (const char *)encoding, sax, userData);
desret_htmlDocPtr(ret_val);
call_tests++;
- des_xmlChar_ptr(n_cur, cur, 0);
+ des_const_xmlChar_ptr(n_cur, (const xmlChar *)cur, 0);
des_const_char_ptr(n_encoding, (const char *)encoding, 1);
des_htmlSAXHandlerPtr(n_sax, sax, 2);
des_userdata(n_userData, userData, 3);
@@ -3870,6 +3886,9 @@
ctx = gen_void_ptr(n_ctx, 0);
value = gen_const_xmlChar_ptr(n_value, 1);
len = gen_int(n_len, 2);
+ if ((value != NULL) &&
+ (len > (int) strlen((const char *) value) + 1))
+ continue;
xmlSAX2CDataBlock(ctx, (const xmlChar *)value, len);
call_tests++;
@@ -3914,6 +3933,9 @@
ctx = gen_void_ptr(n_ctx, 0);
ch = gen_const_xmlChar_ptr(n_ch, 1);
len = gen_int(n_len, 2);
+ if ((ch != NULL) &&
+ (len > (int) strlen((const char *) ch) + 1))
+ continue;
xmlSAX2Characters(ctx, (const xmlChar *)ch, len);
call_tests++;
@@ -4554,6 +4576,9 @@
ctx = gen_void_ptr(n_ctx, 0);
ch = gen_const_xmlChar_ptr(n_ch, 1);
len = gen_int(n_len, 2);
+ if ((ch != NULL) &&
+ (len > (int) strlen((const char *) ch) + 1))
+ continue;
xmlSAX2IgnorableWhitespace(ctx, (const xmlChar *)ch, len);
call_tests++;
@@ -8175,7 +8200,7 @@
int mem_base;
xmlDictPtr ret_val;
- xmlDictPtr sub; /* an existing dictionnary */
+ xmlDictPtr sub; /* an existing dictionary */
int n_sub;
for (n_sub = 0;n_sub < gen_nb_xmlDictPtr;n_sub++) {
@@ -8207,7 +8232,7 @@
int mem_base;
const xmlChar * ret_val;
- xmlDictPtr dict; /* the dictionnary */
+ xmlDictPtr dict; /* the dictionary */
int n_dict;
xmlChar * name; /* the name of the userdata */
int n_name;
@@ -8221,6 +8246,9 @@
dict = gen_xmlDictPtr(n_dict, 0);
name = gen_const_xmlChar_ptr(n_name, 1);
len = gen_int(n_len, 2);
+ if ((name != NULL) &&
+ (len > (int) strlen((const char *) name) + 1))
+ continue;
ret_val = xmlDictExists(dict, (const xmlChar *)name, len);
desret_const_xmlChar_ptr(ret_val);
@@ -8263,7 +8291,7 @@
int mem_base;
const xmlChar * ret_val;
- xmlDictPtr dict; /* the dictionnary */
+ xmlDictPtr dict; /* the dictionary */
int n_dict;
xmlChar * name; /* the name of the userdata */
int n_name;
@@ -8277,6 +8305,9 @@
dict = gen_xmlDictPtr(n_dict, 0);
name = gen_const_xmlChar_ptr(n_name, 1);
len = gen_int(n_len, 2);
+ if ((name != NULL) &&
+ (len > (int) strlen((const char *) name) + 1))
+ continue;
ret_val = xmlDictLookup(dict, (const xmlChar *)name, len);
desret_const_xmlChar_ptr(ret_val);
@@ -8309,7 +8340,7 @@
int mem_base;
int ret_val;
- xmlDictPtr dict; /* the dictionnary */
+ xmlDictPtr dict; /* the dictionary */
int n_dict;
xmlChar * str; /* the string */
int n_str;
@@ -8348,7 +8379,7 @@
int mem_base;
const xmlChar * ret_val;
- xmlDictPtr dict; /* the dictionnary */
+ xmlDictPtr dict; /* the dictionary */
int n_dict;
xmlChar * prefix; /* the prefix */
int n_prefix;
@@ -8394,7 +8425,7 @@
int mem_base;
int ret_val;
- xmlDictPtr dict; /* the dictionnary */
+ xmlDictPtr dict; /* the dictionary */
int n_dict;
for (n_dict = 0;n_dict < gen_nb_xmlDictPtr;n_dict++) {
@@ -8437,7 +8468,7 @@
int mem_base;
int ret_val;
- xmlDictPtr dict; /* the dictionnary */
+ xmlDictPtr dict; /* the dictionary */
int n_dict;
for (n_dict = 0;n_dict < gen_nb_xmlDictPtr;n_dict++) {
@@ -9958,6 +9989,43 @@
static int
+test_xmlHashDefaultDeallocator(void) {
+ int test_ret = 0;
+
+ int mem_base;
+ void * entry; /* the hash table entry */
+ int n_entry;
+ xmlChar * name; /* the entry's name */
+ int n_name;
+
+ for (n_entry = 0;n_entry < gen_nb_void_ptr;n_entry++) {
+ for (n_name = 0;n_name < gen_nb_const_xmlChar_ptr;n_name++) {
+ mem_base = xmlMemBlocks();
+ entry = gen_void_ptr(n_entry, 0);
+ name = gen_const_xmlChar_ptr(n_name, 1);
+
+ xmlHashDefaultDeallocator(entry, (const xmlChar *)name);
+ call_tests++;
+ des_void_ptr(n_entry, entry, 0);
+ des_const_xmlChar_ptr(n_name, (const xmlChar *)name, 1);
+ xmlResetLastError();
+ if (mem_base != xmlMemBlocks()) {
+ printf("Leak of %d blocks found in xmlHashDefaultDeallocator",
+ xmlMemBlocks() - mem_base);
+ test_ret++;
+ printf(" %d", n_entry);
+ printf(" %d", n_name);
+ printf("\n");
+ }
+ }
+ }
+ function_tests++;
+
+ return(test_ret);
+}
+
+
+static int
test_xmlHashLookup(void) {
int test_ret = 0;
@@ -10689,13 +10757,14 @@
test_hash(void) {
int test_ret = 0;
- if (quiet == 0) printf("Testing hash : 16 of 24 functions ...\n");
+ if (quiet == 0) printf("Testing hash : 17 of 25 functions ...\n");
test_ret += test_xmlHashAddEntry();
test_ret += test_xmlHashAddEntry2();
test_ret += test_xmlHashAddEntry3();
test_ret += test_xmlHashCopy();
test_ret += test_xmlHashCreate();
test_ret += test_xmlHashCreateDict();
+ test_ret += test_xmlHashDefaultDeallocator();
test_ret += test_xmlHashLookup();
test_ret += test_xmlHashLookup2();
test_ret += test_xmlHashLookup3();
@@ -12727,6 +12796,9 @@
chunk = gen_const_char_ptr(n_chunk, 2);
size = gen_int(n_size, 3);
filename = gen_fileoutput(n_filename, 4);
+ if ((chunk != NULL) &&
+ (size > (int) strlen((const char *) chunk) + 1))
+ continue;
ret_val = xmlCreatePushParserCtxt(sax, user_data, (const char *)chunk, size, filename);
desret_xmlParserCtxtPtr(ret_val);
@@ -12905,6 +12977,9 @@
URL = gen_filepath(n_URL, 3);
encoding = gen_const_char_ptr(n_encoding, 4);
options = gen_parseroptions(n_options, 5);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
ret_val = xmlCtxtReadMemory(ctxt, (const char *)buffer, size, URL, (const char *)encoding, options);
desret_xmlDocPtr(ret_val);
@@ -12998,6 +13073,9 @@
size = gen_int(n_size, 2);
filename = gen_filepath(n_filename, 3);
encoding = gen_const_char_ptr(n_encoding, 4);
+ if ((chunk != NULL) &&
+ (size > (int) strlen((const char *) chunk) + 1))
+ continue;
ret_val = xmlCtxtResetPush(ctxt, (const char *)chunk, size, filename, (const char *)encoding);
desret_int(ret_val);
@@ -13709,6 +13787,9 @@
chunk = gen_const_char_ptr(n_chunk, 1);
size = gen_int(n_size, 2);
terminate = gen_int(n_terminate, 3);
+ if ((chunk != NULL) &&
+ (size > (int) strlen((const char *) chunk) + 1))
+ continue;
ret_val = xmlParseChunk(ctxt, (const char *)chunk, size, terminate);
if (ctxt != NULL) {xmlFreeDoc(ctxt->myDoc); ctxt->myDoc = NULL;}
@@ -14166,6 +14247,9 @@
mem_base = xmlMemBlocks();
buffer = gen_const_char_ptr(n_buffer, 0);
size = gen_int(n_size, 1);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
ret_val = xmlParseMemory((const char *)buffer, size);
desret_xmlDocPtr(ret_val);
@@ -14578,6 +14662,9 @@
URL = gen_filepath(n_URL, 2);
encoding = gen_const_char_ptr(n_encoding, 3);
options = gen_parseroptions(n_options, 4);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
ret_val = xmlReadMemory((const char *)buffer, size, URL, (const char *)encoding, options);
desret_xmlDocPtr(ret_val);
@@ -14700,6 +14787,9 @@
mem_base = xmlMemBlocks();
buffer = gen_const_char_ptr(n_buffer, 0);
size = gen_int(n_size, 1);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
ret_val = xmlRecoverMemory((const char *)buffer, size);
desret_xmlDocPtr(ret_val);
@@ -15001,6 +15091,9 @@
buffer = gen_const_char_ptr(n_buffer, 1);
size = gen_int(n_size, 2);
recovery = gen_int(n_recovery, 3);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
ret_val = xmlSAXParseMemory(sax, (const char *)buffer, size, recovery);
desret_xmlDocPtr(ret_val);
@@ -15062,6 +15155,9 @@
size = gen_int(n_size, 2);
recovery = gen_int(n_recovery, 3);
data = gen_userdata(n_data, 4);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
ret_val = xmlSAXParseMemoryWithData(sax, (const char *)buffer, size, recovery, data);
desret_xmlDocPtr(ret_val);
@@ -15177,6 +15273,9 @@
user_data = gen_userdata(n_user_data, 1);
buffer = gen_const_char_ptr(n_buffer, 2);
size = gen_int(n_size, 3);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
#ifdef LIBXML_SAX1_ENABLED
if (sax == (xmlSAXHandlerPtr)&xmlDefaultSAXHandler) user_data = NULL;
@@ -15948,6 +16047,9 @@
mem_base = xmlMemBlocks();
buffer = gen_const_char_ptr(n_buffer, 0);
size = gen_int(n_size, 1);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
ret_val = xmlCreateMemoryParserCtxt((const char *)buffer, size);
desret_xmlParserCtxtPtr(ret_val);
@@ -16603,6 +16705,9 @@
end = gen_xmlChar(n_end, 4);
end2 = gen_xmlChar(n_end2, 5);
end3 = gen_xmlChar(n_end3, 6);
+ if ((str != NULL) &&
+ (len > (int) strlen((const char *) str) + 1))
+ continue;
ret_val = xmlStringLenDecodeEntities(ctxt, (const xmlChar *)str, len, what, end, end2, end3);
desret_xmlChar_ptr(ret_val);
@@ -17573,6 +17678,9 @@
mem_base = xmlMemBlocks();
buffer = gen_const_char_ptr(n_buffer, 0);
size = gen_int(n_size, 1);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
ret_val = xmlRelaxNGNewMemParserCtxt((const char *)buffer, size);
desret_xmlRelaxNGParserCtxtPtr(ret_val);
@@ -17849,6 +17957,9 @@
ctxt = gen_xmlRelaxNGValidCtxtPtr(n_ctxt, 0);
data = gen_const_xmlChar_ptr(n_data, 1);
len = gen_int(n_len, 2);
+ if ((data != NULL) &&
+ (len > (int) strlen((const char *) data) + 1))
+ continue;
ret_val = xmlRelaxNGValidatePushCData(ctxt, (const xmlChar *)data, len);
desret_int(ret_val);
@@ -18591,6 +18702,9 @@
buf = gen_xmlBufferPtr(n_buf, 0);
str = gen_const_xmlChar_ptr(n_str, 1);
len = gen_int(n_len, 2);
+ if ((str != NULL) &&
+ (len > (int) strlen((const char *) str) + 1))
+ continue;
ret_val = xmlBufferAdd(buf, (const xmlChar *)str, len);
desret_int(ret_val);
@@ -18637,6 +18751,9 @@
buf = gen_xmlBufferPtr(n_buf, 0);
str = gen_const_xmlChar_ptr(n_str, 1);
len = gen_int(n_len, 2);
+ if ((str != NULL) &&
+ (len > (int) strlen((const char *) str) + 1))
+ continue;
ret_val = xmlBufferAddHead(buf, (const xmlChar *)str, len);
desret_int(ret_val);
@@ -19209,6 +19326,9 @@
prefix = gen_const_xmlChar_ptr(n_prefix, 1);
memory = gen_xmlChar_ptr(n_memory, 2);
len = gen_int(n_len, 3);
+ if ((prefix != NULL) &&
+ (len > (int) strlen((const char *) prefix) + 1))
+ continue;
ret_val = xmlBuildQName((const xmlChar *)ncname, (const xmlChar *)prefix, memory, len);
if ((ret_val != NULL) && (ret_val != ncname) &&
@@ -20980,6 +21100,9 @@
doc = gen_xmlDocPtr(n_doc, 0);
content = gen_const_xmlChar_ptr(n_content, 1);
len = gen_int(n_len, 2);
+ if ((content != NULL) &&
+ (len > (int) strlen((const char *) content) + 1))
+ continue;
ret_val = xmlNewCDataBlock(doc, (const xmlChar *)content, len);
desret_xmlNodePtr(ret_val);
@@ -21553,6 +21676,9 @@
doc = gen_xmlDocPtr(n_doc, 0);
content = gen_const_xmlChar_ptr(n_content, 1);
len = gen_int(n_len, 2);
+ if ((content != NULL) &&
+ (len > (int) strlen((const char *) content) + 1))
+ continue;
ret_val = xmlNewDocTextLen(doc, (const xmlChar *)content, len);
desret_xmlNodePtr(ret_val);
@@ -22096,6 +22222,9 @@
mem_base = xmlMemBlocks();
content = gen_const_xmlChar_ptr(n_content, 0);
len = gen_int(n_len, 1);
+ if ((content != NULL) &&
+ (len > (int) strlen((const char *) content) + 1))
+ continue;
ret_val = xmlNewTextLen((const xmlChar *)content, len);
desret_xmlNodePtr(ret_val);
@@ -22209,6 +22338,9 @@
cur = gen_xmlNodePtr(n_cur, 0);
content = gen_const_xmlChar_ptr(n_content, 1);
len = gen_int(n_len, 2);
+ if ((content != NULL) &&
+ (len > (int) strlen((const char *) content) + 1))
+ continue;
xmlNodeAddContentLen(cur, (const xmlChar *)content, len);
call_tests++;
@@ -22759,6 +22891,9 @@
cur = gen_xmlNodePtr(n_cur, 0);
content = gen_const_xmlChar_ptr(n_content, 1);
len = gen_int(n_len, 2);
+ if ((content != NULL) &&
+ (len > (int) strlen((const char *) content) + 1))
+ continue;
xmlNodeSetContentLen(cur, (const xmlChar *)content, len);
call_tests++;
@@ -23823,6 +23958,9 @@
doc = gen_const_xmlDoc_ptr(n_doc, 0);
value = gen_const_xmlChar_ptr(n_value, 1);
len = gen_int(n_len, 2);
+ if ((value != NULL) &&
+ (len > (int) strlen((const char *) value) + 1))
+ continue;
ret_val = xmlStringLenGetNodeList((const xmlDoc *)doc, (const xmlChar *)value, len);
desret_xmlNodePtr(ret_val);
@@ -23869,6 +24007,9 @@
node = gen_xmlNodePtr(n_node, 0);
content = gen_const_xmlChar_ptr(n_content, 1);
len = gen_int(n_len, 2);
+ if ((content != NULL) &&
+ (len > (int) strlen((const char *) content) + 1))
+ continue;
ret_val = xmlTextConcat(node, (const xmlChar *)content, len);
desret_int(ret_val);
@@ -27125,6 +27266,9 @@
ctxt = gen_xmlValidCtxtPtr(n_ctxt, 0);
data = gen_const_xmlChar_ptr(n_data, 1);
len = gen_int(n_len, 2);
+ if ((data != NULL) &&
+ (len > (int) strlen((const char *) data) + 1))
+ continue;
ret_val = xmlValidatePushCData(ctxt, (const xmlChar *)data, len);
desret_int(ret_val);
@@ -28661,6 +28805,9 @@
out = gen_xmlOutputBufferPtr(n_out, 0);
len = gen_int(n_len, 1);
buf = gen_const_char_ptr(n_buf, 2);
+ if ((buf != NULL) &&
+ (len > (int) strlen((const char *) buf) + 1))
+ continue;
ret_val = xmlOutputBufferWrite(out, len, (const char *)buf);
desret_int(ret_val);
@@ -28887,6 +29034,9 @@
mem = gen_const_char_ptr(n_mem, 0);
size = gen_int(n_size, 1);
enc = gen_xmlCharEncoding(n_enc, 2);
+ if ((mem != NULL) &&
+ (size > (int) strlen((const char *) mem) + 1))
+ continue;
ret_val = xmlParserInputBufferCreateMem((const char *)mem, size, enc);
desret_xmlParserInputBufferPtr(ret_val);
@@ -28933,6 +29083,9 @@
mem = gen_const_char_ptr(n_mem, 0);
size = gen_int(n_size, 1);
enc = gen_xmlCharEncoding(n_enc, 2);
+ if ((mem != NULL) &&
+ (size > (int) strlen((const char *) mem) + 1))
+ continue;
ret_val = xmlParserInputBufferCreateStatic((const char *)mem, size, enc);
desret_xmlParserInputBufferPtr(ret_val);
@@ -29018,6 +29171,9 @@
in = gen_xmlParserInputBufferPtr(n_in, 0);
len = gen_int(n_len, 1);
buf = gen_const_char_ptr(n_buf, 2);
+ if ((buf != NULL) &&
+ (len > (int) strlen((const char *) buf) + 1))
+ continue;
ret_val = xmlParserInputBufferPush(in, len, (const char *)buf);
desret_int(ret_val);
@@ -30200,6 +30356,9 @@
URL = gen_filepath(n_URL, 2);
encoding = gen_const_char_ptr(n_encoding, 3);
options = gen_parseroptions(n_options, 4);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
ret_val = xmlReaderForMemory((const char *)buffer, size, URL, (const char *)encoding, options);
desret_xmlTextReaderPtr(ret_val);
@@ -30383,6 +30542,9 @@
URL = gen_filepath(n_URL, 3);
encoding = gen_const_char_ptr(n_encoding, 4);
options = gen_parseroptions(n_options, 5);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
ret_val = xmlReaderNewMemory(reader, (const char *)buffer, size, URL, (const char *)encoding, options);
desret_int(ret_val);
@@ -34420,6 +34582,9 @@
mem_base = xmlMemBlocks();
buffer = gen_const_char_ptr(n_buffer, 0);
size = gen_int(n_size, 1);
+ if ((buffer != NULL) &&
+ (size > (int) strlen((const char *) buffer) + 1))
+ continue;
ret_val = xmlSchemaNewMemParserCtxt((const char *)buffer, size);
desret_xmlSchemaParserCtxtPtr(ret_val);
@@ -36304,6 +36469,9 @@
mem_base = xmlMemBlocks();
cur = gen_const_char_ptr(n_cur, 0);
len = gen_int(n_len, 1);
+ if ((cur != NULL) &&
+ (len > (int) strlen((const char *) cur) + 1))
+ continue;
ret_val = xmlCharStrndup((const char *)cur, len);
desret_xmlChar_ptr(ret_val);
@@ -36743,6 +36911,9 @@
str1 = gen_const_xmlChar_ptr(n_str1, 0);
str2 = gen_const_xmlChar_ptr(n_str2, 1);
len = gen_int(n_len, 2);
+ if ((str2 != NULL) &&
+ (len > (int) strlen((const char *) str2) + 1))
+ continue;
ret_val = xmlStrncasecmp((const xmlChar *)str1, (const xmlChar *)str2, len);
desret_int(ret_val);
@@ -36789,6 +36960,9 @@
str1 = gen_const_xmlChar_ptr(n_str1, 0);
str2 = gen_const_xmlChar_ptr(n_str2, 1);
len = gen_int(n_len, 2);
+ if ((str2 != NULL) &&
+ (len > (int) strlen((const char *) str2) + 1))
+ continue;
ret_val = xmlStrncatNew((const xmlChar *)str1, (const xmlChar *)str2, len);
desret_xmlChar_ptr(ret_val);
@@ -36835,6 +37009,9 @@
str1 = gen_const_xmlChar_ptr(n_str1, 0);
str2 = gen_const_xmlChar_ptr(n_str2, 1);
len = gen_int(n_len, 2);
+ if ((str2 != NULL) &&
+ (len > (int) strlen((const char *) str2) + 1))
+ continue;
ret_val = xmlStrncmp((const xmlChar *)str1, (const xmlChar *)str2, len);
desret_int(ret_val);
@@ -36877,6 +37054,9 @@
mem_base = xmlMemBlocks();
cur = gen_const_xmlChar_ptr(n_cur, 0);
len = gen_int(n_len, 1);
+ if ((cur != NULL) &&
+ (len > (int) strlen((const char *) cur) + 1))
+ continue;
ret_val = xmlStrndup((const xmlChar *)cur, len);
desret_xmlChar_ptr(ret_val);
@@ -36959,6 +37139,12 @@
str = gen_const_xmlChar_ptr(n_str, 0);
start = gen_int(n_start, 1);
len = gen_int(n_len, 2);
+ if ((str != NULL) &&
+ (start > (int) strlen((const char *) str) + 1))
+ continue;
+ if ((str != NULL) &&
+ (len > (int) strlen((const char *) str) + 1))
+ continue;
ret_val = xmlStrsub((const xmlChar *)str, start, len);
desret_xmlChar_ptr(ret_val);
@@ -37143,6 +37329,9 @@
mem_base = xmlMemBlocks();
utf = gen_const_xmlChar_ptr(n_utf, 0);
len = gen_int(n_len, 1);
+ if ((utf != NULL) &&
+ (len > (int) strlen((const char *) utf) + 1))
+ continue;
ret_val = xmlUTF8Strndup((const xmlChar *)utf, len);
desret_xmlChar_ptr(ret_val);
@@ -37221,6 +37410,9 @@
mem_base = xmlMemBlocks();
utf = gen_const_xmlChar_ptr(n_utf, 0);
len = gen_int(n_len, 1);
+ if ((utf != NULL) &&
+ (len > (int) strlen((const char *) utf) + 1))
+ continue;
ret_val = xmlUTF8Strsize((const xmlChar *)utf, len);
desret_int(ret_val);
@@ -37264,6 +37456,12 @@
utf = gen_const_xmlChar_ptr(n_utf, 0);
start = gen_int(n_start, 1);
len = gen_int(n_len, 2);
+ if ((utf != NULL) &&
+ (start > (int) strlen((const char *) utf) + 1))
+ continue;
+ if ((utf != NULL) &&
+ (len > (int) strlen((const char *) utf) + 1))
+ continue;
ret_val = xmlUTF8Strsub((const xmlChar *)utf, start, len);
desret_xmlChar_ptr(ret_val);
@@ -44576,6 +44774,12 @@
data = gen_const_char_ptr(n_data, 1);
start = gen_int(n_start, 2);
len = gen_int(n_len, 3);
+ if ((data != NULL) &&
+ (start > (int) strlen((const char *) data) + 1))
+ continue;
+ if ((data != NULL) &&
+ (len > (int) strlen((const char *) data) + 1))
+ continue;
ret_val = xmlTextWriterWriteBase64(writer, (const char *)data, start, len);
desret_int(ret_val);
@@ -44631,6 +44835,12 @@
data = gen_const_char_ptr(n_data, 1);
start = gen_int(n_start, 2);
len = gen_int(n_len, 3);
+ if ((data != NULL) &&
+ (start > (int) strlen((const char *) data) + 1))
+ continue;
+ if ((data != NULL) &&
+ (len > (int) strlen((const char *) data) + 1))
+ continue;
ret_val = xmlTextWriterWriteBinHex(writer, (const char *)data, start, len);
desret_int(ret_val);
@@ -45561,6 +45771,9 @@
writer = gen_xmlTextWriterPtr(n_writer, 0);
content = gen_const_xmlChar_ptr(n_content, 1);
len = gen_int(n_len, 2);
+ if ((content != NULL) &&
+ (len > (int) strlen((const char *) content) + 1))
+ continue;
ret_val = xmlTextWriterWriteRawLen(writer, (const xmlChar *)content, len);
desret_int(ret_val);
diff --git a/testlimits.c b/testlimits.c
index 577f593..68c94db 100644
--- a/testlimits.c
+++ b/testlimits.c
@@ -1284,13 +1284,14 @@
if (fail)
res = 0;
else {
- fprintf(stderr, "Failed to parse '%s' %lu\n", filename, limit);
+ fprintf(stderr, "Failed to parse '%s' %lu\n", filename,
+ (unsigned long) limit);
res = 1;
}
} else {
if (fail) {
fprintf(stderr, "Failed to get failure for '%s' %lu\n",
- filename, limit);
+ filename, (unsigned long) limit);
res = 1;
} else
res = 0;
@@ -1339,7 +1340,7 @@
filename, crazy_indx);
else
fprintf(stderr, "Failed to parse '%s' %lu\n",
- filename, limit);
+ filename, (unsigned long) limit);
res = 1;
}
} else {
@@ -1349,7 +1350,7 @@
filename, crazy_indx);
else
fprintf(stderr, "Failed to get failure for '%s' %lu\n",
- filename, limit);
+ filename, (unsigned long) limit);
res = 1;
} else
res = 0;
diff --git a/testrecurse.c b/testrecurse.c
index e5d5d1b..f95ae1c 100644
--- a/testrecurse.c
+++ b/testrecurse.c
@@ -69,8 +69,8 @@
} glob_t;
#define GLOB_DOOFFS 0
-static int glob(const char *pattern, int flags,
- int errfunc(const char *epath, int eerrno),
+static int glob(const char *pattern, ATTRIBUTE_UNUSED int flags,
+ ATTRIBUTE_UNUSED int errfunc(const char *epath, int eerrno),
glob_t *pglob) {
glob_t *ret;
WIN32_FIND_DATA FindFileData;
diff --git a/threads.c b/threads.c
index b9d6cae..0433ac0 100644
--- a/threads.c
+++ b/threads.c
@@ -27,6 +27,7 @@
#ifdef HAVE_PTHREAD_H
#include <pthread.h>
#elif defined HAVE_WIN32_THREADS
+#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#ifndef HAVE_COMPILER_TLS
#include <process.h>
@@ -46,50 +47,37 @@
#ifdef HAVE_PTHREAD_H
+#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 303) && \
+ defined(__GLIBC__) && defined(__linux__)
+
static int libxml_is_threaded = -1;
-#if defined(__GNUC__) && defined(__GLIBC__)
-#ifdef linux
-#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
-extern int pthread_once (pthread_once_t *__once_control,
- void (*__init_routine) (void))
- __attribute((weak));
-extern void *pthread_getspecific (pthread_key_t __key)
- __attribute((weak));
-extern int pthread_setspecific (pthread_key_t __key,
- __const void *__pointer)
- __attribute((weak));
-extern int pthread_key_create (pthread_key_t *__key,
- void (*__destr_function) (void *))
- __attribute((weak));
-extern int pthread_key_delete (pthread_key_t __key)
- __attribute((weak));
-extern int pthread_mutex_init ()
- __attribute((weak));
-extern int pthread_mutex_destroy ()
- __attribute((weak));
-extern int pthread_mutex_lock ()
- __attribute((weak));
-extern int pthread_mutex_unlock ()
- __attribute((weak));
-extern int pthread_cond_init ()
- __attribute((weak));
-extern int pthread_cond_destroy ()
- __attribute((weak));
-extern int pthread_cond_wait ()
- __attribute((weak));
-extern int pthread_equal ()
- __attribute((weak));
-extern pthread_t pthread_self ()
- __attribute((weak));
-extern int pthread_key_create ()
- __attribute((weak));
-extern int pthread_key_delete ()
- __attribute((weak));
-extern int pthread_cond_signal ()
- __attribute((weak));
-#endif
-#endif /* linux */
-#endif /* defined(__GNUC__) && defined(__GLIBC__) */
+
+#define XML_PTHREAD_WEAK
+
+#pragma weak pthread_once
+#pragma weak pthread_getspecific
+#pragma weak pthread_setspecific
+#pragma weak pthread_key_create
+#pragma weak pthread_key_delete
+#pragma weak pthread_mutex_init
+#pragma weak pthread_mutex_destroy
+#pragma weak pthread_mutex_lock
+#pragma weak pthread_mutex_unlock
+#pragma weak pthread_cond_init
+#pragma weak pthread_cond_destroy
+#pragma weak pthread_cond_wait
+#pragma weak pthread_equal
+#pragma weak pthread_self
+#pragma weak pthread_key_create
+#pragma weak pthread_key_delete
+#pragma weak pthread_cond_signal
+
+#else /* __GNUC__, __GLIBC__, __linux__ */
+
+static int libxml_is_threaded = 1;
+
+#endif /* __GNUC__, __GLIBC__, __linux__ */
+
#endif /* HAVE_PTHREAD_H */
/*
@@ -158,7 +146,7 @@
static DWORD mainthread;
static struct {
DWORD done;
- DWORD control;
+ LONG control;
} run_once = { 0, 0};
static volatile LPCRITICAL_SECTION global_init_lock = NULL;
@@ -441,8 +429,11 @@
/* Make sure the global init lock is initialized and then lock it. */
#ifdef HAVE_PTHREAD_H
/* The mutex is statically initialized, so we just lock it. */
- if (pthread_mutex_lock != NULL)
- pthread_mutex_lock(&global_init_lock);
+#ifdef XML_PTHREAD_WEAK
+ if (pthread_mutex_lock == NULL)
+ return;
+#endif /* XML_PTHREAD_WEAK */
+ pthread_mutex_lock(&global_init_lock);
#elif defined HAVE_WIN32_THREADS
LPCRITICAL_SECTION cs;
@@ -458,7 +449,8 @@
/* Swap it into the global_init_lock */
#ifdef InterlockedCompareExchangePointer
- InterlockedCompareExchangePointer(&global_init_lock, cs, NULL);
+ InterlockedCompareExchangePointer((void **) &global_init_lock,
+ cs, NULL);
#else /* Use older void* version */
InterlockedCompareExchange((void **) &global_init_lock,
(void *) cs, NULL);
@@ -510,8 +502,11 @@
__xmlGlobalInitMutexUnlock(void)
{
#ifdef HAVE_PTHREAD_H
- if (pthread_mutex_unlock != NULL)
- pthread_mutex_unlock(&global_init_lock);
+#ifdef XML_PTHREAD_WEAK
+ if (pthread_mutex_unlock == NULL)
+ return;
+#endif /* XML_PTHREAD_WEAK */
+ pthread_mutex_unlock(&global_init_lock);
#elif defined HAVE_WIN32_THREADS
if (global_init_lock != NULL) {
LeaveCriticalSection(global_init_lock);
@@ -863,6 +858,7 @@
xmlInitThreads(void)
{
#ifdef HAVE_PTHREAD_H
+#ifdef XML_PTHREAD_WEAK
if (libxml_is_threaded == -1) {
if ((pthread_once != NULL) &&
(pthread_getspecific != NULL) &&
@@ -888,6 +884,7 @@
libxml_is_threaded = 0;
}
}
+#endif /* XML_PTHREAD_WEAK */
#elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL))
InitializeCriticalSection(&cleanup_helpers_cs);
#endif
@@ -914,7 +911,7 @@
xmlGenericError(xmlGenericErrorContext, "xmlCleanupThreads()\n");
#endif
#ifdef HAVE_PTHREAD_H
- if ((libxml_is_threaded) && (pthread_key_delete != NULL))
+ if (libxml_is_threaded != 0)
pthread_key_delete(globalkey);
once_control = once_control_init;
#elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL))
@@ -999,11 +996,23 @@
#ifdef HAVE_PTHREAD_H
#elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL))
#if defined(LIBXML_STATIC_FOR_DLL)
-BOOL XMLCALL
-xmlDllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+int XMLCALL
+xmlDllMain(ATTRIBUTE_UNUSED void *hinstDLL, unsigned long fdwReason,
+ ATTRIBUTE_UNUSED void *lpvReserved)
#else
+/* declare to avoid "no previous prototype for 'DllMain'" warning */
+/* Note that we do NOT want to include this function declaration in
+ a public header because it's meant to be called by Windows itself,
+ not a program that uses this library. This also has to be exported. */
+
+XMLPUBFUN BOOL WINAPI
+DllMain (HINSTANCE hinstDLL,
+ DWORD fdwReason,
+ LPVOID lpvReserved);
+
BOOL WINAPI
-DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+DllMain(ATTRIBUTE_UNUSED HINSTANCE hinstDLL, DWORD fdwReason,
+ ATTRIBUTE_UNUSED LPVOID lpvReserved)
#endif
{
switch (fdwReason) {
diff --git a/timsort.h b/timsort.h
index 795f272..0c6346b 100644
--- a/timsort.h
+++ b/timsort.h
@@ -1,90 +1,44 @@
/*
- * taken from https://github.com/swenson/sort
- * Kept as is for the moment to be able to apply upstream patches for that
- * code, currently used only to speed up XPath node sorting, see xpath.c
+ * Taken from https://github.com/swenson/sort
+ * Revision: 05fd77bfec049ce8b7c408c4d3dd2d51ee061a15
+ * Removed all code unrelated to Timsort and made minor adjustments for
+ * cross-platform compatibility.
*/
/*
- * All code in this header, unless otherwise specified, is hereby licensed under the MIT Public License:
-
-Copyright (c) 2010 Christopher Swenson
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2010-2017 Christopher Swenson.
+ * Copyright (c) 2012 Vojtech Fried.
+ * Copyright (c) 2012 Google Inc. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#ifdef HAVE_STDINT_H
#include <stdint.h>
-#else
-#ifdef HAVE_INTTYPES_H
-#include <inttypes.h>
-#elif defined(WIN32)
-typedef __int64 int64_t;
+#elif defined(_WIN32)
typedef unsigned __int64 uint64_t;
#endif
-#endif
-
-#ifndef MK_UINT64
-#if defined(WIN32) && defined(_MSC_VER) && _MSC_VER < 1300
-#define MK_UINT64(x) ((uint64_t)(x))
-#else
-#define MK_UINT64(x) x##ULL
-#endif
-#endif
-
-#ifndef MAX
-#define MAX(x,y) (((x) > (y) ? (x) : (y)))
-#endif
-#ifndef MIN
-#define MIN(x,y) (((x) < (y) ? (x) : (y)))
-#endif
-
-int compute_minrun(uint64_t);
-
-#ifndef CLZ
-#if defined(__GNUC__) && ((__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ > 3))
-#define CLZ __builtin_clzll
-#else
-
-int clzll(uint64_t);
-
-/* adapted from Hacker's Delight */
-int clzll(uint64_t x) /* {{{ */
-{
- int n;
-
- if (x == 0) return(64);
- n = 0;
- if (x <= MK_UINT64(0x00000000FFFFFFFF)) {n = n + 32; x = x << 32;}
- if (x <= MK_UINT64(0x0000FFFFFFFFFFFF)) {n = n + 16; x = x << 16;}
- if (x <= MK_UINT64(0x00FFFFFFFFFFFFFF)) {n = n + 8; x = x << 8;}
- if (x <= MK_UINT64(0x0FFFFFFFFFFFFFFF)) {n = n + 4; x = x << 4;}
- if (x <= MK_UINT64(0x3FFFFFFFFFFFFFFF)) {n = n + 2; x = x << 2;}
- if (x <= MK_UINT64(0x7FFFFFFFFFFFFFFF)) {n = n + 1;}
- return n;
-}
-/* }}} */
-
-#define CLZ clzll
-#endif
-#endif
-
-int compute_minrun(uint64_t size) /* {{{ */
-{
- const int top_bit = 64 - CLZ(size);
- const int shift = MAX(top_bit, 6) - 6;
- const int minrun = size >> shift;
- const uint64_t mask = (MK_UINT64(1) << shift) - 1;
- if (mask & size) return minrun + 1;
- return minrun;
-}
-/* }}} */
#ifndef SORT_NAME
#error "Must declare SORT_NAME"
@@ -98,215 +52,299 @@
#define SORT_CMP(x, y) ((x) < (y) ? -1 : ((x) == (y) ? 0 : 1))
#endif
+#ifndef TIM_SORT_STACK_SIZE
+#define TIM_SORT_STACK_SIZE 128
+#endif
#define SORT_SWAP(x,y) {SORT_TYPE __SORT_SWAP_t = (x); (x) = (y); (y) = __SORT_SWAP_t;}
+
+/* Common, type-agnosting functions and constants that we don't want to declare twice. */
+#ifndef SORT_COMMON_H
+#define SORT_COMMON_H
+
+#ifndef MAX
+#define MAX(x,y) (((x) > (y) ? (x) : (y)))
+#endif
+
+#ifndef MIN
+#define MIN(x,y) (((x) < (y) ? (x) : (y)))
+#endif
+
+static int compute_minrun(const uint64_t);
+
+#ifndef CLZ
+#ifdef __GNUC__
+#define CLZ __builtin_clzll
+#else
+
+static int clzll(uint64_t);
+
+/* adapted from Hacker's Delight */
+static int clzll(uint64_t x) {
+ int n;
+
+ if (x == 0) {
+ return 64;
+ }
+
+ n = 0;
+
+ if (x <= 0x00000000FFFFFFFFL) {
+ n = n + 32;
+ x = x << 32;
+ }
+
+ if (x <= 0x0000FFFFFFFFFFFFL) {
+ n = n + 16;
+ x = x << 16;
+ }
+
+ if (x <= 0x00FFFFFFFFFFFFFFL) {
+ n = n + 8;
+ x = x << 8;
+ }
+
+ if (x <= 0x0FFFFFFFFFFFFFFFL) {
+ n = n + 4;
+ x = x << 4;
+ }
+
+ if (x <= 0x3FFFFFFFFFFFFFFFL) {
+ n = n + 2;
+ x = x << 2;
+ }
+
+ if (x <= 0x7FFFFFFFFFFFFFFFL) {
+ n = n + 1;
+ }
+
+ return n;
+}
+
+#define CLZ clzll
+#endif
+#endif
+
+static __inline int compute_minrun(const uint64_t size) {
+ const int top_bit = 64 - CLZ(size);
+ const int shift = MAX(top_bit, 6) - 6;
+ const int minrun = size >> shift;
+ const uint64_t mask = (1ULL << shift) - 1;
+
+ if (mask & size) {
+ return minrun + 1;
+ }
+
+ return minrun;
+}
+
+#endif /* SORT_COMMON_H */
+
#define SORT_CONCAT(x, y) x ## _ ## y
#define SORT_MAKE_STR1(x, y) SORT_CONCAT(x,y)
#define SORT_MAKE_STR(x) SORT_MAKE_STR1(SORT_NAME,x)
-#define BINARY_INSERTION_FIND SORT_MAKE_STR(binary_insertion_find)
-#define BINARY_INSERTION_SORT_START SORT_MAKE_STR(binary_insertion_sort_start)
-#define BINARY_INSERTION_SORT SORT_MAKE_STR(binary_insertion_sort)
-#define REVERSE_ELEMENTS SORT_MAKE_STR(reverse_elements)
-#define COUNT_RUN SORT_MAKE_STR(count_run)
-#define CHECK_INVARIANT SORT_MAKE_STR(check_invariant)
-#define TIM_SORT SORT_MAKE_STR(tim_sort)
-#define TIM_SORT_RESIZE SORT_MAKE_STR(tim_sort_resize)
-#define TIM_SORT_MERGE SORT_MAKE_STR(tim_sort_merge)
-#define TIM_SORT_COLLAPSE SORT_MAKE_STR(tim_sort_collapse)
+#define BINARY_INSERTION_FIND SORT_MAKE_STR(binary_insertion_find)
+#define BINARY_INSERTION_SORT_START SORT_MAKE_STR(binary_insertion_sort_start)
+#define BINARY_INSERTION_SORT SORT_MAKE_STR(binary_insertion_sort)
+#define REVERSE_ELEMENTS SORT_MAKE_STR(reverse_elements)
+#define COUNT_RUN SORT_MAKE_STR(count_run)
+#define CHECK_INVARIANT SORT_MAKE_STR(check_invariant)
+#define TIM_SORT SORT_MAKE_STR(tim_sort)
+#define TIM_SORT_RESIZE SORT_MAKE_STR(tim_sort_resize)
+#define TIM_SORT_MERGE SORT_MAKE_STR(tim_sort_merge)
+#define TIM_SORT_COLLAPSE SORT_MAKE_STR(tim_sort_collapse)
-#define TIM_SORT_RUN_T SORT_MAKE_STR(tim_sort_run_t)
-#define TEMP_STORAGE_T SORT_MAKE_STR(temp_storage_t)
+#ifndef MAX
+#define MAX(x,y) (((x) > (y) ? (x) : (y)))
+#endif
+#ifndef MIN
+#define MIN(x,y) (((x) < (y) ? (x) : (y)))
+#endif
typedef struct {
- int64_t start;
- int64_t length;
+ size_t start;
+ size_t length;
} TIM_SORT_RUN_T;
+
void BINARY_INSERTION_SORT(SORT_TYPE *dst, const size_t size);
void TIM_SORT(SORT_TYPE *dst, const size_t size);
+
/* Function used to do a binary search for binary insertion sort */
-static int64_t BINARY_INSERTION_FIND(SORT_TYPE *dst, const SORT_TYPE x, const size_t size)
-{
- int64_t l, c, r;
- SORT_TYPE lx;
+static __inline size_t BINARY_INSERTION_FIND(SORT_TYPE *dst, const SORT_TYPE x,
+ const size_t size) {
+ size_t l, c, r;
SORT_TYPE cx;
l = 0;
r = size - 1;
c = r >> 1;
- lx = dst[l];
- /* check for beginning conditions */
- if (SORT_CMP(x, lx) < 0)
+ /* check for out of bounds at the beginning. */
+ if (SORT_CMP(x, dst[0]) < 0) {
return 0;
- else if (SORT_CMP(x, lx) == 0)
- {
- int64_t i = 1;
- while (SORT_CMP(x, dst[i]) == 0) i++;
- return i;
+ } else if (SORT_CMP(x, dst[r]) > 0) {
+ return r;
}
cx = dst[c];
- while (1)
- {
+
+ while (1) {
const int val = SORT_CMP(x, cx);
- if (val < 0)
- {
- if (c - l <= 1) return c;
+
+ if (val < 0) {
+ if (c - l <= 1) {
+ return c;
+ }
+
r = c;
- }
- else if (val > 0)
- {
- if (r - c <= 1) return c + 1;
+ } else { /* allow = for stability. The binary search favors the right. */
+ if (r - c <= 1) {
+ return c + 1;
+ }
+
l = c;
- lx = cx;
}
- else
- {
- do
- {
- cx = dst[++c];
- } while (SORT_CMP(x, cx) == 0);
- return c;
- }
+
c = l + ((r - l) >> 1);
cx = dst[c];
}
}
/* Binary insertion sort, but knowing that the first "start" entries are sorted. Used in timsort. */
-static void BINARY_INSERTION_SORT_START(SORT_TYPE *dst, const size_t start, const size_t size)
-{
- int64_t i;
- for (i = start; i < (int64_t) size; i++)
- {
- int64_t j;
+static void BINARY_INSERTION_SORT_START(SORT_TYPE *dst, const size_t start, const size_t size) {
+ size_t i;
+
+ for (i = start; i < size; i++) {
+ size_t j;
SORT_TYPE x;
- int64_t location;
+ size_t location;
+
/* If this entry is already correct, just move along */
- if (SORT_CMP(dst[i - 1], dst[i]) <= 0) continue;
+ if (SORT_CMP(dst[i - 1], dst[i]) <= 0) {
+ continue;
+ }
/* Else we need to find the right place, shift everything over, and squeeze in */
x = dst[i];
location = BINARY_INSERTION_FIND(dst, x, i);
- for (j = i - 1; j >= location; j--)
- {
+
+ for (j = i - 1; j >= location; j--) {
dst[j + 1] = dst[j];
+
+ if (j == 0) { /* check edge case because j is unsigned */
+ break;
+ }
}
+
dst[location] = x;
}
}
/* Binary insertion sort */
-void BINARY_INSERTION_SORT(SORT_TYPE *dst, const size_t size)
-{
+void BINARY_INSERTION_SORT(SORT_TYPE *dst, const size_t size) {
+ /* don't bother sorting an array of size <= 1 */
+ if (size <= 1) {
+ return;
+ }
+
BINARY_INSERTION_SORT_START(dst, 1, size);
}
/* timsort implementation, based on timsort.txt */
-static void REVERSE_ELEMENTS(SORT_TYPE *dst, int64_t start, int64_t end)
-{
- while (1)
- {
- if (start >= end) return;
+static __inline void REVERSE_ELEMENTS(SORT_TYPE *dst, size_t start, size_t end) {
+ while (1) {
+ if (start >= end) {
+ return;
+ }
+
SORT_SWAP(dst[start], dst[end]);
start++;
end--;
}
}
-static int64_t COUNT_RUN(SORT_TYPE *dst, const int64_t start, const size_t size)
-{
- int64_t curr;
- if (size - start == 1) return 1;
- if (start >= (int64_t) size - 2)
- {
- if (SORT_CMP(dst[size - 2], dst[size - 1]) > 0)
+static size_t COUNT_RUN(SORT_TYPE *dst, const size_t start, const size_t size) {
+ size_t curr;
+
+ if (size - start == 1) {
+ return 1;
+ }
+
+ if (start >= size - 2) {
+ if (SORT_CMP(dst[size - 2], dst[size - 1]) > 0) {
SORT_SWAP(dst[size - 2], dst[size - 1]);
+ }
+
return 2;
}
curr = start + 2;
- if (SORT_CMP(dst[start], dst[start + 1]) <= 0)
- {
+ if (SORT_CMP(dst[start], dst[start + 1]) <= 0) {
/* increasing run */
- while (1)
- {
- if (curr == (int64_t) size - 1) break;
- if (SORT_CMP(dst[curr - 1], dst[curr]) > 0) break;
+ while (1) {
+ if (curr == size - 1) {
+ break;
+ }
+
+ if (SORT_CMP(dst[curr - 1], dst[curr]) > 0) {
+ break;
+ }
+
curr++;
}
+
return curr - start;
- }
- else
- {
+ } else {
/* decreasing run */
- while (1)
- {
- if (curr == (int64_t) size - 1) break;
- if (SORT_CMP(dst[curr - 1], dst[curr]) <= 0) break;
+ while (1) {
+ if (curr == size - 1) {
+ break;
+ }
+
+ if (SORT_CMP(dst[curr - 1], dst[curr]) <= 0) {
+ break;
+ }
+
curr++;
}
+
/* reverse in-place */
REVERSE_ELEMENTS(dst, start, curr - 1);
return curr - start;
}
}
-#define PUSH_NEXT() do {\
-len = COUNT_RUN(dst, curr, size);\
-run = minrun;\
-if (run < minrun) run = minrun;\
-if (run > (int64_t) size - curr) run = size - curr;\
-if (run > len)\
-{\
- BINARY_INSERTION_SORT_START(&dst[curr], len, run);\
- len = run;\
-}\
-{\
-run_stack[stack_curr].start = curr;\
-run_stack[stack_curr].length = len;\
-stack_curr++;\
-}\
-curr += len;\
-if (curr == (int64_t) size)\
-{\
- /* finish up */ \
- while (stack_curr > 1) \
- { \
- TIM_SORT_MERGE(dst, run_stack, stack_curr, store); \
- run_stack[stack_curr - 2].length += run_stack[stack_curr - 1].length; \
- stack_curr--; \
- } \
- if (store->storage != NULL)\
- {\
- free(store->storage);\
- store->storage = NULL;\
- }\
- return;\
-}\
-}\
-while (0)
+static int CHECK_INVARIANT(TIM_SORT_RUN_T *stack, const int stack_curr) {
+ size_t A, B, C;
-static int CHECK_INVARIANT(TIM_SORT_RUN_T *stack, const int stack_curr)
-{
- int64_t A, B, C;
- if (stack_curr < 2) return 1;
- if (stack_curr == 2)
- {
- const int64_t A1 = stack[stack_curr - 2].length;
- const int64_t B1 = stack[stack_curr - 1].length;
- if (A1 <= B1) return 0;
+ if (stack_curr < 2) {
return 1;
}
+
+ if (stack_curr == 2) {
+ const size_t A1 = stack[stack_curr - 2].length;
+ const size_t B1 = stack[stack_curr - 1].length;
+
+ if (A1 <= B1) {
+ return 0;
+ }
+
+ return 1;
+ }
+
A = stack[stack_curr - 3].length;
B = stack[stack_curr - 2].length;
C = stack[stack_curr - 1].length;
- if ((A <= B + C) || (B <= C)) return 0;
+
+ if ((A <= B + C) || (B <= C)) {
+ return 0;
+ }
+
return 1;
}
@@ -315,86 +353,78 @@
SORT_TYPE *storage;
} TEMP_STORAGE_T;
-
-static void TIM_SORT_RESIZE(TEMP_STORAGE_T *store, const size_t new_size)
-{
- if (store->alloc < new_size)
- {
+static void TIM_SORT_RESIZE(TEMP_STORAGE_T *store, const size_t new_size) {
+ if (store->alloc < new_size) {
SORT_TYPE *tempstore = (SORT_TYPE *)realloc(store->storage, new_size * sizeof(SORT_TYPE));
- if (tempstore == NULL)
- {
- fprintf(stderr, "Error allocating temporary storage for tim sort: need %lu bytes", sizeof(SORT_TYPE) * new_size);
+
+ if (tempstore == NULL) {
+ fprintf(stderr, "Error allocating temporary storage for tim sort: need %lu bytes",
+ (unsigned long)(sizeof(SORT_TYPE) * new_size));
exit(1);
}
+
store->storage = tempstore;
store->alloc = new_size;
}
}
-static void TIM_SORT_MERGE(SORT_TYPE *dst, const TIM_SORT_RUN_T *stack, const int stack_curr, TEMP_STORAGE_T *store)
-{
- const int64_t A = stack[stack_curr - 2].length;
- const int64_t B = stack[stack_curr - 1].length;
- const int64_t curr = stack[stack_curr - 2].start;
+static void TIM_SORT_MERGE(SORT_TYPE *dst, const TIM_SORT_RUN_T *stack, const int stack_curr,
+ TEMP_STORAGE_T *store) {
+ const size_t A = stack[stack_curr - 2].length;
+ const size_t B = stack[stack_curr - 1].length;
+ const size_t curr = stack[stack_curr - 2].start;
SORT_TYPE *storage;
- int64_t i, j, k;
-
+ size_t i, j, k;
TIM_SORT_RESIZE(store, MIN(A, B));
storage = store->storage;
/* left merge */
- if (A < B)
- {
+ if (A < B) {
memcpy(storage, &dst[curr], A * sizeof(SORT_TYPE));
i = 0;
j = curr + A;
- for (k = curr; k < curr + A + B; k++)
- {
- if ((i < A) && (j < curr + A + B))
- {
- if (SORT_CMP(storage[i], dst[j]) <= 0)
+ for (k = curr; k < curr + A + B; k++) {
+ if ((i < A) && (j < curr + A + B)) {
+ if (SORT_CMP(storage[i], dst[j]) <= 0) {
dst[k] = storage[i++];
- else
+ } else {
dst[k] = dst[j++];
- }
- else if (i < A)
- {
+ }
+ } else if (i < A) {
dst[k] = storage[i++];
+ } else {
+ break;
}
- else
- dst[k] = dst[j++];
}
- }
- /* right merge */
- else
- {
+ } else {
+ /* right merge */
memcpy(storage, &dst[curr + A], B * sizeof(SORT_TYPE));
- i = B - 1;
- j = curr + A - 1;
+ i = B;
+ j = curr + A;
+ k = curr + A + B;
- for (k = curr + A + B - 1; k >= curr; k--)
- {
- if ((i >= 0) && (j >= curr))
- {
- if (SORT_CMP(dst[j], storage[i]) > 0)
- dst[k] = dst[j--];
- else
- dst[k] = storage[i--];
+ while (k-- > curr) {
+ if ((i > 0) && (j > curr)) {
+ if (SORT_CMP(dst[j - 1], storage[i - 1]) > 0) {
+ dst[k] = dst[--j];
+ } else {
+ dst[k] = storage[--i];
+ }
+ } else if (i > 0) {
+ dst[k] = storage[--i];
+ } else {
+ break;
}
- else if (i >= 0)
- dst[k] = storage[i--];
- else
- dst[k] = dst[j--];
}
}
}
-static int TIM_SORT_COLLAPSE(SORT_TYPE *dst, TIM_SORT_RUN_T *stack, int stack_curr, TEMP_STORAGE_T *store, const size_t size)
-{
+static int TIM_SORT_COLLAPSE(SORT_TYPE *dst, TIM_SORT_RUN_T *stack, int stack_curr,
+ TEMP_STORAGE_T *store, const size_t size) {
while (1) {
- int64_t A, B, C, D;
- int ABC, BCD, BD, CD;
+ size_t A, B, C, D;
+ int ABC, BCD, CD;
/* if the stack only has one thing on it, we are done with the collapse */
if (stack_curr <= 1) {
@@ -431,7 +461,6 @@
BCD = (B <= C + D) || ABC;
CD = (C <= D);
- BD = (B < D);
/* Both invariants are good */
if (!BCD && !CD) {
@@ -455,41 +484,94 @@
return stack_curr;
}
-void TIM_SORT(SORT_TYPE *dst, const size_t size)
-{
- int minrun;
- TEMP_STORAGE_T _store, *store;
- TIM_SORT_RUN_T run_stack[128];
- int stack_curr = 0;
- int64_t len, run;
- int64_t curr = 0;
+static __inline int PUSH_NEXT(SORT_TYPE *dst,
+ const size_t size,
+ TEMP_STORAGE_T *store,
+ const size_t minrun,
+ TIM_SORT_RUN_T *run_stack,
+ size_t *stack_curr,
+ size_t *curr) {
+ size_t len = COUNT_RUN(dst, *curr, size);
+ size_t run = minrun;
- if (size < 64)
- {
+ if (run > size - *curr) {
+ run = size - *curr;
+ }
+
+ if (run > len) {
+ BINARY_INSERTION_SORT_START(&dst[*curr], len, run);
+ len = run;
+ }
+
+ run_stack[*stack_curr].start = *curr;
+ run_stack[*stack_curr].length = len;
+ (*stack_curr)++;
+ *curr += len;
+
+ if (*curr == size) {
+ /* finish up */
+ while (*stack_curr > 1) {
+ TIM_SORT_MERGE(dst, run_stack, *stack_curr, store);
+ run_stack[*stack_curr - 2].length += run_stack[*stack_curr - 1].length;
+ (*stack_curr)--;
+ }
+
+ if (store->storage != NULL) {
+ free(store->storage);
+ store->storage = NULL;
+ }
+
+ return 0;
+ }
+
+ return 1;
+}
+
+void TIM_SORT(SORT_TYPE *dst, const size_t size) {
+ size_t minrun;
+ TEMP_STORAGE_T _store, *store;
+ TIM_SORT_RUN_T run_stack[TIM_SORT_STACK_SIZE];
+ size_t stack_curr = 0;
+ size_t curr = 0;
+
+ /* don't bother sorting an array of size 1 */
+ if (size <= 1) {
+ return;
+ }
+
+ if (size < 64) {
BINARY_INSERTION_SORT(dst, size);
return;
}
/* compute the minimum run length */
minrun = compute_minrun(size);
-
/* temporary storage for merges */
store = &_store;
store->alloc = 0;
store->storage = NULL;
- PUSH_NEXT();
- PUSH_NEXT();
- PUSH_NEXT();
+ if (!PUSH_NEXT(dst, size, store, minrun, run_stack, &stack_curr, &curr)) {
+ return;
+ }
- while (1)
- {
- if (!CHECK_INVARIANT(run_stack, stack_curr))
- {
+ if (!PUSH_NEXT(dst, size, store, minrun, run_stack, &stack_curr, &curr)) {
+ return;
+ }
+
+ if (!PUSH_NEXT(dst, size, store, minrun, run_stack, &stack_curr, &curr)) {
+ return;
+ }
+
+ while (1) {
+ if (!CHECK_INVARIANT(run_stack, stack_curr)) {
stack_curr = TIM_SORT_COLLAPSE(dst, run_stack, stack_curr, store, size);
continue;
}
- PUSH_NEXT();
+
+ if (!PUSH_NEXT(dst, size, store, minrun, run_stack, &stack_curr, &curr)) {
+ return;
+ }
}
}
diff --git a/tree.c b/tree.c
index 9d330b8..959421b 100644
--- a/tree.c
+++ b/tree.c
@@ -10,10 +10,16 @@
*
*/
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
#define IN_LIBXML
#include "libxml.h"
#include <string.h> /* for memset() only ! */
+#include <stddef.h>
#include <limits.h>
#ifdef HAVE_CTYPE_H
#include <ctype.h>
@@ -21,7 +27,7 @@
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
#include <zlib.h>
#endif
@@ -254,10 +260,10 @@
*
* [NS 7] LocalPart ::= NCName
*
- * Returns NULL if not a QName, otherwise the local part, and prefix
- * is updated to get the Prefix if any.
+ * Returns NULL if the name doesn't have a prefix. Otherwise, returns the
+ * local part, and prefix is updated to get the Prefix. Both the return value
+ * and the prefix must be freed by the caller.
*/
-
xmlChar *
xmlSplitQName2(const xmlChar *name, xmlChar **prefix) {
int len = 0;
@@ -1401,6 +1407,8 @@
else if ((ent != NULL) && (ent->children == NULL)) {
xmlNodePtr temp;
+ /* Set to non-NULL value to avoid recursion. */
+ ent->children = (xmlNodePtr) -1;
ent->children = xmlStringGetNodeList(doc,
(const xmlChar*)node->content);
ent->owner = 1;
@@ -1593,6 +1601,7 @@
else if ((ent != NULL) && (ent->children == NULL)) {
xmlNodePtr temp;
+ /* Set to non-NULL value to avoid recursion. */
ent->children = (xmlNodePtr) -1;
ent->children = xmlStringGetNodeList(doc,
(const xmlChar*)node->content);
@@ -1600,6 +1609,7 @@
temp = ent->children;
while (temp) {
temp->parent = (xmlNodePtr)ent;
+ ent->last = temp;
temp = temp->next;
}
}
@@ -4596,7 +4606,7 @@
(node->type == XML_PI_NODE)) {
if (node->line == 65535) {
if ((node->type == XML_TEXT_NODE) && (node->psvi != NULL))
- result = (long) node->psvi;
+ result = (long) (ptrdiff_t) node->psvi;
else if ((node->type == XML_ELEMENT_NODE) &&
(node->children != NULL))
result = xmlGetLineNoInternal(node->children, depth + 1);
@@ -4755,8 +4765,8 @@
if (occur == 0) {
tmp = cur->next;
while (tmp != NULL && occur == 0) {
- if (tmp->type == XML_COMMENT_NODE)
- occur++;
+ if (tmp->type == XML_COMMENT_NODE)
+ occur++;
tmp = tmp->next;
}
if (occur != 0)
@@ -8249,7 +8259,7 @@
ns = ns->next;
} while (ns != NULL);
}
- /* No break on purpose. */
+ /* Falls through. */
case XML_ATTRIBUTE_NODE:
if (node->ns != NULL) {
/*
@@ -8840,7 +8850,7 @@
}
if (! adoptns)
goto ns_end;
- /* No break on purpose. */
+ /* Falls through. */
case XML_ATTRIBUTE_NODE:
/* No ns, no fun. */
if (cur->ns == NULL)
@@ -9121,7 +9131,7 @@
goto internal_error;
}
}
- /* No break on purpose. */
+ /* Falls through. */
case XML_ATTRIBUTE_NODE:
/* No namespace, no fun. */
if (cur->ns == NULL)
diff --git a/uri.c b/uri.c
index b11a8a1..860b203 100644
--- a/uri.c
+++ b/uri.c
@@ -1533,10 +1533,11 @@
break;
}
/* Valgrind complained, strcpy(cur, segp + 3); */
- /* string will overlap, do not use strcpy */
- tmp = cur;
- segp += 3;
- while ((*tmp++ = *segp++) != 0);
+ /* string will overlap, do not use strcpy */
+ tmp = cur;
+ segp += 3;
+ while ((*tmp++ = *segp++) != 0)
+ ;
/* If there are no previous segments, then keep going from here. */
segp = cur;
@@ -1961,8 +1962,9 @@
res->scheme = xmlMemStrdup(bas->scheme);
if (bas->authority != NULL)
res->authority = xmlMemStrdup(bas->authority);
- else if (bas->server != NULL) {
- res->server = xmlMemStrdup(bas->server);
+ else if ((bas->server != NULL) || (bas->port == -1)) {
+ if (bas->server != NULL)
+ res->server = xmlMemStrdup(bas->server);
if (bas->user != NULL)
res->user = xmlMemStrdup(bas->user);
res->port = bas->port;
@@ -2024,8 +2026,9 @@
}
if (bas->authority != NULL)
res->authority = xmlMemStrdup(bas->authority);
- else if (bas->server != NULL) {
- res->server = xmlMemStrdup(bas->server);
+ else if ((bas->server != NULL) || (bas->port == -1)) {
+ if (bas->server != NULL)
+ res->server = xmlMemStrdup(bas->server);
if (bas->user != NULL)
res->user = xmlMemStrdup(bas->user);
res->port = bas->port;
@@ -2163,7 +2166,6 @@
xmlChar *val = NULL;
int ret;
int ix;
- int pos = 0;
int nbslash = 0;
int len;
xmlURIPtr ref = NULL;
@@ -2254,19 +2256,22 @@
uptr = NULL;
len = 1; /* this is for a string terminator only */
} else {
- /*
- * Next we compare the two strings and find where they first differ
- */
- if ((ref->path[pos] == '.') && (ref->path[pos+1] == '/'))
- pos += 2;
+ xmlChar *rptr = (xmlChar *) ref->path;
+ int pos = 0;
+
+ /*
+ * Next we compare the two strings and find where they first differ
+ */
+ if ((*rptr == '.') && (rptr[1] == '/'))
+ rptr += 2;
if ((*bptr == '.') && (bptr[1] == '/'))
bptr += 2;
- else if ((*bptr == '/') && (ref->path[pos] != '/'))
+ else if ((*bptr == '/') && (*rptr != '/'))
bptr++;
- while ((bptr[pos] == ref->path[pos]) && (bptr[pos] != 0))
+ while ((bptr[pos] == rptr[pos]) && (bptr[pos] != 0))
pos++;
- if (bptr[pos] == ref->path[pos]) {
+ if (bptr[pos] == rptr[pos]) {
val = xmlStrdup(BAD_CAST "");
goto done; /* (I can't imagine why anyone would do this) */
}
@@ -2276,25 +2281,25 @@
* beginning of the "unique" suffix of URI
*/
ix = pos;
- if ((ref->path[ix] == '/') && (ix > 0))
+ if ((rptr[ix] == '/') && (ix > 0))
ix--;
- else if ((ref->path[ix] == 0) && (ix > 1) && (ref->path[ix - 1] == '/'))
+ else if ((rptr[ix] == 0) && (ix > 1) && (rptr[ix - 1] == '/'))
ix -= 2;
for (; ix > 0; ix--) {
- if (ref->path[ix] == '/')
+ if (rptr[ix] == '/')
break;
}
if (ix == 0) {
- uptr = (xmlChar *)ref->path;
+ uptr = (xmlChar *)rptr;
} else {
ix++;
- uptr = (xmlChar *)&ref->path[ix];
+ uptr = (xmlChar *)&rptr[ix];
}
/*
* In base, count the number of '/' from the differing point
*/
- if (bptr[pos] != ref->path[pos]) {/* check for trivial URI == base */
+ if (bptr[pos] != rptr[pos]) {/* check for trivial URI == base */
for (; bptr[ix] != 0; ix++) {
if (bptr[ix] == '/')
nbslash++;
@@ -2390,8 +2395,7 @@
*/
#if defined(_WIN32) && !defined(__CYGWIN__)
int len = 0;
- int i = 0;
- xmlChar *p = NULL;
+ char *p = NULL;
#endif
xmlURIPtr uri;
xmlChar *ret;
@@ -2455,6 +2459,7 @@
xmlFreeURI(uri);
return escURI;
}
+ xmlFree(escURI);
}
}
@@ -2472,7 +2477,7 @@
len = xmlStrlen(path);
if ((len > 2) && IS_WINDOWS_PATH(path)) {
/* make the scheme 'file' */
- uri->scheme = xmlStrdup(BAD_CAST "file");
+ uri->scheme = (char *) xmlStrdup(BAD_CAST "file");
/* allocate space for leading '/' + path + string terminator */
uri->path = xmlMallocAtomic(len + 2);
if (uri->path == NULL) {
@@ -2482,9 +2487,9 @@
/* Put in leading '/' plus path */
uri->path[0] = '/';
p = uri->path + 1;
- strncpy(p, path, len + 1);
+ strncpy(p, (char *) path, len + 1);
} else {
- uri->path = xmlStrdup(path);
+ uri->path = (char *) xmlStrdup(path);
if (uri->path == NULL) {
xmlFreeURI(uri);
return(NULL);
diff --git a/valid.c b/valid.c
index aee6f40..57a1a9e 100644
--- a/valid.c
+++ b/valid.c
@@ -163,7 +163,7 @@
__xmlRaiseError(schannel, channel, data, pctxt, node, XML_FROM_VALID, error,
XML_ERR_ERROR, NULL, 0,
(const char *) str1,
- (const char *) str1,
+ (const char *) str2,
(const char *) str3, 0, 0, msg, str1, str2, str3);
}
#endif /* LIBXML_VALID_ENABLED or LIBXML_SCHEMAS_ENABLED */
@@ -247,7 +247,7 @@
__xmlRaiseError(schannel, channel, data, pctxt, node, XML_FROM_VALID, error,
XML_ERR_WARNING, NULL, 0,
(const char *) str1,
- (const char *) str1,
+ (const char *) str2,
(const char *) str3, 0, 0, msg, str1, str2, str3);
}
@@ -1172,29 +1172,33 @@
xmlBufferWriteCHAR(buf, content->name);
break;
case XML_ELEMENT_CONTENT_SEQ:
- if ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
- (content->c1->type == XML_ELEMENT_CONTENT_SEQ))
+ if ((content->c1 != NULL) &&
+ ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
+ (content->c1->type == XML_ELEMENT_CONTENT_SEQ)))
xmlDumpElementContent(buf, content->c1, 1);
else
xmlDumpElementContent(buf, content->c1, 0);
xmlBufferWriteChar(buf, " , ");
- if ((content->c2->type == XML_ELEMENT_CONTENT_OR) ||
- ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) &&
- (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE)))
+ if ((content->c2 != NULL) &&
+ ((content->c2->type == XML_ELEMENT_CONTENT_OR) ||
+ ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) &&
+ (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE))))
xmlDumpElementContent(buf, content->c2, 1);
else
xmlDumpElementContent(buf, content->c2, 0);
break;
case XML_ELEMENT_CONTENT_OR:
- if ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
- (content->c1->type == XML_ELEMENT_CONTENT_SEQ))
+ if ((content->c1 != NULL) &&
+ ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
+ (content->c1->type == XML_ELEMENT_CONTENT_SEQ)))
xmlDumpElementContent(buf, content->c1, 1);
else
xmlDumpElementContent(buf, content->c1, 0);
xmlBufferWriteChar(buf, " | ");
- if ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) ||
- ((content->c2->type == XML_ELEMENT_CONTENT_OR) &&
- (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE)))
+ if ((content->c2 != NULL) &&
+ ((content->c2->type == XML_ELEMENT_CONTENT_SEQ) ||
+ ((content->c2->type == XML_ELEMENT_CONTENT_OR) &&
+ (content->c2->ocur != XML_ELEMENT_CONTENT_ONCE))))
xmlDumpElementContent(buf, content->c2, 1);
else
xmlDumpElementContent(buf, content->c2, 0);
@@ -1262,22 +1266,23 @@
case XML_ELEMENT_CONTENT_PCDATA:
strcat(buf, "#PCDATA");
break;
- case XML_ELEMENT_CONTENT_ELEMENT:
- if (content->prefix != NULL) {
- if (size - len < xmlStrlen(content->prefix) + 10) {
- strcat(buf, " ...");
- return;
- }
- strcat(buf, (char *) content->prefix);
- strcat(buf, ":");
- }
- if (size - len < xmlStrlen(content->name) + 10) {
+ case XML_ELEMENT_CONTENT_ELEMENT: {
+ int qnameLen = xmlStrlen(content->name);
+
+ if (content->prefix != NULL)
+ qnameLen += xmlStrlen(content->prefix) + 1;
+ if (size - len < qnameLen + 10) {
strcat(buf, " ...");
return;
}
+ if (content->prefix != NULL) {
+ strcat(buf, (char *) content->prefix);
+ strcat(buf, ":");
+ }
if (content->name != NULL)
strcat(buf, (char *) content->name);
break;
+ }
case XML_ELEMENT_CONTENT_SEQ:
if ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
(content->c1->type == XML_ELEMENT_CONTENT_SEQ))
@@ -1319,6 +1324,7 @@
xmlSnprintfElementContent(buf, size, content->c2, 0);
break;
}
+ if (size - strlen(buf) <= 2) return;
if (englob)
strcat(buf, ")");
switch (content->ocur) {
@@ -1591,6 +1597,11 @@
return(ret);
}
+static void
+xmlFreeElementTableEntry(void *elem, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlFreeElement((xmlElementPtr) elem);
+}
+
/**
* xmlFreeElementTable:
* @table: An element table
@@ -1599,7 +1610,7 @@
*/
void
xmlFreeElementTable(xmlElementTablePtr table) {
- xmlHashFree(table, (xmlHashDeallocator) xmlFreeElement);
+ xmlHashFree(table, xmlFreeElementTableEntry);
}
#ifdef LIBXML_TREE_ENABLED
@@ -1611,8 +1622,9 @@
*
* Returns the new xmlElementPtr or NULL in case of error.
*/
-static xmlElementPtr
-xmlCopyElement(xmlElementPtr elem) {
+static void *
+xmlCopyElement(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlElementPtr elem = (xmlElementPtr) payload;
xmlElementPtr cur;
cur = (xmlElementPtr) xmlMalloc(sizeof(xmlElement));
@@ -1647,8 +1659,7 @@
*/
xmlElementTablePtr
xmlCopyElementTable(xmlElementTablePtr table) {
- return((xmlElementTablePtr) xmlHashCopy(table,
- (xmlHashCopier) xmlCopyElement));
+ return((xmlElementTablePtr) xmlHashCopy(table, xmlCopyElement));
}
#endif /* LIBXML_TREE_ENABLED */
@@ -1722,8 +1733,9 @@
* the arguments.
*/
static void
-xmlDumpElementDeclScan(xmlElementPtr elem, xmlBufferPtr buf) {
- xmlDumpElementDecl(buf, elem);
+xmlDumpElementDeclScan(void *elem, void *buf,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlDumpElementDecl((xmlBufferPtr) buf, (xmlElementPtr) elem);
}
/**
@@ -1737,7 +1749,7 @@
xmlDumpElementTable(xmlBufferPtr buf, xmlElementTablePtr table) {
if ((buf == NULL) || (table == NULL))
return;
- xmlHashScan(table, (xmlHashScanner) xmlDumpElementDeclScan, buf);
+ xmlHashScan(table, xmlDumpElementDeclScan, buf);
}
#endif /* LIBXML_OUTPUT_ENABLED */
@@ -2137,6 +2149,11 @@
return(ret);
}
+static void
+xmlFreeAttributeTableEntry(void *attr, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlFreeAttribute((xmlAttributePtr) attr);
+}
+
/**
* xmlFreeAttributeTable:
* @table: An attribute table
@@ -2145,7 +2162,7 @@
*/
void
xmlFreeAttributeTable(xmlAttributeTablePtr table) {
- xmlHashFree(table, (xmlHashDeallocator) xmlFreeAttribute);
+ xmlHashFree(table, xmlFreeAttributeTableEntry);
}
#ifdef LIBXML_TREE_ENABLED
@@ -2157,8 +2174,9 @@
*
* Returns the new xmlAttributePtr or NULL in case of error.
*/
-static xmlAttributePtr
-xmlCopyAttribute(xmlAttributePtr attr) {
+static void *
+xmlCopyAttribute(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlAttributePtr attr = (xmlAttributePtr) payload;
xmlAttributePtr cur;
cur = (xmlAttributePtr) xmlMalloc(sizeof(xmlAttribute));
@@ -2192,8 +2210,7 @@
*/
xmlAttributeTablePtr
xmlCopyAttributeTable(xmlAttributeTablePtr table) {
- return((xmlAttributeTablePtr) xmlHashCopy(table,
- (xmlHashCopier) xmlCopyAttribute));
+ return((xmlAttributeTablePtr) xmlHashCopy(table, xmlCopyAttribute));
}
#endif /* LIBXML_TREE_ENABLED */
@@ -2288,8 +2305,9 @@
* This is used with the hash scan function - just reverses arguments
*/
static void
-xmlDumpAttributeDeclScan(xmlAttributePtr attr, xmlBufferPtr buf) {
- xmlDumpAttributeDecl(buf, attr);
+xmlDumpAttributeDeclScan(void *attr, void *buf,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlDumpAttributeDecl((xmlBufferPtr) buf, (xmlAttributePtr) attr);
}
/**
@@ -2303,7 +2321,7 @@
xmlDumpAttributeTable(xmlBufferPtr buf, xmlAttributeTablePtr table) {
if ((buf == NULL) || (table == NULL))
return;
- xmlHashScan(table, (xmlHashScanner) xmlDumpAttributeDeclScan, buf);
+ xmlHashScan(table, xmlDumpAttributeDeclScan, buf);
}
#endif /* LIBXML_OUTPUT_ENABLED */
@@ -2409,6 +2427,11 @@
return(ret);
}
+static void
+xmlFreeNotationTableEntry(void *nota, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlFreeNotation((xmlNotationPtr) nota);
+}
+
/**
* xmlFreeNotationTable:
* @table: An notation table
@@ -2417,7 +2440,7 @@
*/
void
xmlFreeNotationTable(xmlNotationTablePtr table) {
- xmlHashFree(table, (xmlHashDeallocator) xmlFreeNotation);
+ xmlHashFree(table, xmlFreeNotationTableEntry);
}
#ifdef LIBXML_TREE_ENABLED
@@ -2429,8 +2452,9 @@
*
* Returns the new xmlNotationPtr or NULL in case of error.
*/
-static xmlNotationPtr
-xmlCopyNotation(xmlNotationPtr nota) {
+static void *
+xmlCopyNotation(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlNotationPtr nota = (xmlNotationPtr) payload;
xmlNotationPtr cur;
cur = (xmlNotationPtr) xmlMalloc(sizeof(xmlNotation));
@@ -2463,8 +2487,7 @@
*/
xmlNotationTablePtr
xmlCopyNotationTable(xmlNotationTablePtr table) {
- return((xmlNotationTablePtr) xmlHashCopy(table,
- (xmlHashCopier) xmlCopyNotation));
+ return((xmlNotationTablePtr) xmlHashCopy(table, xmlCopyNotation));
}
#endif /* LIBXML_TREE_ENABLED */
@@ -2504,8 +2527,9 @@
* This is called with the hash scan function, and just reverses args
*/
static void
-xmlDumpNotationDeclScan(xmlNotationPtr nota, xmlBufferPtr buf) {
- xmlDumpNotationDecl(buf, nota);
+xmlDumpNotationDeclScan(void *nota, void *buf,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlDumpNotationDecl((xmlBufferPtr) buf, (xmlNotationPtr) nota);
}
/**
@@ -2519,7 +2543,7 @@
xmlDumpNotationTable(xmlBufferPtr buf, xmlNotationTablePtr table) {
if ((buf == NULL) || (table == NULL))
return;
- xmlHashScan(table, (xmlHashScanner) xmlDumpNotationDeclScan, buf);
+ xmlHashScan(table, xmlDumpNotationDeclScan, buf);
}
#endif /* LIBXML_OUTPUT_ENABLED */
@@ -2647,6 +2671,11 @@
return(ret);
}
+static void
+xmlFreeIDTableEntry(void *id, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlFreeID((xmlIDPtr) id);
+}
+
/**
* xmlFreeIDTable:
* @table: An id table
@@ -2655,7 +2684,7 @@
*/
void
xmlFreeIDTable(xmlIDTablePtr table) {
- xmlHashFree(table, (xmlHashDeallocator) xmlFreeID);
+ xmlHashFree(table, xmlFreeIDTableEntry);
}
/**
@@ -2755,7 +2784,7 @@
return(-1);
}
- xmlHashRemoveEntry(table, ID, (xmlHashDeallocator) xmlFreeID);
+ xmlHashRemoveEntry(table, ID, xmlFreeIDTableEntry);
xmlFree(ID);
attr->atype = 0;
return(0);
@@ -2839,13 +2868,14 @@
}
/**
- * xmlFreeRefList:
+ * xmlFreeRefTableEntry:
* @list_ref: A list of references.
*
* Deallocate the memory used by a list of references
*/
static void
-xmlFreeRefList(xmlListPtr list_ref) {
+xmlFreeRefTableEntry(void *payload, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlListPtr list_ref = (xmlListPtr) payload;
if (list_ref == NULL) return;
xmlListDelete(list_ref);
}
@@ -2858,7 +2888,7 @@
* Returns 0 to abort the walk or 1 to continue
*/
static int
-xmlWalkRemoveRef(const void *data, const void *user)
+xmlWalkRemoveRef(const void *data, void *user)
{
xmlAttrPtr attr0 = ((xmlRefPtr)data)->attr;
xmlAttrPtr attr1 = ((xmlRemoveMemoPtr)user)->ap;
@@ -2996,7 +3026,7 @@
*/
void
xmlFreeRefTable(xmlRefTablePtr table) {
- xmlHashFree(table, (xmlHashDeallocator) xmlFreeRefList);
+ xmlHashFree(table, xmlFreeRefTableEntry);
}
/**
@@ -3093,8 +3123,7 @@
/*If the list is empty then remove the list entry in the hash */
if (xmlListEmpty(ref_list))
- xmlHashUpdateEntry(table, ID, NULL, (xmlHashDeallocator)
- xmlFreeRefList);
+ xmlHashUpdateEntry(table, ID, NULL, xmlFreeRefTableEntry);
xmlFree(ID);
return(0);
}
@@ -4090,8 +4119,10 @@
}
static void
-xmlValidateAttributeIdCallback(xmlAttributePtr attr, int *count,
- const xmlChar* name ATTRIBUTE_UNUSED) {
+xmlValidateAttributeIdCallback(void *payload, void *data,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlAttributePtr attr = (xmlAttributePtr) payload;
+ int *count = (int *) data;
if (attr->atype == XML_ATTRIBUTE_ID) (*count)++;
}
@@ -4163,7 +4194,7 @@
nbId = 0;
if (doc->intSubset != NULL) {
table = (xmlAttributeTablePtr) doc->intSubset->attributes;
- xmlHashScan3(table, NULL, NULL, attr->elem, (xmlHashScanner)
+ xmlHashScan3(table, NULL, NULL, attr->elem,
xmlValidateAttributeIdCallback, &nbId);
}
}
@@ -4621,6 +4652,12 @@
}
}
+ /*
+ * Casting ns to xmlAttrPtr is wrong. We'd need separate functions
+ * xmlAddID and xmlAddRef for namespace declarations, but it makes
+ * no practical sense to use ID types anyway.
+ */
+#if 0
/* Validity Constraint: ID uniqueness */
if (attrDecl->atype == XML_ATTRIBUTE_ID) {
if (xmlAddID(ctxt, doc, value, (xmlAttrPtr) attrDecl) == NULL)
@@ -4632,6 +4669,7 @@
if (xmlAddRef(ctxt, doc, value, (xmlAttrPtr) attrDecl) == NULL)
ret = 0;
}
+#endif
/* Validity Constraint: Notation Attributes */
if (attrDecl->atype == XML_ATTRIBUTE_NOTATION) {
@@ -5177,6 +5215,7 @@
case XML_TEXT_NODE:
if (xmlIsBlankNode(cur))
break;
+ /* Falls through. */
case XML_CDATA_SECTION_NODE:
case XML_ENTITY_REF_NODE:
strcat(buf, "CDATA");
@@ -5725,7 +5764,7 @@
xmlElementPtr elemDecl;
/*
- * Check the new element agaisnt the content model of the new elem.
+ * Check the new element against the content model of the new elem.
*/
if (state->elemDecl != NULL) {
elemDecl = state->elemDecl;
@@ -5817,7 +5856,7 @@
xmlElementPtr elemDecl;
/*
- * Check the new element agaisnt the content model of the new elem.
+ * Check the new element against the content model of the new elem.
*/
if (state->elemDecl != NULL) {
elemDecl = state->elemDecl;
@@ -5891,7 +5930,7 @@
xmlElementPtr elemDecl;
/*
- * Check the new element agaisnt the content model of the new elem.
+ * Check the new element against the content model of the new elem.
*/
if (state->elemDecl != NULL) {
elemDecl = state->elemDecl;
@@ -6516,7 +6555,7 @@
* Returns 0 to abort the walk or 1 to continue
*/
static int
-xmlWalkValidateList(const void *data, const void *user)
+xmlWalkValidateList(const void *data, void *user)
{
xmlValidateMemoPtr memo = (xmlValidateMemoPtr)user;
xmlValidateRef((xmlRefPtr)data, memo->ctxt, memo->name);
@@ -6531,8 +6570,9 @@
*
*/
static void
-xmlValidateCheckRefCallback(xmlListPtr ref_list, xmlValidCtxtPtr ctxt,
- const xmlChar *name) {
+xmlValidateCheckRefCallback(void *payload, void *data, const xmlChar *name) {
+ xmlListPtr ref_list = (xmlListPtr) payload;
+ xmlValidCtxtPtr ctxt = (xmlValidCtxtPtr) data;
xmlValidateMemo memo;
if (ref_list == NULL)
@@ -6588,7 +6628,7 @@
table = (xmlRefTablePtr) doc->refs;
ctxt->doc = doc;
ctxt->valid = 1;
- xmlHashScan(table, (xmlHashScanner) xmlValidateCheckRefCallback, ctxt);
+ xmlHashScan(table, xmlValidateCheckRefCallback, ctxt);
ctxt->finishDtd = save;
return(ctxt->valid);
@@ -6645,8 +6685,10 @@
}
static void
-xmlValidateNotationCallback(xmlEntityPtr cur, xmlValidCtxtPtr ctxt,
+xmlValidateNotationCallback(void *payload, void *data,
const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlEntityPtr cur = (xmlEntityPtr) payload;
+ xmlValidCtxtPtr ctxt = (xmlValidCtxtPtr) data;
if (cur == NULL)
return;
if (cur->etype == XML_EXTERNAL_GENERAL_UNPARSED_ENTITY) {
@@ -6664,8 +6706,10 @@
}
static void
-xmlValidateAttributeCallback(xmlAttributePtr cur, xmlValidCtxtPtr ctxt,
- const xmlChar *name ATTRIBUTE_UNUSED) {
+xmlValidateAttributeCallback(void *payload, void *data,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlAttributePtr cur = (xmlAttributePtr) payload;
+ xmlValidCtxtPtr ctxt = (xmlValidCtxtPtr) data;
int ret;
xmlDocPtr doc;
xmlElementPtr elem = NULL;
@@ -6764,22 +6808,20 @@
dtd = doc->intSubset;
if ((dtd != NULL) && (dtd->attributes != NULL)) {
table = (xmlAttributeTablePtr) dtd->attributes;
- xmlHashScan(table, (xmlHashScanner) xmlValidateAttributeCallback, ctxt);
+ xmlHashScan(table, xmlValidateAttributeCallback, ctxt);
}
if ((dtd != NULL) && (dtd->entities != NULL)) {
entities = (xmlEntitiesTablePtr) dtd->entities;
- xmlHashScan(entities, (xmlHashScanner) xmlValidateNotationCallback,
- ctxt);
+ xmlHashScan(entities, xmlValidateNotationCallback, ctxt);
}
dtd = doc->extSubset;
if ((dtd != NULL) && (dtd->attributes != NULL)) {
table = (xmlAttributeTablePtr) dtd->attributes;
- xmlHashScan(table, (xmlHashScanner) xmlValidateAttributeCallback, ctxt);
+ xmlHashScan(table, xmlValidateAttributeCallback, ctxt);
}
if ((dtd != NULL) && (dtd->entities != NULL)) {
entities = (xmlEntitiesTablePtr) dtd->entities;
- xmlHashScan(entities, (xmlHashScanner) xmlValidateNotationCallback,
- ctxt);
+ xmlHashScan(entities, xmlValidateNotationCallback, ctxt);
}
return(ctxt->valid);
}
diff --git a/vms/build_libxml.com b/vms/build_libxml.com
index 3a6fcc0..1f7936e 100755
--- a/vms/build_libxml.com
+++ b/vms/build_libxml.com
@@ -62,9 +62,9 @@
$ bin_progs = "xmllint xmlcatalog"
$!
$!- list of test modules to compile and link. Compare this list to the
-$! definition of noinst_PROGRAMS in MAKEFILE.
+$! definition of check_PROGRAMS in MAKEFILE.
$!
-$ noinst_PROGRAMS = "testSchemas testRelax testSAX testHTML testXPath testURI " -
+$ check_PROGRAMS = "testSchemas testRelax testSAX testHTML testXPath testURI " -
+ "testThreads testC14N testAutomata testRegexp testReader"
$!
$!- set up build logicals -----------------------------------------------------\
@@ -196,7 +196,7 @@
$ write sys$output ""
$!
$ p_no = 0
-$ all_progs = bin_progs + " " + noinst_PROGRAMS
+$ all_progs = bin_progs + " " + check_PROGRAMS
$ all_progs = f$edit(all_progs,"COMPRESS")
$!
$ prog_loop:
diff --git a/vms/config.vms b/vms/config.vms
index d1cd7f3..375406b 100755
--- a/vms/config.vms
+++ b/vms/config.vms
@@ -21,39 +21,15 @@
#define ICONV_CONST
-/* Define if you have the class function. */
-#undef HAVE_CLASS
-
-/* Define if you have the finite function. */
-#undef HAVE_FINITE
-
-/* Define if you have the fp_class function. */
-#define HAVE_FP_CLASS 1
-
-/* Define if you have the fpclass function. */
-#undef HAVE_FPCLASS
-
-/* Define if you have the isnand function. */
-#undef HAVE_ISNAND
-
/* Define if you have the localtime function. */
#define HAVE_LOCALTIME 1
/* Define if you have the snprintf function. */
#undef HAVE_SNPRINTF
-/* Define if you have the strdup function. */
-#define HAVE_STRDUP 1
-
-/* Define if you have the strerror function. */
-#define HAVE_STRERROR 1
-
/* Define if you have the strftime function. */
#define HAVE_STRFTIME 1
-/* Define if you have the strndup function. */
-#undef HAVE_STRNDUP
-
/* Define if you have the <arpa/inet.h> header file. */
#undef HAVE_ARPA_INET_H
@@ -72,21 +48,12 @@
/* Define if you have the <float.h> header file. */
#define HAVE_FLOAT_H 1
-/* Define if you have the <fp_class.h> header file. */
-#define HAVE_FP_CLASS_H 1
-
-/* Define if you have the <ieeefp.h> header file. */
-#undef HAVE_IEEEFP_H
-
/* Define if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H
/* Define if you have the <math.h> header file. */
#define HAVE_MATH_H 1
-/* Define if you have the <nan.h> header file. */
-#undef HAVE_NAN_H
-
/* Define if you have the <ndir.h> header file. */
#undef HAVE_NDIR_H
@@ -102,12 +69,6 @@
/* Define if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
-/* Define to 1 if you have the `strdup' function. */
-#define HAVE_STRDUP 1
-
-/* Define to 1 if you have the `strerror' function. */
-#define HAVE_STRERROR 1
-
/* Define to 1 if you have the `strftime' function. */
#define HAVE_STRFTIME 1
@@ -117,9 +78,6 @@
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
-/* Define to 1 if you have the `strndup' function. */
-#undef HAVE_STRNDUP
-
/* Define if you have the <sys/dir.h> header file. */
#undef HAVE_SYS_DIR_H
@@ -150,9 +108,6 @@
/* Define if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
-/* Define if you have the <zlib.h> header file. */
-#undef HAVE_ZLIB_H
-
/* Name of package */
#undef PACKAGE
diff --git a/win32/Makefile.bcb b/win32/Makefile.bcb
index 7129c61..41002da 100644
--- a/win32/Makefile.bcb
+++ b/win32/Makefile.bcb
@@ -65,12 +65,6 @@
!else if "$(WITH_THREADS)" == "posix"
CFLAGS = $(CFLAGS) -DHAVE_PTHREAD_H
!endif
-!if "$(WITH_ZLIB)" == "1"
-CFLAGS = $(CFLAGS) -DHAVE_ZLIB_H
-!endif
-!if "$(WITH_LZMA)" == "1"
-CFLAGS = $(CFLAGS) -DHAVE_LZMA_H
-!endif
# The linker and its options.
LD = ilink32.exe
diff --git a/win32/Makefile.mingw b/win32/Makefile.mingw
index 1889376..3d4cb88 100644
--- a/win32/Makefile.mingw
+++ b/win32/Makefile.mingw
@@ -57,12 +57,6 @@
ifeq ($(WITH_THREADS),posix)
CFLAGS += -DHAVE_PTHREAD_H
endif
-ifeq ($(WITH_ZLIB),1)
-CFLAGS += -DHAVE_ZLIB_H
-endif
-ifeq ($(WITH_LZMA),1)
-CFLAGS += -DHAVE_LZMA_H
-endif
# The linker and its options.
LD = gcc.exe
@@ -71,11 +65,9 @@
LDFLAGS += -Wl,-L,$(BINDIR) -Wl,-L,$(LIBPREFIX)
LIBS =
ifeq ($(WITH_FTP),1)
-CFLAGS += -D_WINSOCKAPI_
LIBS += -lwsock32 -lws2_32
endif
ifeq ($(WITH_HTTP),1)
-CFLAGS += -D_WINSOCKAPI_
LIBS += -lwsock32 -lws2_32
endif
ifeq ($(WITH_ICONV),1)
diff --git a/win32/Makefile.msvc b/win32/Makefile.msvc
index d16c1a2..491dc88 100644
--- a/win32/Makefile.msvc
+++ b/win32/Makefile.msvc
@@ -22,6 +22,7 @@
XML_NAME = xml2
XML_BASENAME = lib$(XML_NAME)
XML_SO = $(XML_BASENAME).dll
+XML_RES = $(XML_BASENAME).res
XML_IMP = $(XML_BASENAME).lib
XML_DEF = $(XML_BASENAME).def
XML_A = $(XML_BASENAME)_a.lib
@@ -43,7 +44,7 @@
# The compiler and its options.
CC = cl.exe
-CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOLIBTOOL" /W1 $(CRUNTIME)
+CFLAGS = /nologo /D "_WINDOWS" /D "_MBCS" /D "NOLIBTOOL" /W3 /wd4244 /wd4267 $(CRUNTIME)
CFLAGS = $(CFLAGS) /I$(XML_SRCDIR) /I$(XML_SRCDIR)\include /I$(INCPREFIX)
!if "$(WITH_THREADS)" != "no"
CFLAGS = $(CFLAGS) /D "_REENTRANT"
@@ -55,12 +56,6 @@
!else if "$(WITH_THREADS)" == "posix"
CFLAGS = $(CFLAGS) /D "HAVE_PTHREAD_H"
!endif
-!if "$(WITH_ZLIB)" == "1"
-CFLAGS = $(CFLAGS) /D "HAVE_ZLIB_H"
-!endif
-!if "$(WITH_LZMA)" == "1"
-CFLAGS = $(CFLAGS) /D "HAVE_LZMA_H"
-!endif
CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
# The linker and its options.
@@ -75,7 +70,11 @@
LIBS = $(LIBS) iconv.lib
!endif
!if "$(WITH_ICU)" == "1"
-LIBS = $(LIBS) icu.lib
+!if "$(STATIC)" == "1"
+LIBS = $(LIBS) advapi32.lib sicuuc.lib sicuin.lib sicudt.lib
+!else
+LIBS = $(LIBS) icuuc.lib icuin.lib icudt.lib
+!endif
!endif
!if "$(WITH_ZLIB)" == "1"
# could be named differently zdll or zlib
@@ -262,7 +261,10 @@
$(BINDIR)\testXPath.exe\
$(BINDIR)\runtest.exe\
$(BINDIR)\runsuite.exe\
+ $(BINDIR)\runxmlconf.exe\
$(BINDIR)\testapi.exe\
+ $(BINDIR)\testchar.exe\
+ $(BINDIR)\testdict.exe\
$(BINDIR)\testlimits.exe\
$(BINDIR)\testrecurse.exe
@@ -373,11 +375,13 @@
# Creates the export definition file (DEF) for libxml.
$(XML_INTDIR)\$(XML_DEF) : $(XML_INTDIR) $(XML_DEF).src
$(CPP) $(CPPFLAGS) $(XML_DEF).src > $(XML_INTDIR)\$(XML_DEF)
+$(XML_INTDIR)\$(XML_RES) : $(XML_INTDIR) libxml2.rc
+ rc -Fo $(XML_INTDIR)\$(XML_RES) libxml2.rc
# Creates the libxml shared object.
-$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF)
+$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF) $(XML_INTDIR)\$(XML_RES)
$(LD) $(LDFLAGS) /DLL \
- /IMPLIB:$(BINDIR)\$(XML_IMP) /OUT:$(BINDIR)\$(XML_SO) $(XML_OBJS) $(LIBS)
+ /IMPLIB:$(BINDIR)\$(XML_IMP) /OUT:$(BINDIR)\$(XML_SO) $(XML_OBJS) $(XML_INTDIR)\$(XML_RES) $(LIBS)
@$(_VC_MANIFEST_EMBED_DLL)
#$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF)
diff --git a/win32/VC10/config.h b/win32/VC10/config.h
index 8629944..c1e16f1 100644
--- a/win32/VC10/config.h
+++ b/win32/VC10/config.h
@@ -9,11 +9,9 @@
#if defined(_WIN32_WCE)
#undef HAVE_ERRNO_H
-#include <windows.h>
#include "wincecompat.h"
#else
#define HAVE_SYS_STAT_H
-#define HAVE__STAT
#define HAVE_STAT
#define HAVE_STDLIB_H
#define HAVE_TIME_H
@@ -28,10 +26,6 @@
#define ICONV_CONST const
#endif
-#ifdef NEED_SOCKETS
-#include <wsockcompat.h>
-#endif
-
/*
* Windows platforms may define except
*/
@@ -96,7 +90,9 @@
#if defined(_MSC_VER)
#define mkdir(p,m) _mkdir(p)
+#if _MSC_VER < 1900 // Cannot define this in VS 2015 and above!
#define snprintf _snprintf
+#endif
#if _MSC_VER < 1500
#define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a)
#endif
diff --git a/win32/configure.js b/win32/configure.js
index 92b9ba0..dbf238c 100644
--- a/win32/configure.js
+++ b/win32/configure.js
@@ -280,6 +280,18 @@
vf.WriteLine("DYNRUNTIME=" + (dynruntime? "1" : "0"));
}
vf.Close();
+ versionFile = "rcVersion.h"
+ vf = fso.CreateTextFile(versionFile, true);
+ vf.WriteLine("/*");
+ vf.WriteLine(" " + versionFile);
+ vf.WriteLine(" This file is generated automatically by " + WScript.ScriptName + ".");
+ vf.WriteLine("*/");
+ vf.WriteBlankLines(1);
+ vf.WriteLine("#define LIBXML_MAJOR_VERSION " + verMajor);
+ vf.WriteLine("#define LIBXML_MINOR_VERSION " + verMinor);
+ vf.WriteLine("#define LIBXML_MICRO_VERSION " + verMicro);
+ vf.WriteLine("#define LIBXML_DOTTED_VERSION " + "\"" + verMajor + "." + verMinor + "." + verMicro + "\"");
+ vf.Close()
}
/* Configures libxml. This one will generate xmlversion.h from xmlversion.h.in
diff --git a/win32/libxml2.rc b/win32/libxml2.rc
new file mode 100644
index 0000000..c774a5e
--- /dev/null
+++ b/win32/libxml2.rc
@@ -0,0 +1,36 @@
+#include <winver.h>
+#include "rcVersion.h"
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION LIBXML_MAJOR_VERSION,LIBXML_MINOR_VERSION,LIBXML_MICRO_VERSION,0
+ PRODUCTVERSION LIBXML_MAJOR_VERSION,LIBXML_MINOR_VERSION,LIBXML_MICRO_VERSION,0
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+#ifdef _DEBUG
+ FILEFLAGS VS_FF_DEBUG
+#else
+ FILEFLAGS 0
+#endif
+ FILEOS VOS__WINDOWS32
+ FILETYPE VFT_DLL
+ FILESUBTYPE VFT2_UNKNOWN // not used
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "04090000" /* Lang = US English, Charset = ASCII */
+ BEGIN
+ VALUE "FileDescription", "libxml2 library\0"
+ VALUE "FileVersion", LIBXML_DOTTED_VERSION "\0"
+ VALUE "InternalName", "libxml2.dll\0"
+ VALUE "LegalCopyright", "Copyright (C) Daniel Veillard\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename", "libxml2.dll\0"
+ VALUE "ProductName", "libxml2\0"
+ VALUE "ProductVersion", LIBXML_DOTTED_VERSION "\0"
+ VALUE "Comments", "For more information visit http://xmlsoft.org/\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0409, 0 /* US English, ASCII */
+ END
+END
diff --git a/xinclude.c b/xinclude.c
index e3bb43e..001e992 100644
--- a/xinclude.c
+++ b/xinclude.c
@@ -1261,8 +1261,10 @@
* Inplements the merge of one entity
*/
static void
-xmlXIncludeMergeEntity(xmlEntityPtr ent, xmlXIncludeMergeDataPtr data,
- xmlChar *name ATTRIBUTE_UNUSED) {
+xmlXIncludeMergeEntity(void *payload, void *vdata,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlEntityPtr ent = (xmlEntityPtr) payload;
+ xmlXIncludeMergeDataPtr data = (xmlXIncludeMergeDataPtr) vdata;
xmlEntityPtr ret, prev;
xmlDocPtr doc;
xmlXIncludeCtxtPtr ctxt;
@@ -1367,7 +1369,7 @@
data.doc = doc;
xmlHashScan((xmlHashTablePtr) source->entities,
- (xmlHashScanner) xmlXIncludeMergeEntity, &data);
+ xmlXIncludeMergeEntity, &data);
}
source = from->extSubset;
if ((source != NULL) && (source->entities != NULL)) {
@@ -1382,7 +1384,7 @@
if ((!xmlStrEqual(target->ExternalID, source->ExternalID)) &&
(!xmlStrEqual(target->SystemID, source->SystemID))) {
xmlHashScan((xmlHashTablePtr) source->entities,
- (xmlHashScanner) xmlXIncludeMergeEntity, &data);
+ xmlXIncludeMergeEntity, &data);
}
}
return(0);
diff --git a/xlink.c b/xlink.c
index c0e4ff3..ecf9f96 100644
--- a/xlink.c
+++ b/xlink.c
@@ -28,7 +28,7 @@
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
#include <zlib.h>
#endif
diff --git a/xmlIO.c b/xmlIO.c
index 1a79c09..8254347 100644
--- a/xmlIO.c
+++ b/xmlIO.c
@@ -12,6 +12,7 @@
#include "libxml.h"
#include <string.h>
+#include <stddef.h>
#ifdef HAVE_ERRNO_H
#include <errno.h>
#endif
@@ -32,14 +33,15 @@
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
#include <zlib.h>
#endif
-#ifdef HAVE_LZMA_H
+#ifdef LIBXML_LZMA_ENABLED
#include <lzma.h>
#endif
-#if defined(WIN32) || defined(_WIN32)
+#if defined(_WIN32) && !defined(__CYGWIN__)
+#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#endif
@@ -47,38 +49,14 @@
#include <winnls.h> /* for CP_UTF8 */
#endif
-/* Figure a portable way to know if a file is a directory. */
-#ifndef HAVE_STAT
-# ifdef HAVE__STAT
- /* MS C library seems to define stat and _stat. The definition
- is identical. Still, mapping them to each other causes a warning. */
-# ifndef _MSC_VER
-# define stat(x,y) _stat(x,y)
-# endif
-# define HAVE_STAT
-# endif
-#else
-# ifdef HAVE__STAT
-# if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
-# define stat _stat
-# endif
-# endif
-#endif
-#ifdef HAVE_STAT
-# ifndef S_ISDIR
-# ifdef _S_ISDIR
-# define S_ISDIR(x) _S_ISDIR(x)
-# else
-# ifdef S_IFDIR
-# ifndef S_IFMT
-# ifdef _S_IFMT
-# define S_IFMT _S_IFMT
-# endif
-# endif
-# ifdef S_IFMT
-# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
-# endif
-# endif
+#ifndef S_ISDIR
+# ifdef _S_ISDIR
+# define S_ISDIR(x) _S_ISDIR(x)
+# elif defined(S_IFDIR)
+# ifdef S_IFMT
+# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
+# elif defined(_S_IFMT)
+# define S_ISDIR(m) (((m) & _S_IFMT) == S_IFDIR)
# endif
# endif
#endif
@@ -619,7 +597,7 @@
return fd;
}
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
static gzFile
xmlWrapGzOpenUtf8(const char *path, const char *mode)
{
@@ -656,99 +634,19 @@
*
*/
static int
-xmlWrapStatUtf8(const char *path,struct stat *info)
-{
-#ifdef HAVE_STAT
+xmlWrapStatUtf8(const char *path, struct _stat *info) {
int retval = -1;
wchar_t *wPath;
wPath = __xmlIOWin32UTF8ToWChar(path);
- if (wPath)
- {
- retval = _wstat(wPath,info);
+ if (wPath) {
+ retval = _wstat(wPath, info);
xmlFree(wPath);
}
/* maybe path in native encoding */
if(retval < 0)
- retval = stat(path,info);
+ retval = _stat(path, info);
return retval;
-#else
- return -1;
-#endif
-}
-
-/**
- * xmlWrapOpenNative:
- * @path: the path
- * @mode: type of access (0 - read, 1 - write)
- *
- * function opens the file specified by @path
- *
- */
-static FILE*
-xmlWrapOpenNative(const char *path,int mode)
-{
- return fopen(path,mode ? "wb" : "rb");
-}
-
-/**
- * xmlWrapStatNative:
- * @path: the path
- * @info: structure that stores results
- *
- * function obtains information about the file or directory
- *
- */
-static int
-xmlWrapStatNative(const char *path,struct stat *info)
-{
-#ifdef HAVE_STAT
- return stat(path,info);
-#else
- return -1;
-#endif
-}
-
-typedef int (* xmlWrapStatFunc) (const char *f, struct stat *s);
-static xmlWrapStatFunc xmlWrapStat = xmlWrapStatNative;
-typedef FILE* (* xmlWrapOpenFunc)(const char *f,int mode);
-static xmlWrapOpenFunc xmlWrapOpen = xmlWrapOpenNative;
-#ifdef HAVE_ZLIB_H
-typedef gzFile (* xmlWrapGzOpenFunc) (const char *f, const char *mode);
-static xmlWrapGzOpenFunc xmlWrapGzOpen = gzopen;
-#endif
-/**
- * xmlInitPlatformSpecificIo:
- *
- * Initialize platform specific features.
- */
-static void
-xmlInitPlatformSpecificIo(void)
-{
- static int xmlPlatformIoInitialized = 0;
- OSVERSIONINFO osvi;
-
- if(xmlPlatformIoInitialized)
- return;
-
- osvi.dwOSVersionInfoSize = sizeof(osvi);
-
- if(GetVersionEx(&osvi) && (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)) {
- xmlWrapStat = xmlWrapStatUtf8;
- xmlWrapOpen = xmlWrapOpenUtf8;
-#ifdef HAVE_ZLIB_H
- xmlWrapGzOpen = xmlWrapGzOpenUtf8;
-#endif
- } else {
- xmlWrapStat = xmlWrapStatNative;
- xmlWrapOpen = xmlWrapOpenNative;
-#ifdef HAVE_ZLIB_H
- xmlWrapGzOpen = gzopen;
-#endif
- }
-
- xmlPlatformIoInitialized = 1;
- return;
}
#endif
@@ -771,8 +669,12 @@
xmlCheckFilename (const char *path)
{
#ifdef HAVE_STAT
+#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
+ struct _stat stat_buffer;
+#else
struct stat stat_buffer;
#endif
+#endif
if (path == NULL)
return(0);
@@ -786,7 +688,7 @@
(path[3] == '\\') )
return 1;
- if (xmlWrapStat(path, &stat_buffer) == -1)
+ if (xmlWrapStatUtf8(path, &stat_buffer) == -1)
return 0;
#else
if (stat(path, &stat_buffer) == -1)
@@ -801,14 +703,16 @@
}
/**
- * xmlNop:
+ * xmlInputReadCallbackNop:
*
- * No Operation function, does nothing, no input
+ * No Operation xmlInputReadCallback function, does nothing.
*
* Returns zero
*/
int
-xmlNop(void) {
+xmlInputReadCallbackNop(void *context ATTRIBUTE_UNUSED,
+ char *buffer ATTRIBUTE_UNUSED,
+ int len ATTRIBUTE_UNUSED) {
return(0);
}
@@ -826,7 +730,7 @@
xmlFdRead (void * context, char * buffer, int len) {
int ret;
- ret = read((int) (long) context, &buffer[0], len);
+ ret = read((int) (ptrdiff_t) context, &buffer[0], len);
if (ret < 0) xmlIOErr(0, "read()");
return(ret);
}
@@ -847,7 +751,7 @@
int ret = 0;
if (len > 0) {
- ret = write((int) (long) context, &buffer[0], len);
+ ret = write((int) (ptrdiff_t) context, &buffer[0], len);
if (ret < 0) xmlIOErr(0, "write()");
}
return(ret);
@@ -865,7 +769,7 @@
static int
xmlFdClose (void * context) {
int ret;
- ret = close((int) (long) context);
+ ret = close((int) (ptrdiff_t) context);
if (ret < 0) xmlIOErr(0, "close()");
return(ret);
}
@@ -926,11 +830,14 @@
#endif
}
+ /* Do not check DDNAME on zOS ! */
+#if !defined(__MVS__)
if (!xmlCheckFilename(path))
return(NULL);
+#endif
#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
- fd = xmlWrapOpen(path, 0);
+ fd = xmlWrapOpenUtf8(path, 0);
#else
fd = fopen(path, "r");
#endif /* WIN32 */
@@ -1003,12 +910,14 @@
return(NULL);
#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
- fd = xmlWrapOpen(path, 1);
+ fd = xmlWrapOpenUtf8(path, 1);
+#elif(__MVS__)
+ fd = fopen(path, "w");
#else
- fd = fopen(path, "wb");
+ fd = fopen(path, "wb");
#endif /* WIN32 */
- if (fd == NULL) xmlIOErr(0, path);
+ if (fd == NULL) xmlIOErr(0, path);
return((void *) fd);
}
#endif /* LIBXML_OUTPUT_ENABLED */
@@ -1129,7 +1038,7 @@
}
#endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
/************************************************************************
* *
* I/O for compressed file accesses *
@@ -1193,7 +1102,7 @@
return(NULL);
#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
- fd = xmlWrapGzOpen(path, "rb");
+ fd = xmlWrapGzOpenUtf8(path, "rb");
#else
fd = gzopen(path, "rb");
#endif
@@ -1270,7 +1179,7 @@
return(NULL);
#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
- fd = xmlWrapGzOpen(path, mode);
+ fd = xmlWrapGzOpenUtf8(path, mode);
#else
fd = gzopen(path, mode);
#endif
@@ -1286,7 +1195,7 @@
*
* Read @len bytes to @buffer from the compressed I/O channel.
*
- * Returns the number of bytes written
+ * Returns the number of bytes read.
*/
static int
xmlGzfileRead (void * context, char * buffer, int len) {
@@ -1332,7 +1241,7 @@
if (ret < 0) xmlIOErr(0, "gzclose()");
return(ret);
}
-#endif /* HAVE_ZLIB_H */
+#endif /* LIBXML_ZLIB_ENABLED */
#ifdef LIBXML_LZMA_ENABLED
/************************************************************************
@@ -1471,7 +1380,7 @@
} xmlIOHTTPWriteCtxt, *xmlIOHTTPWriteCtxtPtr;
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
#define DFLT_WBITS ( -15 )
#define DFLT_MEM_LVL ( 8 )
@@ -1674,7 +1583,7 @@
xmlStrPrintf(msg, 500,
"xmlZMemBuffExtend: %s %lu bytes.\n",
"Allocation failure extending output buffer to",
- new_size );
+ (unsigned long) new_size );
xmlIOErr(XML_IO_WRITE, (const char *) msg);
}
@@ -1799,7 +1708,7 @@
return ( zlgth );
}
#endif /* LIBXML_OUTPUT_ENABLED */
-#endif /* HAVE_ZLIB_H */
+#endif /* LIBXML_ZLIB_ENABLED */
#ifdef LIBXML_OUTPUT_ENABLED
/**
@@ -1818,7 +1727,7 @@
if ( ctxt->doc_buff != NULL ) {
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if ( ctxt->compression > 0 ) {
xmlFreeZMemBuff( ctxt->doc_buff );
}
@@ -1876,7 +1785,7 @@
*/
void *
-xmlIOHTTPOpenW(const char *post_uri, int compression)
+xmlIOHTTPOpenW(const char *post_uri, int compression ATTRIBUTE_UNUSED)
{
xmlIOHTTPWriteCtxtPtr ctxt = NULL;
@@ -1905,7 +1814,7 @@
* ** is being used to avoid pushing the data to disk and back.
*/
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if ((compression > 0) && (compression <= 9)) {
ctxt->compression = compression;
@@ -1985,7 +1894,7 @@
/* Use gzwrite or fwrite as previously setup in the open call */
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if ( ctxt->compression > 0 )
len = xmlZMemBuffAppend( ctxt->doc_buff, buffer, len );
@@ -2049,7 +1958,7 @@
/* Retrieve the content from the appropriate buffer */
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if ( ctxt->compression > 0 ) {
content_lgth = xmlZMemBuffGetContent( ctxt->doc_buff, &http_content );
@@ -2318,16 +2227,12 @@
if (xmlInputCallbackInitialized)
return;
-#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
- xmlInitPlatformSpecificIo();
-#endif
-
xmlRegisterInputCallbacks(xmlFileMatch, xmlFileOpen,
xmlFileRead, xmlFileClose);
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
xmlRegisterInputCallbacks(xmlGzfileMatch, xmlGzfileOpen,
xmlGzfileRead, xmlGzfileClose);
-#endif /* HAVE_ZLIB_H */
+#endif /* LIBXML_ZLIB_ENABLED */
#ifdef LIBXML_LZMA_ENABLED
xmlRegisterInputCallbacks(xmlXzfileMatch, xmlXzfileOpen,
xmlXzfileRead, xmlXzfileClose);
@@ -2356,10 +2261,6 @@
if (xmlOutputCallbackInitialized)
return;
-#if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__)
- xmlInitPlatformSpecificIo();
-#endif
-
xmlRegisterOutputCallbacks(xmlFileMatch, xmlFileOpenW,
xmlFileWrite, xmlFileClose);
@@ -2373,7 +2274,7 @@
uncompressed ones except opening if existing then closing
and saving with same compression ratio ... a pain.
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
xmlRegisterOutputCallbacks(xmlGzfileMatch, xmlGzfileOpen,
xmlGzfileWrite, xmlGzfileClose);
#endif
@@ -2663,7 +2564,7 @@
ret->context = context;
ret->readcallback = xmlInputCallbackTable[i].readcallback;
ret->closecallback = xmlInputCallbackTable[i].closecallback;
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if ((xmlInputCallbackTable[i].opencallback == xmlGzfileOpen) &&
(strcmp(URI, "-") != 0)) {
#if defined(ZLIB_VERNUM) && ZLIB_VERNUM >= 0x1230
@@ -2727,7 +2628,7 @@
int i = 0;
void *context = NULL;
char *unescaped = NULL;
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
int is_file_uri = 1;
#endif
@@ -2738,7 +2639,7 @@
puri = xmlParseURI(URI);
if (puri != NULL) {
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if ((puri->scheme != NULL) &&
(!xmlStrEqual(BAD_CAST puri->scheme, BAD_CAST "file")))
is_file_uri = 0;
@@ -2758,7 +2659,7 @@
* try with an unescaped version of the URI
*/
if (unescaped != NULL) {
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if ((compression > 0) && (compression <= 9) && (is_file_uri == 1)) {
context = xmlGzfileOpenW(unescaped, compression);
if (context != NULL) {
@@ -2776,7 +2677,7 @@
for (i = xmlOutputCallbackNr - 1;i >= 0;i--) {
if ((xmlOutputCallbackTable[i].matchcallback != NULL) &&
(xmlOutputCallbackTable[i].matchcallback(unescaped) != 0)) {
-#if defined(LIBXML_HTTP_ENABLED) && defined(HAVE_ZLIB_H)
+#if defined(LIBXML_HTTP_ENABLED) && defined(LIBXML_ZLIB_ENABLED)
/* Need to pass compression parameter into HTTP open calls */
if (xmlOutputCallbackTable[i].matchcallback == xmlIOHTTPMatch)
context = xmlIOHTTPOpenW(unescaped, compression);
@@ -2795,7 +2696,7 @@
* filename
*/
if (context == NULL) {
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if ((compression > 0) && (compression <= 9) && (is_file_uri == 1)) {
context = xmlGzfileOpenW(URI, compression);
if (context != NULL) {
@@ -2812,7 +2713,7 @@
for (i = xmlOutputCallbackNr - 1;i >= 0;i--) {
if ((xmlOutputCallbackTable[i].matchcallback != NULL) &&
(xmlOutputCallbackTable[i].matchcallback(URI) != 0)) {
-#if defined(LIBXML_HTTP_ENABLED) && defined(HAVE_ZLIB_H)
+#if defined(LIBXML_HTTP_ENABLED) && defined(LIBXML_ZLIB_ENABLED)
/* Need to pass compression parameter into HTTP open calls */
if (xmlOutputCallbackTable[i].matchcallback == xmlIOHTTPMatch)
context = xmlIOHTTPOpenW(URI, compression);
@@ -2942,10 +2843,8 @@
if (buffer == NULL) return(NULL);
- ret = xmlOutputBufferCreateIO((xmlOutputWriteCallback)
- xmlBufferWrite,
- (xmlOutputCloseCallback)
- NULL, (void *) buffer, encoder);
+ ret = xmlOutputBufferCreateIO(xmlBufferWrite, NULL, (void *) buffer,
+ encoder);
return(ret);
}
@@ -3003,7 +2902,7 @@
ret = xmlAllocParserInputBuffer(enc);
if (ret != NULL) {
- ret->context = (void *) (long) fd;
+ ret->context = (void *) (ptrdiff_t) fd;
ret->readcallback = xmlFdRead;
ret->closecallback = xmlFdClose;
}
@@ -3027,13 +2926,13 @@
xmlParserInputBufferPtr ret;
int errcode;
- if (size <= 0) return(NULL);
+ if (size < 0) return(NULL);
if (mem == NULL) return(NULL);
ret = xmlAllocParserInputBuffer(enc);
if (ret != NULL) {
ret->context = (void *) mem;
- ret->readcallback = (xmlInputReadCallback) xmlNop;
+ ret->readcallback = xmlInputReadCallbackNop;
ret->closecallback = NULL;
errcode = xmlBufAdd(ret->buffer, (const xmlChar *) mem, size);
if (errcode != 0) {
@@ -3063,7 +2962,7 @@
xmlCharEncoding enc) {
xmlParserInputBufferPtr ret;
- if (size <= 0) return(NULL);
+ if (size < 0) return(NULL);
if (mem == NULL) return(NULL);
ret = (xmlParserInputBufferPtr) xmlMalloc(sizeof(xmlParserInputBuffer));
@@ -3109,7 +3008,7 @@
ret = xmlAllocOutputBufferInternal(encoder);
if (ret != NULL) {
- ret->context = (void *) (long) fd;
+ ret->context = (void *) (ptrdiff_t) fd;
ret->writecallback = xmlFdWrite;
ret->closecallback = NULL;
}
@@ -3258,7 +3157,7 @@
* convert as much as possible to the parser reading buffer.
*/
use = xmlBufUse(in->raw);
- nbchars = xmlCharEncInput(in, 1);
+ nbchars = xmlCharEncInput(in, 0);
if (nbchars < 0) {
xmlIOErr(XML_IO_ENCODER, NULL);
in->error = XML_IO_ENCODER;
@@ -3374,7 +3273,7 @@
* convert as much as possible to the parser reading buffer.
*/
use = xmlBufUse(in->raw);
- nbchars = xmlCharEncInput(in, 1);
+ nbchars = xmlCharEncInput(in, 0);
if (nbchars < 0) {
xmlIOErr(XML_IO_ENCODER, NULL);
in->error = XML_IO_ENCODER;
@@ -3823,7 +3722,7 @@
if (filename == NULL) return(NULL);
-#if defined(WIN32) && !defined(__CYGWIN__)
+#if defined(_WIN32) && !defined(__CYGWIN__)
# define IS_XMLPGD_SEP(ch) ((ch=='/')||(ch=='\\'))
#else
# define IS_XMLPGD_SEP(ch) (ch=='/')
diff --git a/xmlcatalog.c b/xmlcatalog.c
index 006f0cc..c02b97f 100644
--- a/xmlcatalog.c
+++ b/xmlcatalog.c
@@ -312,7 +312,8 @@
/* split into 2 printf's to avoid overly long string (gcc warning) */
printf("\
Usage : %s [options] catalogfile entities...\n\
-\tParse the catalog file and query it for the entities\n\
+\tParse the catalog file (void specification possibly expressed as \"\"\n\
+\tappoints the default system one) and query it for the entities\n\
\t--sgml : handle SGML Super catalogs for --add and --del\n\
\t--shell : run a shell allowing interactive queries\n\
\t--create : create a new catalog\n\
@@ -408,11 +409,18 @@
continue;
} else if (argv[i][0] == '-')
continue;
- filename = argv[i];
+
+ if (filename == NULL && argv[i][0] == '\0') {
+ /* Interpret empty-string catalog specification as
+ a shortcut for a default system catalog. */
+ xmlInitializeCatalog();
+ } else {
+ filename = argv[i];
ret = xmlLoadCatalog(argv[i]);
if ((ret < 0) && (create)) {
xmlCatalogAdd(BAD_CAST "catalog", BAD_CAST argv[i], NULL);
}
+ }
break;
}
diff --git a/xmllint.c b/xmllint.c
index 67f7adb..6512540 100644
--- a/xmllint.c
+++ b/xmllint.c
@@ -12,14 +12,6 @@
#include <stdarg.h>
#include <assert.h>
-#if defined (_WIN32) && !defined(__CYGWIN__)
-#if defined (_MSC_VER) || defined(__BORLANDC__)
-#include <winsock2.h>
-#pragma comment(lib, "ws2_32.lib")
-#define gettimeofday(p1,p2)
-#endif /* _MSC_VER */
-#endif /* _WIN32 */
-
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
@@ -27,14 +19,6 @@
#include <time.h>
#endif
-#ifdef __MINGW32__
-#define _WINSOCKAPI_
-#include <wsockcompat.h>
-#include <winsock2.h>
-#undef XML_SOCKLEN_T
-#define XML_SOCKLEN_T unsigned int
-#endif
-
#ifdef HAVE_SYS_TIMEB_H
#include <sys/timeb.h>
#endif
@@ -830,13 +814,14 @@
* *
************************************************************************/
-static int myRead(FILE *f, char * buf, int len) {
- return(fread(buf, 1, len, f));
+static int myRead(void *f, char *buf, int len) {
+ return(fread(buf, 1, len, (FILE *) f));
}
-static void myClose(FILE *f) {
- if (f != stdin) {
- fclose(f);
- }
+static int myClose(void *context) {
+ FILE *f = (FILE *) context;
+ if (f == stdin)
+ return(0);
+ return(fclose(f));
}
/************************************************************************
@@ -2319,14 +2304,11 @@
#endif
if (f != NULL) {
if (rectxt == NULL)
- doc = xmlReadIO((xmlInputReadCallback) myRead,
- (xmlInputCloseCallback) myClose, f,
- filename, NULL, options);
+ doc = xmlReadIO(myRead, myClose, f, filename, NULL,
+ options);
else
- doc = xmlCtxtReadIO(rectxt,
- (xmlInputReadCallback) myRead,
- (xmlInputCloseCallback) myClose, f,
- filename, NULL, options);
+ doc = xmlCtxtReadIO(rectxt, myRead, myClose, f,
+ filename, NULL, options);
} else
doc = NULL;
}
@@ -2991,124 +2973,124 @@
fprintf(stderr, "\n");
}
-static void usage(const char *name) {
- printf("Usage : %s [options] XMLfiles ...\n", name);
+static void usage(FILE *f, const char *name) {
+ fprintf(f, "Usage : %s [options] XMLfiles ...\n", name);
#ifdef LIBXML_OUTPUT_ENABLED
- printf("\tParse the XML files and output the result of the parsing\n");
+ fprintf(f, "\tParse the XML files and output the result of the parsing\n");
#else
- printf("\tParse the XML files\n");
+ fprintf(f, "\tParse the XML files\n");
#endif /* LIBXML_OUTPUT_ENABLED */
- printf("\t--version : display the version of the XML library used\n");
+ fprintf(f, "\t--version : display the version of the XML library used\n");
#ifdef LIBXML_DEBUG_ENABLED
- printf("\t--debug : dump a debug tree of the in-memory document\n");
- printf("\t--shell : run a navigating shell\n");
- printf("\t--debugent : debug the entities defined in the document\n");
+ fprintf(f, "\t--debug : dump a debug tree of the in-memory document\n");
+ fprintf(f, "\t--shell : run a navigating shell\n");
+ fprintf(f, "\t--debugent : debug the entities defined in the document\n");
#else
#ifdef LIBXML_READER_ENABLED
- printf("\t--debug : dump the nodes content when using --stream\n");
+ fprintf(f, "\t--debug : dump the nodes content when using --stream\n");
#endif /* LIBXML_READER_ENABLED */
#endif
#ifdef LIBXML_TREE_ENABLED
- printf("\t--copy : used to test the internal copy implementation\n");
+ fprintf(f, "\t--copy : used to test the internal copy implementation\n");
#endif /* LIBXML_TREE_ENABLED */
- printf("\t--recover : output what was parsable on broken XML documents\n");
- printf("\t--huge : remove any internal arbitrary parser limits\n");
- printf("\t--noent : substitute entity references by their value\n");
- printf("\t--noenc : ignore any encoding specified inside the document\n");
- printf("\t--noout : don't output the result tree\n");
- printf("\t--path 'paths': provide a set of paths for resources\n");
- printf("\t--load-trace : print trace of all external entities loaded\n");
- printf("\t--nonet : refuse to fetch DTDs or entities over network\n");
- printf("\t--nocompact : do not generate compact text nodes\n");
- printf("\t--htmlout : output results as HTML\n");
- printf("\t--nowrap : do not put HTML doc wrapper\n");
+ fprintf(f, "\t--recover : output what was parsable on broken XML documents\n");
+ fprintf(f, "\t--huge : remove any internal arbitrary parser limits\n");
+ fprintf(f, "\t--noent : substitute entity references by their value\n");
+ fprintf(f, "\t--noenc : ignore any encoding specified inside the document\n");
+ fprintf(f, "\t--noout : don't output the result tree\n");
+ fprintf(f, "\t--path 'paths': provide a set of paths for resources\n");
+ fprintf(f, "\t--load-trace : print trace of all external entities loaded\n");
+ fprintf(f, "\t--nonet : refuse to fetch DTDs or entities over network\n");
+ fprintf(f, "\t--nocompact : do not generate compact text nodes\n");
+ fprintf(f, "\t--htmlout : output results as HTML\n");
+ fprintf(f, "\t--nowrap : do not put HTML doc wrapper\n");
#ifdef LIBXML_VALID_ENABLED
- printf("\t--valid : validate the document in addition to std well-formed check\n");
- printf("\t--postvalid : do a posteriori validation, i.e after parsing\n");
- printf("\t--dtdvalid URL : do a posteriori validation against a given DTD\n");
- printf("\t--dtdvalidfpi FPI : same but name the DTD with a Public Identifier\n");
+ fprintf(f, "\t--valid : validate the document in addition to std well-formed check\n");
+ fprintf(f, "\t--postvalid : do a posteriori validation, i.e after parsing\n");
+ fprintf(f, "\t--dtdvalid URL : do a posteriori validation against a given DTD\n");
+ fprintf(f, "\t--dtdvalidfpi FPI : same but name the DTD with a Public Identifier\n");
#endif /* LIBXML_VALID_ENABLED */
- printf("\t--timing : print some timings\n");
- printf("\t--output file or -o file: save to a given file\n");
- printf("\t--repeat : repeat 100 times, for timing or profiling\n");
- printf("\t--insert : ad-hoc test for valid insertions\n");
+ fprintf(f, "\t--timing : print some timings\n");
+ fprintf(f, "\t--output file or -o file: save to a given file\n");
+ fprintf(f, "\t--repeat : repeat 100 times, for timing or profiling\n");
+ fprintf(f, "\t--insert : ad-hoc test for valid insertions\n");
#ifdef LIBXML_OUTPUT_ENABLED
-#ifdef HAVE_ZLIB_H
- printf("\t--compress : turn on gzip compression of output\n");
+#ifdef LIBXML_ZLIB_ENABLED
+ fprintf(f, "\t--compress : turn on gzip compression of output\n");
#endif
#endif /* LIBXML_OUTPUT_ENABLED */
#ifdef LIBXML_HTML_ENABLED
- printf("\t--html : use the HTML parser\n");
- printf("\t--xmlout : force to use the XML serializer when using --html\n");
- printf("\t--nodefdtd : do not default HTML doctype\n");
+ fprintf(f, "\t--html : use the HTML parser\n");
+ fprintf(f, "\t--xmlout : force to use the XML serializer when using --html\n");
+ fprintf(f, "\t--nodefdtd : do not default HTML doctype\n");
#endif
#ifdef LIBXML_PUSH_ENABLED
- printf("\t--push : use the push mode of the parser\n");
- printf("\t--pushsmall : use the push mode of the parser using tiny increments\n");
+ fprintf(f, "\t--push : use the push mode of the parser\n");
+ fprintf(f, "\t--pushsmall : use the push mode of the parser using tiny increments\n");
#endif /* LIBXML_PUSH_ENABLED */
#ifdef HAVE_MMAP
- printf("\t--memory : parse from memory\n");
+ fprintf(f, "\t--memory : parse from memory\n");
#endif
- printf("\t--maxmem nbbytes : limits memory allocation to nbbytes bytes\n");
- printf("\t--nowarning : do not emit warnings from parser/validator\n");
- printf("\t--noblanks : drop (ignorable?) blanks spaces\n");
- printf("\t--nocdata : replace cdata section with text nodes\n");
+ fprintf(f, "\t--maxmem nbbytes : limits memory allocation to nbbytes bytes\n");
+ fprintf(f, "\t--nowarning : do not emit warnings from parser/validator\n");
+ fprintf(f, "\t--noblanks : drop (ignorable?) blanks spaces\n");
+ fprintf(f, "\t--nocdata : replace cdata section with text nodes\n");
#ifdef LIBXML_OUTPUT_ENABLED
- printf("\t--format : reformat/reindent the output\n");
- printf("\t--encode encoding : output in the given encoding\n");
- printf("\t--dropdtd : remove the DOCTYPE of the input docs\n");
- printf("\t--pretty STYLE : pretty-print in a particular style\n");
- printf("\t 0 Do not pretty print\n");
- printf("\t 1 Format the XML content, as --format\n");
- printf("\t 2 Add whitespace inside tags, preserving content\n");
+ fprintf(f, "\t--format : reformat/reindent the output\n");
+ fprintf(f, "\t--encode encoding : output in the given encoding\n");
+ fprintf(f, "\t--dropdtd : remove the DOCTYPE of the input docs\n");
+ fprintf(f, "\t--pretty STYLE : pretty-print in a particular style\n");
+ fprintf(f, "\t 0 Do not pretty print\n");
+ fprintf(f, "\t 1 Format the XML content, as --format\n");
+ fprintf(f, "\t 2 Add whitespace inside tags, preserving content\n");
#endif /* LIBXML_OUTPUT_ENABLED */
- printf("\t--c14n : save in W3C canonical format v1.0 (with comments)\n");
- printf("\t--c14n11 : save in W3C canonical format v1.1 (with comments)\n");
- printf("\t--exc-c14n : save in W3C exclusive canonical format (with comments)\n");
+ fprintf(f, "\t--c14n : save in W3C canonical format v1.0 (with comments)\n");
+ fprintf(f, "\t--c14n11 : save in W3C canonical format v1.1 (with comments)\n");
+ fprintf(f, "\t--exc-c14n : save in W3C exclusive canonical format (with comments)\n");
#ifdef LIBXML_C14N_ENABLED
#endif /* LIBXML_C14N_ENABLED */
- printf("\t--nsclean : remove redundant namespace declarations\n");
- printf("\t--testIO : test user I/O support\n");
+ fprintf(f, "\t--nsclean : remove redundant namespace declarations\n");
+ fprintf(f, "\t--testIO : test user I/O support\n");
#ifdef LIBXML_CATALOG_ENABLED
- printf("\t--catalogs : use SGML catalogs from $SGML_CATALOG_FILES\n");
- printf("\t otherwise XML Catalogs starting from \n");
- printf("\t %s are activated by default\n", XML_XML_DEFAULT_CATALOG);
- printf("\t--nocatalogs: deactivate all catalogs\n");
+ fprintf(f, "\t--catalogs : use SGML catalogs from $SGML_CATALOG_FILES\n");
+ fprintf(f, "\t otherwise XML Catalogs starting from \n");
+ fprintf(f, "\t %s are activated by default\n", XML_XML_DEFAULT_CATALOG);
+ fprintf(f, "\t--nocatalogs: deactivate all catalogs\n");
#endif
- printf("\t--auto : generate a small doc on the fly\n");
+ fprintf(f, "\t--auto : generate a small doc on the fly\n");
#ifdef LIBXML_XINCLUDE_ENABLED
- printf("\t--xinclude : do XInclude processing\n");
- printf("\t--noxincludenode : same but do not generate XInclude nodes\n");
- printf("\t--nofixup-base-uris : do not fixup xml:base uris\n");
+ fprintf(f, "\t--xinclude : do XInclude processing\n");
+ fprintf(f, "\t--noxincludenode : same but do not generate XInclude nodes\n");
+ fprintf(f, "\t--nofixup-base-uris : do not fixup xml:base uris\n");
#endif
- printf("\t--loaddtd : fetch external DTD\n");
- printf("\t--dtdattr : loaddtd + populate the tree with inherited attributes \n");
+ fprintf(f, "\t--loaddtd : fetch external DTD\n");
+ fprintf(f, "\t--dtdattr : loaddtd + populate the tree with inherited attributes \n");
#ifdef LIBXML_READER_ENABLED
- printf("\t--stream : use the streaming interface to process very large files\n");
- printf("\t--walker : create a reader and walk though the resulting doc\n");
+ fprintf(f, "\t--stream : use the streaming interface to process very large files\n");
+ fprintf(f, "\t--walker : create a reader and walk though the resulting doc\n");
#endif /* LIBXML_READER_ENABLED */
#ifdef LIBXML_PATTERN_ENABLED
- printf("\t--pattern pattern_value : test the pattern support\n");
+ fprintf(f, "\t--pattern pattern_value : test the pattern support\n");
#endif
- printf("\t--chkregister : verify the node registration code\n");
+ fprintf(f, "\t--chkregister : verify the node registration code\n");
#ifdef LIBXML_SCHEMAS_ENABLED
- printf("\t--relaxng schema : do RelaxNG validation against the schema\n");
- printf("\t--schema schema : do validation against the WXS schema\n");
+ fprintf(f, "\t--relaxng schema : do RelaxNG validation against the schema\n");
+ fprintf(f, "\t--schema schema : do validation against the WXS schema\n");
#endif
#ifdef LIBXML_SCHEMATRON_ENABLED
- printf("\t--schematron schema : do validation against a schematron\n");
+ fprintf(f, "\t--schematron schema : do validation against a schematron\n");
#endif
#ifdef LIBXML_SAX1_ENABLED
- printf("\t--sax1: use the old SAX1 interfaces for processing\n");
+ fprintf(f, "\t--sax1: use the old SAX1 interfaces for processing\n");
#endif
- printf("\t--sax: do not build a tree but work just at the SAX level\n");
- printf("\t--oldxml10: use XML-1.0 parsing rules before the 5th edition\n");
+ fprintf(f, "\t--sax: do not build a tree but work just at the SAX level\n");
+ fprintf(f, "\t--oldxml10: use XML-1.0 parsing rules before the 5th edition\n");
#ifdef LIBXML_XPATH_ENABLED
- printf("\t--xpath expr: evaluate the XPath expression, imply --noout\n");
+ fprintf(f, "\t--xpath expr: evaluate the XPath expression, imply --noout\n");
#endif
- printf("\nLibxml project home page: http://xmlsoft.org/\n");
- printf("To report bugs or get some help check: http://xmlsoft.org/bugs.html\n");
+ fprintf(f, "\nLibxml project home page: http://xmlsoft.org/\n");
+ fprintf(f, "To report bugs or get some help check: http://xmlsoft.org/bugs.html\n");
}
static void registerNode(xmlNodePtr node)
@@ -3138,7 +3120,7 @@
const char* indent;
if (argc <= 1) {
- usage(argv[0]);
+ usage(stderr, argv[0]);
return(1);
}
LIBXML_TEST_VERSION
@@ -3313,7 +3295,7 @@
}
#endif
#ifdef LIBXML_OUTPUT_ENABLED
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
else if ((!strcmp(argv[i], "-compress")) ||
(!strcmp(argv[i], "--compress"))) {
compress++;
@@ -3490,7 +3472,7 @@
options |= XML_PARSE_OLD10;
} else {
fprintf(stderr, "Unknown option %s\n", argv[i]);
- usage(argv[0]);
+ usage(stderr, argv[0]);
return(1);
}
}
@@ -3784,7 +3766,7 @@
xmlGenericError(xmlGenericErrorContext, "</body></html>\n");
}
if ((files == 0) && (!generate) && (version == 0)) {
- usage(argv[0]);
+ usage(stderr, argv[0]);
}
#ifdef LIBXML_SCHEMATRON_ENABLED
if (wxschematron != NULL)
diff --git a/xmlmemory.c b/xmlmemory.c
index f08c8c3..6f16c4b 100644
--- a/xmlmemory.c
+++ b/xmlmemory.c
@@ -111,7 +111,7 @@
#define MAX_SIZE_T ((size_t)-1)
-#define CLIENT_2_HDR(a) ((MEMHDR *) (((char *) (a)) - RESERVE_SIZE))
+#define CLIENT_2_HDR(a) ((void *) (((char *) (a)) - RESERVE_SIZE))
#define HDR_2_CLIENT(a) ((void *) (((char *) (a)) + RESERVE_SIZE))
@@ -172,6 +172,13 @@
TEST_POINT
+ if (size > (MAX_SIZE_T - RESERVE_SIZE)) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlMallocLoc : Unsigned overflow\n");
+ xmlMemoryDump();
+ return(NULL);
+ }
+
p = (MEMHDR *) malloc(RESERVE_SIZE+size);
if (!p) {
@@ -243,7 +250,7 @@
if (size > (MAX_SIZE_T - RESERVE_SIZE)) {
xmlGenericError(xmlGenericErrorContext,
- "xmlMallocAtomicLoc : Unsigned overflow prevented\n");
+ "xmlMallocAtomicLoc : Unsigned overflow\n");
xmlMemoryDump();
return(NULL);
}
@@ -352,6 +359,13 @@
#endif
xmlMutexUnlock(xmlMemMutex);
+ if (size > (MAX_SIZE_T - RESERVE_SIZE)) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlReallocLoc : Unsigned overflow\n");
+ xmlMemoryDump();
+ return(NULL);
+ }
+
tmp = (MEMHDR *) realloc(p,RESERVE_SIZE+size);
if (!tmp) {
free(p);
@@ -473,7 +487,7 @@
error:
xmlGenericError(xmlGenericErrorContext,
- "xmlMemFree(%lX) error\n", (unsigned long) ptr);
+ "xmlMemFree(%p) error\n", ptr);
xmlMallocBreakpoint();
return;
}
@@ -499,6 +513,13 @@
if (!xmlMemInitialized) xmlInitMemory();
TEST_POINT
+ if (size > (MAX_SIZE_T - RESERVE_SIZE)) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlMemStrdupLoc : Unsigned overflow\n");
+ xmlMemoryDump();
+ return(NULL);
+ }
+
p = (MEMHDR *) malloc(RESERVE_SIZE+size);
if (!p) {
goto error;
diff --git a/xmlmodule.c b/xmlmodule.c
index 50ed666..a95ab66 100644
--- a/xmlmodule.c
+++ b/xmlmodule.c
@@ -8,6 +8,11 @@
* http://www.fortran-2000.com/ArnaudRecipes/sharedlib.html
*/
+/* In order RTLD_GLOBAL and RTLD_NOW to be defined on zOS */
+#if defined(__MVS__)
+#define _UNIX03_SOURCE
+#endif
+
#define IN_LIBXML
#include "libxml.h"
@@ -296,8 +301,9 @@
#endif /* HAVE_SHLLOAD */
#endif /* ! HAVE_DLOPEN */
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(__CYGWIN__)
+#define WIN32_LEAN_AND_MEAN
#include <windows.h>
/*
@@ -334,6 +340,7 @@
static int
xmlModulePlatformSymbol(void *handle, const char *name, void **symbol)
{
+XML_IGNORE_PEDANTIC_WARNINGS
#ifdef _WIN32_WCE
/*
* GetProcAddressA seems only available on WinCE
@@ -343,6 +350,7 @@
*symbol = GetProcAddress(handle, name);
#endif
return (NULL == *symbol) ? -1 : 0;
+XML_POP_WARNINGS
}
#endif /* _WIN32 */
diff --git a/xmlreader.c b/xmlreader.c
index f285790..4053269 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -491,6 +491,11 @@
}
}
+static void
+xmlTextReaderFreeIDTableEntry(void *id, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlFreeID((xmlIDPtr) id);
+}
+
/**
* xmlTextReaderFreeIDTable:
* @table: An id table
@@ -499,7 +504,7 @@
*/
static void
xmlTextReaderFreeIDTable(xmlIDTablePtr table) {
- xmlHashFree(table, (xmlHashDeallocator) xmlFreeID);
+ xmlHashFree(table, xmlTextReaderFreeIDTableEntry);
}
/**
@@ -3982,7 +3987,7 @@
* pattern. The caller must also use xmlTextReaderCurrentDoc() to
* keep an handle on the resulting document once parsing has finished
*
- * Returns a positive number in case of success and -1 in case of error
+ * Returns a non-negative number in case of success and -1 in case of error
*/
int
xmlTextReaderPreservePattern(xmlTextReaderPtr reader, const xmlChar *pattern,
diff --git a/xmlregexp.c b/xmlregexp.c
index ca3b4f4..d255fbf 100644
--- a/xmlregexp.c
+++ b/xmlregexp.c
@@ -2810,18 +2810,21 @@
break;
case XML_REGEXP_NOTSPACE:
neg = !neg;
+ /* Falls through. */
case XML_REGEXP_ANYSPACE:
ret = ((codepoint == '\n') || (codepoint == '\r') ||
(codepoint == '\t') || (codepoint == ' '));
break;
case XML_REGEXP_NOTINITNAME:
neg = !neg;
+ /* Falls through. */
case XML_REGEXP_INITNAME:
ret = (IS_LETTER(codepoint) ||
(codepoint == '_') || (codepoint == ':'));
break;
case XML_REGEXP_NOTNAMECHAR:
neg = !neg;
+ /* Falls through. */
case XML_REGEXP_NAMECHAR:
ret = (IS_LETTER(codepoint) || IS_DIGIT(codepoint) ||
(codepoint == '.') || (codepoint == '-') ||
@@ -2830,11 +2833,13 @@
break;
case XML_REGEXP_NOTDECIMAL:
neg = !neg;
+ /* Falls through. */
case XML_REGEXP_DECIMAL:
ret = xmlUCSIsCatNd(codepoint);
break;
case XML_REGEXP_REALCHAR:
neg = !neg;
+ /* Falls through. */
case XML_REGEXP_NOTREALCHAR:
ret = xmlUCSIsCatP(codepoint);
if (ret == 0)
@@ -4089,8 +4094,9 @@
xmlFree(exec->errString);
exec->errString = xmlStrdup(value);
exec->errState = exec->state;
- memcpy(exec->errCounts, exec->counts,
- exec->comp->nbCounters * sizeof(int));
+ if (exec->comp->nbCounters)
+ memcpy(exec->errCounts, exec->counts,
+ exec->comp->nbCounters * sizeof(int));
}
/*
@@ -4880,7 +4886,8 @@
}
NEXT;
xmlFAParseCharProp(ctxt);
- ctxt->atom->neg = 1;
+ if (ctxt->atom != NULL)
+ ctxt->atom->neg = 1;
if (CUR != '}') {
ERROR("Expecting '}'");
return;
@@ -5051,7 +5058,7 @@
return;
}
len = 1;
- } else if ((cur != 0x5B) && (cur != 0x5D)) {
+ } else if ((cur != '\0') && (cur != 0x5B) && (cur != 0x5D)) {
end = CUR_SCHAR(ctxt->cur, len);
} else {
ERROR("Expecting the end of a char range");
diff --git a/xmlsave.c b/xmlsave.c
index 4a8e3f3..6c7418e 100644
--- a/xmlsave.c
+++ b/xmlsave.c
@@ -1595,31 +1595,31 @@
if (cur->properties != NULL)
xhtmlAttrListDumpOutput(ctxt, cur->properties);
- if ((cur->type == XML_ELEMENT_NODE) &&
- (cur->parent != NULL) &&
- (cur->parent->parent == (xmlNodePtr) cur->doc) &&
- xmlStrEqual(cur->name, BAD_CAST"head") &&
- xmlStrEqual(cur->parent->name, BAD_CAST"html")) {
+ if ((cur->type == XML_ELEMENT_NODE) &&
+ (cur->parent != NULL) &&
+ (cur->parent->parent == (xmlNodePtr) cur->doc) &&
+ xmlStrEqual(cur->name, BAD_CAST"head") &&
+ xmlStrEqual(cur->parent->name, BAD_CAST"html")) {
- tmp = cur->children;
- while (tmp != NULL) {
- if (xmlStrEqual(tmp->name, BAD_CAST"meta")) {
- xmlChar *httpequiv;
+ tmp = cur->children;
+ while (tmp != NULL) {
+ if (xmlStrEqual(tmp->name, BAD_CAST"meta")) {
+ xmlChar *httpequiv;
- httpequiv = xmlGetProp(tmp, BAD_CAST"http-equiv");
- if (httpequiv != NULL) {
- if (xmlStrcasecmp(httpequiv, BAD_CAST"Content-Type") == 0) {
- xmlFree(httpequiv);
- break;
- }
- xmlFree(httpequiv);
- }
- }
- tmp = tmp->next;
- }
- if (tmp == NULL)
- addmeta = 1;
- }
+ httpequiv = xmlGetProp(tmp, BAD_CAST"http-equiv");
+ if (httpequiv != NULL) {
+ if (xmlStrcasecmp(httpequiv, BAD_CAST"Content-Type") == 0) {
+ xmlFree(httpequiv);
+ break;
+ }
+ xmlFree(httpequiv);
+ }
+ }
+ tmp = tmp->next;
+ }
+ if (tmp == NULL)
+ addmeta = 1;
+ }
if ((cur->type == XML_ELEMENT_NODE) && (cur->children == NULL)) {
if (((cur->ns == NULL) || (cur->ns->prefix == NULL)) &&
@@ -2109,8 +2109,6 @@
xmlBufAdd(buf, base, cur - base);
if (*cur < 0xC0) {
xmlSaveErr(XML_SAVE_NOT_UTF8, (xmlNodePtr) attr, NULL);
- if (doc != NULL)
- doc->encoding = xmlStrdup(BAD_CAST "ISO-8859-1");
xmlSerializeHexCharRef(tmp, *cur);
xmlBufAdd(buf, (xmlChar *) tmp, -1);
cur++;
@@ -2140,9 +2138,6 @@
}
if ((l == 1) || (!IS_CHAR(val))) {
xmlSaveErr(XML_SAVE_CHAR_INVALID, (xmlNodePtr) attr, NULL);
- if (doc != NULL)
- doc->encoding = xmlStrdup(BAD_CAST "ISO-8859-1");
-
xmlSerializeHexCharRef(tmp, *cur);
xmlBufAdd(buf, (xmlChar *) tmp, -1);
cur++;
@@ -2709,7 +2704,7 @@
return(-1);
}
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if (cur->compression < 0) cur->compression = xmlGetCompressMode();
#endif
/*
diff --git a/xmlschemas.c b/xmlschemas.c
index 7afe2eb..405f72a 100644
--- a/xmlschemas.c
+++ b/xmlschemas.c
@@ -44,6 +44,12 @@
* but is done here due to performance. Move it to an other layer
* is schema construction via an API is implemented.
*/
+
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
#define IN_LIBXML
#include "libxml.h"
@@ -166,7 +172,7 @@
/*
* Macros for attribute uses.
*/
-#define WXS_ATTRUSE_DECL(au) WXS_ATTR_CAST (WXS_ATTR_USE_CAST (au))->attrDecl
+#define WXS_ATTRUSE_DECL(au) (WXS_ATTR_USE_CAST (au))->attrDecl
#define WXS_ATTRUSE_TYPEDEF(au) WXS_ATTR_TYPEDEF(WXS_ATTRUSE_DECL( WXS_ATTR_USE_CAST au))
@@ -363,6 +369,7 @@
typedef xmlSchemaAbstractCtxt *xmlSchemaAbstractCtxtPtr;
struct _xmlSchemaAbstractCtxt {
int type; /* E.g. XML_SCHEMA_CTXT_VALIDATOR */
+ void *dummy; /* Fix alignment issues */
};
typedef struct _xmlSchemaBucket xmlSchemaBucket;
@@ -473,6 +480,7 @@
typedef xmlSchemaBasicItem *xmlSchemaBasicItemPtr;
struct _xmlSchemaBasicItem {
xmlSchemaTypeType type;
+ void *dummy; /* Fix alignment issues */
};
/**
@@ -1734,6 +1742,7 @@
*buf = xmlStrcat(*buf, BAD_CAST "'");
FREE_AND_NULL(str);
}
+ /* Falls through. */
default:
named = 0;
}
@@ -2833,7 +2842,7 @@
xmlSchemaFormatItemForReport(&des, NULL, ownerItem, ownerElem);
if (refTypeStr == NULL)
refTypeStr = (const char *) xmlSchemaItemTypeToStr(refType);
- xmlSchemaPErrExt(ctxt, ownerElem, error,
+ xmlSchemaPErrExt(ctxt, ownerElem, error,
NULL, NULL, NULL,
"%s, attribute '%s': The QName value '%s' does not resolve to a(n) "
"%s.\n", BAD_CAST des, BAD_CAST name,
@@ -3556,6 +3565,12 @@
xmlFree(bucket);
}
+static void
+xmlSchemaBucketFreeEntry(void *bucket, const xmlChar *name ATTRIBUTE_UNUSED)
+{
+ xmlSchemaBucketFree((xmlSchemaBucketPtr) bucket);
+}
+
static xmlSchemaBucketPtr
xmlSchemaBucketCreate(xmlSchemaParserCtxtPtr pctxt,
int type, const xmlChar *targetNamespace)
@@ -4150,8 +4165,7 @@
xmlHashFree(schema->idcDef, NULL);
if (schema->schemasImports != NULL)
- xmlHashFree(schema->schemasImports,
- (xmlHashDeallocator) xmlSchemaBucketFree);
+ xmlHashFree(schema->schemasImports, xmlSchemaBucketFreeEntry);
if (schema->includes != NULL) {
xmlSchemaItemListPtr list = (xmlSchemaItemListPtr) schema->includes;
int i;
@@ -4187,11 +4201,13 @@
* Dump the element
*/
static void
-xmlSchemaElementDump(xmlSchemaElementPtr elem, FILE * output,
+xmlSchemaElementDump(void *payload, void *data,
const xmlChar * name ATTRIBUTE_UNUSED,
const xmlChar * namespace ATTRIBUTE_UNUSED,
const xmlChar * context ATTRIBUTE_UNUSED)
{
+ xmlSchemaElementPtr elem = (xmlSchemaElementPtr) payload;
+ FILE *output = (FILE *) data;
if (elem == NULL)
return;
@@ -4506,6 +4522,13 @@
#endif
}
+static void
+xmlSchemaTypeDumpEntry(void *type, void *output,
+ const xmlChar *name ATTRIBUTE_UNUSED)
+{
+ xmlSchemaTypeDump((xmlSchemaTypePtr) type, (FILE *) output);
+}
+
/**
* xmlSchemaDump:
* @output: the file output
@@ -4534,10 +4557,8 @@
fprintf(output, "\n");
if (schema->annot != NULL)
xmlSchemaAnnotDump(output, schema->annot);
- xmlHashScan(schema->typeDecl, (xmlHashScanner) xmlSchemaTypeDump,
- output);
- xmlHashScanFull(schema->elemDecl,
- (xmlHashScannerFull) xmlSchemaElementDump, output);
+ xmlHashScan(schema->typeDecl, xmlSchemaTypeDumpEntry, output);
+ xmlHashScanFull(schema->elemDecl, xmlSchemaElementDump, output);
}
#ifdef DEBUG_IDC_NODE_TABLE
@@ -5697,6 +5718,12 @@
xmlFree(group);
}
+static void
+xmlSchemaSubstGroupFreeEntry(void *group, const xmlChar *name ATTRIBUTE_UNUSED)
+{
+ xmlSchemaSubstGroupFree((xmlSchemaSubstGroupPtr) group);
+}
+
static xmlSchemaSubstGroupPtr
xmlSchemaSubstGroupAdd(xmlSchemaParserCtxtPtr pctxt,
xmlSchemaElementPtr head)
@@ -7364,8 +7391,8 @@
*/
if (defValue != NULL)
use->defValue = defValue;
- if (defValueType == WXS_ATTR_DEF_VAL_FIXED)
- use->flags |= XML_SCHEMA_ATTR_USE_FIXED;
+ if (defValueType == WXS_ATTR_DEF_VAL_FIXED)
+ use->flags |= XML_SCHEMA_ATTR_USE_FIXED;
}
check_children:
@@ -9909,8 +9936,7 @@
if (con->pending != NULL)
xmlSchemaItemListFree(con->pending);
if (con->substGroups != NULL)
- xmlHashFree(con->substGroups,
- (xmlHashDeallocator) xmlSchemaSubstGroupFree);
+ xmlHashFree(con->substGroups, xmlSchemaSubstGroupFreeEntry);
if (con->redefs != NULL)
xmlSchemaRedefListFree(con->redefs);
if (con->dict != NULL)
@@ -15890,7 +15916,7 @@
* STATUS: (seems) complete
*
* Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
*/
static int
xmlSchemaCheckCTPropsCorrect(xmlSchemaParserCtxtPtr pctxt,
@@ -16137,7 +16163,7 @@
* (1.4.3.2.2.2) "Particle Valid (Extension)"
*
* Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
*/
static int
xmlSchemaCheckCOSCTExtends(xmlSchemaParserCtxtPtr ctxt,
@@ -16394,7 +16420,7 @@
* Validation Rule: Checking complex type subsumption
*
* Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
*/
static int
xmlSchemaCheckDerivationOKRestriction(xmlSchemaParserCtxtPtr ctxt,
@@ -16584,7 +16610,7 @@
* (3.4.6) Constraints on Complex Type Definition Schema Components
*
* Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
*/
static int
xmlSchemaCheckCTComponent(xmlSchemaParserCtxtPtr ctxt,
@@ -16614,7 +16640,7 @@
* Complex Type Definition Representation OK (src-ct)
*
* Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
*/
static int
xmlSchemaCheckSRCCT(xmlSchemaParserCtxtPtr ctxt,
@@ -16783,7 +16809,7 @@
* STATUS: complete
*
* Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
*/
static int
xmlSchemaCheckParticleRangeOK(int rmin, int rmax,
@@ -16813,7 +16839,7 @@
* CLARIFY: (3.2.2)
*
* Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
*/
static int
xmlSchemaCheckRCaseNameAndTypeOK(xmlSchemaParserCtxtPtr ctxt,
@@ -16918,7 +16944,7 @@
* STATUS: complete
*
* Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
*/
static int
xmlSchemaCheckRCaseNSCompat(xmlSchemaParserCtxtPtr ctxt,
@@ -16962,7 +16988,7 @@
* STATUS: TODO
*
* Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
*/
static int
xmlSchemaCheckRCaseRecurseAsIfGroup(xmlSchemaParserCtxtPtr ctxt,
@@ -16988,7 +17014,7 @@
* STATUS: complete
*
* Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
*/
static int
xmlSchemaCheckRCaseNSSubset(xmlSchemaParserCtxtPtr ctxt,
@@ -17038,7 +17064,7 @@
* STATUS: TODO
*
* Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
*/
static int
xmlSchemaCheckCOSParticleRestrict(xmlSchemaParserCtxtPtr ctxt,
@@ -17079,7 +17105,7 @@
* STATUS: TODO: subst-groups
*
* Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
*/
static int
xmlSchemaCheckRCaseNSRecurseCheckCardinality(xmlSchemaParserCtxtPtr ctxt,
@@ -17134,7 +17160,7 @@
* TODO: subst-groups
*
* Returns 0 if the constraints are satisfied, a positive
- * error code if not and -1 if an internal error occured.
+ * error code if not and -1 if an internal error occurred.
*/
static int
xmlSchemaCheckRCaseRecurse(xmlSchemaParserCtxtPtr ctxt,
@@ -17764,7 +17790,7 @@
return (0);
internal_error:
PERROR_INT("xmlSchemaDeriveAndValidateFacets",
- "an error occured");
+ "an error occurred");
return (-1);
}
@@ -21284,8 +21310,7 @@
con->bucket = oldbucket;
con->pending->nbItems = 0;
if (con->substGroups != NULL) {
- xmlHashFree(con->substGroups,
- (xmlHashDeallocator) xmlSchemaSubstGroupFree);
+ xmlHashFree(con->substGroups, xmlSchemaSubstGroupFreeEntry);
con->substGroups = NULL;
}
if (con->redefs != NULL) {
@@ -21413,7 +21438,7 @@
ctxt->ownsConstructor = 0;
}
PERROR_INT2("xmlSchemaParse",
- "An internal error occured");
+ "An internal error occurred");
ctxt->schema = NULL;
return(NULL);
}
@@ -21993,9 +22018,11 @@
* Returns the item, or NULL on internal errors.
*/
static void
-xmlSchemaAugmentIDC(xmlSchemaIDCPtr idcDef,
- xmlSchemaValidCtxtPtr vctxt)
+xmlSchemaAugmentIDC(void *payload, void *data,
+ const xmlChar *name ATTRIBUTE_UNUSED)
{
+ xmlSchemaIDCPtr idcDef = (xmlSchemaIDCPtr) payload;
+ xmlSchemaValidCtxtPtr vctxt = (xmlSchemaValidCtxtPtr) data;
xmlSchemaIDCAugPtr aidc;
aidc = (xmlSchemaIDCAugPtr) xmlMalloc(sizeof(xmlSchemaIDCAug));
@@ -22029,10 +22056,12 @@
* Creates an augmented IDC definition for the imported schema.
*/
static void
-xmlSchemaAugmentImportedIDC(xmlSchemaImportPtr imported, xmlSchemaValidCtxtPtr vctxt) {
+xmlSchemaAugmentImportedIDC(void *payload, void *data,
+ const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlSchemaImportPtr imported = (xmlSchemaImportPtr) payload;
+ xmlSchemaValidCtxtPtr vctxt = (xmlSchemaValidCtxtPtr) data;
if (imported->schema->idcDef != NULL) {
- xmlHashScan(imported->schema->idcDef ,
- (xmlHashScanner) xmlSchemaAugmentIDC, vctxt);
+ xmlHashScan(imported->schema->idcDef, xmlSchemaAugmentIDC, vctxt);
}
}
@@ -25957,11 +25986,12 @@
}
static void
-xmlSchemaVContentModelCallback(xmlSchemaValidCtxtPtr vctxt ATTRIBUTE_UNUSED,
+xmlSchemaVContentModelCallback(xmlRegExecCtxtPtr exec ATTRIBUTE_UNUSED,
const xmlChar * name ATTRIBUTE_UNUSED,
- xmlSchemaElementPtr item,
- xmlSchemaNodeInfoPtr inode)
+ void *transdata, void *inputdata)
{
+ xmlSchemaElementPtr item = (xmlSchemaElementPtr) transdata;
+ xmlSchemaNodeInfoPtr inode = (xmlSchemaNodeInfoPtr) inputdata;
inode->decl = item;
#ifdef DEBUG_CONTENT
{
@@ -26066,8 +26096,7 @@
*/
inode->regexCtxt =
xmlRegNewExecCtxt(inode->typeDef->contModel,
- (xmlRegExecCallbacks) xmlSchemaVContentModelCallback,
- vctxt);
+ xmlSchemaVContentModelCallback, vctxt);
if (inode->regexCtxt == NULL) {
VERROR_INT("xmlSchemaValidatorPopElem",
"failed to create a regex context");
@@ -26094,7 +26123,7 @@
/*
* Get hold of the still expected content, since a further
- * call to xmlRegExecPushString() will loose this information.
+ * call to xmlRegExecPushString() will lose this information.
*/
xmlRegExecNextValues(inode->regexCtxt,
&nbval, &nbneg, &values[0], &terminal);
@@ -26615,8 +26644,7 @@
* Create the regex context.
*/
regexCtxt = xmlRegNewExecCtxt(ptype->contModel,
- (xmlRegExecCallbacks) xmlSchemaVContentModelCallback,
- vctxt);
+ xmlSchemaVContentModelCallback, vctxt);
if (regexCtxt == NULL) {
VERROR_INT("xmlSchemaValidateChildElem",
"failed to create a regex context");
@@ -26876,7 +26904,8 @@
* Augment the IDC definitions for the main schema and all imported ones
* NOTE: main schema is the first in the imported list
*/
- xmlHashScan(vctxt->schema->schemasImports,(xmlHashScanner)xmlSchemaAugmentImportedIDC, vctxt);
+ xmlHashScan(vctxt->schema->schemasImports, xmlSchemaAugmentImportedIDC,
+ vctxt);
}
if (vctxt->depth > 0) {
/*
@@ -27150,7 +27179,7 @@
}
if (ret < 0) {
/*
- * VAL TODO: A reader error occured; what to do here?
+ * VAL TODO: A reader error occurred; what to do here?
*/
ret = 1;
goto exit;
@@ -27391,6 +27420,7 @@
* attributes yet.
*/
if (nb_attributes != 0) {
+ int valueLen, k, l;
xmlChar *value;
for (j = 0, i = 0; i < nb_attributes; i++, j += 5) {
@@ -27400,12 +27430,31 @@
* libxml2 differs from normal SAX here in that it escapes all ampersands
* as & instead of delivering the raw converted string. Changing the
* behavior at this point would break applications that use this API, so
- * we are forced to work around it. There is no danger of accidentally
- * decoding some entity other than & in this step because without
- * unescaped ampersands there can be no other entities in the string.
+ * we are forced to work around it.
*/
- value = xmlStringLenDecodeEntities(vctxt->parserCtxt, attributes[j+3],
- attributes[j+4] - attributes[j+3], XML_SUBSTITUTE_REF, 0, 0, 0);
+ valueLen = attributes[j+4] - attributes[j+3];
+ value = xmlMallocAtomic(valueLen + 1);
+ if (value == NULL) {
+ xmlSchemaVErrMemory(vctxt,
+ "allocating string for decoded attribute",
+ NULL);
+ goto internal_error;
+ }
+ for (k = 0, l = 0; k < valueLen; l++) {
+ if (k < valueLen - 4 &&
+ attributes[j+3][k+0] == '&' &&
+ attributes[j+3][k+1] == '#' &&
+ attributes[j+3][k+2] == '3' &&
+ attributes[j+3][k+3] == '8' &&
+ attributes[j+3][k+4] == ';') {
+ value[l] = '&';
+ k += 5;
+ } else {
+ value[l] = attributes[j+3][k];
+ k++;
+ }
+ }
+ value[l] = '\0';
/*
* TODO: Set the node line.
*/
@@ -27788,7 +27837,7 @@
{
if (ctxt == NULL)
return;
- ctxt->serror = serror;
+ ctxt->serror = serror;
ctxt->error = NULL;
ctxt->warning = NULL;
ctxt->errCtxt = ctx;
@@ -28098,7 +28147,8 @@
* Augment the IDC definitions for the main schema and all imported ones
* NOTE: main schema if the first in the imported list
*/
- xmlHashScan(vctxt->schema->schemasImports,(xmlHashScanner)xmlSchemaAugmentImportedIDC, vctxt);
+ xmlHashScan(vctxt->schema->schemasImports, xmlSchemaAugmentImportedIDC,
+ vctxt);
return(0);
}
diff --git a/xmlschemastypes.c b/xmlschemastypes.c
index 5f38599..ca381d3 100644
--- a/xmlschemastypes.c
+++ b/xmlschemastypes.c
@@ -7,6 +7,11 @@
* Daniel Veillard <veillard@redhat.com>
*/
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
#define IN_LIBXML
#include "libxml.h"
@@ -614,6 +619,11 @@
xmlSchemaTypesInitialized = 1;
}
+static void
+xmlSchemaFreeTypeEntry(void *type, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlSchemaFreeType((xmlSchemaTypePtr) type);
+}
+
/**
* xmlSchemaCleanupTypes:
*
@@ -641,7 +651,7 @@
xmlFree((xmlSchemaParticlePtr) particle);
xmlSchemaTypeAnyTypeDef->subtypes = NULL;
}
- xmlHashFree(xmlSchemaTypesBank, (xmlHashDeallocator) xmlSchemaFreeType);
+ xmlHashFree(xmlSchemaTypesBank, xmlSchemaFreeTypeEntry);
xmlSchemaTypesInitialized = 0;
}
@@ -5398,7 +5408,7 @@
if ((valType == XML_SCHEMAS_QNAME) ||
(valType == XML_SCHEMAS_NOTATION))
return (0);
- /* No break on purpose. */
+ /* Falls through. */
case XML_SCHEMA_FACET_MAXLENGTH:
case XML_SCHEMA_FACET_MINLENGTH: {
unsigned int len = 0;
diff --git a/xmlstring.c b/xmlstring.c
index cc85777..8d2e06f 100644
--- a/xmlstring.c
+++ b/xmlstring.c
@@ -440,8 +440,8 @@
* first bytes of @add. Note that if @len < 0 then this is an API error
* and NULL will be returned.
*
- * Returns a new xmlChar *, the original @cur is reallocated if needed
- * and should not be freed
+ * Returns a new xmlChar *, the original @cur is reallocated and should
+ * not be freed.
*/
xmlChar *
@@ -519,7 +519,8 @@
* encoded in UTF-8 or an encoding with 8bit based chars, we assume
* a termination mark of '0'.
*
- * Returns a new xmlChar * containing the concatenated string.
+ * Returns a new xmlChar * containing the concatenated string. The original
+ * @cur is reallocated and should not be freed.
*/
xmlChar *
xmlStrcat(xmlChar *cur, const xmlChar *add) {
@@ -822,7 +823,7 @@
* @len: the number of characters in the array
*
* storage size of an UTF8 string
- * the behaviour is not garanteed if the input string is not UTF-8
+ * the behaviour is not guaranteed if the input string is not UTF-8
*
* Returns the storage size of
* the first 'len' characters of ARRAY
diff --git a/xmlunicode.c b/xmlunicode.c
index ce6e9a4..6d0a96a 100644
--- a/xmlunicode.c
+++ b/xmlunicode.c
@@ -29,14 +29,14 @@
} xmlUnicodeRange;
typedef struct {
- xmlUnicodeRange *table;
+ const xmlUnicodeRange *table;
int numentries;
} xmlUnicodeNameTable;
static xmlIntFunc *xmlUnicodeLookup(xmlUnicodeNameTable *tptr, const char *tname);
-static xmlUnicodeRange xmlUnicodeBlocks[] = {
+static const xmlUnicodeRange xmlUnicodeBlocks[] = {
{"AegeanNumbers", xmlUCSIsAegeanNumbers},
{"AlphabeticPresentationForms", xmlUCSIsAlphabeticPresentationForms},
{"Arabic", xmlUCSIsArabic},
@@ -945,7 +945,7 @@
static xmlIntFunc
*xmlUnicodeLookup(xmlUnicodeNameTable *tptr, const char *tname) {
int low, high, mid, cmp;
- xmlUnicodeRange *sptr;
+ const xmlUnicodeRange *sptr;
if ((tptr == NULL) || (tname == NULL)) return(NULL);
diff --git a/xmlwriter.c b/xmlwriter.c
index 69541b8..b5cd171 100644
--- a/xmlwriter.c
+++ b/xmlwriter.c
@@ -110,7 +110,7 @@
static int xmlCmpTextWriterNsStackEntry(const void *data0,
const void *data1);
static int xmlTextWriterWriteDocCallback(void *context,
- const xmlChar * str, int len);
+ const char *str, int len);
static int xmlTextWriterCloseDocCallback(void *context);
static xmlChar *xmlTextWriterVSprintf(const char *format, va_list argptr) LIBXML_ATTR_FORMAT(1,0);
@@ -190,9 +190,7 @@
}
memset(ret, 0, (size_t) sizeof(xmlTextWriter));
- ret->nodes = xmlListCreate((xmlListDeallocator)
- xmlFreeTextWriterStackEntry,
- (xmlListDataCompare)
+ ret->nodes = xmlListCreate(xmlFreeTextWriterStackEntry,
xmlCmpTextWriterStackEntry);
if (ret->nodes == NULL) {
xmlWriterErrMsg(NULL, XML_ERR_NO_MEMORY,
@@ -201,9 +199,7 @@
return NULL;
}
- ret->nsstack = xmlListCreate((xmlListDeallocator)
- xmlFreeTextWriterNsStackEntry,
- (xmlListDataCompare)
+ ret->nsstack = xmlListCreate(xmlFreeTextWriterNsStackEntry,
xmlCmpTextWriterNsStackEntry);
if (ret->nsstack == NULL) {
xmlWriterErrMsg(NULL, XML_ERR_NO_MEMORY,
@@ -329,9 +325,7 @@
return NULL;
}
- out = xmlOutputBufferCreateIO((xmlOutputWriteCallback)
- xmlTextWriterWriteDocCallback,
- (xmlOutputCloseCallback)
+ out = xmlOutputBufferCreateIO(xmlTextWriterWriteDocCallback,
xmlTextWriterCloseDocCallback,
(void *) ctxt, NULL);
if (out == NULL) {
@@ -3754,6 +3748,7 @@
if (count < 0)
return -1;
sum += count;
+ /* Falls through. */
case XML_TEXTWRITER_DTD_ENTY:
case XML_TEXTWRITER_DTD_PENT:
count = xmlOutputBufferWriteString(writer->out, ">");
@@ -4421,12 +4416,12 @@
* Returns -1, 0, 1
*/
static int
-xmlTextWriterWriteDocCallback(void *context, const xmlChar * str, int len)
+xmlTextWriterWriteDocCallback(void *context, const char *str, int len)
{
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) context;
int rc;
- if ((rc = xmlParseChunk(ctxt, (const char *) str, len, 0)) != 0) {
+ if ((rc = xmlParseChunk(ctxt, str, len, 0)) != 0) {
xmlWriterErrMsgInt(NULL, XML_ERR_INTERNAL_ERROR,
"xmlTextWriterWriteDocCallback : XML error %d !\n",
rc);
@@ -4452,7 +4447,7 @@
if ((rc = xmlParseChunk(ctxt, NULL, 0, 1)) != 0) {
xmlWriterErrMsgInt(NULL, XML_ERR_INTERNAL_ERROR,
- "xmlTextWriterWriteDocCallback : XML error %d !\n",
+ "xmlTextWriterCloseDocCallback : XML error %d !\n",
rc);
return -1;
}
diff --git a/xpath.c b/xpath.c
index 3472ff0..d134025 100644
--- a/xpath.c
+++ b/xpath.c
@@ -14,10 +14,17 @@
*
*/
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
#define IN_LIBXML
#include "libxml.h"
+#include <limits.h>
#include <string.h>
+#include <stddef.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
@@ -153,7 +160,7 @@
int misc = 0, precedence1 = 0, precedence2 = 0;
xmlNodePtr miscNode1 = NULL, miscNode2 = NULL;
xmlNodePtr cur, root;
- long l1, l2;
+ ptrdiff_t l1, l2;
if ((node1 == NULL) || (node2 == NULL))
return(-2);
@@ -167,12 +174,12 @@
switch (node1->type) {
case XML_ELEMENT_NODE:
if (node2->type == XML_ELEMENT_NODE) {
- if ((0 > (long) node1->content) && /* TODO: Would a != 0 suffice here? */
- (0 > (long) node2->content) &&
+ if ((0 > (ptrdiff_t) node1->content) &&
+ (0 > (ptrdiff_t) node2->content) &&
(node1->doc == node2->doc))
{
- l1 = -((long) node1->content);
- l2 = -((long) node2->content);
+ l1 = -((ptrdiff_t) node1->content);
+ l2 = -((ptrdiff_t) node2->content);
if (l1 < l2)
return(1);
if (l1 > l2)
@@ -217,7 +224,7 @@
node1 = node1->parent;
}
if ((node1 == NULL) || (node1->type != XML_ELEMENT_NODE) ||
- (0 <= (long) node1->content)) {
+ (0 <= (ptrdiff_t) node1->content)) {
/*
* Fallback for whatever case.
*/
@@ -267,7 +274,7 @@
node2 = node2->parent;
}
if ((node2 == NULL) || (node2->type != XML_ELEMENT_NODE) ||
- (0 <= (long) node2->content))
+ (0 <= (ptrdiff_t) node2->content))
{
node2 = miscNode2;
precedence2 = 0;
@@ -340,12 +347,12 @@
*/
if ((node1->type == XML_ELEMENT_NODE) &&
(node2->type == XML_ELEMENT_NODE) &&
- (0 > (long) node1->content) &&
- (0 > (long) node2->content) &&
+ (0 > (ptrdiff_t) node1->content) &&
+ (0 > (ptrdiff_t) node2->content) &&
(node1->doc == node2->doc)) {
- l1 = -((long) node1->content);
- l2 = -((long) node2->content);
+ l1 = -((ptrdiff_t) node1->content);
+ l2 = -((ptrdiff_t) node2->content);
if (l1 < l2)
return(1);
if (l1 > l2)
@@ -408,12 +415,12 @@
*/
if ((node1->type == XML_ELEMENT_NODE) &&
(node2->type == XML_ELEMENT_NODE) &&
- (0 > (long) node1->content) &&
- (0 > (long) node2->content) &&
+ (0 > (ptrdiff_t) node1->content) &&
+ (0 > (ptrdiff_t) node2->content) &&
(node1->doc == node2->doc)) {
- l1 = -((long) node1->content);
- l2 = -((long) node2->content);
+ l1 = -((ptrdiff_t) node1->content);
+ l2 = -((ptrdiff_t) node2->content);
if (l1 < l2)
return(1);
if (l1 > l2)
@@ -470,84 +477,66 @@
* *
************************************************************************/
-#ifndef TRIO_REPLACE_STDIO
-#define TRIO_PUBLIC static
+#ifndef NAN
+#define NAN (0.0 / 0.0)
#endif
-#include "trionan.c"
-/*
- * The lack of portability of this section of the libc is annoying !
- */
-double xmlXPathNAN = 0;
-double xmlXPathPINF = 1;
-double xmlXPathNINF = -1;
-static double xmlXPathNZERO = 0; /* not exported from headers */
-static int xmlXPathInitialized = 0;
+#ifndef INFINITY
+#define INFINITY HUGE_VAL
+#endif
+
+double xmlXPathNAN = NAN;
+double xmlXPathPINF = INFINITY;
+double xmlXPathNINF = -INFINITY;
/**
* xmlXPathInit:
*
* Initialize the XPath environment
+ *
+ * Does nothing but must be kept as public function.
*/
void
xmlXPathInit(void) {
- if (xmlXPathInitialized) return;
-
- xmlXPathPINF = trio_pinf();
- xmlXPathNINF = trio_ninf();
- xmlXPathNAN = trio_nan();
- xmlXPathNZERO = trio_nzero();
-
- xmlXPathInitialized = 1;
}
/**
* xmlXPathIsNaN:
* @val: a double value
*
- * Provides a portable isnan() function to detect whether a double
- * is a NotaNumber. Based on trio code
- * http://sourceforge.net/projects/ctrio/
- *
* Returns 1 if the value is a NaN, 0 otherwise
*/
int
xmlXPathIsNaN(double val) {
- return(trio_isnan(val));
+#ifdef isnan
+ return isnan(val);
+#else
+ return !(val == val);
+#endif
}
/**
* xmlXPathIsInf:
* @val: a double value
*
- * Provides a portable isinf() function to detect whether a double
- * is a +Infinite or -Infinite. Based on trio code
- * http://sourceforge.net/projects/ctrio/
- *
- * Returns 1 vi the value is +Infinite, -1 if -Infinite, 0 otherwise
+ * Returns 1 if the value is +Infinite, -1 if -Infinite, 0 otherwise
*/
int
xmlXPathIsInf(double val) {
- return(trio_isinf(val));
+#ifdef isinf
+ return isinf(val) ? (val > 0 ? 1 : -1) : 0;
+#else
+ if (val >= HUGE_VAL)
+ return 1;
+ if (val <= -HUGE_VAL)
+ return -1;
+ return 0;
+#endif
}
#endif /* SCHEMAS or XPATH */
-#ifdef LIBXML_XPATH_ENABLED
-/**
- * xmlXPathGetSign:
- * @val: a double value
- *
- * Provides a portable function to detect the sign of a double
- * Modified from trio code
- * http://sourceforge.net/projects/ctrio/
- *
- * Returns 1 if the value is Negative, 0 if positive
- */
-static int
-xmlXPathGetSign(double val) {
- return(trio_signbit(val));
-}
+#ifdef LIBXML_XPATH_ENABLED
/*
* TODO: when compatibility allows remove all "fake node libxslt" strings
@@ -935,7 +924,7 @@
int value3;
void *value4;
void *value5;
- void *cache;
+ xmlXPathFunction cache;
void *cacheURI;
};
@@ -971,6 +960,8 @@
xmlXPathCompOpEvalToBoolean(xmlXPathParserContextPtr ctxt,
xmlXPathStepOpPtr op,
int isPredicate);
+static void
+xmlXPathFreeObjectEntry(void *obj, const xmlChar *name);
/************************************************************************
* *
@@ -1414,7 +1405,8 @@
default:
if (xmlXPathIsNaN(cur->floatval)) {
fprintf(output, "Object is a number : NaN\n");
- } else if (cur->floatval == 0 && xmlXPathGetSign(cur->floatval) != 0) {
+ } else if (cur->floatval == 0) {
+ /* Omit sign for negative zero. */
fprintf(output, "Object is a number : 0\n");
} else {
fprintf(output, "Object is a number : %0g\n", cur->floatval);
@@ -1672,10 +1664,17 @@
fprintf(output, "%s", shift);
- fprintf(output, "Compiled Expression : %d elements\n",
- comp->nbStep);
- i = comp->last;
- xmlXPathDebugDumpStepOp(output, comp, &comp->steps[i], depth + 1);
+#ifdef XPATH_STREAMING
+ if (comp->stream) {
+ fprintf(output, "Streaming Expression\n");
+ } else
+#endif
+ {
+ fprintf(output, "Compiled Expression : %d elements\n",
+ comp->nbStep);
+ i = comp->last;
+ xmlXPathDebugDumpStepOp(output, comp, &comp->steps[i], depth + 1);
+ }
}
#ifdef XP_DEBUG_OBJ_USAGE
@@ -3103,9 +3102,11 @@
if (xmlXPathIsNaN(number)) {
if (buffersize > (int)sizeof("NaN"))
snprintf(buffer, buffersize, "NaN");
- } else if (number == 0 && xmlXPathGetSign(number) != 0) {
+ } else if (number == 0) {
+ /* Omit sign for negative zero. */
snprintf(buffer, buffersize, "0");
- } else if (number == ((int) number)) {
+ } else if ((number > INT_MIN) && (number < INT_MAX) &&
+ (number == (int) number)) {
char work[30];
char *ptr, *cur;
int value = (int) number;
@@ -3225,7 +3226,7 @@
*/
long
xmlXPathOrderDocElems(xmlDocPtr doc) {
- long count = 0;
+ ptrdiff_t count = 0;
xmlNodePtr cur;
if (doc == NULL)
@@ -3257,7 +3258,7 @@
}
} while (cur != NULL);
}
- return(count);
+ return((long) count);
}
/**
@@ -3325,13 +3326,13 @@
*/
if ((node1->type == XML_ELEMENT_NODE) &&
(node2->type == XML_ELEMENT_NODE) &&
- (0 > (long) node1->content) &&
- (0 > (long) node2->content) &&
+ (0 > (ptrdiff_t) node1->content) &&
+ (0 > (ptrdiff_t) node2->content) &&
(node1->doc == node2->doc)) {
- long l1, l2;
+ ptrdiff_t l1, l2;
- l1 = -((long) node1->content);
- l2 = -((long) node2->content);
+ l1 = -((ptrdiff_t) node1->content);
+ l2 = -((ptrdiff_t) node2->content);
if (l1 < l2)
return(1);
if (l1 > l2)
@@ -3342,13 +3343,13 @@
* compute depth to root
*/
for (depth2 = 0, cur = node2;cur->parent != NULL;cur = cur->parent) {
- if (cur == node1)
+ if (cur->parent == node1)
return(1);
depth2++;
}
root = cur;
for (depth1 = 0, cur = node1;cur->parent != NULL;cur = cur->parent) {
- if (cur == node2)
+ if (cur->parent == node2)
return(-1);
depth1++;
}
@@ -3388,13 +3389,13 @@
*/
if ((node1->type == XML_ELEMENT_NODE) &&
(node2->type == XML_ELEMENT_NODE) &&
- (0 > (long) node1->content) &&
- (0 > (long) node2->content) &&
+ (0 > (ptrdiff_t) node1->content) &&
+ (0 > (ptrdiff_t) node2->content) &&
(node1->doc == node2->doc)) {
- long l1, l2;
+ ptrdiff_t l1, l2;
- l1 = -((long) node1->content);
- l2 = -((long) node2->content);
+ l1 = -((ptrdiff_t) node1->content);
+ l2 = -((ptrdiff_t) node2->content);
if (l1 < l2)
return(1);
if (l1 > l2)
@@ -4021,13 +4022,7 @@
set1->nodeTab = temp;
set1->nodeMax *= 2;
}
- if (n2->type == XML_NAMESPACE_DECL) {
- xmlNsPtr ns = (xmlNsPtr) n2;
-
- set1->nodeTab[set1->nodeNr++] =
- xmlXPathNodeSetDupNs((xmlNodePtr) ns->next, ns);
- } else
- set1->nodeTab[set1->nodeNr++] = n2;
+ set1->nodeTab[set1->nodeNr++] = n2;
skip_node:
{}
}
@@ -4196,33 +4191,6 @@
}
/**
- * xmlXPathNodeSetClear:
- * @set: the node set to clear
- *
- * Clears the list from all temporary XPath objects (e.g. namespace nodes
- * are feed), but does *not* free the list itself. Sets the length of the
- * list to 0.
- */
-static void
-xmlXPathNodeSetClear(xmlNodeSetPtr set, int hasNsNodes)
-{
- if ((set == NULL) || (set->nodeNr <= 0))
- return;
- else if (hasNsNodes) {
- int i;
- xmlNodePtr node;
-
- for (i = 0; i < set->nodeNr; i++) {
- node = set->nodeTab[i];
- if ((node != NULL) &&
- (node->type == XML_NAMESPACE_DECL))
- xmlXPathNodeSetFreeNs((xmlNsPtr) node);
- }
- }
- set->nodeNr = 0;
-}
-
-/**
* xmlXPathNodeSetClearFromPos:
* @set: the node set to be cleared
* @pos: the start position to clear from
@@ -4234,7 +4202,7 @@
static void
xmlXPathNodeSetClearFromPos(xmlNodeSetPtr set, int pos, int hasNsNodes)
{
- if ((set == NULL) || (set->nodeNr <= 0) || (pos >= set->nodeNr))
+ if ((set == NULL) || (pos >= set->nodeNr))
return;
else if ((hasNsNodes)) {
int i;
@@ -4251,6 +4219,46 @@
}
/**
+ * xmlXPathNodeSetClear:
+ * @set: the node set to clear
+ *
+ * Clears the list from all temporary XPath objects (e.g. namespace nodes
+ * are feed), but does *not* free the list itself. Sets the length of the
+ * list to 0.
+ */
+static void
+xmlXPathNodeSetClear(xmlNodeSetPtr set, int hasNsNodes)
+{
+ xmlXPathNodeSetClearFromPos(set, 0, hasNsNodes);
+}
+
+/**
+ * xmlXPathNodeSetKeepLast:
+ * @set: the node set to be cleared
+ *
+ * Move the last node to the first position and clear temporary XPath objects
+ * (e.g. namespace nodes) from all other nodes. Sets the length of the list
+ * to 1.
+ */
+static void
+xmlXPathNodeSetKeepLast(xmlNodeSetPtr set)
+{
+ int i;
+ xmlNodePtr node;
+
+ if ((set == NULL) || (set->nodeNr <= 1))
+ return;
+ for (i = 0; i < set->nodeNr - 1; i++) {
+ node = set->nodeTab[i];
+ if ((node != NULL) &&
+ (node->type == XML_NAMESPACE_DECL))
+ xmlXPathNodeSetFreeNs((xmlNsPtr) node);
+ }
+ set->nodeTab[0] = set->nodeTab[set->nodeNr-1];
+ set->nodeNr = 1;
+}
+
+/**
* xmlXPathFreeValueTree:
* @obj: the xmlNodeSetPtr to free
*
@@ -4560,7 +4568,7 @@
xmlFree(strval);
}
}
- xmlHashFree(hash, (xmlHashDeallocator) xmlFree);
+ xmlHashFree(hash, xmlHashDefaultDeallocator);
return(ret);
}
@@ -4872,7 +4880,9 @@
return(-1);
if (f == NULL)
return(xmlHashRemoveEntry2(ctxt->funcHash, name, ns_uri, NULL));
- return(xmlHashAddEntry2(ctxt->funcHash, name, ns_uri, XML_CAST_FPTR(f)));
+XML_IGNORE_PEDANTIC_WARNINGS
+ return(xmlHashAddEntry2(ctxt->funcHash, name, ns_uri, (void *) f));
+XML_POP_WARNINGS
}
/**
@@ -4953,7 +4963,9 @@
if (ctxt->funcHash == NULL)
return(NULL);
- XML_CAST_FPTR(ret) = xmlHashLookup2(ctxt->funcHash, name, ns_uri);
+XML_IGNORE_PEDANTIC_WARNINGS
+ ret = (xmlXPathFunction) xmlHashLookup2(ctxt->funcHash, name, ns_uri);
+XML_POP_WARNINGS
return(ret);
}
@@ -5022,10 +5034,9 @@
return(-1);
if (value == NULL)
return(xmlHashRemoveEntry2(ctxt->varHash, name, ns_uri,
- (xmlHashDeallocator)xmlXPathFreeObject));
+ xmlXPathFreeObjectEntry));
return(xmlHashUpdateEntry2(ctxt->varHash, name, ns_uri,
- (void *) value,
- (xmlHashDeallocator)xmlXPathFreeObject));
+ (void *) value, xmlXPathFreeObjectEntry));
}
/**
@@ -5115,7 +5126,7 @@
if (ctxt == NULL)
return;
- xmlHashFree(ctxt->varHash, (xmlHashDeallocator)xmlXPathFreeObject);
+ xmlHashFree(ctxt->varHash, xmlXPathFreeObjectEntry);
ctxt->varHash = NULL;
}
@@ -5146,9 +5157,9 @@
return(-1);
if (ns_uri == NULL)
return(xmlHashRemoveEntry(ctxt->nsHash, prefix,
- (xmlHashDeallocator)xmlFree));
+ xmlHashDefaultDeallocator));
return(xmlHashUpdateEntry(ctxt->nsHash, prefix, (void *) xmlStrdup(ns_uri),
- (xmlHashDeallocator)xmlFree));
+ xmlHashDefaultDeallocator));
}
/**
@@ -5197,7 +5208,7 @@
if (ctxt == NULL)
return;
- xmlHashFree(ctxt->nsHash, (xmlHashDeallocator)xmlFree);
+ xmlHashFree(ctxt->nsHash, xmlHashDefaultDeallocator);
ctxt->nsHash = NULL;
}
@@ -5511,6 +5522,11 @@
xmlFree(obj);
}
+static void
+xmlXPathFreeObjectEntry(void *obj, const xmlChar *name ATTRIBUTE_UNUSED) {
+ xmlXPathFreeObject((xmlXPathObjectPtr) obj);
+}
+
/**
* xmlXPathReleaseObject:
* @obj: the xmlXPathObjectPtr to free or to cache
@@ -5700,7 +5716,8 @@
default:
if (xmlXPathIsNaN(val)) {
ret = xmlStrdup((const xmlChar *) "NaN");
- } else if (val == 0 && xmlXPathGetSign(val) != 0) {
+ } else if (val == 0) {
+ /* Omit sign for negative zero. */
ret = xmlStrdup((const xmlChar *) "0");
} else {
/* could be improved */
@@ -5882,10 +5899,10 @@
double ret;
if (node == NULL)
- return(xmlXPathNAN);
+ return(NAN);
strval = xmlXPathCastNodeToString(node);
if (strval == NULL)
- return(xmlXPathNAN);
+ return(NAN);
ret = xmlXPathCastStringToNumber(strval);
xmlFree(strval);
@@ -5906,7 +5923,7 @@
double ret;
if (ns == NULL)
- return(xmlXPathNAN);
+ return(NAN);
str = xmlXPathCastNodeSetToString(ns);
ret = xmlXPathCastStringToNumber(str);
xmlFree(str);
@@ -5926,13 +5943,13 @@
double ret = 0.0;
if (val == NULL)
- return(xmlXPathNAN);
+ return(NAN);
switch (val->type) {
case XPATH_UNDEFINED:
#ifdef DEGUB_EXPR
xmlGenericError(xmlGenericErrorContext, "NUMBER: undefined\n");
#endif
- ret = xmlXPathNAN;
+ ret = NAN;
break;
case XPATH_NODESET:
case XPATH_XSLT_TREE:
@@ -5952,7 +5969,7 @@
case XPATH_RANGE:
case XPATH_LOCATIONSET:
TODO;
- ret = xmlXPathNAN;
+ ret = NAN;
break;
}
return(ret);
@@ -6289,7 +6306,15 @@
*/
void
xmlXPathFreeParserContext(xmlXPathParserContextPtr ctxt) {
+ int i;
+
if (ctxt->valueTab != NULL) {
+ for (i = 0; i < ctxt->valueNr; i++) {
+ if (ctxt->context)
+ xmlXPathReleaseObject(ctxt->context, ctxt->valueTab[i]);
+ else
+ xmlXPathFreeObject(ctxt->valueTab[i]);
+ }
xmlFree(ctxt->valueTab);
}
if (ctxt->comp != NULL) {
@@ -6371,16 +6396,12 @@
}
while (tmp != NULL) {
switch (tmp->type) {
- case XML_COMMENT_NODE:
- case XML_PI_NODE:
case XML_CDATA_SECTION_NODE:
case XML_TEXT_NODE:
string = tmp->content;
break;
- case XML_NAMESPACE_DECL:
- string = ((xmlNsPtr)tmp)->href;
- break;
default:
+ string = NULL;
break;
}
if ((string != NULL) && (string[0] != 0)) {
@@ -6702,7 +6723,13 @@
valuePush(ctxt, val);
return(xmlXPathCompareValues(ctxt, inf, strict));
default:
- TODO
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlXPathCompareNodeSetValue: Can't compare node set "
+ "and object of type %d\n",
+ val->type);
+ xmlXPathReleaseObject(ctxt->context, arg);
+ xmlXPathReleaseObject(ctxt->context, val);
+ XP_ERROR0(XPATH_INVALID_TYPE);
}
return(0);
}
@@ -7010,7 +7037,7 @@
valuePush(ctxt, arg2);
xmlXPathNumberFunction(ctxt, 1);
arg2 = valuePop(ctxt);
- /* no break on purpose */
+ /* Falls through. */
case XPATH_NUMBER:
/* Hand check NaN and Infinity equalities */
if (xmlXPathIsNaN(arg1->floatval) ||
@@ -7446,20 +7473,7 @@
if ((ctxt == NULL) || (ctxt->context == NULL)) return;
CAST_TO_NUMBER;
CHECK_TYPE(XPATH_NUMBER);
- if (xmlXPathIsNaN(ctxt->value->floatval))
- ctxt->value->floatval=xmlXPathNAN;
- else if (xmlXPathIsInf(ctxt->value->floatval) == 1)
- ctxt->value->floatval=xmlXPathNINF;
- else if (xmlXPathIsInf(ctxt->value->floatval) == -1)
- ctxt->value->floatval=xmlXPathPINF;
- else if (ctxt->value->floatval == 0) {
- if (xmlXPathGetSign(ctxt->value->floatval) == 0)
- ctxt->value->floatval = xmlXPathNZERO;
- else
- ctxt->value->floatval = 0;
- }
- else
- ctxt->value->floatval = - ctxt->value->floatval;
+ ctxt->value->floatval = -ctxt->value->floatval;
}
/**
@@ -7551,25 +7565,7 @@
xmlXPathReleaseObject(ctxt->context, arg);
CAST_TO_NUMBER;
CHECK_TYPE(XPATH_NUMBER);
- if (xmlXPathIsNaN(val) || xmlXPathIsNaN(ctxt->value->floatval))
- ctxt->value->floatval = xmlXPathNAN;
- else if (val == 0 && xmlXPathGetSign(val) != 0) {
- if (ctxt->value->floatval == 0)
- ctxt->value->floatval = xmlXPathNAN;
- else if (ctxt->value->floatval > 0)
- ctxt->value->floatval = xmlXPathNINF;
- else if (ctxt->value->floatval < 0)
- ctxt->value->floatval = xmlXPathPINF;
- }
- else if (val == 0) {
- if (ctxt->value->floatval == 0)
- ctxt->value->floatval = xmlXPathNAN;
- else if (ctxt->value->floatval > 0)
- ctxt->value->floatval = xmlXPathPINF;
- else if (ctxt->value->floatval < 0)
- ctxt->value->floatval = xmlXPathNINF;
- } else
- ctxt->value->floatval /= val;
+ ctxt->value->floatval /= val;
}
/**
@@ -7594,7 +7590,7 @@
CHECK_TYPE(XPATH_NUMBER);
arg1 = ctxt->value->floatval;
if (arg2 == 0)
- ctxt->value->floatval = xmlXPathNAN;
+ ctxt->value->floatval = NAN;
else {
ctxt->value->floatval = fmod(arg1, arg2);
}
@@ -8114,12 +8110,12 @@
return(NULL);
return(cur->parent);
case XML_ATTRIBUTE_NODE: {
- xmlAttrPtr att = (xmlAttrPtr) ctxt->context->node;
+ xmlAttrPtr att = (xmlAttrPtr) cur;
return(att->parent);
}
case XML_NAMESPACE_DECL: {
- xmlNsPtr ns = (xmlNsPtr) ctxt->context->node;
+ xmlNsPtr ns = (xmlNsPtr) cur;
if ((ns->next != NULL) &&
(ns->next->type != XML_NAMESPACE_DECL))
@@ -8236,10 +8232,16 @@
if (cur == NULL) {
cur = ctxt->context->node;
- if (cur->type == XML_NAMESPACE_DECL)
- return(NULL);
- if (cur->type == XML_ATTRIBUTE_NODE)
+ if (cur->type == XML_ATTRIBUTE_NODE) {
cur = cur->parent;
+ } else if (cur->type == XML_NAMESPACE_DECL) {
+ xmlNsPtr ns = (xmlNsPtr) cur;
+
+ if ((ns->next == NULL) ||
+ (ns->next->type == XML_NAMESPACE_DECL))
+ return (NULL);
+ cur = (xmlNodePtr) ns->next;
+ }
}
if (cur == NULL) return(NULL) ; /* ERROR */
if (cur->next != NULL) return(cur->next) ;
@@ -8300,10 +8302,16 @@
if ((ctxt == NULL) || (ctxt->context == NULL)) return(NULL);
if (cur == NULL) {
cur = ctxt->context->node;
- if (cur->type == XML_NAMESPACE_DECL)
- return(NULL);
- if (cur->type == XML_ATTRIBUTE_NODE)
- return(cur->parent);
+ if (cur->type == XML_ATTRIBUTE_NODE) {
+ cur = cur->parent;
+ } else if (cur->type == XML_NAMESPACE_DECL) {
+ xmlNsPtr ns = (xmlNsPtr) cur;
+
+ if ((ns->next == NULL) ||
+ (ns->next->type == XML_NAMESPACE_DECL))
+ return (NULL);
+ cur = (xmlNodePtr) ns->next;
+ }
}
if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL))
return (NULL);
@@ -8348,8 +8356,16 @@
cur = ctxt->context->node;
if (cur == NULL)
return (NULL);
- if (cur->type == XML_NAMESPACE_DECL)
- return (NULL);
+ if (cur->type == XML_ATTRIBUTE_NODE) {
+ cur = cur->parent;
+ } else if (cur->type == XML_NAMESPACE_DECL) {
+ xmlNsPtr ns = (xmlNsPtr) cur;
+
+ if ((ns->next == NULL) ||
+ (ns->next->type == XML_NAMESPACE_DECL))
+ return (NULL);
+ cur = (xmlNodePtr) ns->next;
+ }
ctxt->ancestor = cur->parent;
}
if (cur->type == XML_NAMESPACE_DECL)
@@ -9634,18 +9650,6 @@
xmlXPathReleaseObject(ctxt->context, cur);
}
-/*
- * To assure working code on multiple platforms, we want to only depend
- * upon the characteristic truncation of converting a floating point value
- * to an integer. Unfortunately, because of the different storage sizes
- * of our internal floating point value (double) and integer (int), we
- * can't directly convert (see bug 301162). This macro is a messy
- * 'workaround'
- */
-#define XTRUNC(f, v) \
- f = fmod((v), INT_MAX); \
- f = (v) - (f) + (double)((int)(f));
-
/**
* xmlXPathFloorFunction:
* @ctxt: the XPath Parser context
@@ -9658,19 +9662,11 @@
*/
void
xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs) {
- double f;
-
CHECK_ARITY(1);
CAST_TO_NUMBER;
CHECK_TYPE(XPATH_NUMBER);
- XTRUNC(f, ctxt->value->floatval);
- if (f != ctxt->value->floatval) {
- if (ctxt->value->floatval > 0)
- ctxt->value->floatval = f;
- else
- ctxt->value->floatval = f - 1;
- }
+ ctxt->value->floatval = floor(ctxt->value->floatval);
}
/**
@@ -9685,28 +9681,11 @@
*/
void
xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs) {
- double f;
-
CHECK_ARITY(1);
CAST_TO_NUMBER;
CHECK_TYPE(XPATH_NUMBER);
-#if 0
ctxt->value->floatval = ceil(ctxt->value->floatval);
-#else
- XTRUNC(f, ctxt->value->floatval);
- if (f != ctxt->value->floatval) {
- if (ctxt->value->floatval > 0)
- ctxt->value->floatval = f + 1;
- else {
- if (ctxt->value->floatval < 0 && f == 0)
- ctxt->value->floatval = xmlXPathNZERO;
- else
- ctxt->value->floatval = f;
- }
-
- }
-#endif
}
/**
@@ -9718,7 +9697,7 @@
* number round(number)
* The round function returns the number that is closest to the
* argument and that is an integer. If there are two such numbers,
- * then the one that is even is returned.
+ * then the one that is closest to positive infinity is returned.
*/
void
xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs) {
@@ -9728,25 +9707,17 @@
CAST_TO_NUMBER;
CHECK_TYPE(XPATH_NUMBER);
- if ((xmlXPathIsNaN(ctxt->value->floatval)) ||
- (xmlXPathIsInf(ctxt->value->floatval) == 1) ||
- (xmlXPathIsInf(ctxt->value->floatval) == -1) ||
- (ctxt->value->floatval == 0.0))
- return;
+ f = ctxt->value->floatval;
- XTRUNC(f, ctxt->value->floatval);
- if (ctxt->value->floatval < 0) {
- if (ctxt->value->floatval < f - 0.5)
- ctxt->value->floatval = f - 1;
- else
- ctxt->value->floatval = f;
- if (ctxt->value->floatval == 0)
- ctxt->value->floatval = xmlXPathNZERO;
- } else {
- if (ctxt->value->floatval < f + 0.5)
- ctxt->value->floatval = f;
- else
- ctxt->value->floatval = f + 1;
+ if ((f >= -0.5) && (f < 0.5)) {
+ /* Handles negative zero. */
+ ctxt->value->floatval *= 0.0;
+ }
+ else {
+ double rounded = floor(f);
+ if (f - rounded >= 0.5)
+ rounded += 1.0;
+ ctxt->value->floatval = rounded;
}
}
@@ -10056,20 +10027,6 @@
#define MAX_FRAC 20
-/*
- * These are used as divisors for the fractional part of a number.
- * Since the table includes 1.0 (representing '0' fractional digits),
- * it must be dimensioned at MAX_FRAC+1 (bug 133921)
- */
-static double my_pow10[MAX_FRAC+1] = {
- 1.0, 10.0, 100.0, 1000.0, 10000.0,
- 100000.0, 1000000.0, 10000000.0, 100000000.0, 1000000000.0,
- 10000000000.0, 100000000000.0, 1000000000000.0, 10000000000000.0,
- 100000000000000.0,
- 1000000000000000.0, 10000000000000000.0, 100000000000000000.0,
- 1000000000000000000.0, 10000000000000000000.0, 100000000000000000000.0
-};
-
/**
* xmlXPathStringEvalNumber:
* @str: A string to scan
@@ -10101,7 +10058,7 @@
if (cur == NULL) return(0);
while (IS_BLANK_CH(*cur)) cur++;
if ((*cur != '.') && ((*cur < '0') || (*cur > '9')) && (*cur != '-')) {
- return(xmlXPathNAN);
+ return(NAN);
}
if (*cur == '-') {
isneg = 1;
@@ -10132,20 +10089,25 @@
#endif
if (*cur == '.') {
- int v, frac = 0;
+ int v, frac = 0, max;
double fraction = 0;
cur++;
if (((*cur < '0') || (*cur > '9')) && (!ok)) {
- return(xmlXPathNAN);
+ return(NAN);
}
- while (((*cur >= '0') && (*cur <= '9')) && (frac < MAX_FRAC)) {
+ while (*cur == '0') {
+ frac = frac + 1;
+ cur++;
+ }
+ max = frac + MAX_FRAC;
+ while (((*cur >= '0') && (*cur <= '9')) && (frac < max)) {
v = (*cur - '0');
fraction = fraction * 10 + v;
frac = frac + 1;
cur++;
}
- fraction /= my_pow10[frac];
+ fraction /= pow(10.0, frac);
ret = ret + fraction;
while ((*cur >= '0') && (*cur <= '9'))
cur++;
@@ -10159,12 +10121,13 @@
cur++;
}
while ((*cur >= '0') && (*cur <= '9')) {
- exponent = exponent * 10 + (*cur - '0');
+ if (exponent < 1000000)
+ exponent = exponent * 10 + (*cur - '0');
cur++;
}
}
while (IS_BLANK_CH(*cur)) cur++;
- if (*cur != 0) return(xmlXPathNAN);
+ if (*cur != 0) return(NAN);
if (isneg) ret = -ret;
if (is_exponent_negative) exponent = -exponent;
ret *= pow(10.0, (double)exponent);
@@ -10221,20 +10184,25 @@
}
#endif
if (CUR == '.') {
- int v, frac = 0;
+ int v, frac = 0, max;
double fraction = 0;
NEXT;
if (((CUR < '0') || (CUR > '9')) && (!ok)) {
XP_ERROR(XPATH_NUMBER_ERROR);
}
- while ((CUR >= '0') && (CUR <= '9') && (frac < MAX_FRAC)) {
+ while (CUR == '0') {
+ frac = frac + 1;
+ NEXT;
+ }
+ max = frac + MAX_FRAC;
+ while ((CUR >= '0') && (CUR <= '9') && (frac < max)) {
v = (CUR - '0');
fraction = fraction * 10 + v;
frac = frac + 1;
NEXT;
}
- fraction /= my_pow10[frac];
+ fraction /= pow(10.0, frac);
ret = ret + fraction;
while ((CUR >= '0') && (CUR <= '9'))
NEXT;
@@ -10248,7 +10216,8 @@
NEXT;
}
while ((CUR >= '0') && (CUR <= '9')) {
- exponent = exponent * 10 + (CUR - '0');
+ if (exponent < 1000000)
+ exponent = exponent * 10 + (CUR - '0');
NEXT;
}
if (is_exponent_negative)
@@ -10379,6 +10348,7 @@
NEXT;
name = xmlXPathParseQName(ctxt, &prefix);
if (name == NULL) {
+ xmlFree(prefix);
XP_ERROR(XPATH_VARIABLE_REF_ERROR);
}
ctxt->comp->last = -1;
@@ -10452,6 +10422,8 @@
#endif
if (CUR != '(') {
+ xmlFree(name);
+ xmlFree(prefix);
XP_ERROR(XPATH_EXPR_ERROR);
}
NEXT;
@@ -10480,6 +10452,8 @@
nbargs++;
if (CUR == ')') break;
if (CUR != ',') {
+ xmlFree(name);
+ xmlFree(prefix);
XP_ERROR(XPATH_EXPR_ERROR);
}
NEXT;
@@ -11915,11 +11889,11 @@
}
}
- frame = xmlXPathSetFrame(ctxt);
valuePush(ctxt, contextObj);
+ frame = xmlXPathSetFrame(ctxt);
res = xmlXPathCompOpEvalToBoolean(ctxt, exprOp, 1);
- tmp = valuePop(ctxt);
xmlXPathPopFrame(ctxt, frame);
+ tmp = valuePop(ctxt);
if ((ctxt->error != XPATH_EXPRESSION_OK) || (res == -1)) {
while (tmp != contextObj) {
@@ -12054,6 +12028,8 @@
(exprOp->value4 != NULL) &&
(((xmlXPathObjectPtr) exprOp->value4)->type == XPATH_NUMBER))
{
+ double floatval = ((xmlXPathObjectPtr) exprOp->value4)->floatval;
+
/*
* We have a "[n]" predicate here.
* TODO: Unfortunately this simplistic test here is not
@@ -12064,13 +12040,12 @@
* like it "[position() < 5]", is also not detected.
* Maybe we could rewrite the AST to ease the optimization.
*/
- *maxPos = (int) ((xmlXPathObjectPtr) exprOp->value4)->floatval;
- if (((xmlXPathObjectPtr) exprOp->value4)->floatval ==
- (float) *maxPos)
- {
- return(1);
- }
+ if ((floatval > INT_MIN) && (floatval < INT_MAX)) {
+ *maxPos = (int) floatval;
+ if (floatval == (double) *maxPos)
+ return(1);
+ }
}
return(0);
}
@@ -12411,7 +12386,7 @@
default:
break;
}
- } else if (cur->type == type) {
+ } else if (cur->type == (xmlElementType) type) {
if (cur->type == XML_NAMESPACE_DECL)
XP_TEST_HIT_NS
else
@@ -12772,11 +12747,15 @@
xmlXPathCompOpEvalFirst(ctxt, &comp->steps[op->ch2],
first);
CHECK_ERROR0;
- CHECK_TYPE0(XPATH_NODESET);
- arg2 = valuePop(ctxt);
- CHECK_TYPE0(XPATH_NODESET);
+ arg2 = valuePop(ctxt);
arg1 = valuePop(ctxt);
+ if ((arg1 == NULL) || (arg1->type != XPATH_NODESET) ||
+ (arg2 == NULL) || (arg2->type != XPATH_NODESET)) {
+ xmlXPathReleaseObject(ctxt->context, arg1);
+ xmlXPathReleaseObject(ctxt->context, arg2);
+ XP_ERROR0(XPATH_INVALID_TYPE);
+ }
arg1->nodesetval = xmlXPathNodeSetMerge(arg1->nodesetval,
arg2->nodesetval);
@@ -12907,11 +12886,15 @@
&& (ctxt->value->nodesetval != NULL)
&& (ctxt->value->nodesetval->nodeNr >= 1)) { /* TODO: NOP ? */
}
- CHECK_TYPE0(XPATH_NODESET);
- arg2 = valuePop(ctxt);
- CHECK_TYPE0(XPATH_NODESET);
+ arg2 = valuePop(ctxt);
arg1 = valuePop(ctxt);
+ if ((arg1 == NULL) || (arg1->type != XPATH_NODESET) ||
+ (arg2 == NULL) || (arg2->type != XPATH_NODESET)) {
+ xmlXPathReleaseObject(ctxt->context, arg1);
+ xmlXPathReleaseObject(ctxt->context, arg2);
+ XP_ERROR0(XPATH_INVALID_TYPE);
+ }
arg1->nodesetval = xmlXPathNodeSetMerge(arg1->nodesetval,
arg2->nodesetval);
@@ -13022,13 +13005,7 @@
(ctxt->value->nodesetval != NULL) &&
(ctxt->value->nodesetval->nodeTab != NULL) &&
(ctxt->value->nodesetval->nodeNr > 1)) {
- ctxt->value->nodesetval->nodeTab[0] =
- ctxt->value->nodesetval->nodeTab[ctxt->
- value->
- nodesetval->
- nodeNr -
- 1];
- ctxt->value->nodesetval->nodeNr = 1;
+ xmlXPathNodeSetKeepLast(ctxt->value->nodesetval);
*first = *(ctxt->value->nodesetval->nodeTab);
}
return (total);
@@ -13445,11 +13422,15 @@
ctxt->context->contextSize = cs;
total += xmlXPathCompOpEval(ctxt, &comp->steps[op->ch2]);
CHECK_ERROR0;
- CHECK_TYPE0(XPATH_NODESET);
- arg2 = valuePop(ctxt);
- CHECK_TYPE0(XPATH_NODESET);
+ arg2 = valuePop(ctxt);
arg1 = valuePop(ctxt);
+ if ((arg1 == NULL) || (arg1->type != XPATH_NODESET) ||
+ (arg2 == NULL) || (arg2->type != XPATH_NODESET)) {
+ xmlXPathReleaseObject(ctxt->context, arg1);
+ xmlXPathReleaseObject(ctxt->context, arg2);
+ XP_ERROR0(XPATH_INVALID_TYPE);
+ }
if ((arg1->nodesetval == NULL) ||
((arg2->nodesetval != NULL) &&
@@ -13507,10 +13488,8 @@
xmlXPathCompOpEval(ctxt, &comp->steps[op->ch1]);
if (op->value5 == NULL) {
val = xmlXPathVariableLookup(ctxt->context, op->value4);
- if (val == NULL) {
- ctxt->error = XPATH_UNDEF_VARIABLE_ERROR;
- return(0);
- }
+ if (val == NULL)
+ XP_ERROR0(XPATH_UNDEF_VARIABLE_ERROR);
valuePush(ctxt, val);
} else {
const xmlChar *URI;
@@ -13525,10 +13504,8 @@
}
val = xmlXPathVariableLookupNS(ctxt->context,
op->value4, URI);
- if (val == NULL) {
- ctxt->error = XPATH_UNDEF_VARIABLE_ERROR;
- return(0);
- }
+ if (val == NULL)
+ XP_ERROR0(XPATH_UNDEF_VARIABLE_ERROR);
valuePush(ctxt, val);
}
return (total);
@@ -13565,7 +13542,7 @@
}
}
if (op->cache != NULL)
- XML_CAST_FPTR(func) = op->cache;
+ func = op->cache;
else {
const xmlChar *URI = NULL;
@@ -13592,7 +13569,7 @@
(char *)op->value4);
XP_ERROR0(XPATH_UNKNOWN_FUNC_ERROR);
}
- op->cache = XML_CAST_FPTR(func);
+ op->cache = func;
op->cacheURI = (void *) URI;
}
oldFunc = ctxt->context->function;
@@ -13677,7 +13654,8 @@
(ctxt->value->type == XPATH_NODESET) &&
(ctxt->value->nodesetval != NULL) &&
(ctxt->value->nodesetval->nodeNr > 1))
- ctxt->value->nodesetval->nodeNr = 1;
+ xmlXPathNodeSetClearFromPos(ctxt->value->nodesetval,
+ 1, 1);
return (total);
}
}
@@ -13711,15 +13689,8 @@
(ctxt->value->type == XPATH_NODESET) &&
(ctxt->value->nodesetval != NULL) &&
(ctxt->value->nodesetval->nodeTab != NULL) &&
- (ctxt->value->nodesetval->nodeNr > 1)) {
- ctxt->value->nodesetval->nodeTab[0] =
- ctxt->value->nodesetval->nodeTab[ctxt->
- value->
- nodesetval->
- nodeNr -
- 1];
- ctxt->value->nodesetval->nodeNr = 1;
- }
+ (ctxt->value->nodesetval->nodeNr > 1))
+ xmlXPathNodeSetKeepLast(ctxt->value->nodesetval);
return (total);
}
}
@@ -14908,10 +14879,11 @@
static int
xmlXPathCompiledEvalInternal(xmlXPathCompExprPtr comp,
xmlXPathContextPtr ctxt,
- xmlXPathObjectPtr *resObj,
+ xmlXPathObjectPtr *resObjPtr,
int toBool)
{
xmlXPathParserContextPtr pctxt;
+ xmlXPathObjectPtr resObj;
#ifndef LIBXML_THREAD_ENABLED
static int reentance = 0;
#endif
@@ -14939,43 +14911,26 @@
pctxt = xmlXPathCompParserContext(comp, ctxt);
res = xmlXPathRunEval(pctxt, toBool);
- if (resObj) {
- if (pctxt->value == NULL) {
- xmlGenericError(xmlGenericErrorContext,
- "xmlXPathCompiledEval: evaluation failed\n");
- *resObj = NULL;
- } else {
- *resObj = valuePop(pctxt);
- }
+ if (pctxt->error != XPATH_EXPRESSION_OK) {
+ resObj = NULL;
+ } else {
+ resObj = valuePop(pctxt);
+ if (resObj == NULL) {
+ if (!toBool)
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlXPathCompiledEval: No result on the stack.\n");
+ } else if (pctxt->valueNr > 0) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlXPathCompiledEval: %d object(s) left on the stack.\n",
+ pctxt->valueNr);
+ }
}
- /*
- * Pop all remaining objects from the stack.
- */
- if (pctxt->valueNr > 0) {
- xmlXPathObjectPtr tmp;
- int stack = 0;
+ if (resObjPtr)
+ *resObjPtr = resObj;
+ else
+ xmlXPathReleaseObject(ctxt, resObj);
- do {
- tmp = valuePop(pctxt);
- if (tmp != NULL) {
- stack++;
- xmlXPathReleaseObject(ctxt, tmp);
- }
- } while (tmp != NULL);
- if ((stack != 0) &&
- ((toBool) || ((resObj) && (*resObj))))
- {
- xmlGenericError(xmlGenericErrorContext,
- "xmlXPathCompiledEval: %d objects left on the stack.\n",
- stack);
- }
- }
-
- if ((pctxt->error != XPATH_EXPRESSION_OK) && (resObj) && (*resObj)) {
- xmlXPathFreeObject(*resObj);
- *resObj = NULL;
- }
pctxt->comp = NULL;
xmlXPathFreeParserContext(pctxt);
#ifndef LIBXML_THREAD_ENABLED
@@ -15043,22 +14998,21 @@
if (ctxt->comp != NULL)
xmlXPathFreeCompExpr(ctxt->comp);
ctxt->comp = comp;
- if (ctxt->cur != NULL)
- while (*ctxt->cur != 0) ctxt->cur++;
} else
#endif
{
xmlXPathCompileExpr(ctxt, 1);
- if ((ctxt->error == XPATH_EXPRESSION_OK) &&
- (ctxt->comp != NULL) &&
- (ctxt->comp->nbStep > 1) &&
- (ctxt->comp->last >= 0))
- {
+ CHECK_ERROR;
+
+ /* Check for trailing characters. */
+ if (*ctxt->cur != 0)
+ XP_ERROR(XPATH_EXPR_ERROR);
+
+ if ((ctxt->comp->nbStep > 1) && (ctxt->comp->last >= 0))
xmlXPathOptimizeExpression(ctxt->comp,
&ctxt->comp->steps[ctxt->comp->last]);
- }
}
- CHECK_ERROR;
+
xmlXPathRunEval(ctxt, 0);
}
@@ -15075,8 +15029,7 @@
xmlXPathObjectPtr
xmlXPathEval(const xmlChar *str, xmlXPathContextPtr ctx) {
xmlXPathParserContextPtr ctxt;
- xmlXPathObjectPtr res, tmp, init = NULL;
- int stack = 0;
+ xmlXPathObjectPtr res;
CHECK_CTXT(ctx)
@@ -15087,37 +15040,18 @@
return NULL;
xmlXPathEvalExpr(ctxt);
- if (ctxt->value == NULL) {
- xmlGenericError(xmlGenericErrorContext,
- "xmlXPathEval: evaluation failed\n");
- res = NULL;
- } else if ((*ctxt->cur != 0) && (ctxt->comp != NULL)
-#ifdef XPATH_STREAMING
- && (ctxt->comp->stream == NULL)
-#endif
- ) {
- xmlXPatherror(ctxt, __FILE__, __LINE__, XPATH_EXPR_ERROR);
+ if (ctxt->error != XPATH_EXPRESSION_OK) {
res = NULL;
} else {
res = valuePop(ctxt);
- }
-
- do {
- tmp = valuePop(ctxt);
- if (tmp != NULL) {
- if (tmp != init)
- stack++;
- xmlXPathReleaseObject(ctx, tmp);
+ if (res == NULL) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlXPathCompiledEval: No result on the stack.\n");
+ } else if (ctxt->valueNr > 0) {
+ xmlGenericError(xmlGenericErrorContext,
+ "xmlXPathCompiledEval: %d object(s) left on the stack.\n",
+ ctxt->valueNr);
}
- } while (tmp != NULL);
- if ((stack != 0) && (res != NULL)) {
- xmlGenericError(xmlGenericErrorContext,
- "xmlXPathEval: %d object left on the stack\n",
- stack);
- }
- if (ctxt->error != XPATH_EXPRESSION_OK) {
- xmlXPathFreeObject(res);
- res = NULL;
}
xmlXPathFreeParserContext(ctxt);
@@ -15172,46 +15106,14 @@
* @str: the XPath expression
* @ctxt: the XPath context
*
- * Evaluate the XPath expression in the given context.
+ * Alias for xmlXPathEval().
*
* Returns the xmlXPathObjectPtr resulting from the evaluation or NULL.
* the caller has to free the object.
*/
xmlXPathObjectPtr
xmlXPathEvalExpression(const xmlChar *str, xmlXPathContextPtr ctxt) {
- xmlXPathParserContextPtr pctxt;
- xmlXPathObjectPtr res, tmp;
- int stack = 0;
-
- CHECK_CTXT(ctxt)
-
- xmlXPathInit();
-
- pctxt = xmlXPathNewParserContext(str, ctxt);
- if (pctxt == NULL)
- return NULL;
- xmlXPathEvalExpr(pctxt);
-
- if ((*pctxt->cur != 0) || (pctxt->error != XPATH_EXPRESSION_OK)) {
- xmlXPatherror(pctxt, __FILE__, __LINE__, XPATH_EXPR_ERROR);
- res = NULL;
- } else {
- res = valuePop(pctxt);
- }
- do {
- tmp = valuePop(pctxt);
- if (tmp != NULL) {
- xmlXPathReleaseObject(ctxt, tmp);
- stack++;
- }
- } while (tmp != NULL);
- if ((stack != 0) && (res != NULL)) {
- xmlGenericError(xmlGenericErrorContext,
- "xmlXPathEvalExpression: %d object left on the stack\n",
- stack);
- }
- xmlXPathFreeParserContext(pctxt);
- return(res);
+ return(xmlXPathEval(str, ctxt));
}
/************************************************************************
diff --git a/xpointer.c b/xpointer.c
index d8a2e59..6a41f07 100644
--- a/xpointer.c
+++ b/xpointer.c
@@ -14,6 +14,11 @@
* daniel@veillard.com
*/
+/* To avoid EBCDIC trouble when parsing on zOS */
+#if defined(__MVS__)
+#pragma convert("ISO8859-1")
+#endif
+
#define IN_LIBXML
#include "libxml.h"
@@ -99,6 +104,10 @@
msg, extra);
return;
}
+
+ /* cleanup current last error */
+ xmlResetError(&ctxt->context->lastError);
+
ctxt->context->lastError.domain = XML_FROM_XPOINTER;
ctxt->context->lastError.code = error;
ctxt->context->lastError.level = XML_ERR_ERROR;
@@ -458,8 +467,6 @@
return(NULL);
if (end == NULL)
return(NULL);
- if (start->type != XPATH_POINT)
- return(NULL);
if (end->type != XPATH_POINT)
return(NULL);
@@ -542,7 +549,7 @@
/*
* Empty set ...
*/
- if (end->nodesetval->nodeNr <= 0)
+ if ((end->nodesetval == NULL) || (end->nodesetval->nodeNr <= 0))
return(NULL);
endNode = end->nodesetval->nodeTab[end->nodesetval->nodeNr - 1];
endIndex = -1;
@@ -949,8 +956,10 @@
if (name == NULL)
XP_ERROR(XPATH_EXPR_ERROR);
- if (CUR != '(')
+ if (CUR != '(') {
+ xmlFree(name);
XP_ERROR(XPATH_EXPR_ERROR);
+ }
NEXT;
level = 1;
@@ -959,6 +968,7 @@
buffer = (xmlChar *) xmlMallocAtomic(len * sizeof (xmlChar));
if (buffer == NULL) {
xmlXPtrErrMemory("allocating buffer");
+ xmlFree(name);
return;
}
@@ -983,6 +993,7 @@
*cur = 0;
if ((level != 0) && (CUR == 0)) {
+ xmlFree(name);
xmlFree(buffer);
XP_ERROR(XPTR_SYNTAX_ERROR);
}
@@ -1015,6 +1026,7 @@
if (name2 == NULL) {
CUR_PTR = left;
xmlFree(buffer);
+ xmlFree(name);
XP_ERROR(XPATH_EXPR_ERROR);
}
xmlXPtrEvalChildSeq(ctxt, name2);
@@ -1361,7 +1373,7 @@
*/
xmlNodeSetPtr set;
set = tmp->nodesetval;
- if ((set->nodeNr != 1) ||
+ if ((set == NULL) || (set->nodeNr != 1) ||
(set->nodeTab[0] != (xmlNodePtr) ctx->doc))
stack++;
} else
@@ -1796,8 +1808,8 @@
case XPATH_RANGE: {
xmlNodePtr node = tmp->user;
if (node != NULL) {
- if (node->type == XML_ATTRIBUTE_NODE) {
- /* TODO: Namespace Nodes ??? */
+ if ((node->type == XML_ATTRIBUTE_NODE) ||
+ (node->type == XML_NAMESPACE_DECL)) {
xmlXPathFreeObject(obj);
xmlXPtrFreeLocationSet(newset);
XP_ERROR(XPTR_SYNTAX_ERROR);
@@ -1892,8 +1904,8 @@
case XPATH_RANGE: {
xmlNodePtr node = tmp->user2;
if (node != NULL) {
- if (node->type == XML_ATTRIBUTE_NODE) {
- /* TODO: Namespace Nodes ??? */
+ if ((node->type == XML_ATTRIBUTE_NODE) ||
+ (node->type == XML_NAMESPACE_DECL)) {
xmlXPathFreeObject(obj);
xmlXPtrFreeLocationSet(newset);
XP_ERROR(XPTR_SYNTAX_ERROR);
@@ -2034,9 +2046,11 @@
xmlXPathFreeObject(set);
XP_ERROR(XPATH_MEMORY_ERROR);
}
- for (i = 0;i < oldset->locNr;i++) {
- xmlXPtrLocationSetAdd(newset,
- xmlXPtrCoveringRange(ctxt, oldset->locTab[i]));
+ if (oldset != NULL) {
+ for (i = 0;i < oldset->locNr;i++) {
+ xmlXPtrLocationSetAdd(newset,
+ xmlXPtrCoveringRange(ctxt, oldset->locTab[i]));
+ }
}
/*
diff --git a/xzlib.c b/xzlib.c
index 0dcb9f4..a839169 100644
--- a/xzlib.c
+++ b/xzlib.c
@@ -8,7 +8,7 @@
*/
#define IN_LIBXML
#include "libxml.h"
-#ifdef HAVE_LZMA_H
+#ifdef LIBXML_LZMA_ENABLED
#include <string.h>
#ifdef HAVE_ERRNO_H
@@ -31,10 +31,12 @@
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
#include <zlib.h>
#endif
+#ifdef LIBXML_LZMA_ENABLED
#include <lzma.h>
+#endif
#include "xzlib.h"
#include <libxml/xmlmemory.h>
@@ -74,7 +76,7 @@
char padding1[32]; /* padding allowing to cope with possible
extensions of above structure without
too much side effect */
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
/* zlib inflate or deflate stream */
z_stream zstrm; /* stream structure in-place (not a pointer) */
#endif
@@ -128,7 +130,7 @@
xz_error(state, LZMA_OK, NULL); /* clear error */
state->pos = 0; /* no uncompressed data yet */
state->strm.avail_in = 0; /* no input data yet */
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
state->zstrm.avail_in = 0; /* no input data yet */
#endif
}
@@ -270,7 +272,7 @@
return 0;
}
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
static int
xz_avail_zstrm(xz_statep state)
{
@@ -347,7 +349,7 @@
return 1;
}
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
/* Get next byte from input, or -1 if end or error. */
#define NEXT() ((strm->avail_in == 0 && xz_avail(state) == -1) ? -1 : \
@@ -406,14 +408,14 @@
state->strm = init;
state->strm.avail_in = 0;
state->strm.next_in = NULL;
- if (lzma_auto_decoder(&state->strm, UINT64_MAX, 0) != LZMA_OK) {
+ if (lzma_auto_decoder(&state->strm, 100000000, 0) != LZMA_OK) {
xmlFree(state->out);
xmlFree(state->in);
state->size = 0;
xz_error(state, LZMA_MEM_ERROR, "out of memory");
return -1;
}
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
/* allocate inflate memory */
state->zstrm.zalloc = Z_NULL;
state->zstrm.zfree = Z_NULL;
@@ -447,7 +449,7 @@
state->direct = 0;
return 0;
}
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
/* look for the gzip magic header bytes 31 and 139 */
if (strm->next_in[0] == 31) {
strm->avail_in--;
@@ -548,7 +550,7 @@
action = LZMA_FINISH;
/* decompress and handle errors */
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if (state->how == GZIP) {
state->zstrm.avail_in = (uInt) state->strm.avail_in;
state->zstrm.next_in = (Bytef *) state->strm.next_in;
@@ -581,18 +583,22 @@
xz_error(state, LZMA_DATA_ERROR, "compressed data error");
return -1;
}
+ if (ret == LZMA_PROG_ERROR) {
+ xz_error(state, LZMA_PROG_ERROR, "compression error");
+ return -1;
+ }
} while (strm->avail_out && ret != LZMA_STREAM_END);
/* update available output and crc check value */
state->have = had - strm->avail_out;
state->next = strm->next_out - state->have;
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
state->zstrm.adler =
crc32(state->zstrm.adler, state->next, state->have);
#endif
if (ret == LZMA_STREAM_END) {
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if (state->how == GZIP) {
if (gz_next4(state, &crc) == -1 || gz_next4(state, &len) == -1) {
xz_error(state, LZMA_DATA_ERROR, "unexpected end of file");
@@ -782,7 +788,7 @@
/* free memory and close file */
if (state->size) {
lzma_end(&(state->strm));
-#ifdef HAVE_ZLIB_H
+#ifdef LIBXML_ZLIB_ENABLED
if (state->init == 1)
inflateEnd(&(state->zstrm));
state->init = 0;
@@ -791,8 +797,10 @@
xmlFree(state->in);
}
xmlFree(state->path);
+ if ((state->msg != NULL) && (state->err != LZMA_MEM_ERROR))
+ xmlFree(state->msg);
ret = close(state->fd);
xmlFree(state);
return ret ? ret : LZMA_OK;
}
-#endif /* HAVE_LZMA_H */
+#endif /* LIBXML_LZMA_ENABLED */