...
diff --git a/1.9.10/README.txt b/1.9.10/README.txt new file mode 100644 index 0000000..c8f9179 --- /dev/null +++ b/1.9.10/README.txt
@@ -0,0 +1,51 @@ +== Jackson Json-processor == + +This is the Jackson Json-processor package. Project home page can be found +from: + +http://jackson.codehaus.org/ + +which also has links to support forums such as mailing lists, as well +as links to obtain source code and binary artifacts. + +=== Functionality === + +Jackson implements functionality for: + +* Reading (parsing) and writing (generation) of Json content +* Data-binding (data-mapping, [de-]serialization) support to + allow for converting between Json and Java objects +* Support for converting to/from other data formats and access APIs, + to improve interoperability. + +=== Requirements === + +Jackson can be used on standard J2SE 1.5 platform. Some effort is made +to support other non-standard platforms as well. + +=== Licensing === + +Jackson can be used for any purpose, but to (re)distribute it, distributors +(such as libraries and frameworks that use Jackson) will need to +choose which License they want to apply to distribution, and to use appropriate +jars that enclose license documentation. +No work needed beyond choosing the appropriate jar(s). + +Currently two Open Source licenses are available for use: + +* Apache License 2.0 (AL 2.0) +* Lesser/Library General Public License (LGPL 2.1) + +These licenses have proven adequate to cover all current use cases. + +=== Contributing === + +All code contributions are to be made according the +Contributor Agreement document found from under DEV/ directory within source +repository and downloadable source archives. + +CA is needed to allow Jackson project to publish under different Licenses, +and to indicate good faith effort to comply with copyright rules governing +use and distribution of the source code (and its equivalents as outlined +in the agreement) involved. This is also useful for (re)distributors to +reduce their need to independently verify origin of source code.
diff --git a/1.9.10/ant/build-clirr.xml b/1.9.10/ant/build-clirr.xml new file mode 100644 index 0000000..05af071 --- /dev/null +++ b/1.9.10/ant/build-clirr.xml
@@ -0,0 +1,21 @@ +<?xml version="1.0" standalone="yes" ?> +<project name="Compatibility testing to ensure compatibility between minor versions" + default="check-compatibility" +> + <path id="clirr.lib"> + <fileset dir="${basedir}/regression" includes="clirr*.jar" /> + </path> + <taskdef classpathref="clirr.lib" resource="clirrtask.properties" /> + + <target name="check-compatibility"> + <clirr> + <origFiles dir="${basedir}/regression"> + <include name="jackson*.jar" /> + </origFiles> + <newFiles dir="${basedir}/build"> + <include name="jackson-core-asl*.jar" /> + <include name="jackson-mapper-asl*.jar" /> + </newFiles> + </clirr> + </target> +</project>
diff --git a/1.9.10/ant/build-coverage.xml b/1.9.10/ant/build-coverage.xml new file mode 100644 index 0000000..d4522e2 --- /dev/null +++ b/1.9.10/ant/build-coverage.xml
@@ -0,0 +1,89 @@ +<?xml version="1.0" standalone='yes'?> + +<!-- This Ant build file fragment contains targets needed to run + code coverage analysis + --> +<project name="Code coverage tasks for Jackson" basedir="."> + + <!-- Support for Cobertura code coverage tool --> + <property name="cobertura.coverage.dir" value="${dir.build}/coverage" /> + <path id="cobertura.lib"> + <fileset dir="${dir.lib}/cobertura" includes="*.jar" /> + <fileset dir="${dir.lib}/ext/asm" includes="*.jar" /> + </path> + <taskdef classpathref="cobertura.lib" resource="tasks.properties" /> + + <!-- Code coverage using Cobertura: --> + + <target name="build.coverage" depends="test.compile"> + <!-- First, need to instrument classes --> + <property name="cobertura.instr.dir" value="${dir.build}/cobertura-instr" /> + <cobertura-instrument todir="${cobertura.instr.dir}"> + <fileset dir="${dir.build.classes.core}"> + <include name="org/codehaus/jackson/**/*.class"/> + </fileset> + <fileset dir="${dir.build.classes.mapper}"> + <include name="org/codehaus/jackson/map/**/*.class"/> + <include name="org/codehaus/jackson/node/**/*.class"/> + <include name="org/codehaus/jackson/schema/**/*.class"/> + </fileset> + </cobertura-instrument> + + <junit fork="once" printsummary="yes" haltonfailure="no" showoutput="yes" + maxmemory="300M" + > + <sysproperty key="net.sourceforge.cobertura.datafile" file="${basedir}/cobertura.ser" /> + <batchtest fork="no" todir="${dir.test.xmlresults}"> + <fileset dir="${dir.test.classes}"> + <!-- Need to exclude inner classes... --> + <exclude name="**/*$*.class"/> + <!-- and one particularly slow test? --> + <exclude name="**/TestStringGeneration.class"/> + <include name="**/Test*.class"/> + </fileset> + </batchtest> + <formatter type="xml" /> + <!-- Order is important: must first have instrumented classes --> + <classpath location="${cobertura.instr.dir}" /> + + <!-- Actual tests: --> + <classpath path="${dir.test.classes}" /> + <!-- Cobertura support: --> + <classpath refid="cobertura.lib" /> + <classpath> + <!-- Note: while this may seem superfluous, it is actually + needed because Cobertura does not instrument things + like interfaces. So some of the class files are + needed from non-instrumented location + --> + <pathelement path="${dir.build.classes.core}" /> + <pathelement path="${dir.build.classes.mapper}" /> + <pathelement path="${dir.build.classes.xc}" /> + <path refid="test-libs"/> + </classpath> + </junit> + <!-- and then reporting --> + <cobertura-report format="html" destdir="${cobertura.coverage.dir}" > + <fileset dir="${dir.src.java.core}"> + <include name="org/codehaus/**/*.java" /> + </fileset> + <fileset dir="${dir.src.java.mapper}"> + <include name="org/codehaus/**/*.java" /> + </fileset> + <fileset dir="${dir.src.java.xc}"> + <include name="org/codehaus/**/*.java" /> + </fileset> + </cobertura-report> + + <!-- Let's also report junit results? (at least if they fail) --> +<!-- + <junitreport todir="${dir.test.results}"> + <fileset dir="${dir.test.xmlresults}"> + <include name="TEST-*.xml" /> + </fileset> + <report todir="${dir.test.results}" /> + </junitreport> +--> + </target> + +</project>
diff --git a/1.9.10/ant/build-jarjar-asm.xml b/1.9.10/ant/build-jarjar-asm.xml new file mode 100644 index 0000000..94f5968 --- /dev/null +++ b/1.9.10/ant/build-jarjar-asm.xml
@@ -0,0 +1,17 @@ +<?xml version="1.0" standalone="yes" ?> +<project name="Ant task(s) to repackage Asm under Jackson class hierarchy, to + avoid version problems" + default="repackage-asm" +> + <target name="repackage-asm"> + <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" + classpath="lib/ext/jarjar/jarjar-1.0.jar" + /> + <jarjar jarfile="lib/repackaged/jackson-asm-3.3.jar"> + <zipfileset src="lib/ext/asm/asm-3.3.jar"/> + <rule pattern="org.objectweb.asm.**" + result="org.codehaus.jackson.org.objectweb.asm.@1" + /> + </jarjar> + </target> +</project>
diff --git a/1.9.10/ant/build-maven-deploy.xml b/1.9.10/ant/build-maven-deploy.xml new file mode 100644 index 0000000..76aff57 --- /dev/null +++ b/1.9.10/ant/build-maven-deploy.xml
@@ -0,0 +1,220 @@ +<?xml version="1.0" standalone='yes'?> +<!-- This Ant build file fragment contains targets for + deploying artifacts to Maven repositories + --> + +<project name="Tasks for Maven deployment" basedir="." + xmlns:artifact="antlib:org.apache.maven.artifact.ant" +> + + <typedef resource="org/apache/maven/artifact/ant/antlib.xml" + uri="urn:maven-artifact-ant" + > + <classpath> + <fileset dir="${dir.lib}/ant"> + <include name="maven-ant*.jar" /> + </fileset> + </classpath> + </typedef> + + <target name="maven.init"> + <!-- First regular release poms --> + <artifact:pom id="pom.asl.core" file="${dir.dist}/jackson-core-asl-${IMPL_VERSION}.pom" /> + <artifact:pom id="pom.asl.mapper" file="${dir.dist}/jackson-mapper-asl-${IMPL_VERSION}.pom" /> + <artifact:pom id="pom.lgpl.core" file="${dir.dist}/jackson-core-lgpl-${IMPL_VERSION}.pom" /> + <artifact:pom id="pom.lgpl.mapper" file="${dir.dist}/jackson-mapper-lgpl-${IMPL_VERSION}.pom" /> + <artifact:pom id="pom.jaxrs" file="${dir.dist}/jackson-jaxrs-${IMPL_VERSION}.pom" /> + <artifact:pom id="pom.xc" file="${dir.dist}/jackson-xc-${IMPL_VERSION}.pom" /> + <artifact:pom id="pom.smile" file="${dir.dist}/jackson-smile-${IMPL_VERSION}.pom" /> + <artifact:pom id="pom.mrbean" file="${dir.dist}/jackson-mrbean-${IMPL_VERSION}.pom" /> + + <!-- And then snapshots --> + <artifact:pom id="pom.snapshot.core" file="${dir.snapshot}/jackson-core-asl-${IMPL_VERSION}-SNAPSHOT.pom" /> + <artifact:pom id="pom.snapshot.mapper" file="${dir.snapshot}/jackson-mapper-asl-${IMPL_VERSION}-SNAPSHOT.pom" /> + <artifact:pom id="pom.snapshot.jaxrs" file="${dir.snapshot}/jackson-jaxrs-${IMPL_VERSION}-SNAPSHOT.pom" /> + <artifact:pom id="pom.snapshot.xc" file="${dir.snapshot}/jackson-xc-${IMPL_VERSION}-SNAPSHOT.pom" /> + <artifact:pom id="pom.snapshot.smile" file="${dir.snapshot}/jackson-smile-${IMPL_VERSION}-SNAPSHOT.pom" /> + <artifact:pom id="pom.snapshot.mrbean" file="${dir.snapshot}/jackson-mrbean-${IMPL_VERSION}-SNAPSHOT.pom" /> + </target> + + <target name="maven.repos" depends="maven.init"> + <!-- need user, password: --> + <fail unless="user" message="Must define -Duser" /> + <fail unless="password" message="Must define -Dpassword" /> + + <!-- uploads done using webdav, need to register --> + <artifact:install-provider artifactId="wagon-webdav" version="1.0-beta-1" /> + + <echo message="(authenticating as user '${user}')" /> + <artifact:remoteRepository id="repo.release" + url="dav:https://dav.codehaus.org/repository/jackson" + > + <authentication username="${user}" password="${password}" /> + <releases enabled="true"/> + <snapshots enabled="false"/> + </artifact:remoteRepository> + + <artifact:remoteRepository id="repo.snapshot" + url="dav:https://dav.codehaus.org/snapshots.repository/jackson" + > + <authentication username="${user}" password="${password}" /> + <releases enabled="false"/> + <snapshots enabled="true"/> + </artifact:remoteRepository> + </target> + + <!-- target for installing release versions locally --> + <target name="maven.local.release" depends="maven.init"> + <artifact:install pomRefId="pom.asl.core" + file="${dir.dist}/jackson-core-asl-${IMPL_VERSION}.jar"> + <attach file="${dir.dist}/jackson-core-asl-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + <attach file="${dir.dist}/jackson-core-asl-${IMPL_VERSION}-javadoc.jar" type="jar" classifier="sources" /> + </artifact:install> + <artifact:install pomRefId="pom.asl.mapper" + file="${dir.dist}/jackson-mapper-asl-${IMPL_VERSION}.jar"> + <attach file="${dir.dist}/jackson-mapper-asl-${IMPL_VERSION}-sources.jar" type="source" classifier="sources" /> + <attach file="${dir.dist}/jackson-mapper-asl-${IMPL_VERSION}-javadoc.jar" type="source" classifier="sources" /> + </artifact:install> + <artifact:install pomRefId="pom.lgpl.core" + file="${dir.dist}/jackson-core-lgpl-${IMPL_VERSION}.jar"> + <attach file="${dir.dist}/jackson-core-lgpl-${IMPL_VERSION}-sources.jar" type="source" classifier="sources" /> + </artifact:install> + <artifact:install pomRefId="pom.lgpl.mapper" + file="${dir.dist}/jackson-mapper-lgpl-${IMPL_VERSION}.jar"> + <attach file="${dir.dist}/jackson-mapper-lgpl-${IMPL_VERSION}-sources.jar" type="source" classifier="sources" /> + </artifact:install> + <artifact:install pomRefId="pom.jaxrs" + file="${dir.dist}/jackson-jaxrs-${IMPL_VERSION}.jar"> + <attach file="${dir.dist}/jackson-jaxrs-${IMPL_VERSION}-sources.jar" type="source" classifier="sources" /> + </artifact:install> + <artifact:install pomRefId="pom.xc" + file="${dir.dist}/jackson-xc-${IMPL_VERSION}.jar"> + <attach file="${dir.dist}/jackson-xc-${IMPL_VERSION}-sources.jar" type="source" classifier="sources" /> + </artifact:install> + <artifact:install pomRefId="pom.smile" + file="${dir.dist}/jackson-smile-${IMPL_VERSION}.jar"> + <attach file="${dir.dist}/jackson-smile-${IMPL_VERSION}-sources.jar" type="source" classifier="sources" /> + </artifact:install> + <artifact:install pomRefId="pom.mrbean" + file="${dir.dist}/jackson-mrbean-${IMPL_VERSION}.jar"> + <attach file="${dir.dist}/jackson-mrbean-${IMPL_VERSION}-sources.jar" type="source" classifier="sources" /> + </artifact:install> + </target> + + <!-- target for deploying SNAPSHOT versions in "real" Maven + - repository + - + - about settings: + - + - + uniqueVersion=true, so we get proper (?) names + --> + <target name="maven.remote.snapshot" depends="maven.repos"> + + <artifact:deploy pomRefId="pom.snapshot.core" uniqueVersion="true" + file="${dir.dist}/jackson-core-asl-${IMPL_VERSION}.jar" + > + <remoteRepository refid="repo.snapshot" /> + <attach file="${dir.dist}/jackson-core-asl-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + </artifact:deploy> + + <artifact:deploy pomRefId="pom.snapshot.mapper" uniqueVersion="true" + file="${dir.dist}/jackson-mapper-asl-${IMPL_VERSION}.jar" + > + <remoteRepository refid="repo.snapshot" /> + <attach file="${dir.dist}/jackson-mapper-asl-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + </artifact:deploy> + + <artifact:deploy pomRefId="pom.snapshot.jaxrs" uniqueVersion="true" + file="${dir.dist}/jackson-jaxrs-${IMPL_VERSION}.jar" + > + <remoteRepository refid="repo.snapshot" /> + <attach file="${dir.dist}/jackson-jaxrs-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + </artifact:deploy> + + <artifact:deploy pomRefId="pom.snapshot.xc" uniqueVersion="true" + file="${dir.dist}/jackson-xc-${IMPL_VERSION}.jar" + > + <remoteRepository refid="repo.snapshot" /> + <attach file="${dir.dist}/jackson-xc-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + </artifact:deploy> + + <artifact:deploy pomRefId="pom.snapshot.smile" uniqueVersion="true" + file="${dir.dist}/jackson-smile-${IMPL_VERSION}.jar" + > + <remoteRepository refid="repo.snapshot" /> + <attach file="${dir.dist}/jackson-smile-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + </artifact:deploy> + + <artifact:deploy pomRefId="pom.snapshot.mrbean" uniqueVersion="true" + file="${dir.dist}/jackson-mrbean-${IMPL_VERSION}.jar" + > + <remoteRepository refid="repo.snapshot" /> + <attach file="${dir.dist}/jackson-mrbean-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + </artifact:deploy> + </target> + + <!-- target for deploying release versions in "real" Maven + - + - about settings: "uniqueVersion" set to false, to support + - possible redeployment + --> + <target name="maven.remote.release" depends="maven.repos"> + <artifact:deploy pomRefId="pom.asl.core" uniqueVersion="false" + file="${dir.dist}/jackson-core-asl-${IMPL_VERSION}.jar" + > + <remoteRepository refid="repo.release" /> + <attach file="${dir.dist}/jackson-core-asl-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + </artifact:deploy> + + <artifact:deploy pomRefId="pom.asl.mapper" uniqueVersion="false" + file="${dir.dist}/jackson-mapper-asl-${IMPL_VERSION}.jar" + > + <remoteRepository refid="repo.release" /> + <attach file="${dir.dist}/jackson-mapper-asl-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + </artifact:deploy> + + <artifact:deploy pomRefId="pom.lgpl.core" uniqueVersion="false" + file="${dir.dist}/jackson-core-lgpl-${IMPL_VERSION}.jar" + > + <remoteRepository refid="repo.release" /> + <attach file="${dir.dist}/jackson-core-lgpl-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + </artifact:deploy> + + <artifact:deploy pomRefId="pom.lgpl.mapper" uniqueVersion="false" + file="${dir.dist}/jackson-mapper-lgpl-${IMPL_VERSION}.jar" + > + <remoteRepository refid="repo.release" /> + <attach file="${dir.dist}/jackson-mapper-lgpl-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + </artifact:deploy> + + <artifact:deploy pomRefId="pom.jaxrs" uniqueVersion="false" + file="${dir.dist}/jackson-jaxrs-${IMPL_VERSION}.jar" + > + <remoteRepository refid="repo.release" /> + <attach file="${dir.dist}/jackson-jaxrs-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + </artifact:deploy> + + <artifact:deploy pomRefId="pom.xc" uniqueVersion="false" + file="${dir.dist}/jackson-xc-${IMPL_VERSION}.jar" + > + <remoteRepository refid="repo.release" /> + <attach file="${dir.dist}/jackson-xc-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + </artifact:deploy> + + <artifact:deploy pomRefId="pom.smile" uniqueVersion="false" + file="${dir.dist}/jackson-smile-${IMPL_VERSION}.jar" + > + <remoteRepository refid="repo.release" /> + <attach file="${dir.dist}/jackson-smile-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + </artifact:deploy> + + <artifact:deploy pomRefId="pom.mrbean" uniqueVersion="false" + file="${dir.dist}/jackson-mrbean-${IMPL_VERSION}.jar" + > + <remoteRepository refid="repo.release" /> + <attach file="${dir.dist}/jackson-mrbean-${IMPL_VERSION}-sources.jar" type="jar" classifier="sources" /> + </artifact:deploy> + + </target> + +</project>
diff --git a/1.9.10/ant/build-mini.xml b/1.9.10/ant/build-mini.xml new file mode 100644 index 0000000..a9ca05f --- /dev/null +++ b/1.9.10/ant/build-mini.xml
@@ -0,0 +1,45 @@ +<?xml version="1.0" standalone='yes'?> +<!-- This Ant build file fragment contains target(s) needed to build + "mini" version of the core parser+generator package + --> + +<project name="Mini-build tasks for Jackson" basedir="."> + <property name="dir.build.classes.mini" location="${dir.build}/classes/mini" /> + <target name="compile.mini" depends="prepare"> + <mkdir dir="${dir.build.classes.mini}" /> + <javac srcdir="${dir.src.java.core}" destdir="${dir.build.classes.mini}" + source="1.5" target="1.5" + debug="false" includeantruntime="false" + > + <compilerarg value="-Xlint:unchecked" /> + <exclude name="**/package-info.java" /> + <!-- and do NOT compile things that we can live without: --> + <exclude name="org/codehaus/jackson/annotate/*.java" /> + <exclude name="org/codehaus/jackson/util/TokenBuffer.java" /> + <include name="org/codehaus/**/*.java" /> + </javac> + <copy file="${dir.build}/VERSION.txt" toDir="${dir.build.classes.core}/org/codehaus/jackson/impl" /> + + <!-- + --> + </target> + + <target name="jar.mini" depends="compile.mini"> + <jar jarfile="${dir.build}/jackson-mini-${IMPL_VERSION}.jar" filesonly="true" > + <manifest> + <attribute name="Built-By" value="${user.name}"/> + <attribute name="Specification-Title" value="${JSON_TITLE}"/> + <attribute name="Specification-Version" value="${JSON_VERSION}"/> + <attribute name="Specification-Vendor" value="${JSON_VENDOR}"/> + <attribute name="Implementation-Title" value="${IMPL_TITLE_CORE}"/> + <attribute name="Implementation-Version" value="${IMPL_VERSION}"/> + <attribute name="Implementation-Vendor" value="${IMPL_VENDOR}"/> + </manifest> + <fileset dir="${dir.build.classes.mini}"> + <include name="org/codehaus/jackson/**/*.class" /> + </fileset> + </jar> + </target> + +</project> +
diff --git a/1.9.10/ant/build-osgi.xml b/1.9.10/ant/build-osgi.xml new file mode 100644 index 0000000..2d0ba75 --- /dev/null +++ b/1.9.10/ant/build-osgi.xml
@@ -0,0 +1,426 @@ +<?xml version="1.0" standalone='yes'?> +<!-- This Ant build file fragment contains targets needed to build + distributable OSGi-aware artifacts, + as well as "jackson-all" non-bundle jar + --> + +<project name="OSGi export tasks for Jackson" basedir="."> + + <!-- Need BND task for OSGi bundle/metadata creation --> + <taskdef name="osgiJar" classname="net.luminis.build.plugin.bnd.BuildTask"> + <classpath> + <fileset dir="${basedir}/lib/ant" includes="bndtask*.jar" /> + </classpath> + </taskdef> + + <target name="jars.asl" depends="jar.core.asl, jar.mapper.asl" /> + <target name="jars.lgpl" depends="jar.core.lgpl, jar.mapper.lgpl" /> + <target name="jars.other" depends="jar.jaxrs, jar.xc, jar.smile, jar.mrbean" /> + <target name="jars.tools" depends="jar.tool.smile" /> + + <!-- Let's build our JARs as OSGi bundles; then they work + both within and outside of OSGi containers + --> + + <!-- Jackson requires Java5 (enums, some generics) --> + <!-- 02-Feb-2011, tatu: As per [JACKSON-481], it looks like OSGi + requires adding _all_ applicable envs... yuck + --> + <property name="REQ_JDK_VERSION" value="J2SE-1.5, JavaSE-1.6" /> + + <!-- ASL-licensed: core, mapper jars --> + + <target name="jar.core.asl" depends="compile.core"> + <osgiJar + outputdir="${dir.build}" + bundleName="${IMPL_TITLE_CORE}" + bundleVendor="${IMPL_VENDOR}" + bundleSymbolicName="jackson-core-asl" + bundleVersion="${IMPL_VERSION}" + bundleLicense="http://www.apache.org/licenses/LICENSE-2.0.txt" + bundleRequiredExecutionEnvironment="${REQ_JDK_VERSION}" + filename="jackson-core-asl-${IMPL_VERSION}" + exportpackage=" +org.codehaus.jackson;version=${IMPL_VERSION}, +org.codehaus.jackson.annotate;version=${IMPL_VERSION}, +org.codehaus.jackson.format;version=${IMPL_VERSION}, +org.codehaus.jackson.impl;version=${IMPL_VERSION}, +org.codehaus.jackson.io;version=${IMPL_VERSION}, +org.codehaus.jackson.sym;version=${IMPL_VERSION}, +org.codehaus.jackson.type;version=${IMPL_VERSION}, +org.codehaus.jackson.util;version=${IMPL_VERSION} +" + privatePackage="" + includeResource="META-INF=release-notes/asl" + includeIncludeResourceHeader="false" + > + <classpath><pathelement path="${dir.build.classes.core}" /></classpath> + <manifest> + <attribute name="Built-By" value="${user.name}"/> + <attribute name="Implementation-Title" value="${IMPL_TITLE_CORE}"/> + <attribute name="Implementation-Version" value="${IMPL_VERSION}"/> + <attribute name="Implementation-Vendor" value="${IMPL_VENDOR}"/> + <attribute name="Specification-Title" value="${JSON_TITLE}"/> + <attribute name="Specification-Version" value="${JSON_VERSION}"/> + <attribute name="Specification-Vendor" value="${JSON_VENDOR}"/> + </manifest> + </osgiJar> + </target> + + <target name="jar.mapper.asl" depends="compile.mapper"> + <osgiJar + outputdir="${dir.build}" + bundleName="${IMPL_TITLE_MAPPER}" + bundleVendor="${IMPL_VENDOR}" + bundleSymbolicName="jackson-mapper-asl" + bundleVersion="${IMPL_VERSION}" + bundleLicense="http://www.apache.org/licenses/LICENSE-2.0.txt" + bundleRequiredExecutionEnvironment="${REQ_JDK_VERSION}" + filename="jackson-mapper-asl-${IMPL_VERSION}" + importPackage=" +org.codehaus.jackson;version='${IMPL_VERSION}', +org.codehaus.jackson.annotate;version='${IMPL_VERSION}', +org.codehaus.jackson.format;version='${IMPL_VERSION}', +org.codehaus.jackson.impl;version='${IMPL_VERSION}', +org.codehaus.jackson.io;version='${IMPL_VERSION}', +org.codehaus.jackson.type;version='${IMPL_VERSION}', +org.codehaus.jackson.util;version='${IMPL_VERSION}', +org.xml.sax,org.w3c.dom, +javax.xml.datatype, javax.xml.namespace, javax.xml.parsers +" + dynamicImportPackage=" +org.joda.time, org.joda.time.format, +org.w3c.dom.ls, org.w3c.dom.bootstrap" + exportpackage=" +org.codehaus.jackson.map;version=${IMPL_VERSION}, +org.codehaus.jackson.map.annotate;version=${IMPL_VERSION}, +org.codehaus.jackson.map.deser;version=${IMPL_VERSION}, +org.codehaus.jackson.map.deser.impl;version=${IMPL_VERSION}, +org.codehaus.jackson.map.deser.std;version=${IMPL_VERSION}, +org.codehaus.jackson.map.exc;version=${IMPL_VERSION}, +org.codehaus.jackson.map.ext;version=${IMPL_VERSION}, +org.codehaus.jackson.map.introspect;version=${IMPL_VERSION}, +org.codehaus.jackson.map.jsontype;version=${IMPL_VERSION}, +org.codehaus.jackson.map.jsontype.impl;version=${IMPL_VERSION}, +org.codehaus.jackson.map.module;version=${IMPL_VERSION}, +org.codehaus.jackson.map.ser;version=${IMPL_VERSION}, +org.codehaus.jackson.map.ser.impl;version=${IMPL_VERSION}, +org.codehaus.jackson.map.ser.std;version=${IMPL_VERSION}, +org.codehaus.jackson.map.type;version=${IMPL_VERSION}, +org.codehaus.jackson.map.util;version=${IMPL_VERSION}, +org.codehaus.jackson.node;version=${IMPL_VERSION}, +org.codehaus.jackson.schema;version=${IMPL_VERSION} +" + privatePackage=" +org.codehaus.jackson.map.ext +" + includeResource="META-INF=release-notes/asl" + includeIncludeResourceHeader="false" + > + <classpath><pathelement path="${dir.build.classes.mapper}" /></classpath> + <manifest> + <attribute name="Built-By" value="${user.name}"/> + <attribute name="Implementation-Title" value="${IMPL_TITLE_MAPPER}"/> + <attribute name="Implementation-Version" value="${IMPL_VERSION}"/> + <attribute name="Implementation-Vendor" value="${IMPL_VENDOR}"/> + </manifest> + </osgiJar> + </target> + + <!-- LGPL-licensed: core, mapper jars --> + + <target name="jar.core.lgpl" depends="compile.core"> + <osgiJar + outputdir="${dir.build}" + bundleName="${IMPL_TITLE_CORE}" + bundleVendor="${IMPL_VENDOR}" + bundleSymbolicName="jackson-core-lgpl" + bundleVersion="${IMPL_VERSION}" + bundleLicense="http://www.gnu.org/licenses/lgpl-2.1.html" + bundleRequiredExecutionEnvironment="${REQ_JDK_VERSION}" + filename="jackson-core-lgpl-${IMPL_VERSION}" + exportpackage=' +org.codehaus.jackson;version=${IMPL_VERSION}, +org.codehaus.jackson.annotate;version=${IMPL_VERSION}, +org.codehaus.jackson.format;version=${IMPL_VERSION}, +org.codehaus.jackson.impl;version=${IMPL_VERSION}, +org.codehaus.jackson.io;version=${IMPL_VERSION}, +org.codehaus.jackson.sym;version=${IMPL_VERSION}, +org.codehaus.jackson.type;version=${IMPL_VERSION}, +org.codehaus.jackson.util;version=${IMPL_VERSION} +' + privatePackage="" + includeResource="META-INF=release-notes/lgpl" + includeIncludeResourceHeader="false" + > + <classpath> + <pathelement path="${dir.build.classes.core}" /> + </classpath> + <manifest> + <attribute name="Built-By" value="${user.name}"/> + <attribute name="Implementation-Title" value="${IMPL_TITLE_CORE}"/> + <attribute name="Implementation-Version" value="${IMPL_VERSION}"/> + <attribute name="Implementation-Vendor" value="${IMPL_VENDOR}"/> + <attribute name="Specification-Title" value="${JSON_TITLE}"/> + <attribute name="Specification-Version" value="${JSON_VERSION}"/> + <attribute name="Specification-Vendor" value="${JSON_VENDOR}"/> + </manifest> + </osgiJar> + </target> + + <target name="jar.mapper.lgpl" depends="compile.mapper"> + <osgiJar + outputdir="${dir.build}" + bundleName="${IMPL_TITLE_MAPPER}" + bundleVendor="${IMPL_VENDOR}" + bundleSymbolicName="jackson-mapper-lgpl" + bundleVersion="${IMPL_VERSION}" + bundleLicense="http://www.gnu.org/licenses/lgpl-2.1.html" + bundleRequiredExecutionEnvironment="${REQ_JDK_VERSION}" + filename="jackson-mapper-lgpl-${IMPL_VERSION}" + importPackage=" +org.codehaus.jackson;version='${IMPL_VERSION}', +org.codehaus.jackson.annotate;version='${IMPL_VERSION}', +org.codehaus.jackson.format;version='${IMPL_VERSION}', +org.codehaus.jackson.impl;version='${IMPL_VERSION}', +org.codehaus.jackson.io;version='${IMPL_VERSION}', +org.codehaus.jackson.type;version='${IMPL_VERSION}', +org.codehaus.jackson.util;version='${IMPL_VERSION}', +org.xml.sax, org.w3c.dom, +javax.xml.datatype, javax.xml.namespace, javax.xml.parsers +" + dynamicImportPackage=" +org.joda.time, org.joda.time.format, +org.w3c.dom.ls, org.w3c.dom.bootstrap" + exportpackage=" +org.codehaus.jackson.map;version=${IMPL_VERSION}, +org.codehaus.jackson.map.annotate;version=${IMPL_VERSION}, +org.codehaus.jackson.map.deser;version=${IMPL_VERSION}, +org.codehaus.jackson.map.deser.impl;version=${IMPL_VERSION}, +org.codehaus.jackson.map.deser.std;version=${IMPL_VERSION}, +org.codehaus.jackson.map.exc;version=${IMPL_VERSION}, +org.codehaus.jackson.map.ext;version=${IMPL_VERSION}, +org.codehaus.jackson.map.introspect;version=${IMPL_VERSION}, +org.codehaus.jackson.map.jsontype;version=${IMPL_VERSION}, +org.codehaus.jackson.map.jsontype.impl;version=${IMPL_VERSION}, +org.codehaus.jackson.map.module;version=${IMPL_VERSION}, +org.codehaus.jackson.map.ser;version=${IMPL_VERSION}, +org.codehaus.jackson.map.ser.impl;version=${IMPL_VERSION}, +org.codehaus.jackson.map.ser.std;version=${IMPL_VERSION}, +org.codehaus.jackson.map.type;version=${IMPL_VERSION}, +org.codehaus.jackson.map.util;version=${IMPL_VERSION}, +org.codehaus.jackson.node;version=${IMPL_VERSION}, +org.codehaus.jackson.schema;version=${IMPL_VERSION} +" + privatePackage=" +org.codehaus.jackson.map.ext +" + includeResource="META-INF=release-notes/lgpl" + includeIncludeResourceHeader="false" + > + <classpath><pathelement path="${dir.build.classes.mapper}" /></classpath> + <manifest> + <attribute name="Built-By" value="${user.name}"/> + <attribute name="Implementation-Title" value="${IMPL_TITLE_MAPPER}"/> + <attribute name="Implementation-Version" value="${IMPL_VERSION}"/> + <attribute name="Implementation-Vendor" value="${IMPL_VENDOR}"/> + </manifest> + </osgiJar> + </target> + + <!-- Others, ASL+LGPL licensed, just a single jar + (OSGi nominally just lists ASL, not sure if/how to + add multiple?) + --> + + <!-- First, JAX-RS provider jar --> + + <!-- 06-May-2009, tatu: Removed META-INF/services + registration as it could conflict with other + JAX-RS json providers. + + includeResource="META-INF/services=${dir.src.resource.jaxrs}" + + --> + <target name="jar.jaxrs" depends="compile.jaxrs"> + <osgiJar + outputdir="${dir.build}" + bundleName="${IMPL_TITLE_JAXRS}" + bundleVendor="${IMPL_VENDOR}" + bundleSymbolicName="jackson-jaxrs" + bundleVersion="${IMPL_VERSION}" + bundleLicense="http://www.apache.org/licenses/LICENSE-2.0.txt" + bundleRequiredExecutionEnvironment="${REQ_JDK_VERSION}" + filename="jackson-jaxrs-${IMPL_VERSION}" + importPackage=" +javax.ws.rs +,javax.ws.rs.core +,javax.ws.rs.ext +,org.codehaus.jackson;version='${IMPL_VERSION}' +,org.codehaus.jackson.map;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.annotate;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.introspect;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.type;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.util;version='${IMPL_VERSION}' +,org.codehaus.jackson.type;version='${IMPL_VERSION}' +,org.codehaus.jackson.util;version='${IMPL_VERSION}' +" + dynamicImportPackage="org.codehaus.jackson.xc" + exportpackage=" +org.codehaus.jackson.jaxrs;version=${IMPL_VERSION}" + includeResource="META-INF=release-notes/asl" + includeIncludeResourceHeader="false" + > + <classpath><pathelement path="${dir.build.classes.jaxrs}" /></classpath> + <manifest> + <attribute name="Built-By" value="${user.name}"/> + <attribute name="Implementation-Title" value="${IMPL_TITLE_JAXRS}"/> + <attribute name="Implementation-Version" value="${IMPL_VERSION}"/> + <attribute name="Implementation-Vendor" value="${IMPL_VENDOR}"/> + </manifest> + </osgiJar> + </target> + + <!-- "Mister Bean", the Bean Materializer --> + <target name="jar.mrbean" depends="compile.mrbean"> + <osgiJar + outputdir="${dir.build}" + bundleName="${IMPL_TITLE_MRBEAN}" + bundleVendor="${IMPL_VENDOR}" + bundleSymbolicName="jackson-mrbean" + bundleVersion="${IMPL_VERSION}" + bundleLicense="http://www.apache.org/licenses/LICENSE-2.0.txt" + bundleRequiredExecutionEnvironment="${REQ_JDK_VERSION}" + filename="jackson-mrbean-${IMPL_VERSION}" + importPackage=" +org.codehaus.jackson;version='${IMPL_VERSION}' +,org.codehaus.jackson.map;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.type;version='${IMPL_VERSION}' +,org.codehaus.jackson.type;version='${IMPL_VERSION}' +,org.codehaus.jackson.util;version='${IMPL_VERSION}' +" + privatePackage="!org.codehaus.jackson.mrbean, *" + exportpackage=" +org.codehaus.jackson.mrbean;version=${IMPL_VERSION}" + includeResource="META-INF=release-notes/asl" + includeIncludeResourceHeader="false" + > + <classpath><pathelement path="${dir.build.classes.mrbean}" /></classpath> + <manifest> + <attribute name="Built-By" value="${user.name}"/> + <attribute name="Implementation-Title" value="${IMPL_TITLE_MRBEAN}"/> + <attribute name="Implementation-Version" value="${IMPL_VERSION}"/> + <attribute name="Implementation-Vendor" value="${IMPL_VENDOR}"/> + </manifest> + </osgiJar> + </target> + + <!-- Then XC (Xml Compatibility) jar, since 1.1 --> + <target name="jar.xc" depends="compile.xc"> + <osgiJar + outputdir="${dir.build}" + bundleName="${IMPL_TITLE_XC}" + bundleVendor="${IMPL_VENDOR}" + bundleSymbolicName="jackson-xc" + bundleVersion="${IMPL_VERSION}" + bundleLicense="http://www.apache.org/licenses/LICENSE-2.0.txt" + bundleRequiredExecutionEnvironment="${REQ_JDK_VERSION}" + filename="jackson-xc-${IMPL_VERSION}" + importPackage=" +javax.activation +,javax.xml.bind +,javax.xml.bind.annotation +,javax.xml.bind.annotation.adapters +,org.codehaus.jackson;version='${IMPL_VERSION}' +,org.codehaus.jackson.annotate;version='${IMPL_VERSION}' +,org.codehaus.jackson.map;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.annotate;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.deser;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.deser.std;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.introspect;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.jsontype;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.jsontype.impl;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.ser;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.ser.std;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.type;version='${IMPL_VERSION}' +,org.codehaus.jackson.map.util;version='${IMPL_VERSION}' +,org.codehaus.jackson.node;version='${IMPL_VERSION}' +,org.codehaus.jackson.schema;version='${IMPL_VERSION}' +,org.codehaus.jackson.type;version='${IMPL_VERSION}' +,org.codehaus.jackson.util;version='${IMPL_VERSION}' +" + dynamicImportPackage="org.w3c.dom +,javax.xml.namespace, javax.xml.parsers, javax.xml.transform +" + exportPackage=" +org.codehaus.jackson.xc;version='${IMPL_VERSION}' +" + privatePackage=" +" + includeResource="META-INF=release-notes/asl" + includeIncludeResourceHeader="false" + > + <classpath><pathelement path="${dir.build.classes.xc}" /></classpath> + <manifest> + <attribute name="Built-By" value="${user.name}"/> + <attribute name="Implementation-Title" value="${IMPL_TITLE_XC}"/> + <attribute name="Implementation-Version" value="${IMPL_VERSION}"/> + <attribute name="Implementation-Vendor" value="${IMPL_VENDOR}"/> + </manifest> + </osgiJar> + </target> + + <!-- and finally Smile, binary format handler --> + <target name="jar.smile" depends="compile.smile"> + <osgiJar + outputdir="${dir.build}" + bundleName="${IMPL_TITLE_SMILE}" + bundleVendor="${IMPL_VENDOR}" + bundleSymbolicName="jackson-smile" + bundleVersion="${IMPL_VERSION}" + bundleLicense="http://www.apache.org/licenses/LICENSE-2.0.txt" + bundleRequiredExecutionEnvironment="${REQ_JDK_VERSION}" + filename="jackson-smile-${IMPL_VERSION}" + importPackage=" +org.codehaus.jackson;version='${IMPL_VERSION}', +org.codehaus.jackson.format;version='${IMPL_VERSION}', +org.codehaus.jackson.impl;version='${IMPL_VERSION}', +org.codehaus.jackson.io;version='${IMPL_VERSION}', +org.codehaus.jackson.sym;version='${IMPL_VERSION}', +org.codehaus.jackson.util;version='${IMPL_VERSION}' +" + exportpackage=" +org.codehaus.jackson.smile;version=${IMPL_VERSION}" + includeResource="META-INF=release-notes/asl" + includeIncludeResourceHeader="false" + > + <classpath><pathelement path="${dir.build.classes.smile}" /></classpath> + <manifest> + <attribute name="Built-By" value="${user.name}"/> + <attribute name="Implementation-Title" value="${IMPL_TITLE_SMILE}"/> + <attribute name="Implementation-Version" value="${IMPL_VERSION}"/> + <attribute name="Implementation-Vendor" value="${IMPL_VENDOR}"/> + </manifest> + </osgiJar> + </target> + + <!-- 29-Oct-2010, tatu: one new tool, to help debug Smile... --> + <target name="jar.tool.smile" depends="compile.smile, jar.core.asl, jar.smile"> + <jar jarfile="${dir.build}/smile-tool-${IMPL_VERSION}.jar"> + <manifest> + <attribute name="Built-By" value="${user.name}"/> + <attribute name="Implementation-Title" value="Smile Tool"/> + <attribute name="Implementation-Version" value="${IMPL_VERSION}"/> + <attribute name="Implementation-Vendor" value="${IMPL_VENDOR}"/> + <attribute name="Main-Class" value="org.codehaus.jackson.smile.Tool"/> + </manifest> + <!-- need everything from core, smile packages, but nothing else --> + <fileset dir="${dir.build.classes.core}"> + <include name="org/codehaus/jackson/**/*.class" /> + </fileset> + <fileset dir="${dir.build.classes.smile}"> + <include name="org/codehaus/jackson/**/*.class" /> + </fileset> + </jar> + </target> +</project>
diff --git a/1.9.10/ant/build-test.xml b/1.9.10/ant/build-test.xml new file mode 100644 index 0000000..7873692 --- /dev/null +++ b/1.9.10/ant/build-test.xml
@@ -0,0 +1,260 @@ +<?xml version="1.0" standalone='yes'?> +<!-- This Ant build file fragment contains targets needed + to run unit tests + --> + +<project name="Jackson Unit tests" basedir="."> + <!-- Source directories --> + <property name="dir.src.test" location="${dir.src}/test" /> + <!-- some support for perf testing --> + <property name="dir.build.classes.perf" location="${dir.build}/classes/perf" /> + <!-- Unit Tests --> + <property name="dir.test" location="${basedir}/test" /> + <property name="dir.test.classes" location="${dir.test}/classes" /> + <property name="dir.test.results" location="${dir.test}/results" /> + <property name="dir.test.xmlresults" location="${dir.test.results}/xml" /> + + <path id="test-libs"> + <fileset dir="${dir.lib}"> + <!-- for actual unit testing, junit --> + <include name="junit/*.jar" /> + </fileset> + </path> + <!-- Libs only needed for tests that check optional interoperability + extensions + --> + <path id="test-libs-ext"> + <fileset dir="${dir.lib}"> + <!-- For 1.5, need JAXB API jar too (and related) --> + <include name="jaxb/*.jar" /> + <!-- and some other misc libs for interoperability tests --> + <include name="ext/**/*.jar" /> + </fileset> + </path> + + <target name="test.prepare"> + <!-- make test output directories --> + <mkdir dir="${dir.test}" /> + <mkdir dir="${dir.test.classes}" /> + <mkdir dir="${dir.test.results}" /> + <mkdir dir="${dir.test.xmlresults}" /> + </target> + + <!--*********************************************************************--> + <!-- Tasks from here down are in support of junit tests. --> + <!--*********************************************************************--> + <target name="all-tests" depends="test" /> + + <!-- Compiling and running test cases + --> + + <target name="test.compile" depends="test.prepare, compile.mapper, +compile.xc, compile.jaxrs, compile.smile, compile.mrbean"> + <javac srcdir="${dir.src.test}" destdir="${dir.test.classes}" + source="1.5" target="1.5" + debug="true" includeantruntime="false" + > + <exclude name="org/codehaus/jackson/map/ext/*.java" /> + <exclude name="org/codehaus/jackson/map/interop/*.java" /> + <include name="**/*.java" /> + <classpath> + <pathelement path="${dir.build.classes.core}"/> + <pathelement path="${dir.build.classes.mapper}"/> + <pathelement path="${dir.build.classes.jaxrs}"/> + <pathelement path="${dir.build.classes.xc}"/> + <pathelement path="${dir.build.classes.smile}"/> + <pathelement path="${dir.build.classes.mrbean}"/> + <path refid="test-libs"/> + <fileset dir="${dir.lib}/jaxrs"> + <include name="*.jar" /> + </fileset> + </classpath> + </javac> + <javac srcdir="${dir.src.test}" destdir="${dir.test.classes}" + source="1.5" target="1.5" + debug="true" includeantruntime="false" + > + <include name="org/codehaus/jackson/map/ext/*.java" /> + <include name="org/codehaus/jackson/map/interop/*.java" /> + <classpath> + <pathelement path="${dir.build.classes.core}"/> + <pathelement path="${dir.build.classes.mapper}"/> + <path refid="test-libs"/> + <path refid="test-libs-ext"/> + </classpath> + </javac> + </target> + + + <target name="test" depends="test.run"> + <junitreport todir="${dir.test.results}"> + <fileset dir="${dir.test.xmlresults}"> + <include name="TEST-*.xml" /> + </fileset> + <report todir="${dir.test.results}" /> + </junitreport> + </target> + + <target name="test.run" depends="test.run.main, +test.run.interop, test.run.jaxrs, test.run.failing, test.run.versions" + /> + <target name="test.run.main" depends="test.compile"> + <!-- showoutput 'yes' to allow outputting debug msgs... --> + <junit fork="no" printsummary="yes" haltonfailure="no" showoutput="yes"> + <batchtest fork="no" todir="${dir.test.xmlresults}"> + <fileset dir="${dir.test.classes}"> + <!-- Need to exclude inner classes... --> + <exclude name="**/*$*.class"/> + <!-- and also interop tests, run later on --> + <exclude name="org/codehaus/jackson/jaxrs/*.class"/> + <exclude name="org/codehaus/jackson/failing/*.class"/> + <exclude name="org/codehaus/jackson/map/ext/Test*.class"/> + <exclude name="org/codehaus/jackson/map/interop/Test*.class"/> + <exclude name="org/codehaus/jackson/version/*.class"/> + <include name="**/Test*.class"/> + </fileset> + </batchtest> + <formatter type="xml" /> + <classpath> + <pathelement path="${dir.build.classes.core}" /> + <pathelement path="${dir.build.classes.mapper}" /> + <pathelement path="${dir.build.classes.xc}" /> + <pathelement path="${dir.build.classes.smile}" /> + <pathelement path="${dir.build.classes.mrbean}" /> + <pathelement location="${dir.test.classes}" /> + <path refid="test-libs"/> + </classpath> + </junit> + </target> + + <target name="test.run.interop" depends="test.compile"> + <!-- for interop tests, yes, we need to fork (classloading issues) --> + <junit fork="yes" printsummary="yes" haltonfailure="no" showoutput="yes"> + <batchtest fork="no" todir="${dir.test.xmlresults}"> + <fileset dir="${dir.test.classes}"> + <exclude name="**/*$*.class"/> + <!-- 25-Nov-2009, tatu: Argh. Looks like classloading + is problematic for this test; works when run + separately as single test... but not in sequence + --> + <exclude name="org/codehaus/jackson/map/interop/TestHibernate.class"/> + <include name="org/codehaus/jackson/map/interop/Test*.class"/> + </fileset> + </batchtest> + <formatter type="xml" /> + <classpath> + <pathelement path="${dir.build.classes.core}" /> + <pathelement path="${dir.build.classes.mapper}" /> + <pathelement location="${dir.test.classes}" /> + <path refid="test-libs"/> + <path refid="test-libs-ext"/> + </classpath> + </junit> + </target> + + <target name="test.run.jaxrs" depends="test.compile"> + <!-- And finally, minimal testing for jax-rs too --> + <junit fork="yes" printsummary="yes" haltonfailure="no" showoutput="yes"> + <batchtest fork="no" todir="${dir.test.xmlresults}"> + <fileset dir="${dir.test.classes}"> + <exclude name="**/*$*.class"/> + <include name="org/codehaus/jackson/jaxrs/*.class"/> + </fileset> + </batchtest> + <formatter type="xml" /> + <classpath> + <pathelement path="${dir.build.classes.core}" /> + <pathelement path="${dir.build.classes.mapper}" /> + <pathelement path="${dir.build.classes.jaxrs}" /> + <pathelement path="${dir.build.classes.xc}" /> + <pathelement location="${dir.test.classes}" /> + <path refid="test-libs"/> + <fileset dir="${dir.lib}/jaxrs"> + <include name="*.jar" /> + </fileset> + </classpath> + </junit> + </target> + + <!-- failing tests run during dev, disabled for maintenance versions --> + <target name="test.run.failing" depends="test.compile"> +<!-- + <junit fork="no" printsummary="yes" haltonfailure="no" showoutput="yes"> + <batchtest fork="no" todir="${dir.test.xmlresults}"> + <fileset dir="${dir.test.classes}"> + <exclude name="**/*$*.class"/> + <include name="org/codehaus/jackson/failing/Test*.class"/> + </fileset> + </batchtest> + <formatter type="xml" /> + <classpath> + <pathelement path="${dir.build.classes.core}" /> + <pathelement path="${dir.build.classes.mapper}" /> + <pathelement path="${dir.build.classes.mrbean}" /> + <pathelement path="${dir.build.classes.jaxrs}" /> + <pathelement path="${dir.build.classes.xc}" /> + <pathelement location="${dir.test.classes}" /> + <path refid="test-libs"/> + <path refid="test-libs-ext"/> + <fileset dir="${dir.lib}/jaxrs"> + <include name="*.jar" /> + </fileset> + </classpath> + </junit> +--> + </target> + + <target name="test.run.versions" depends="test.compile"> + <junit fork="yes" printsummary="yes" haltonfailure="no" showoutput="yes"> + <sysproperty key="FROM_ANT" value="true"/> + <batchtest fork="no" todir="${dir.test.xmlresults}"> + <fileset dir="${dir.test.classes}"> + <include name="org/codehaus/jackson/version/*.class"/> + </fileset> + </batchtest> + <formatter type="xml" /> + <classpath> + <pathelement path="${dir.build.classes.core}" /> + <pathelement path="${dir.build.classes.mapper}" /> + <pathelement path="${dir.build.classes.jaxrs}" /> + <pathelement path="${dir.build.classes.xc}" /> + <pathelement path="${dir.build.classes.mrbean}" /> + <pathelement path="${dir.build.classes.smile}" /> + <pathelement location="${dir.test.classes}" /> + <path refid="test-libs"/> + <fileset dir="${dir.lib}/jaxrs"> + <include name="*.jar" /> + </fileset> + </classpath> + </junit> + </target> + + <!-- Running a single Unit Test --> + <target name="test.single" depends="test.compile"> + <fail unless="test" message="Must define -Dtest" /> + <!-- showoutput 'yes' to allow outputting debug msgs... --> + <!-- 09-Apr-2010, tatu: Looks like we must fork, otherwise there may be + issues with junit version? + --> + <junit fork="yes" maxmemory="128M" showoutput="yes" printsummary="yes"> + <sysproperty key="FROM_ANT" value="true"/> + <formatter type="plain" usefile="no" /> + <test name="${test}" /> + <classpath> + <pathelement path="${dir.build.classes.core}" /> + <pathelement path="${dir.build.classes.mapper}" /> + <pathelement path="${dir.build.classes.xc}" /> + <pathelement path="${dir.build.classes.jaxrs}" /> + <pathelement path="${dir.build.classes.smile}" /> + <pathelement path="${dir.build.classes.mrbean}" /> + <pathelement location="${dir.test.classes}" /> + <path refid="test-libs"/> + <path refid="test-libs-ext"/> + <fileset dir="${dir.lib}/jaxrs"> + <include name="*.jar" /> + </fileset> + </classpath> + </junit> + </target> + +</project>
diff --git a/1.9.10/bin/profile-json-perf.sh b/1.9.10/bin/profile-json-perf.sh new file mode 100755 index 0000000..9cc457c --- /dev/null +++ b/1.9.10/bin/profile-json-perf.sh
@@ -0,0 +1,8 @@ +#!/bin/sh + +java -Xmx48m -server -cp build/classes/perf:build/classes/core\ +:build/classes/mapper:lib/perf/\* \ +-XX:CompileThreshold=2000 \ +-Xrunhprof:cpu=samples,depth=10,verbose=n,interval=2 \ + TestJsonPerf \ + $*
diff --git a/1.9.10/bin/profile-read-perf.sh b/1.9.10/bin/profile-read-perf.sh new file mode 100755 index 0000000..09cde2f --- /dev/null +++ b/1.9.10/bin/profile-read-perf.sh
@@ -0,0 +1,7 @@ +#!/bin/sh + +java -Xmx16m -server \ +-cp build/classes/perf:perflib/\* \ +-XX:CompileThreshold=2000 \ +-Xrunhprof:cpu=samples,depth=10,verbose=n,interval=2 \ +TestReadPerf $*
diff --git a/1.9.10/bin/run-copy-perf.sh b/1.9.10/bin/run-copy-perf.sh new file mode 100755 index 0000000..8f6485d --- /dev/null +++ b/1.9.10/bin/run-copy-perf.sh
@@ -0,0 +1,4 @@ +#!/bin/sh + +java -Xmx48m -server -cp build/classes \ + TestCopyPerf $*
diff --git a/1.9.10/bin/run-json-perf.sh b/1.9.10/bin/run-json-perf.sh new file mode 100755 index 0000000..837f817 --- /dev/null +++ b/1.9.10/bin/run-json-perf.sh
@@ -0,0 +1,6 @@ +#!/bin/sh + +java -Xmx48m -server -cp build/classes/perf:build/classes/core\ +:build/classes/mapper:lib/perf/\* \ + TestJsonPerf \ + $*
diff --git a/1.9.10/bin/run-read-perf.sh b/1.9.10/bin/run-read-perf.sh new file mode 100755 index 0000000..cd181cb --- /dev/null +++ b/1.9.10/bin/run-read-perf.sh
@@ -0,0 +1,5 @@ +#!/bin/sh + +java -Xmx16m -server \ +-cp build/classes/perf:perflib/\* \ +TestReadPerf $*
diff --git a/1.9.10/bin/run-ser-perf.sh b/1.9.10/bin/run-ser-perf.sh new file mode 100755 index 0000000..8f3a8c6 --- /dev/null +++ b/1.9.10/bin/run-ser-perf.sh
@@ -0,0 +1,6 @@ +#!/bin/sh + +java -Xmx48m -server -cp build/classes/perf:build/classes/core\ +:build/classes/mapper:lib/perf/\* \ + TestSerPerf \ + $*
diff --git a/1.9.10/build.xml b/1.9.10/build.xml new file mode 100644 index 0000000..f979593 --- /dev/null +++ b/1.9.10/build.xml
@@ -0,0 +1,534 @@ +<?xml version="1.0" standalone='yes'?> + + <project name="Jackson JSON processor" basedir="." default="readme"> + + <!-- Source directories --> + <property name="dir.src" location="${basedir}/src" /> + <property name="dir.src.java.core" location="${dir.src}/java" /> + <property name="dir.src.java.mapper" location="${dir.src}/mapper/java" /> + <property name="dir.src.java.jaxrs" location="${dir.src}/jaxrs/java" /> + <property name="dir.src.java.xc" location="${dir.src}/xc/java" /> + <property name="dir.src.java.smile" location="${dir.src}/smile/java" /> + <property name="dir.src.java.mrbean" location="${dir.src}/mrbean/java" /> + <property name="dir.src.resource.jaxrs" location="${dir.src}/jaxrs/resources" /> + <property name="dir.src.maven" location="${dir.src}/maven" /> + <property name="dir.src.sample" location="${dir.src}/sample" /> + <property name="dir.src.tools" location="${dir.src}/tools" /> + <property name="dir.releasenotes" location="${basedir}/release-notes" /> + + <!-- Libs --> + <property name="dir.lib" location="${basedir}/lib" /> + <!-- Build-related --> + <property name="dir.build" location="${basedir}/build" /> + <property name="dir.build.classes.core" location="${dir.build}/classes/core" /> + <property name="dir.build.classes.mapper" location="${dir.build}/classes/mapper" /> + <property name="dir.build.classes.jaxrs" location="${dir.build}/classes/jaxrs" /> + <property name="dir.build.classes.xc" location="${dir.build}/classes/xc" /> + <property name="dir.build.classes.smile" location="${dir.build}/classes/smile" /> + <property name="dir.build.classes.mrbean" location="${dir.build}/classes/mrbean" /> + <!-- both "sample" and "tools" java code goes under "extra" --> + <property name="dir.build.classes.extra" location="${dir.build}/classes/extra" /> + + <!-- Documentation --> + <property name="dir.doc" location="${basedir}/doc" /> + <property name="dir.javadoc" location="${dir.build}/javadoc" /> + + <!-- Distribution --> + <property name="dir.dist" location="${basedir}/dist" /> + <property name="dir.snapshot" location="${basedir}/build/snapshot" /> + + <!-- Version information --> + + <!-- Version --> + <property name="JSON_TITLE" value="JSON - JavaScript Object Notation" /> + <property name="JSON_VERSION" value="1.0" /> + <property name="JSON_VENDOR" value="http://www.ietf.org/rfc/rfc4627.txt" /> + <property name="IMPL_TITLE_CORE" value="Jackson JSON processor" /> + <property name="IMPL_TITLE_MAPPER" value="Data mapper for Jackson JSON processor" /> + <property name="IMPL_TITLE_JAXRS" value="JAX-RS provider for JSON content type, using Jackson data binding" /> + <property name="IMPL_TITLE_XC" value="XML Compatibility extensions for Jackson data binding" /> + <property name="IMPL_TITLE_SMILE" value="Jackson Binary format (aka Smile) handling functionality" /> + <property name="IMPL_TITLE_MRBEAN" value="Jackson Bean Materializer (aka Mr. Bean)" /> + + <property name="IMPL_VERSION" value="1.9.10" /> + <property name="IMPL_VENDOR" value="http://fasterxml.com" /> + + <patternset id="dist-all-source-files"> + <include name="README.txt" /> + <include name="ant/build*.xml" /> + <include name="build.xml" /> + <include name="release-notes/*" /> + <include name="DEV/contributor*" /> + <include name="src/**/*.java" /> + <include name="src/VERSION.txt" /> + <include name="src/java/**/*.html" /> + <include name="src/maven/*.pom" /> + <include name="release-notes/*" /> + <include name="release-notes/asl/*" /> + <include name="release-notes/lgpl/*" /> + <!-- need jars for auxiliary tasks (tests), although jackson + itself does not depend on any other packages, just JDK 1.5 + --> + <include name="lib/**/*.jar" /> + <include name="samples/**/*.jsn" /> + </patternset> + + <!-- some build tasks are refactored out of the main task --> + <import file="ant/build-osgi.xml" /> + <import file="ant/build-maven-deploy.xml" /> + <import file="ant/build-coverage.xml" /> + <import file="ant/build-test.xml" /> + <import file="ant/build-mini.xml" /> + + <!--*********************************************************************--> + <!-- The readme target shows a brief description of all targets --> + <!-- supported by this ant build file --> + <!--*********************************************************************--> + <target name="readme"> + <echo message = "${ant.project.name}'s Available Targets" /> + <echo message = "---------------------------------------------------" /> + <echo message = "1) readme - Displays this information (default target)." /> + <echo message = "2) clean - Remove any generated files/directories." /> + <echo message = "3) build - Compile all code, run unit tests" /> + <echo message = "4) jars - Compile and create all jars for non-test ${ant.project.name} code" /> + <echo message = "5) javadoc - Generate ${ant.project.name} code documentation." /> + <echo message = "6) test - Run JUnit tests." /> + <echo message = "7) dist - Create distribution directory and copy necessary files there" /> + <echo message = "8) all - Run clean, compile, test, javadoc," /> + <echo message = " and dist targets." /> + <echo message = "" /> + <echo message = "Available command-line arguments:" /> + <echo message = "---------------------------------" /> + <echo message = "none" /> + </target> + + <target name="prepare"> + <!-- make build directories --> + <mkdir dir="${dir.build}" /> + <mkdir dir="${dir.build.classes.core}" /> + <mkdir dir="${dir.build.classes.mapper}" /> + <mkdir dir="${dir.build.classes.jaxrs}" /> + <mkdir dir="${dir.build.classes.xc}" /> + <mkdir dir="${dir.build.classes.smile}" /> + <mkdir dir="${dir.build.classes.mrbean}" /> + <mkdir dir="${dir.build.classes.extra}" /> + + <!-- make docs directories --> + <mkdir dir="${dir.doc}" /> + <mkdir dir="${dir.javadoc}" /> + + <!-- and finally distribution dir --> + <mkdir dir="${dir.dist}" /> + <mkdir dir="${dir.snapshot}" /> + <!-- 1.6.0: also add VERSION marker file --> + <copy todir="${dir.build}"> + <fileset dir="${dir.src}" includes="VERSION.txt" /> + <filterset> + <filter token="VERSION" value="${IMPL_VERSION}" /> + </filterset> + </copy> + + </target> + + <!-- *********************************************** + - supporting dummy tasks + - ***********************************************--> + + + <!-- *********************************************** + - clean - Removes all generated files/directories + - ***********************************************--> + + <target name="clean"> + <delete dir="${dir.build}"/> + <delete dir="${dir.doc}"/> + <delete dir="${dir.test}"/> + <delete dir="${dir.dist}"/> + <delete file="cobertura.ser" /> + </target> + + <target name="build" depends="compile, all-tests" /> + + <target name="compile" depends="compile.all" /> + <target name="compile.all" depends=" +compile.main, test.compile, compile.extra, compile.perf" /> + <target name="compile.main" + depends="compile.core, compile.mapper, compile.jaxrs, compile.xc, +compile.smile, compile.mrbean" /> + + <target name="compile.core" depends="prepare"> + <javac srcdir="${dir.src.java.core}" destdir="${dir.build.classes.core}" + source="1.5" target="1.5" + debug="true" includeantruntime="false" + > + <compilerarg value="-Xlint:unchecked" /> + <exclude name="**/package-info.java" /> + <include name="org/codehaus/**/*.java" /> + </javac> + <!-- 1.6, [JACKSON-278]: need to copy VERSION info along (so unit tests see it) --> + <copy file="${dir.build}/VERSION.txt" toDir="${dir.build.classes.core}/org/codehaus/jackson/impl" /> + </target> + + <target name="compile.mapper" depends="compile.core"> + <javac srcdir="${dir.src.java.mapper}" destdir="${dir.build.classes.mapper}" + source="1.5" target="1.5" + debug="true" includeantruntime="false" + > + <compilerarg value="-Xlint:unchecked" /> + <exclude name="**/package-info.java" /> + <include name="org/codehaus/jackson/**/*.java" /> + <!-- mapper builds on core classes --> + <classpath> + <pathelement path="${dir.build.classes.core}"/> + <!-- We support some ext libs (like Joda time) --> + <fileset dir="${dir.lib}/ext"> + <include name="*.jar" /> + </fileset> + </classpath> + </javac> + <!-- 1.6, [JACKSON-278]: need to copy VERSION info along (so unit tests see it) --> + <copy file="${dir.build}/VERSION.txt" toDir="${dir.build.classes.mapper}/org/codehaus/jackson/map" /> + </target> + + <target name="compile.xc" depends="compile.mapper"> + <javac srcdir="${dir.src.java.xc}" destdir="${dir.build.classes.xc}" + source="1.5" target="1.5" + debug="true" includeantruntime="false" + > + <compilerarg value="-Xlint:unchecked" /> + <exclude name="**/package-info.java" /> + <include name="org/codehaus/jackson/**/*.java" /> + <!-- builds on core and mapper classes --> + <classpath> + <pathelement path="${dir.build.classes.core}"/> + <pathelement path="${dir.build.classes.mapper}"/> + <!-- For JDK 1.5 build, need JAXB API --> + <fileset dir="${dir.lib}/jaxb"> + <include name="*.jar" /> + </fileset> + </classpath> + </javac> + <!-- 1.6, [JACKSON-278]: need to copy VERSION info along (so unit tests see it) --> + <copy file="${dir.build}/VERSION.txt" toDir="${dir.build.classes.xc}/org/codehaus/jackson/xc" /> + <copy file="${dir.build}/VERSION.txt" toDir="${dir.build.classes.xc}/org/codehaus/jackson/xml" /> + </target> + + <target name="compile.jaxrs" depends="compile.mapper,compile.xc"> + <javac srcdir="${dir.src.java.jaxrs}" destdir="${dir.build.classes.jaxrs}" + source="1.5" target="1.5" + debug="true" includeantruntime="false" + > + <compilerarg value="-Xlint:unchecked" /> + <exclude name="**/package-info.java" /> + <include name="org/codehaus/jackson/**/*.java" /> + <!-- builds on core and mapper classes --> + <classpath> + <fileset dir="${dir.lib}/jaxrs"> + <include name="*.jar" /> + </fileset> + <pathelement path="${dir.build.classes.core}"/> + <pathelement path="${dir.build.classes.mapper}"/> + <!-- this is optional dependency, but needed for compilation --> + <pathelement path="${dir.build.classes.xc}"/> + </classpath> + </javac> + <!-- 1.6, [JACKSON-278]: need to copy VERSION info along (so unit tests see it) --> + <copy file="${dir.build}/VERSION.txt" toDir="${dir.build.classes.jaxrs}/org/codehaus/jackson/jaxrs" /> + </target> + + <target name="compile.smile" depends="compile.core"> + <javac srcdir="${dir.src.java.smile}" destdir="${dir.build.classes.smile}" + source="1.5" target="1.5" + debug="true" includeantruntime="false" + > + <compilerarg value="-Xlint:unchecked" /> + <exclude name="**/package-info.java" /> + <include name="org/codehaus/jackson/smile/**/*.java" /> + <!-- builds on core classes --> + <classpath> + <pathelement path="${dir.build.classes.core}"/> + </classpath> + </javac> + <!-- 1.6, [JACKSON-278]: need to copy VERSION info along (so unit tests see it) --> + <copy file="${dir.build}/VERSION.txt" toDir="${dir.build.classes.smile}/org/codehaus/jackson/smile" /> + </target> + + <target name="compile.mrbean" depends="compile.core"> + <javac srcdir="${dir.src.java.mrbean}" destdir="${dir.build.classes.mrbean}" + source="1.5" target="1.5" + debug="true" includeantruntime="false" + > + <compilerarg value="-Xlint:unchecked" /> + <exclude name="**/package-info.java" /> + <include name="org/codehaus/jackson/mrbean/**/*.java" /> + <!-- builds on core and mapper classes --> + <classpath> + <pathelement path="${dir.build.classes.core}"/> + <pathelement path="${dir.build.classes.mapper}"/> + <fileset dir="${dir.lib}/repackaged"> + <include name="jackson-asm*.jar" /> + </fileset> + </classpath> + <!-- 1.6, [JACKSON-278]: need to copy VERSION info along (so unit tests see it) --> + </javac> + <copy file="${dir.build}/VERSION.txt" toDir="${dir.build.classes.mrbean}/org/codehaus/jackson/mrbean" /> + <!-- also, unpack classes from repackaged asm jar, for OSGi bundle --> + <unjar dest="${dir.build.classes.mrbean}"> + <fileset dir="${dir.lib}/repackaged"> + <include name="jackson-asm*.jar" /> + </fileset> + </unjar> + </target> + + <target name="compile.extra" depends="compile.main"> + <javac destdir="${dir.build.classes.extra}" + source="1.5" target="1.5" + debug="true" includeantruntime="false" + > + <compilerarg value="-Xlint:unchecked" /> + <src path="${dir.src.sample}" /> + <src path="${dir.src.tools}" /> + <include name="**/*.java" /> + <!-- need core and mapper classes --> + <classpath> + <pathelement path="${dir.build.classes.core}"/> + <pathelement path="${dir.build.classes.mapper}"/> + <pathelement path="${dir.build.classes.smile}"/> + </classpath> + </javac> + </target> + + <target name="compile.perf" depends="compile.main"> + <mkdir dir="${dir.build.classes.perf}" /> + <!-- Let's also compile micro-benchmarks... --> + <javac srcdir="${dir.src}/perf" destdir="${dir.build.classes.perf}" + debug="true" includeantruntime="false" + > + <classpath> + <fileset dir="${dir.lib}/perf"> + <include name="*.jar" /> + </fileset> + <pathelement path="${dir.build.classes.core}"/> + <pathelement path="${dir.build.classes.mapper}"/> + <pathelement path="${dir.build.classes.smile}"/> + <pathelement path="${dir.build.classes.xc}"/> + </classpath> + <include name="perf/**/*.java" /> + </javac> + </target> + + <!-- Dummy target that just includes all individual jars... --> + <target name="jars" depends="jars.asl, jars.lgpl, jars.other, jar.all, jars.tools, jar.mini" /> + + <target name="javadoc" depends="compile.all"> + <!-- Build a dirpath that contains just the "source" tree --> + <javadoc windowtitle="Jackson JSON Processor" + destdir="${dir.javadoc}" + author="true" version="true" use="true"> + + <classpath> + <fileset dir="${dir.lib}/jaxrs"> + <include name="*.jar" /> + </fileset> + </classpath> + + <packageset dir="${dir.src.java.core}" defaultexcludes="yes"> + <include name="org/codehaus/**" /> + </packageset> + <packageset dir="${dir.src.java.mapper}" defaultexcludes="yes"> + <include name="org/codehaus/**" /> + </packageset> + <packageset dir="${dir.src.java.jaxrs}" defaultexcludes="yes"> + <include name="org/codehaus/jackson/jaxrs/**" /> + </packageset> + <packageset dir="${dir.src.java.xc}" defaultexcludes="yes"> + <include name="org/codehaus/jackson/xc/**" /> + <include name="org/codehaus/jackson/xml/**" /> + </packageset> + <packageset dir="${dir.src.java.smile}" defaultexcludes="yes"> + <include name="org/codehaus/jackson/smile/**" /> + </packageset> + <packageset dir="${dir.src.java.mrbean}" defaultexcludes="yes"> + <include name="org/codehaus/jackson/mrbean/**" /> + </packageset> + + <!-- External JavaDocs to link: --> + + <!-- Joda time... --> + <link href="http://joda-time.sourceforge.net/api-release" /> + <!-- Regular JDK 6 classes --> + <link href="http://docs.oracle.com/javase/6/docs/api" /> + <!-- And JAX-RS (jsr-311) as well --> + <link href="http://jackson.codehaus.org/javadoc/jax-rs/1.0" /> + + <group title="Jackson Core" packages="org.codehaus.jackson*" /> + <group title="Jackson Mapper" + packages="org.codehaus.jackson.map*:org.codehaus.jackson.node:org.codehaus.jackson.schema" + /> + <group title="Jackson JAX-RS provider" packages="org.codehaus.jackson.jaxrs" /> + <group title="Jackson XML Compatibility" packages="org.codehaus.jackson.xc" /> + <group title="Jackson Mr Bean" packages="org.codehaus.jackson.mrbean" /> + <group title="Jackson Smile Format" packages="org.codehaus.jackson.smile" /> + </javadoc> + </target> + + <!-- New with 1.6, "jackson-all" combo jar --> + <target name="jar.all" depends="jars.asl, jars.other"> + <jar jarfile="${dir.build}/jackson-all-${IMPL_VERSION}.jar" + filesonly="true" index="true" level="9"> +<!-- Bah: need Ant 1.8 for this: indexMetaInf="true" --> + <manifest> + <attribute name="Built-By" value="${user.name}"/> + <attribute name="Implementation-Title" value="Jackson"/> + <attribute name="Implementation-Version" value="${IMPL_VERSION}"/> + <attribute name="Implementation-Vendor" value="${IMPL_VENDOR}"/> + <attribute name="Specification-Title" value="${JSON_TITLE}"/> + <attribute name="Specification-Version" value="${JSON_VERSION}"/> + <attribute name="Specification-Vendor" value="${JSON_VENDOR}"/> + </manifest> + <metainf dir="${dir.releasenotes}/asl" includes="*" /> + <fileset dir="${dir.build.classes.core}" includes="**/*.class" /> + <fileset dir="${dir.build.classes.mapper}" includes="**/*.class" /> + <fileset dir="${dir.build.classes.jaxrs}" includes="**/*.class" /> + <fileset dir="${dir.build.classes.xc}" includes="**/*.class" /> + <fileset dir="${dir.build.classes.smile}" includes="**/*.class" /> + <fileset dir="${dir.build.classes.mrbean}" includes="**/*.class" /> + </jar> + </target> + + + <!-- Generic distribution target builds the structure we copy over + to the website. + --> + <target name="dist" depends="compile.all,jars,javadoc" + > + <!-- First, let's copy the binary jars to dist --> + <copy todir="${dir.dist}"> + <fileset dir="${dir.build}" includes="*.jar" /> + </copy> + + <!-- Then let's create the source distribution tar packages + --> + <!-- Need to first copy to a tmp dir, to get the additional + directory (so tar/zip contents won't explode directly + in current dir) + --> + <property name="DIST_FILENAME" value="jackson-src-${IMPL_VERSION}" /> + <property name="DIST_DIR" value="${DIST_FILENAME}" /> + + <!-- better always clean it up, if it exists... --> + <delete dir="${dir.build}/${DIST_DIR}" /> + <mkdir dir="${dir.build}/${DIST_DIR}" /> + + <copy todir="${dir.build}/${DIST_DIR}"> + <fileset dir="${basedir}"> + <patternset refid="dist-all-source-files" /> + </fileset> + </copy> + + <!-- then create tarball, zip --> + <tar basedir="${dir.build}" + includes="${DIST_DIR}/**" + destfile="${dir.dist}/${DIST_FILENAME}.tar.gz" + compression="gzip" + /> + <zip basedir="${dir.build}" + includes="${DIST_DIR}/**" + destfile="${dir.dist}/${DIST_FILENAME}.zip" + /> + + <!-- And create source jars for IDE support; separate for core, mapper + and both license types + --> + <jar destfile="${dir.dist}/jackson-core-asl-${IMPL_VERSION}-sources.jar" + filesonly="true" compress="true" basedir="${dir.src.java.core}" + includes="org/codehaus/jackson/**" + /> + <jar destfile="${dir.dist}/jackson-mapper-asl-${IMPL_VERSION}-sources.jar" + filesonly="true" compress="true" basedir="${dir.src.java.mapper}" + includes="org/codehaus/jackson/**" + /> + + <jar destfile="${dir.dist}/jackson-core-lgpl-${IMPL_VERSION}-sources.jar" + filesonly="true" compress="true" basedir="${dir.src.java.core}" + includes="org/codehaus/jackson/**" + /> + <jar destfile="${dir.dist}/jackson-mapper-lgpl-${IMPL_VERSION}-sources.jar" + filesonly="true" compress="true" basedir="${dir.src.java.mapper}" + includes="org/codehaus/jackson/**" + /> + <jar destfile="${dir.dist}/jackson-jaxrs-${IMPL_VERSION}-sources.jar" + filesonly="true" compress="true" basedir="${dir.src.java.jaxrs}" + includes="org/codehaus/jackson/jaxrs/**" + /> + <jar destfile="${dir.dist}/jackson-xc-${IMPL_VERSION}-sources.jar" + filesonly="true" compress="true" basedir="${dir.src.java.xc}" + includes="org/codehaus/jackson/xc/**" + /> + <jar destfile="${dir.dist}/jackson-smile-${IMPL_VERSION}-sources.jar" + filesonly="true" compress="true" basedir="${dir.src.java.smile}" + includes="org/codehaus/jackson/smile/**" + /> + <jar destfile="${dir.dist}/jackson-mrbean-${IMPL_VERSION}-sources.jar" + filesonly="true" compress="true" basedir="${dir.src.java.mrbean}" + includes="org/codehaus/jackson/mrbean/**" + /> + + <!-- Similarly package javadocs; sub-optimal since they are built just + once so there's plenty of replication. So let's actually + only do this for core and mapper, for now: + --> + <jar destfile="${dir.dist}/jackson-core-asl-${IMPL_VERSION}-javadoc.jar" + filesonly="true" compress="true" basedir="${dir.javadoc}" includes="**/*" + /> + <jar destfile="${dir.dist}/jackson-mapper-asl-${IMPL_VERSION}-javadoc.jar" + filesonly="true" compress="true" basedir="${dir.javadoc}" includes="**/*" + /> + + <!-- Then copy javadocs --> + <copy todir="${dir.dist}"> + <fileset dir="${dir.javadoc}/.." includes="javadoc/**/*" /> + </copy> + <!-- Plus, let's also just copy README and compatibility files, in + addition to being included in source package + --> + <copy todir="${dir.dist}" > + <fileset dir="." includes="release-notes/*" /> + <fileset dir="." includes="release-notes/asl/*" /> + <fileset dir="." includes="release-notes/lgpl/*" /> + </copy> + <!-- And also additional Maven stuff --> + <copy todir="${dir.dist}"> + <fileset dir="${dir.src}/maven" includes="*.pom" /> + <globmapper from="*.pom" to="*-${IMPL_VERSION}.pom" /> + <filterset> + <filter token="VERSION" value="${IMPL_VERSION}" /> + </filterset> + </copy> + + <!-- 12-Jun-2009, tatu: Trying to make Maven snapshots work... + --> + <copy todir="${dir.snapshot}"> + <fileset dir="${dir.src}/maven" includes="*.pom" /> + <globmapper from="*.pom" to="*-${IMPL_VERSION}-SNAPSHOT.pom" /> + <filterset> + <filter token="VERSION" value="${IMPL_VERSION}-SNAPSHOT" /> + </filterset> + </copy> + + <!-- 03-Dec-2008, tatu: Let's validate well-formedness of + resulting files (to avoid things like [JACKSON-25]) + --> + <xmlvalidate lenient="true"> + <!-- lenient: check only well-formedness, no dtd/schema (yet) --> + <fileset dir="${dir.dist}" includes="*.pom" /> + <fileset dir="${dir.snapshot}" includes="*.pom" /> + </xmlvalidate> + </target> + + <target name="all" depends="clean,javadoc,test,dist"> + <!-- This target simply depends on others to do its job --> + </target> + + +</project>
diff --git a/1.9.10/contrib/materialized-interface/BeanHelper.java b/1.9.10/contrib/materialized-interface/BeanHelper.java new file mode 100644 index 0000000..0cf4264 --- /dev/null +++ b/1.9.10/contrib/materialized-interface/BeanHelper.java
@@ -0,0 +1,251 @@ +package org.codehaus.jackson.map.deser; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.FieldVisitor; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; + +public class BeanHelper implements Opcodes { + public static class BeanBuilder { + protected Map<String, Class> properties = new LinkedHashMap<String, Class>(); + protected Map<String, ThrowMethodType> throwMethods = new LinkedHashMap<String, ThrowMethodType>(); + protected List<Class> implementing = new ArrayList<Class>(); + protected String className; + protected String internalClass; + + public BeanBuilder(String className) { + this.className = className; + this.internalClass = getInternalClassName(className); + } + + public BeanBuilder implement(Class parent) { + this.implementing.add(parent); + + for (Method m : parent.getMethods()) { + if (m.getName().startsWith("get") + || m.getName().startsWith("set")) { + String name = getFieldName(m.getName()); + Class propType = m.getName().startsWith("get") ? m + .getReturnType() : m.getParameterTypes()[0]; + + if (this.properties.containsKey(name) + && !this.properties.get(name).equals(propType)) { + throw new IllegalArgumentException("Duplicate property"); + } + + addProperty(name, propType); + } else { + addThrow(m.getName(), m.getParameterTypes(), m + .getReturnType(), + UnsupportedOperationException.class); + } + } + + return this; + } + + public BeanBuilder addProperty(String name, Class type) { + properties.put(name, type); + + return this; + } + + public BeanBuilder addThrow(String name, Class[] paramTypes, + Class returnType, Class exceptionType) { + this.throwMethods.put(name, new ThrowMethodType(name, paramTypes, + returnType, exceptionType)); + + return this; + } + + public Class load() { + ClassWriter cw = new ClassWriter(0); + + String[] parents = new String[implementing.size()]; + for (int i = 0; i < implementing.size(); i++) { + parents[i] = getInternalClassName(implementing.get(i).getName()); + } + cw.visit(V1_2, ACC_PUBLIC + ACC_SUPER, internalClass, null, + "java/lang/Object", parents); + cw.visitSource(className + ".java", null); + BeanHelper.generateDefaultConstructor(cw); + + for (Map.Entry<String, Class> propEntry : this.properties + .entrySet()) { + String propName = propEntry.getKey(); + Class propClass = propEntry.getValue(); + + BeanHelper.createField(cw, propName, propClass); + BeanHelper.createGetter(cw, internalClass, propName, propClass); + BeanHelper.createSetter(cw, internalClass, propName, propClass); + } + + for (Map.Entry<String, ThrowMethodType> throwEntry : this.throwMethods + .entrySet()) { + ThrowMethodType thr = throwEntry.getValue(); + + BeanHelper.createThrow(cw, this.internalClass, throwEntry + .getKey(), thr.paramTypes, thr.returnType, + thr.exceptionType); + } + + cw.visitEnd(); + + return loadClass(className, cw.toByteArray()); + } + } + + private static void generateDefaultConstructor(ClassWriter cw) { + MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, + null); + mv.visitCode(); + mv.visitVarInsn(ALOAD, 0); + mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V"); + mv.visitInsn(RETURN); + mv.visitMaxs(1, 1); + mv.visitEnd(); + } + + private static void createField(ClassWriter cw, String fieldName, + Class fieldType) { + String javaType = getLValue(fieldType); + FieldVisitor fv = cw.visitField(0, fieldName, javaType, null, null); + fv.visitEnd(); + } + + private static void createSetter(ClassWriter cw, String internalClassName, + String fieldName, Class fieldType) { + String methodName = getSetterName(fieldName); + String returnType = getLValue(fieldType); + MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, methodName, "(" + + returnType + ")V", null, null); + mv.visitVarInsn(ALOAD, 0); + mv.visitVarInsn(ALOAD, 1); + mv.visitFieldInsn(PUTFIELD, internalClassName, fieldName, returnType); + mv.visitInsn(RETURN); + mv.visitMaxs(2, 2); + mv.visitEnd(); + } + + private static void createGetter(ClassWriter cw, String internalClassName, + String fieldName, Class fieldType) { + String methodName = getGetterName(fieldName); + String returnType = getLValue(fieldType); + MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, methodName, "()" + + returnType, null, null); + mv.visitVarInsn(ALOAD, 0); + mv.visitFieldInsn(GETFIELD, internalClassName, fieldName, returnType); + mv.visitInsn(ARETURN); + mv.visitMaxs(1, 1); + mv.visitEnd(); + } + + private static void createThrow(ClassWriter cw, String internalClassName, + String methodName, Class[] inTypes, Class returnType, + Class exceptionType) { + String rTypeName = getLValue(returnType); + String exceptionName = getInternalClassName(exceptionType.getName()); + + String sig = "(" + getArgumentsType(inTypes) + ")" + rTypeName; + + MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, methodName, sig, null, + null); + + mv.visitTypeInsn(NEW, exceptionName); + mv.visitInsn(DUP); + mv.visitMethodInsn(INVOKESPECIAL, exceptionName, "<init>", "()V"); + mv.visitInsn(ATHROW); + mv.visitMaxs(2, 1 + inTypes.length); + mv.visitEnd(); + } + + private static Class loadClass(String className, byte[] b) { + // override classDefine (as it is protected) and define the class. + Class clazz = null; + try { + ClassLoader loader = ClassLoader.getSystemClassLoader(); + Class cls = Class.forName("java.lang.ClassLoader"); + java.lang.reflect.Method method = cls.getDeclaredMethod( + "defineClass", new Class[] { String.class, byte[].class, + int.class, int.class }); + + // protected method invocaton + method.setAccessible(true); + try { + Object[] args = new Object[] { className, b, new Integer(0), + new Integer(b.length) }; + clazz = (Class) method.invoke(loader, args); + } finally { + method.setAccessible(false); + } + } catch (Exception e) { + e.printStackTrace(); + System.exit(1); + } + return clazz; + } + + private static String getInternalClassName(String className) { + return className.replace(".", "/"); + } + + private static String getFieldName(String getterMethodName) { + char[] name = getterMethodName.substring(3).toCharArray(); + name[0] = Character.toLowerCase(name[0]); + final String propName = new String(name); + + return propName; + } + + private static String getLValue(Class fieldType) { + if (fieldType == null || fieldType.equals(void.class)) { + return "V"; + } + + String plainR = fieldType.getName(); + String rType = getInternalClassName(plainR); + String javaType = "L" + rType + ";"; + return javaType; + } + + private static String getGetterName(String fieldName) { + return "get" + fieldName.substring(0, 1).toUpperCase() + + fieldName.substring(1); + } + + private static String getSetterName(String fieldName) { + return "set" + fieldName.substring(0, 1).toUpperCase() + + fieldName.substring(1); + } + + private static String getArgumentsType(Class[] inTypes) { + StringBuilder list = new StringBuilder(); + + for (Class clazz : inTypes) { + list.append(getLValue(clazz)); + } + + return list.toString(); + } + + private static class ThrowMethodType { + public final String name; + public final Class[] paramTypes; + public final Class returnType; + public final Class exceptionType; + + public ThrowMethodType(String name, Class[] paramTypes, + Class returnType, Class exceptionType) { + this.name = name; + this.paramTypes = paramTypes; + this.returnType = returnType; + this.exceptionType = exceptionType; + } + } +}
diff --git a/1.9.10/contrib/materialized-interface/MaterializingDeserializerFactory.java b/1.9.10/contrib/materialized-interface/MaterializingDeserializerFactory.java new file mode 100644 index 0000000..809732a --- /dev/null +++ b/1.9.10/contrib/materialized-interface/MaterializingDeserializerFactory.java
@@ -0,0 +1,108 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.codehaus.jackson.map.deser; + +import java.lang.reflect.Method; + +import org.codehaus.jackson.map.DeserializationConfig; +import org.codehaus.jackson.map.DeserializerProvider; +import org.codehaus.jackson.map.JsonDeserializer; +import org.codehaus.jackson.map.JsonMappingException; +import org.codehaus.jackson.map.type.TypeFactory; +import org.codehaus.jackson.type.JavaType; + +/** + * A very basic Jackson deserializer factory that extends the BeanSerializer + * factory to allow deserialization using interfaces. + */ +public class MaterializingDeserializerFactory extends BeanDeserializerFactory { + public MaterializingDeserializerFactory() { + super(); + } + + @Override + public JsonDeserializer<Object> createBeanDeserializer( + DeserializationConfig config, JavaType type, DeserializerProvider p) + throws JsonMappingException { + if (type.isInterface()) { + String className = "$org.codehaus.jackson.generated$" + + type.getRawClass().getName(); + BeanHelper.BeanBuilder builder = new BeanHelper.BeanBuilder( + className); + builder.implement(type.getRawClass()); + + return new BeanDeserializerProxyImpl(TypeFactory.fromClass(builder + .load())); + } + + return super.createBeanDeserializer(config, type, p); + } + + protected static class BeanDeserializerProxyImpl extends BeanDeserializer { + public BeanDeserializerProxyImpl(JavaType type) { + super(type); + + try { + this.setDefaultConstructor(type.getRawClass().getConstructor()); + } catch (Exception e) { + throw new RuntimeException(e); + } + + try { + populateSetters(type); + } catch (NoSuchMethodException e) { + throw new RuntimeException(e); + } + } + + private void populateSetters(JavaType type) + throws NoSuchMethodException { + Class clazz = type.getRawClass(); + for (Method m : clazz.getMethods()) { + String methodName = m.getName(); + if (methodName.startsWith("set") + && m.getParameterTypes() != null + && m.getParameterTypes().length == 1) { + Class fieldClass = m.getParameterTypes()[0]; + JavaType fieldType = TypeFactory.fromClass(fieldClass); + + Method setterMethod = getSetterMethod(clazz, methodName, + fieldClass); + + this.addProperty(new SettableBeanProperty.MethodProperty( + getFieldName(methodName), fieldType, + setterMethod)); + } + } + } + + private Method getSetterMethod(Class clazz, String methodName, + Class returnType) throws NoSuchMethodException { + return clazz.getMethod("set" + methodName.substring(3), returnType); + } + } + + private static String getFieldName(String getterMethodName) { + char[] name = getterMethodName.substring(3).toCharArray(); + name[0] = Character.toLowerCase(name[0]); + final String propName = new String(name); + + System.out.println(propName); + return propName; + } +}
diff --git a/1.9.10/contrib/materialized-interface/README b/1.9.10/contrib/materialized-interface/README new file mode 100644 index 0000000..8288aae --- /dev/null +++ b/1.9.10/contrib/materialized-interface/README
@@ -0,0 +1,3 @@ +Work in progress for "materialized interface" extension, contributed by Sunny Gleason. + +Exciting stuff, real source at GitHub (see [http://github.com/sunnygleason/g414-jackson]), but temporarily also cached here for convenience.
diff --git a/1.9.10/contrib/materialized-interface/TestMaterializingDeserializer.java b/1.9.10/contrib/materialized-interface/TestMaterializingDeserializer.java new file mode 100644 index 0000000..39f4354 --- /dev/null +++ b/1.9.10/contrib/materialized-interface/TestMaterializingDeserializer.java
@@ -0,0 +1,61 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ +package org.example; + +import java.io.StringWriter; + +import junit.framework.TestCase; + +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.map.deser.MaterializingDeserializerFactory; +import org.codehaus.jackson.map.deser.StdDeserializerProvider; + +import com.g414.jackson.proxy.ProxySerializerFactory; + +/** + * Exercise the deserializer... + */ +public class TestMaterializingDeserializer extends TestCase { + public void testExample() throws Exception { + ExampleImpl impl = new ExampleImpl(); + + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializerFactory(new ProxySerializerFactory()); + + MaterializingDeserializerFactory df = new MaterializingDeserializerFactory(); + StdDeserializerProvider dp = new StdDeserializerProvider(df); + mapper.setDeserializerProvider(dp); + + // Testing Example1 + StringWriter w1 = new StringWriter(); + mapper.writeValue(w1, impl.asExample1()); + String w1Value = w1.toString(); + Example1 w1in = mapper.readValue(w1Value, Example1.class); + + assertEquals("4660", w1in.getA().toString()); + assertEquals("Foo", w1in.getB().toString()); + + // Testing Example2 ... + StringWriter w2 = new StringWriter(); + mapper.writeValue(w2, impl.asExample2()); + String w2Value = w2.toString(); + + Example2 w2in = mapper.readValue(w2Value, Example2.class); + assertEquals("305419896", w2in.getC().toString()); + } +}
diff --git a/1.9.10/lib/ant/bndtask-0.2.0.jar b/1.9.10/lib/ant/bndtask-0.2.0.jar new file mode 100644 index 0000000..3c0e2d5 --- /dev/null +++ b/1.9.10/lib/ant/bndtask-0.2.0.jar Binary files differ
diff --git a/1.9.10/lib/ant/maven-ant-tasks-2.0.10.jar b/1.9.10/lib/ant/maven-ant-tasks-2.0.10.jar new file mode 100644 index 0000000..50c80cf --- /dev/null +++ b/1.9.10/lib/ant/maven-ant-tasks-2.0.10.jar Binary files differ
diff --git a/1.9.10/lib/cobertura/asm-tree-3.0.jar b/1.9.10/lib/cobertura/asm-tree-3.0.jar new file mode 100644 index 0000000..2a4b208 --- /dev/null +++ b/1.9.10/lib/cobertura/asm-tree-3.0.jar Binary files differ
diff --git a/1.9.10/lib/cobertura/cobertura-1.9.4.1.jar b/1.9.10/lib/cobertura/cobertura-1.9.4.1.jar new file mode 100644 index 0000000..438fe55 --- /dev/null +++ b/1.9.10/lib/cobertura/cobertura-1.9.4.1.jar Binary files differ
diff --git a/1.9.10/lib/cobertura/jakarta-oro-2.0.8.jar b/1.9.10/lib/cobertura/jakarta-oro-2.0.8.jar new file mode 100644 index 0000000..23488d2 --- /dev/null +++ b/1.9.10/lib/cobertura/jakarta-oro-2.0.8.jar Binary files differ
diff --git a/1.9.10/lib/cobertura/log4j-1.2.13.jar b/1.9.10/lib/cobertura/log4j-1.2.13.jar new file mode 100644 index 0000000..dde9972 --- /dev/null +++ b/1.9.10/lib/cobertura/log4j-1.2.13.jar Binary files differ
diff --git a/1.9.10/lib/ext/asm/asm-3.3.jar b/1.9.10/lib/ext/asm/asm-3.3.jar new file mode 100644 index 0000000..7638ae0 --- /dev/null +++ b/1.9.10/lib/ext/asm/asm-3.3.jar Binary files differ
diff --git a/1.9.10/lib/ext/cglib/cglib-nodep-2.2.jar b/1.9.10/lib/ext/cglib/cglib-nodep-2.2.jar new file mode 100644 index 0000000..ed07cb5 --- /dev/null +++ b/1.9.10/lib/ext/cglib/cglib-nodep-2.2.jar Binary files differ
diff --git a/1.9.10/lib/ext/google/google-collections-1.0.jar b/1.9.10/lib/ext/google/google-collections-1.0.jar new file mode 100644 index 0000000..8e394fa --- /dev/null +++ b/1.9.10/lib/ext/google/google-collections-1.0.jar Binary files differ
diff --git a/1.9.10/lib/ext/groovy/antlr-2.7.7.jar b/1.9.10/lib/ext/groovy/antlr-2.7.7.jar new file mode 100644 index 0000000..5e5f14b --- /dev/null +++ b/1.9.10/lib/ext/groovy/antlr-2.7.7.jar Binary files differ
diff --git a/1.9.10/lib/ext/groovy/groovy-1.7.4.jar b/1.9.10/lib/ext/groovy/groovy-1.7.4.jar new file mode 100644 index 0000000..ba57102 --- /dev/null +++ b/1.9.10/lib/ext/groovy/groovy-1.7.4.jar Binary files differ
diff --git a/1.9.10/lib/ext/hibernate/hibernate-cglib-repack-nodep-2.1_3-SNAPSHOT.jar b/1.9.10/lib/ext/hibernate/hibernate-cglib-repack-nodep-2.1_3-SNAPSHOT.jar new file mode 100644 index 0000000..5b6b85a --- /dev/null +++ b/1.9.10/lib/ext/hibernate/hibernate-cglib-repack-nodep-2.1_3-SNAPSHOT.jar Binary files differ
diff --git a/1.9.10/lib/ext/jarjar/jarjar-1.0.jar b/1.9.10/lib/ext/jarjar/jarjar-1.0.jar new file mode 100644 index 0000000..89390bf --- /dev/null +++ b/1.9.10/lib/ext/jarjar/jarjar-1.0.jar Binary files differ
diff --git a/1.9.10/lib/ext/joda-time-1.5.2.jar b/1.9.10/lib/ext/joda-time-1.5.2.jar new file mode 100644 index 0000000..247898f --- /dev/null +++ b/1.9.10/lib/ext/joda-time-1.5.2.jar Binary files differ
diff --git a/1.9.10/lib/jaxb/activation.jar b/1.9.10/lib/jaxb/activation.jar new file mode 100644 index 0000000..1b703ab --- /dev/null +++ b/1.9.10/lib/jaxb/activation.jar Binary files differ
diff --git a/1.9.10/lib/jaxb/jaxb-api-2.0.jar b/1.9.10/lib/jaxb/jaxb-api-2.0.jar new file mode 100644 index 0000000..3918383 --- /dev/null +++ b/1.9.10/lib/jaxb/jaxb-api-2.0.jar Binary files differ
diff --git a/1.9.10/lib/jaxrs/jersey-core-1.1.5.jar b/1.9.10/lib/jaxrs/jersey-core-1.1.5.jar new file mode 100644 index 0000000..097bfd8 --- /dev/null +++ b/1.9.10/lib/jaxrs/jersey-core-1.1.5.jar Binary files differ
diff --git a/1.9.10/lib/jaxrs/jersey-server-1.1.5.jar b/1.9.10/lib/jaxrs/jersey-server-1.1.5.jar new file mode 100644 index 0000000..751660b --- /dev/null +++ b/1.9.10/lib/jaxrs/jersey-server-1.1.5.jar Binary files differ
diff --git a/1.9.10/lib/jaxrs/jsr311-api-1.1.jar b/1.9.10/lib/jaxrs/jsr311-api-1.1.jar new file mode 100644 index 0000000..440c531 --- /dev/null +++ b/1.9.10/lib/jaxrs/jsr311-api-1.1.jar Binary files differ
diff --git a/1.9.10/lib/junit/junit-4.8.2.jar b/1.9.10/lib/junit/junit-4.8.2.jar new file mode 100644 index 0000000..5b4bb84 --- /dev/null +++ b/1.9.10/lib/junit/junit-4.8.2.jar Binary files differ
diff --git a/1.9.10/lib/perf/antlr-2.7.6.jar b/1.9.10/lib/perf/antlr-2.7.6.jar new file mode 100644 index 0000000..3702b64 --- /dev/null +++ b/1.9.10/lib/perf/antlr-2.7.6.jar Binary files differ
diff --git a/1.9.10/lib/perf/jackson-module-json-org-0.9.1.jar b/1.9.10/lib/perf/jackson-module-json-org-0.9.1.jar new file mode 100644 index 0000000..7ce491b --- /dev/null +++ b/1.9.10/lib/perf/jackson-module-json-org-0.9.1.jar Binary files differ
diff --git a/1.9.10/lib/perf/json-org.jar b/1.9.10/lib/perf/json-org.jar new file mode 100644 index 0000000..3e53d2e --- /dev/null +++ b/1.9.10/lib/perf/json-org.jar Binary files differ
diff --git a/1.9.10/lib/perf/json-smart-1.0.6.1.jar b/1.9.10/lib/perf/json-smart-1.0.6.1.jar new file mode 100644 index 0000000..b4d90c4 --- /dev/null +++ b/1.9.10/lib/perf/json-smart-1.0.6.1.jar Binary files differ
diff --git a/1.9.10/lib/repackaged/jackson-asm-3.3.jar b/1.9.10/lib/repackaged/jackson-asm-3.3.jar new file mode 100644 index 0000000..27f1a21 --- /dev/null +++ b/1.9.10/lib/repackaged/jackson-asm-3.3.jar Binary files differ
diff --git a/1.9.10/obsolete-src/README b/1.9.10/obsolete-src/README new file mode 100644 index 0000000..db449a4 --- /dev/null +++ b/1.9.10/obsolete-src/README
@@ -0,0 +1,4 @@ +This directory contains source code that has been in use at some point, +but not used or needed any more. However, there is a chance that such code +might be useful for some other use later on, and as such it is still retained +in a somewhat visible place (not just SCM system version history).
diff --git a/1.9.10/profile.sh b/1.9.10/profile.sh new file mode 100755 index 0000000..66e5623 --- /dev/null +++ b/1.9.10/profile.sh
@@ -0,0 +1,8 @@ +#!/bin/sh + +java -Xmx64m -server \ + -cp build/classes/core:build/classes/mapper:build/classes/extra\ +:build/classes/smile:build/classes/xc:build/classes/perf\ +:lib/xml/\*\ + -Xrunhprof:cpu=samples,depth=10,verbose=n,interval=2 \ +$*
diff --git a/1.9.10/regression/clirr-core-0.6-uber.jar b/1.9.10/regression/clirr-core-0.6-uber.jar new file mode 100644 index 0000000..d4245f4 --- /dev/null +++ b/1.9.10/regression/clirr-core-0.6-uber.jar Binary files differ
diff --git a/1.9.10/regression/jackson-core-asl-1.7.3.jar b/1.9.10/regression/jackson-core-asl-1.7.3.jar new file mode 100644 index 0000000..380c063 --- /dev/null +++ b/1.9.10/regression/jackson-core-asl-1.7.3.jar Binary files differ
diff --git a/1.9.10/regression/jackson-mapper-asl-1.7.3.jar b/1.9.10/regression/jackson-mapper-asl-1.7.3.jar new file mode 100644 index 0000000..d36c923 --- /dev/null +++ b/1.9.10/regression/jackson-mapper-asl-1.7.3.jar Binary files differ
diff --git a/1.9.10/release-notes/CREDITS b/1.9.10/release-notes/CREDITS new file mode 100644 index 0000000..c69cbcb --- /dev/null +++ b/1.9.10/release-notes/CREDITS
@@ -0,0 +1,935 @@ +Here are people who have contributed to Jackson JSON process development: +(version numbers in brackets indicate release in which the problem was fixed) + +Tatu Saloranta, tatu.saloranta@iki.fi: author + +Ryan Heaton, ryan@webcohesion.com: co-author + +Peter Harris, Peter.Harris@betfair.com: contributor + +Sunny Gleason, sunny@ning.com: contributor + +Alain Penders: + * Reported problem with JavaTypeMapper, where floating point numbers were + accidentally converted to Booleans. + [0.8] + +Mike Eastey: + * Reported problem with JavaTypeMapper had a bug which prevented custom + mappers (as well as slower interface-based introspection) from working, + provided path to specific underlying bugs. + [0.8.2] + +Augusto Callejas: + * Reported problem with JavaTypeMapper (and JsonTypeMapper), which + caused read operation not to handle EOF appropriately but instead + cause a NullPointerException. + [0.9] + +Maciej Pestka: + * JavaTypeMapper did not implicitly flush generator after mapping + objects: it should, and now will (note: JsonTypeMapper not directly + affected, flushing still needed) + [0.9] + +Tudor Bosman: + * Symbol table handling not thread-safe + [0.9.3] + +Michael Mangeng: + * Suggested [JACKSON-1]: make JsonNode implement Iterable<JsonNode> to + allow use of Java 5 foreach loop with container nodes. + [0.9.3] + +Johannes Link: + * Reported [JACKSON-8]: Serialization of BigDecimal broken with JavaTypeMapper + [0.9.3] + +Stanislaw Osinski: + * Reported [JACKSON-14], contributed code to resolve it and improve + generics-handling significantly. + [0.9.4] + +Michael Descher: + * Reported [JACKSON-18], ArrayIndexOutOfBounds on IntNode, due to + off-by-one problem with comparisons used for caching common values. + [0.9.4] + +Mike Goodwin: + * Suggested [JACKSON-9]: Add support for (non-standard) Json comments. + [0.9.4] + +Ray Racine: + * Pointed out [JACKSON-25]: Problems with Maven pom for lgpl version + [0.9.4-backport] + * Reported [JACKSON-619] SmileParser.getCurrentLocation(), getTokenLocation() + not reporting actual byte offsets. + [1.9.0] + +Scott Dixon: + * Contributed unit test (TestComplexJavaType) for verifying functioning + of object serialization + [0.9.5] + * Suggested [JACKSON-38] Allow serializing/deserializing DOM trees (Node, Document) + [1.4.0] + * Suggested [JACKSON-45]: Add convenience methods to simplify writing + custom serializers + [1.0.0] + +Justin Friedl: + * Requested [JACKSON-52]: ability to disable getter method auto-detection + [0.9.9] + * Reported [JACKSON-53] (and suggested way to fix it): problem serializing + iBatis bean classes generated (or wrapped) by CGLib. Probably would also + have caused problems with Hibernate and other frameworks. + [0.9.8] + * Requested [JACKSON-61]: Allow suppressing writing of bean properties + with null values + [0.9.9-3] + * Reported [JACKSON-62]: NPE with JsonMappingException + [0.9.9] + +Scott Anderson: + * Suggested [JACKSON-48]: Integrate ObjectMapper with JsonGenerator, + JsonParser; add MappingJsonFactory. + [0.9.9] + * Requested [JACKSON-84]: Add JsonGenerator.writeRawValue method(s). + [0.9.9-3] + * Requested [JACKSON-106]: Add 'org.codehaus.jackson.io.CharacterEscapes' which can + be registered with JsonFactory, JsonGenerator, to add fully customized character + escaping handling + [1.8.0] + +Kevin Grained: + * Reported [JACKSON-58] (and suggested a fix): NPE with String[] + serialization + [0.9.9] + +Eldar Abusalimov: + * Reported [JACKSON-81]: Data binding code could lead to unnecessary + blocking because it tried to advance parser (and stream) after binding + [0.9.9-3] + * Reported [JACKSON-99]: IOExceptions should not be wrapped during object + mapping. + [0.9.9-4] + +Stephen Duncan jr: + * Pointed out problem with JacksonJsonProvider where strict equality + comparison was used instead of using MediaType.isCompatible(). + [0.9.9-4] + +Ray Tsang: + * Reported [JACKSON-103] (problem with Groovy class serialization), + submitted fix + [0.9.9-7] + +Oleksandr Alesinskyy: + * Reported [JACKSON-104], problems with packaging, build. + [0.9.9-7] + +Christoph Strebin: + * Requested [JACKSON-102], ability to force escaping of non-ASCII characters + [1.8.0] + * Requested [JACKSON-105], proposed a way to implement it: + Allow suppressing output of "default values"; which + means value of a property when bean is constructed using the default + no-arg constructor + [1.1.0] + * Reported [JACKSON-568] Package 'org.codehaus.jackson.util' missing from + core/lgpl jar + [1.8.1] + * Suggested [JACKSON-531] Comparing actual and default value (for + JsonSerialize.Inclusion.NON_DEFAULT) should check array contents + [1.9.0] + +Peter Harris: + * Reported [JACKSON-139], provided patch for fixing it: Non-numeric + double values (NaN, Infinity) are serialized as invalid JSON tokens + (reported by Peter H) + [1.1.1] + +Dan Simpson: + * Reported [JACKSON-144]: Static "getter-like" methods mistaken for + getters (for serialization) + [1.1.2] + +Gregory Gerard: + * Reportd [JACKSON-143]: NPE on ArrayNode.equals() when comparing empty + array node to non-empty array node + [1.1.2] + +Dain Sundstrom: + * Suggested addition of "-use" for javadoc generation + [1.2.0] + * Suggested [JACKSON-136] JsonParser and JsonGenerator should implement + java.io.Closeable (since they already have close() method) + [1.2.0] + * Suggested [JACKSON-706] Joda support: add support for "org.joda.time.Period" + [1.9.2] + +Gabe Schnaubelt: + * Reported [JACKSON-155]: Failed to serialize java.io.File (with infinite + recursion) + [1.3.0] + +Benjamin Darfler: + * Suggested [JACKSON-164]: Improve null-handling in JsonGenerator.writeStringField() + [1.3.0] + * Suggested [JACKSON-165]: Add JsonParser.getBooleanValue() convenience method + [1.3.0] + +Troy Waldrep: + * Reported [JACKSON-162]: OSGi packaging problems for xc package. + [1.3.0] + +Randy Layma: + * Reported [JACKSON-171]: Self-referential types cause infinite recursion + when using only JAXB annotation introspector + [1.3.0] + +Shay Banon: + * Suggested [JACKSON-168] Make JsonLocation serializable (and deserializable) + [1.3.0] + * Reported [JACKSON-376] writing binary data as object field value with Smile fails + [1.6.1] + * Reported [JACKSON-424] ArrayIndexOutOfBounds with SmileGenerator, long Unicode + Strings + [1.6.3] + * Reported [JACKSON-525]: Problem with SmileGenerator, recycling of shared-names + buffer + [1.7.4] + * Reported [JACKSON-552] SmileParser not handling long field names properly, + failed with "this code path should never get executed" exception + [1.7.6] + +Brian McCallister: + * Suggested [JACKSON-173]: Add "JsonParser.Feature.ALLOW_SINGLE_QUOTES" + to handle commonly encountered invalid JSON content + [1.3.0] + * Reported [JACKSON-179] Single-long-arg factory Creators were not working + [1.3.0] + +Ted Bergeron: + * Reported [JACKSON-177]. + [1.3.0] + +Jeff Yu: + * Suggested [JACKSON-180]: Add 'JsonParser.Feature.INTERN_FIELD_NAMES' to + allow disabling field name intern()ing. + [1.3.0] + +Doug Daniels: + * Suggested [JACKSON-176]: Add a work-around for Javascript's problems + with big 64-bit longs (due to always representing numbers as 64-bit + doubles internally, thus truncating some long values) + [1.3.0] + +Nick Padgett: + * Reported [JACKSON-183]: Root-level 'JsonDeserialize' annotation + not handled completely; 'as' setting was not taking effect + [1.3.0] + +Nathan Ching: + * Reported [JACKSON-190]: Problem deserializing some nested generics + types + [1.3.1] + +Martin Lauer: + * Reported [JACKSON-194] ObjectMapper class loading issues on Android + [1.3.1] + +Edward Thorne: + * Reported [JACKSON-197]: 2 debug message print out to System.err + [1.3.1] + +Steve Lopez: + * Reported [JACKSON-200]: java.sql.Date deserialization not working well + [1.3.1] + * Reported [JACKSON-203]: Date deserializers should map empty String to null + [1.3.1] + +Mike Pilone: + * Suggested [JACKSON-201]: Allow serialization of "empty beans" (classes + without getters), if SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS is + disabled; or if class has recognized Jackson annotation + [1.4.0] + * Reported [JACKSON-202]: Non-public fields not deserialized properly + with JAXB annotations + [1.3.1] + +Stephen Friedrich: + * Reported additional issues with [JACKSON-203] + [1.3.2] + +Jeff Schnitzer: + * Reported [JACKSON-188]: problems running Jackson 1.3 on GAE, due + to dependency to JAXB API classes + [1.3.2] + +Elliot Shepherd: + * Reported [JACKSON-214], suggested fix: Enum types with subclasses + fail to serialize + [1.3.3] + +Gil Markham: + * Reported [JACKSON-196], suggested fix: Schema generation does not + respect the annotation configured serializer on a bean property + [1.4.0] + +Mark Stevens: + * Requested [JACKSON-208] Allow unquoted control characters (esp. tabs) + in JSON Strings and field names + [1.4.0] + +Mike Rheinheimer: + * Reported [JACKSON-216] Jackson JAXB annotation handler does not use + @XmlElement.type property for figuring out actual type + [1.4.0] + +Chris Carrier: + * Suggested [JACKSON-236]: Allow deserialization of timestamps-as-Strings + (not just timestamps as JSON integer numbers). + [1.5.0] + +Andrei Voden: + * Suggested [JACKSON-232]: Add 'SerializationConfig.Feature.DEFAULT_VIEW_INCLUSION' + to disable inclusion of non-annotated properties with explicit views + [1.5.0] + +Lars Clausen: + * For 1.5.0: + - [JACKSON-246]: JAXB property name determination not working correctly. + - [JACKSON-250]: Type name not always detected + - Concurrency bug in pre-1.5.0 version of @JsonSubTypes handling + +Pierre-Yves Ricay: + * Requested [JACKSON-244]: allow private fields processing without having to annotate them + [1.5.0] + +John Lister: + * Reported [JACKSON-256]: incorrect combining of serialization inclusion + values; suggested better way to do it + [1.5.0] + +Gennadiy Shafranovich: + * Reported [JACKSON-263]: BooleanNode.asToken() incorrectly returns 'true' + token for all nodes (not just 'false' ones) + [1.4.4, 1.5.0] + +Fabrice Delhoste: + * Suggested [JACKSON-254] Add 'SerializationConfig.Feature.WRITE_EMPTY_JSON_ARRAYS', + which can be used to suppress serialization of empty JSON arrays (unless + overridden by per-property annotations). + [1.9.0] + * Reported [JACKSON-265]: problems with generic type handling for + serialization + [1.5.1] + +Raymond Feng: + * Reported [JACKSON-269]: missing OSGi export by mapper (o.c.j.m.jsontype.impl) + needed by jackson-xc module + [1.5.1] + +Martin Tomko: + * Reported [JACKSON-266] Deserialization from JsonNode fails + [1.4.4, 1.5.2] + +Lukasz Dywicki: + * Reported [JACKSON-273] Problems with OSGi dependency declarations + [1.5.2] + +Aron Atkins: + * Reported [JACKSON-281] JsonGenerator.writeObject() only supports subset of + wrapper types (when not specifying ObjectCodec) + [1.5.2] + +Eric Sirianni: + * Reported [JACKSON-311]: Problems handling polymorphic type information for + 'untyped' (Object) bean properties, default typing + [1.5.4] + +Geoffrey Arnold: + * Reported [JACKSON-318]: Missing deserialization support for + java.util.Currency + [1.5.5] + +Christopher Currie: + * Reported [JACKSON-319], pointed out solution: issues trying to deserialize + polymorphic instances with no data (just type info) + [1.5.5] + (requested by Chris C) + * Suggested [JACKSON-638] TypeFactory methods for constructing "raw" map or collection types + [1.9.0] + * Requested [JACKSON-639] Change BasicClassIntrospector.forClassAnnotations + to take JavaType (not raw Class) + [1.9.0] + * Requested [JACKSON-665] Add AnnotatedWithParams.getIndex() + [1.9.0] + +Steve Crane: + * Suggested [JACKSON-324], calling releaseBuffers() within finally block + (JsonParserBase.close()) + [1.5.5] + +Yuanchen Zhu: + * Reported [JACKSON-327], submitted patch: CustomSerializerFactory incorrectly + looks up serializer for interfaces + [1.5.5] + * Reported [JACKSON-329], type information was not properly serialized for + Iterator or Iterable serializers + [1.5.6] + * Reported [JACKSON-340] Meta annotations missing for @JsonTypeResolver + [1.5.6] + +Henry Lai: + * Reported [JACKSON-352] Polymorphic deserialization for Object always + assumes array-wrapper style + [1.5.7] + +Adam Sussman: + * Reported [JACKSON-355] Handling of BigInteger with JsonNode not correct + [1.5.7] + +Lubomir Konstantinov: + * Reported [JACKSON-363] CustomDeserializerFactory did not work for custom + array deserializers. + * Reported [JACKSON-373] Interface inheritance not traversed when looking up + custom serializers + +Dimitry Lisay: + * Reported [JACKSON-370] TreeTraversingParser.skipChildren() was not + correctly skipping children + [1.5.7] + +Kirill Stokoz: + * Reported [JACKSON-377] ThrowableDeserializer was not properly using information from + @JsonCreator or @JsonAnySetter + [1.5.7] + * Reported [JACKSON-383] @JsonAnySetter gets called for ignorable properties if + FAIL_ON_UNKNOWN_PROPERTIES set to false (related to [JACKSON-313]) + [1.6.1] + * Reported [JACKSON-456], provided unit tests: Type check issues with Jackson JAX-RS provider + [1.7.1] + * Reported [JACKSON-504]: FilterProvider registration directly via + SerializationConfig was not working + [1.7.4] + * Reported [506]: problems with type handling for java.util.Date + when using @JsonTypeInfo on field/method + [1.7.4] + * Reported [JACKSON-518]: Problems with JAX-RS, type variables + [1.7.4] + +Brian Oberman: + * Requested [JACKSON-289] Ability to serialize char[] values as JSON Arrays + with String values of length 1 (and accepting these on deserialization) + [1.6.0] + +Paul R Brown: + * Requested [JACKSON-193] Ability to use @JsonCreator and @JsonValue with + enum types + [1.6.0] + +Ketan G: + * Requested [JACKSON-300] Add 'JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER + to allow non-standard character escapes like \'. + [1.6.0] + +Rob Ottway: + * Requested [JACKSON-301] Allow JsonMappingException to return name of "bad" + (unrecognized) field + [1.6.0] + +Thomas Dudziak: + * Reported [JACKSON-328] Incorrect precedence between property fields, "getter-as-setter" + fallbacks (former should have higher precedence) + [1.6.0] + * Suggested [JACKSON-420] Add 'DeserializationConfig.Feature.FAIL_ON_NULL_FOR_PRIMITIVES' + to optionally prevent JSON null from mapping to default value + [1.7.0] + +Ant Elder: + * Suggested [JACKSON-295] Create "jackson-all" jar for more convenient + deployment + [1.6.0] + +David Melia: + * Reported [JACKSON-303] JAXB annotation @XmlAccessorType(XmlAccessType.NONE) seems + to not work correctly during deserialisation process + [1.6.0] + +Valentin Brasov: + * Reported [JACKSON-268] Property ordering for JAXB did not work with "raw" property + names (but just with renamed names like with Jackson annotations) + [1.6.0] + +Igor Kolomets: + * Suggested [JACKSON-308] Configurable date formatting support for XMLGregorianCalendar, + XMLGregorianCalendar now uses same Date/Calendar serialization as other date types. + [1.6.0] + +Shilpa Panaganti: + * Suggested [JACKSON-360] Convert "" to null for Joda date/time types + [1.6.1] + +Larry Yogman: + * Reported [JACKSON-371] Provide path of type error in ObjectMapper.convertValue() + [1.6.1] + * Reported [JACKSON-458]: Problems with ObjectMapper.convertValue(), TokenBuffer, SerializedString + [1.7.1] + +Bruce Ritchie: + * Reported [JACKSON-384] @JsonAnyGetter values were duplicated if method name was valid + as a regular getter name + [1.6.1] + +Patrick Ryan: + * Reported [JACKSON-366] Type metadata not written for empty beans + [1.6.2] + * Reported [JACKSON-428] Type information, Map key deserializer definitions don't + work together + [1.6.4] + +Manuel Alejandro de Brito Fontes: + * Reported [JACKSON-403]: XMLGregorianCalendar could not be deserialized from timestamp + [1.6.2] + +Davide: + * Reported [JACKSON-404]: Problem with XmlAdapter, generic types, deserialization + [1.6.2] + +Kent Rancourt: + * Reported [JACKSON-288]: Problems with JAXB annotation handling for combination of + @XmlJavaTypeAdapter, @XmlElement + [1.6.2] + +Claudio Rossetto: + * Reported [JACKSON-228], suggested correct solution: XmlJavaTypeAdapter not + properly handled with package-level annotations + [1.6.3] + +Sean Parmelee: + * Reported [JACKSON-415]: XmlElement.type() ignored for Schema generation + [1.6.3] + * Reported [JACKSON-416]: XmlElement.type() doesn't override type during + serialization + [1.6.3] + * Reported [JACKSON-423]: Incorrect serialization of BigDecimal, BigInteger, + when using TokenBuffer + [1.6.3] + * Reported [JACKSON-436]: @XmlElementType not working correctly with Collection + type properties + [1.6.4] + * Reported [JACKSON-450] JAXB annotations chosen incorrectly from interface method + (instead of method definition in class), when serializing + [1.7.0] + * Reported [JACKSON-472] Custom bean deserializers are not cached when using + JAXB annotation introspector + [1.6.5] + * Reported [JACKSON-476] ContextualDeserializer handling not completely working + [1.7.2] + +Joe Jensen: + * Reported [JACKSON-417] Deserialization of "native" types (String, Integer, + Boolean) failed with abstract types + [1.6.3] + +Peter Litvak: + * Reported [JACKSON-387]: Deserialization fails for certain objects serialized + with enableDefaultTyping + [1.6.3] + * Suggested [JACKSON-432]: Add 'ObjectMapper.enableDefaultTypingAsProperty()' to allow + specifying inclusion type 'As.PROPERTY' and property name to use + [1.7.0] + +Hannu Leinonen: + * Reported [JACKSON-431] Deserialization fails with JSON array with beans + with @JsonCreator, unmapped properties before and after creator properties + [1.6.4] + +Tim Williamson: + * Reported [JACKSON-461] ArrayIndexOutOfBoundsException when property is subclass of + Map with fewer type parameters + [1.6.5 + * Reported [JACKSON-465] Deserialization with @JsonCreator that takes in + a Map fails + [1.6.5] + * Reported [JACKSON-470] ArrayIndexOutOfBoundsException if @JsonCreator + constructor has @JsonParameter parameters with same name + [1.6.5] + * Suggested [JACKSON-548]: enabling ALLOW_SINGLE_QUOTES should allow backslash-escaping + [1.8.0] + +Christian Naeger: + * [JACKSON-468] Method-bound type variables (public <T> T getValue()) not handled + [1.6.5] + +Steven Schlansker: + * Reported [JACKSON-473] JsonMapping$Reference not Serializable + [1.6.5] + * Reported [JACKSON-543] Root-level static type information incorrectly handled + with Maps (losing parameterization) + [1.7.7] + * Reported [JACKSON-572] Problems serializing generic non-static inner classes + [1.7.7] + * Suggested [JACKSON-726] Add java.util.UUID key deserializer + [1.9.3] + +Elliot Barlas: + * Reported [JACKSON-491]: Bug in NumberInput.inLongRange, causing false overflows + [1.6.6] + +Gili (cowwoc): + * Reported [JACKSON-495] NPE at JaxbAnnotationIntrospector, with @JsonCreator + annotations + [1.6.6] + +Jax Law: + * Reported [JACKSON-499] Problems serializing HashMap.keySet(), values() + [1.6.7] + +Ga�l Marziou: + * Contributed [JACKSON-351]: Add @JsonRawValue that allows injecting literal textual + value into JSON + [1.7.0] + +Patrick Leamon: + * Suggested [JACKSON-412] Add 'DeserializationConfig.Feature.FAIL_ON_NUMBERS_FOR_ENUMS' + to optionally prevent mapping JSON integers into Java Enum values + [1.7.0] + +Tauren Mills: + * Suggested [JACKSON-414] Add 'JsonNode.getValueAsBoolean()' (and 'JsonParser.getValueAsBoolean()') + [1.7.0] + +Chris Winters: + * Reported [JACKSON-457] Misspelled method in Module ("getSeserializationConfig") + [1.7.1] + * Suggested [JACKSON-459]: Add mapper-level configuration to set default serialization + order be alphabetic (by property name). + [1.8.0] + +Coda Hale: + * Reported [JACKSON-462]: Buffer overflow in Utf8Generator#writeFieldName(String) + [1.7.1] + * [JACKSON-557] CollectionLikeType#equals() casts parameter to CollectionType + [1.8.1] + +David Yu: + * Suggested [JACKSON-474]: Add ability to pass externally allocated buffer for Utf8Generator, SmileGenerator + [1.7.2] + * Reported [JACKSON-492], contributed unit test: problem encoding 1 byte length "raw" UTF8 Strings + [1.7.3] + +Christopher Berner: + * [JACKSON-508] Type information lost when serializing List<List<X>> + [1.7.4] + +Pascal Glinas: + * Suggested [JACKSON-541] with patch: Remove the need for @JsonCreator on + multi-arg constructor iff all parameters have @JsonProperty + [1.7.5] + * Reported [JACKSON-554] ObjectMapper.readValue(JsonNode) was not properly + passing itself as ObjectCodec, making secondary conversions fail + [1.7.7] + * Suggested [JACKSON-581] Add 'ObjectMapper.readTree(File)' + [1.9.0] + * Reported [JACKSON-687] Problems with PropertyNamingStrategy, property merging + [1.9.1] + * Reported [JACKSON-689] Deserialization of Iterable fails + [1.9.1] + * Reported [JACKSON-693] @JsonBackReference not used during deserialization + if it's annotated on a getter method. + [1.9.1] + +Maik Jorra: + * Reported [JACKSON-540] Side-effects with ObjectMapper.canSerialize(), + canDeserialize() + [1.7.5] + +Suchema Oyetey: + * Reported [JACKSON-530] Default SerializationInclusion value not properly + passed when "USE_ANNOTATION" set to false + [1.7.5] + +Michel Goldstein: + * Reported [JACKSON-545] UTF8Writer getting NPE if flush() called after close() + [1.7.5] + +Andrei Pozolotin: + * Reported [JACKSON-550] Registration of serializers was not completely + working with SimpleModule (interfaces implemented by superclasses skipped) + [1.7.6] + +Luis Neves: + * Reported [JACKSON-542] Base64 decoder couldn't handle escaped characters + +Xyn Wang: + * Reported [JACKSON-553] SerializationConfig.Feature.DEFAULT_VIEW_INCLUSION + did not work correctly + [1.7.7] + +Alex Porras: + * Reported [JACKSON-556] @XmlElement.name property ignored in some cases + [1.7.7] + +Gregor Ottman: + * Reported [JACKSON-569] ContextualSerializer not resolved for serializers + defined with @JsonSerialize annotation + [1.7.7] + +Bryce McKinlay: + * Suggested [JACKSON-358]: Allow parsing numbers with leading zeroes + [1.8.0] + +Sven Jacobs: + * Suggested [JACKSON-527]: Add 'HandlerInstantiator' abstraction, which can be implemented + and registered with ObjectMapper to get more control over how handlers (serializers, + deserializers, type id resolver) are constructed. + [1.8.0] + +Ruben Errejon Garcia: + * Reported [JACKSON-560] Mix-in annotations ignored when used with views + [1.8.0] + +Young Jin Park: + * Failure to serialize certain Unicode Strings + [1.8.1] + +Oleg Estekhin: + * Reported [JACKSON-563] JSON Schema uses "required" (not "optional") + [1.8.1] + +Jamie Reilly: + * Reported [JACKSON-570] Caching of MapSerializer not thread-safe + [1.8.1] + +Pierre-Alexandre Meyer: + * Reported [JACKSON-586]: Problems with @JsonValue, method visibility + [1.8.2] + +Chris Pruett: + * Reported [JACKSON-587] TextNode.getValueAsLong() failing with values + beyond int range. + [1.8.3] + +Tom Leccese: + * reported [JACKSON-591] JodaDeserializers not throwing wrongTokenException + [1.8.3] + +Lawrence Chang: + * Reported [JACKSON-627] WriterBasedGenerator failure for long Strings, + custom character escaping, unit test, suggested fix. + [1.8.4] + +Maxxan: + * Reported [JACKSON-629] Fix a buffer boundary problem with SmileParser, + 5-7 character names + [1.8.4] + +Tim Bond: + * Reported [JACKSON-631] Problems decoding Base64Variants.MODIFIED_FOR_URL + [1.8.4] + +Edward Alexandrov: + * Reported [JACKSON-632] Handling of UTF-8 BOM incorrect, causing + "Internal Error" + [1.8.4] + +Paul Marynchev: + * Reported [JACKSON-637] NumberSerializer was missing proper handling of + Integer, Long + [1.8.5] + +Ransom Briggs: + * Reported [JACKSON-668] Problems with 'JsonParser.getDecimalValue' + not clearing earlier state + [1.8.6] + +William Burns: + * Reported [JACKSON-677], suggested fix for: Inner generic type references + not working properly + [1.8.6] + +Tom Boettcher: + * Reported [JACKSON-709] Problems converting base64-encoded Strings + between JsonNode, POJOs + [1.8.7] + +Ryan Kennedy: + * Reported [JACKSON-462] (REGRESSION?) Buffer overflow in + Utf8Generator#writeFieldName(String) + [1.8.7] + +Jacques-Olivier Goussard: + * Reported [JACKSON-733] Smile-based mapper could not properly bind + byte[] values + [1.8.7] + +Alex Temnokhod: + * Reported [JACKSON-738] Parsing fails for Unicode 1Fxxx symbols when + skipping + [1.8.7] + +Lloyd Smith: + * Reported [JACKSON-701] ArrayIndexOutOfBoundsException when trying to serialize + non-static inner classes with annotations on last ctor param + [1.8.8] + +Erik Gorset: + * Reported [JACKSON-763] State of base64/byte[] decoding not reset when + using 'convertValue()' for list of byte[] values. + [1.8.9] + +Matt Schemmel: + * Reported [JACKSON-820] WriterBasedGenerator with CharacterEscapes produces + unescaped output for strings > 2k in length + [1.8.9] + +"Programmer Bruce": + * Suggested these for 1.8.x: + - [JACKSON-597] Make ClassDeserializer support primitive types [1.8.3] + * Suggested these for 1.9.0: + - [JACKSON-593] Add ObjectMapper.readTree(byte[]), (URL) variants + - [JACKSON-594] Allow deserializing non-static inner class valued properties + - [JACKSON-595] Terse Visibility Config (ObjectMapper.setVisibility, related) + - [JACKSON-598] Add set of standard naming-strategy implementations + - [JACKSON-599] Expose Settability Of SimpleModule Serializers/Deserializers + - [JACKSON-605] Handle deserialization of typed Class properties correctly + - [JACKSON-612] Add 'readValues()' methods to JsonParser, ObjectCodec + - [JACKSON-613] Add ArrayNode/ObjectNode methods for dealing with wrappers/unboxing/nulls + - [JACKSON-616] Better handling of primitive deserializers, to avoid NPEs + - [JACKSON-621] Add new fluent method, VisibilityChecker.with(Visibility) + +Anand Hatrwalne: + * Requested [JACKSON-558] Add 'DeserializationConfig.Feature.UNWRAP_ROOT_VALUE' as + matching counterpart for 'SerializationConfig.Feature.WRAP_ROOT_VALUE' + [1.9.0] + +Earl Baugh: + * Suggested [JACKSON-584] Serialize type info for non-static anonymous inner classes + as that of declared (static) type + [1.9.0] + +Matt Goldspink: + * Suggested [JACKSON-578] Allow use of @JsonView on JAX-RS resource, with JacksonJsonProvider + [1.9.0] + +Ed Anuff: + * Suggested [JACKSON-602] Add 'JsonSerialize.Inclusion.NON_EMPTY' option + [1.9.0] + + +Lukasz Strzelecki: + * Requested [JACKSON-630] Add @JsonRootName annotation for specifying name of root-level wrapper + [1.9.0] + +Simone Bordet: + * Requested [JACKSON-652] Add 'DeserializationConfig.Feature.USE_JAVA_ARRAY_FOR_JSON_ARRAY' to + allow mapping JSON Array to Object[] + [1.9.0] + +David Phillips: + * Requested [JACKSON-671] Add convenience constructor for 'MinimalPrettyPrinter' + [1.9.0] + +Kirill Sukhanov: + * Suggested [JACKSON-650] Allow dealing with missing filter ids, by adding + 'SimpleFilterProvider.setFailOnUnknownId()' to specify if exception is thrown or not. + [1.9.0] + +Ben Hale: + * Reported [JACKSON-700] Type problems with properties that have different + types for constructor property, setter and/or field + [1.9.1] + +Andreas Knoepfle, Tobias Schmid: + * Contributed implementation for [JACKSON-657], key deserializers for + java.util.Date and java.util.Calendar types + [1.9.3] + +Steve Loeppky: + * Reported [JACKSON-746] Problems with JsonTypeInfo.Id.NONE, default typing + [1.9.4] + +Sebastian Thelen: + * Reported [JACKSON-753] JsonParserDelegate missing delegation of getBooleanValue(), + getEmbeddedObject() + [1.9.4] + +Stephan Bailliez: + * Reported [JACKSON-757] Problems with Enum values, annotations on constructors + [1.9.4] + +Mika Mannermaa: + * Reported [JACKSON-756] Problems with enums, @JsonCreator, when used as keys + of EnumMap, regular Map, or contents of EnumSet + [1.9.4] + +Nathaniel Bauernfeind: + * Reported [JACKSON-774]: PropertyBasedCreator not using JsonDeserializer.getNullValue() + [1.9.5] + +Ittai Zeidman: + * Reported [JACKSON-775]: MissingNode.asText() should return "", not null + [1.9.5] + +Alexander Klauer: + * Reported [JACKSON-779]: Problems with multi-byte UTF-8 chars in JSON comments + [1.9.5] + +Vladimir Petrukhin: + * Reported [JACKSON-778], provided test case: Incorrect detection of generic + types with TypeReference + [1.9.5] + +Christopher Brown: + * Reported [JACKSON-796]: Problems with byte[] conversion to/from JsonNode. + [1.9.5] + +Harold Marger: + * Reported [JACKSON-806]: REQUIRE_SETTERS_FOR_GETTERS ignores explicitly annotated getters + [1.9.6] + +Adam Vandenberg: + * Reported [JACKSON-823] MissingNode does not return default value for + 'asXxx()' methods + [1.9.7] + +James Roper: + * Reported [JACKSON-829] Custom serializers not working for List<String> + properties, @JsonSerialize(contentUsing) + [1.9.7] + +Laurent Pireyn: + * Reported [JACKSON-831] External type id, explicit property do not work well together + [1.9.7] + +Jan Jan: + * Reported [JACKSON-832] (partial) Fix numeric range check for Longs (was not working) + [1.9.7] + +Klaus Reimer: + * [JACKSON-834] Could not use @JsonFactory with non-String argument with Enums + [1.9.7] + +Stuart Dootson: + * Reported [Issue-13] Runtime error passing multiple injected values to a constructor + [1.9.7] + +Lóránt Pintér: + * Reported [JACKSON-838]: Utf8StreamParser._reportInvalidToken() skips + letters from reported token name + [1.9.8] + +Scott Stanton: + * Reported [JACKSON-841] Data is doubled in SegmentedStringWriter output + [1.9.8] + +Sébastien R: + * Reported [JACKSON-842] ArrayIndexOutOfBoundsException when skipping C-style comments + [1.9.8] + +Duncan Bloem: + * Reported [JACKSON-867] missing Export-Package header for + "org.codehaus.jackson.map.ext" + [1.9.10]
diff --git a/1.9.10/release-notes/VERSION b/1.9.10/release-notes/VERSION new file mode 100644 index 0000000..00931ff --- /dev/null +++ b/1.9.10/release-notes/VERSION
@@ -0,0 +1,1782 @@ +Version: 1.9.10 + +Release date: + 23-Sep-2012 + +Description: + Another patch release for 1.9. + +Fixes: + * [JACKSON-855]: add StackOverflowError as root cause + * [JACKSON-867]: missing Export-Package header for "org.codehaus.jackson.map.ext" + (reported by Duncan B) + * [Issue#57]: Allow serialization of JDK proxy types + * [Issue#71]: java.util.concurrent.ConcurrentNavigableMap support was failing + +------------------------------------------------------------------------ +=== History: === +------------------------------------------------------------------------ + +1.9.9 (28-Jul-2012) + +Fixes: + * [Issue-21]: Improve handling of String hash code collisions for + symbol tables; exception for degenerate cases (attacks), improvements + for calculation otherwise + * [Issue-24]: ArrayIndexOutOfBoundsException with TextBuffer.append() + * [JACKSON-853]: JsonStringEncoder.quoteAsString() problem with buffer boundary + +Other: + * Improved multi-threader handling of byte-based symbol table; should + reduce lock contention for heavily multi-threaded cases, esp. when + parsing short documents. + + +1.9.8 (28-Jun-2012) + +Fixes: + + * [Issue-6]: element count for PrettyPrinter, endObject wrong + (reported by "thebluemountain") + * [JACKSON-838]: Utf8StreamParser._reportInvalidToken() skips letters + from reported token name + (reported by Lóránt Pintér) + * [JACKSON-841] Data is doubled in SegmentedStringWriter output + (reported by Scott S) + * [JACKSON-842] ArrayIndexOutOfBoundsException when skipping C-style comments + (reported by Sebastien R) + * [JACKSON-845] Problem with Object[][] deserialization, default typing + (reported by Pawel J) + +1.9.7 (02-May-2012) + + Fixes: + + * [Smile/Issue-2] SmileParser failed to decode surrogate-pair characters for + long Strings + (reported by Steven S) + * [Issue-11] JsonParser.getValueAsLong() returning int, not long + (reported by Daniel L) + * [Issue-13] Runtime error passing multiple injected values to a constructor + (reported by Stuart D) + * [Issue-14]: Annotations were not included from parent classes of + mix-in classes + (reported by @guillaup) + * [JACKSON-823] MissingNode does not return default value for 'asXxx()' + methods + (reported by Adam V) + * [JACKSON-829] Custom serializers not working for List<String> properties, + @JsonSerialize(contentUsing) + (reported by James R) + * [JACKSON-831] External type id, explicit property do not work well together + (reported by Laurent P) + * [JACKSON-832] (partial) Fix numeric range check for Longs (was not working) + (reported by Jan J) + * [JACKSON-834] Could not use @JsonFactory with non-String argument with Enums + (reported by Klaus R) + +1.9.6 [26-Mar-2012] + + Fixes: + + * [JACKSON-763] State of base64/byte[] decoding not reset when + using 'convertValue()' for list of byte[] values. + (reported by Erik G) + * [JACKSON-794]: JDK 7 has new property for Exceptions ("suppressable"), + needs to be ignored during deserialization + * [JACKSON-799]: JsonSerialize.as not working as class annotation, for root values + * [JACKSON-802]: Improvements to class loading to use both contextual + class loader and Class.forName, as necessary + * [JACKSON-803]: Problems with Smile, parsing of long names + (reported by D Lam) + * [JACKSON-804]: Allow byte range up to 255, for interoperability with unsigned bytes + * [JACKSON-806]: REQUIRE_SETTERS_FOR_GETTERS ignores explicitly annotated getters + (reported by Harold M) + * [JACKSON-812]: BigIntegerNode.equals(...) using '==' for equality + * [JACKSON-820]: WriterBasedGenerator with CharacterEscapes produces unescaped output + for strings > 2k in length + (reported by Matt S) + +1.9.5 [24-Feb-2012] + + Fixes: + + * [JACKSON-757]: further fixing (1.9.4 had partial fix) + * [JACKSON-773]: Bug in SimpleFilterProvider constructor + (reported by Kenny M) + * [JACKSON-774]: PropertyBasedCreator was not using JsonDeserializer.getNullValue() + (reported by Nathaniel B) + * [JACKSON-775]: MissingNode.asText() should return "", not null + (reported by Ittai Z) + * [JACKSON-778]: Incorrect detection of generic types with TypeReference + (reported by Vladimir P) + * [JACKSON-779]: Problems with multi-byte UTF-8 chars in JSON comments + (reported by Alexander K) + * [JACKSON-789]: Add support for 'java.nio.charset.Charset' + * [JACKSON-796]: Problems with byte[] conversion to/from JsonNode. + (reported by Christopher B) + +1.9.4 [20-Jan-2012] + + Fixes: + + * [JACKSON-712] Issue with @JsonCreator + DefaultImpl + (suggested by Eric T) + * [JACKSON-744] @JsonAnySetter problems with 1.9 + * [JACKSON-746] Problems with JsonTypeInfo.Id.NONE, default typing + (reported by Steve L) + (reported by Sebastian T) + * [JACKSON-756] Problems with enums, @JsonCreator, when used as keys + of EnumMap, regular Map, or contents of EnumSet + (reported by Mika M) + * [JACKSON-757] Problems with Enum values, annotations on constructors + -- but note, some issues remained for 1.9.5 to tackle + (reported by Stephan B) + + (all fixes up to 1.8.8) + +1.9.3 [16-Dec-2011] + + Improvements: + + * [JACKSON-657] Add Date/Calendar key deserializers + (contributed by Andreas K, Tobias S) + * [JACKSON-717] ObjectReader.updateValues(): use configured 'valueToUpdate' + * [JACKSON-726] Add java.util.UUID key deserializer + (suggested by Steven S) + * [JACKSON-729] Add 'ObjectMapper.readValues(byte[])' convenience method + + Fixes: + + (all fixes up to 1.8.7) + +1.9.2 [04-Nov-2011] + + Improvements: + + * [JACKSON-706] Joda support: add support for "org.joda.time.Period" + (suggested by Dain S) + + Fixes: + + * [JACKSON-700] Type problems with properties that have different types + for constructor property, setter and/or field + (reported by Ben H) + * [JACKSON-703] 'SerializationConfig.isEnabled(...)', + 'DeserializationConfig.isEnabled(...)' incompatible due to signature change + +1.9.1 [23-Oct-2011] + + Fixes: + + * [JACKSON-687] Problems with PropertyNamingStrategy, property merging + (reported by Pascal G) + * [JACKSON-689] Deserialization of Iterable fails + (reported by Pascal G) + * [JACKSON-693] @JsonBackReference not used during deserialization if it's annotated + on a getter method. + (reported by Pascal G) + +1.9.0 [04-Oct-2011] + + Fixes: + + * [JACKSON-539] Incorrect handling of combination of JAXB annotations + (@XmlTransient with property renaming) + (reported Ryan H) + * [JACKSON-605] Handle deserialization of typed Class properties correctly + (reported by Bruce P) + + Improvements: + + * [JACKSON-242] Rewrite property introspection part of framework to combine + getter/setter/field annotations + * [JACKSON-505] Handle missing type information gracefully by checking for + abstract type mapping to find default implementation, if no valid type + information found for @JsonTypeInfo + * [JACKSON-531] Comparing actual and default value (for JsonSerialize.Inclusion.NON_DEFAULT) + should check array contents + (suggested by Christoph S) + * [JACKSON-584] Serialize type info for non-static anonymous inner classes + as that of declared (static) type + (suggested by Earl B) + * [JACKSON-593] Add ObjectMapper.readTree(byte[]), (URL) variants + (suggested by Bruce P) + * [JACKSON-594] Allow deserializing non-static inner class valued properties + (suggested by Bruce P) + * [JACKSON-595] Terse Visibility Config (ObjectMapper.setVisibility, related) + (suggested by Bruce P) + * [JACKSON-598] Add set of standard naming-strategy implementations + (suggested by Bruce P) + * [JACKSON-599] Expose Settability Of SimpleModule Serializers/Deserializers + (suggested by Bruce P) + * [JACKSON-606] Add Built-in Support for Date Map Keys as Timestamps + (SerializationConfig.Feature#WRITE_DATE_KEYS_AS_TIMESTAMPS) + * [JACKSON-612] Expose 'readValues()' methods via ObjectCodec, JsonParser + (suggested by Bruce P) + * [JACKSON-613] Add ArrayNode/ObjectNode methods for dealing with wrapper + values, unboxing, nulls + (suggested by Bruce P) + * [JACKSON-615] Make JavaType serializable/deserializable + * [JACKSON-616] Better handling of primitive deserializers, to avoid NPEs + (suggested by Bruce P) + * [JACKSON-619] SmileParser.getCurrentLocation(), getTokenLocation() did not + report actual byte offsets. + (reported by Ray R) + * [JACKSON-620] Allow empty String to mean null Map, Collection, array, + if 'DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT' enabled + * [JACKSON-621] Add new fluent method, VisibilityChecker.with(Visibility) + (suggested by Bruce P) + * [JACKSON-638] TypeFactory methods for constructing "raw" map or collection types + (suggested by Christopher C) + * [JACKSON-639] Change BasicClassIntrospector.forClassAnnotations to take + JavaType (not raw Class) + (requested by Chris C) + * [JACKSON-643] ObjectMapper.readValue() should check JsonDeserializer.getNullValue() + when encountering root-level JsonToken.VALUE_NULL + * [JACKSON-644] Add SimpleModule.setMixInAnnotations() + * [JACKSON-648] ObjectWriter: allow changing default serialization DateFormat + (ObjectMapper.writer(DateFormat), ObjectWriter.withDateFormat(DateFormat)) + * [JACKSON-650] Allow dealing with missing filter ids, by adding + 'SimpleFilterProvider.setFailOnUnknownId()' to specify if exception is thrown or not. + (suggested by Kirill S) + * [JACKSON-661] Add shorter 'JsonNode.asXxx' methods to replace 'JsonNode.getValueAsXxx' + * [JACKSON-662] Add 'ObjectMapper.enable()' and 'ObjectMapper.disable()' to allow + enabling/disabling multiple features with a single call. + * [JACKSON-665] Add 'AnnotatedWithParams.getIndex()' for accessing index of a + method or constructor parameter + (requested by Chistropher C) + * [JACKSON-671] Add convenience constructor for 'MinimalPrettyPrinter' + (requested by David P) + * [JACKSON-683] Mr Bean: Fail gracefully if attempt is made to materialize + non-public type (since impl class on different package than base class) + * [JACKSON-684] Add SerializationConfig.Feature.WRITE_ENUMS_USING_INDEX to serialize + Enums as int (index) + + New features: + + * [JACKSON-132] Support "unwrapped" properties, using @JsonUnwrapped. + * [JACKSON-254] Add 'SerializationConfig.Feature.WRITE_EMPTY_JSON_ARRAYS', + which can be used to suppress serialization of empty JSON arrays (unless + overridden by per-property annotations). + (suggested by Fabrice D) + * [JACKSON-406] Allow injecting of values (with @JacksonInject) during deserialization + * [JACKSON-453] Support "external type id" with new @JsonTypeInfo.As enum value, + EXTERNAL_PROPERTY + * [JACKSON-558] Add 'DeserializationConfig.Feature.UNWRAP_ROOT_VALUE' as + matching counterpart for 'SerializationConfig.Feature.WRAP_ROOT_VALUE' + (requested by Anand H) + * [JACKSON-578] Allow use of @JsonView on JAX-RS resource, with JacksonJsonProvider + (suggested by Matt G) + * [JACKSON-580] Allow registering instantiators (ValueInstantiator) for types (classes) + * [JACKSON-581] Add 'ObjectMapper.readTree(File)' + (suggested by Pascal G) + * [JACKSON-602] Add 'JsonSerialize.Inclusion.NON_EMPTY' option + (suggested by Ed A) + * [JACKSON-614] Add JsonTypeInfo.defaultImpl property to indicate type to use if type name missing + * [JACKSON-630] Add @JsonRootName annotation for specifying name of root-level wrapper + (requested by Lukasz Strzelecki) + * [JACKSON-633] Add @JsonValueInstantiator to allow annotating which ValueInstantiator + a type uses. + * [JACKSON-652] Add 'DeserializationConfig.Feature.USE_JAVA_ARRAY_FOR_JSON_ARRAY' to + allow mapping JSON Array to Object[] + (suggested by Simone B) + * [JACKSON-653] Add 'JsonParser.isNextTokenName()' for more efficient field name matching + * [JACKSON-666] Add 'Add SerializationConfig.Feature.REQUIRE_SETTERS_FOR_GETTERS' to allow + suppressing use of getters for which there is no matching mutator. + + Issues handled by new external projects: + + * [JACKSON-51]: Implement Just-In-Time code generation for serialization + created "jackson-module-afterburner" at [https://github.com/FasterXML/jackson-module-afterburner] + + Potential backwards compatibility issues (compared to 1.8.x): + + * Removed 'org.codehaus.jackson.annotate.JsonClass, JsonKeyClass and + JsonContentClass (deprecated since 1.1) + * Move TokenBufferDeserializer to separate class (from inside StdDeserializer) + +1.8.8 [20-Jan-2012] + + Fixes: + + * [JACKSON-701] ArrayIndexOutOfBoundsException when trying to serialize + non-static inner classes with annotations on last ctor param + (reported Lloyd S) + * [JACKSON-741] Add missing linkage from ObjectMapper to JsonFactory + by calling 'JsonFactory.setCodec()' from ObjectMapper constructor + * [JACKSON-753] JsonParserDelegate missing delegation of getBooleanValue(), + getEmbeddedObject() + (reported by Sebastian T) + * Partial fix for [JACSON-756]: EnumMap, EnumSet work with enums that use + @JsonCreator; regular Maps only with 1.9 + (reported by Mika M) + +1.8.7 [16-Dec-2011] + + Fixes: + + * [JACKSON-462] (REGRESSION?) Buffer overflow in Utf8Generator#writeFieldName(String) + (reported by Ryan K) + * [JACKSON-696] Problems accessing "any getter" that is not public + (reported by Brian M) + * [JACKSON-709] Problems converting base64-encoded Strings between + JsonNode, POJOs + (reported by Tom B) + * [JACKSON-733] Smile-based mapper could not properly bind byte[] values + (reported by Jacques-Olivier G) + * [JACKSON-738] Parsing fails for Unicode 1Fxxx symbols when skipping + (reported by Alex T) + +1.8.6 [04-Oct-2011] + + Fixes: + + * [JACKSON-288] Problems (de)serializing values with JAXB adapters + * [JACKSON-668] Problems with 'JsonParser.getDecimalValue' not + clearing earlier state + (reported by Ransom B) + * [JACKSON-677] Inner generic type references not working properly + (reported by William B) + +1.8.5 [04-Aug-2011] + + Fixes: + + * [JACKSON-401] Further fixes to ensure FLUSH_PASSED_TO_STREAM works + * [JACKSON-637] NumberSerializer was missing proper handling of Integer, Long + (reported by Paul M) + * [JACKSON-640] SmileParser.getTextCharacters() missing value in some + cases (value back-references) + * [JACKSON-647] ResolvableSerializer.resolve() not called after creating + contextual instance + +1.8.4 [25-Jul-2011] + + Fixes: + + * [JACKSON-605] Handle deserialization of Class<T> properties + * [JACKSON-627] WriterBasedGenerator failure for long Strings, + custom character escaping + (reported by Lawrence C) + * [JACKSON-629] Fix a buffer boundary problem with SmileParser, 5-7 + character names + (reported by Maxxan) + * [JACKSON-631] Problems decoding Base64Variants.MODIFIED_FOR_URL + (reported by Tim B) + * [JACKSON-632] Handling of UTF-8 BOM incorrect, causing "Internal Error" + (reported by Edward A) + +1.8.3 [08-Jul-2011] + + Fixes: + + * [JACKSON-587] TextNode.getValueAsLong() does not work properly + (reported by Chris P) + * [JACKSON-591] JodaDeserializers not throwing wrongTokenException + (reported by Tom L) + * [JACKSON-597] Make ClassDeserializer support primitive types + (suggested by Bruce P) + (plus all 1.7 fixes up to 1.7.8) + +1.8.2 [15-Jun-2011] + + Fixes: + + * Problem with FilteredBeanPropertyWriter: was not delegating call + to wrapped BeanPropertyWriter, causing problems with modules + +1.8.1 [17-May-2011] + + Fixes: + + * [JACKSON-557] CollectionLikeType#equals() casts parameter to CollectionType + (reported by Coda H) + * [JACKSON-560] Mix-in annotations ignored when used with views + (reported by Ruben E-G) + * [JACKSON-568] Package 'org.codehaus.jackson.util' missing from + core/lgpl jar + (reported by Christoph S) + * [JACKSON-570] Caching of MapSerializer not thread-safe + (reported by Jamie R) + * [JACKSON-573] Failure to serialize certain Unicode Strings + (reported by Young J-P) + (plus all 1.7 fixes up to 1.7.7) + +1.8.0 [20-Apr-2011] + + Another minor release. Main improvements are: + + - Proper configurability for key serializers, deserializers + - Ability to control details of low-level character escaping + - Pluggable format auto-detection (for JSON and Smile in core packages) + - Fully configurable type-defaulting (abstract-to-concrete) for deserialization + - Pass-through FormatSchema abstraction to help support schema-based formats + + New features: + + * [JACKSON-43]: Add "ObjectMapper.readValues()", "ObjectReader.readValues()" for + more convenient binding of arrays (and root-level sequences) of homogenous types + * [JACKSON-102]: Ability to force escaping of non-ASCII characters; using + JsonGenerator.Feature.ESCAPE_NON_ASCII and JsonGenerator.setHighestNonEscapedChar + * [JACKSON-106]: Add 'org.codehaus.jackson.io.CharacterEscapes' which can be + registered with JsonFactory, JsonGenerator, to add fully customized + character escaping handling + (suggested by Scott A) + * [JACKSON-142]: Add 'JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS' to allow + non-standard use of 'NaN', '+INF'/'+Infinite', '-INF'/'-Infinite' as numbers + * [JACKSON-178]: Add support for custom property name strategies (with + PropertyNamingStrategy) + * [JACKSON-204]: Add DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT + to allow binding empty JSON String as null for POJOs + * [JACKSON-358]: Add JsonParser.Feature.ALLOW_NUMERIC_LEADING_ZEROS, to allow + optional (and non-standard) support for numbers like 00006 + (suggested by Bryce M) + * [JACKSON-427]: Added "JsonNode.with()" which is similar to "JsonNode.path()" but + creates ObjectNode for property if no value exists (similar to "upsert" (update-or-insert)) + * [JACKSON-464]: Allow defining default mappings for abstract types, with + SimpleAbstractTypeResolver + * [JACKSON-494]: Add support for format auto-detection (via JsonFactory); add + support for basic JSON, Smile (and as many modules as possible) + * [JACKSON-512]: Allow wrapping InputStream/Reader, OutputStream/Writer when + constructing JsonParser, JsonGenerator; JsonFactory allows registering + InputDecorator, OutputDecorator instances. + * [JACKSON-513]: Add methods for registering key serializers, deserializers, + via Module API + * [JACKSON-520]: Add minimal FormatSchema abstraction, passed through by ObjectMapper + to JsonGenerator, JsonParser; needed for supporting schema-based formats. + * [JACKSON-521]: Add support for new 'MapLikeType' and 'CollectionLikeType', to + support Map/Collection types of languages like Scala + * [JACKSON-523]: Allow passing actual type for TypeSerializer to use, to + force specific super type to be used (instead of a concrete sub type) + * [JACKSON-526]: Add DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY + which allows implicit conversion from JSON scalars and Objects into single-element + collections/arrays (for interoperability with XML-to-JSON converers like Jettison) + * [JACKSON-527]: Add 'HandlerInstantiator' abstraction, which can be implemented and + registered with ObjectMapper to get more control over how handlers (serializers, + deserializers, type id resolver) are constructed. + (requested by Sven J) + * [JACKSON-555]: Add 'JsonParser.getInputSource()' and 'JsonGenerator.getOutputTarget()' + to give direct access to low-level stream/reader/writer instances + + Improvements: + + * [JACKSON-480]: Added missing @JsonSerialize properties: keyAs, keyUsing, + contentAs, contentUsing + * [JACKSON-502]: Convert mr Bean functionality to be basic Module + * [JACKSON-503]: Allow registering AbstractTypeResolvers via Module API + * [JACKSON-519]: Add support for contextual key serializers, deserializers + * [JACKSON-548]: enabling ALLOW_SINGLE_QUOTES should allow backslash-escaping + of apostrophes + (suggested by Tim W) + * [JACKSON-551]: Add new methods to 'Serializers' and 'Deserializers' interfaces to + support CollectionLikeType, MapLikeType. + + Fixes: + + * [JACKSON-459]: Add mapper-level configuration to set default serialization + order be alphabetic (by property name). + (suggested by Chris W) + * [JACKSON-487]: Block all annotation access if SerializationConfig.Feature.USE_ANNOTATIONS + (and ditto for DeserializationConfig) is disabled; to help with Android, missing JAXB annotations + * [JACKSON-498]: Fix issues with type names, abstract types, collections + (reported by John V) + * [JACKSON-509] @JsonSubTypes was not allowed for fields/methods/ctor-parameters (although + @JsonTypeInfo was, starting with 1.7) + * [JACKSON-510] Registered subtypes not used for @JsonTypeInfo used with properties + + Potential backwards compatibility issues (compared to 1.7.x): + + * [JACKSON-523]: Added method "idFromValueAndType()" in TypeIdResolver interface, + which is needed to properly handle types such as InetAddress, TimeZone -- unfortunately + this would break custom TypeIdResolver instances. + * [JACKSON-551]: Addition of new methods to 'Serializers' and 'Deserializers' interfaces + means that existing code (1.7 only) that directly implements interfaces will not compile + (i.e. source and binary incompatible change) + + Issues handled by new external projects: + + * [JACKSON-532]: Add support for org.json.JSONObject, org.json.JSONArray; + created "jackson-module-json-org" at [https://github.com/FasterXML/jackson-module-json-org] + +1.7.8 [08-Jul-2011] + + Fixes: + + * [JACKSON-586] Problems with @JsonValue, method access (failed on + non-public methods, or public method of non-public class) + (reported by Pierre-Alexander M) + * [JACKSON-587] TextNode.getValueAsLong() does not work properly + (reported by Chris P) + * [JACKSON-591] JodaDeserializers not throwing wrongTokenException + (reported by Tom L) + * [JACKSON-597] Make ClassDeserializer support primitive types + (suggested by Bruce P) + +1.7.7 [17-May-2011] + + Fixes: + + * [JACKSON-542] Base64 decoder couldn't handle escaped characters + (reported by Luis N) + * [JACKSON-543] Root-level static type information incorrectly handled + with Maps (losing parameterization) + (reported by Steven S) + * [JACKSON-553] SerializationConfig.Feature.DEFAULT_VIEW_INCLUSION + did not work correctly + (reported by Xun W) + * [JACKSON-554] ObjectMapper.readValue(JsonNode) was not properly passing + itself as ObjectCodec, making secondary conversions fail + (reported by Pascal G) + * [JACKSON-556] @XmlElement.name property ignored in some cases + (reported by Alex P) + * [JACKSON-562] Smile property name decoding issue + (reported by Jeffrey Damick, Shay Banon) + * [JACKSON-563] JSON Schema uses "required" (not "optional") + (reported by Oleg E) + * [JACKSON-569] ContextualSerializer not resolved for serializers + defined with @JsonSerialize annotation + (reported by Gregor O) + * [JACKSON-572] Problems serializing generic non-static inner classes + (reported by Steven S) + +1.7.6 [12-Apr-2011] + + Fixes: + + * [JACKSON-547] Problems relaying exceptions from creator methods + (reported by Gili) + * [JACKSON-550] Registration of serializers was not completely working + with SimpleModule (interfaces implemented by superclasses skipped) + (reported by Andrei P) + * [JACKSON-552] SmileParser not handling long field names properly, + failed with "this code path should never get executed" exception + (reported by Shay B) + +1.7.5 [01-Apr-2011] + + Fixes: + + * [JACKSON-530] Default SerializationInclusion value not properly + passed when "USE_ANNOTATION" set to false + (Suchema O) + * [JACKSON-533] Failed to serialize LinkedHashMap.value() + (reported by Linghu C) + * [JACKSON-540] Side-effects with ObjectMapper.canSerialize(), + canDeserialize() + (reported by Maik J) + * [JACKSON-541] Remove the need for @JsonCreator on multi-arg constructor + iff all parameters have @JsonProperty + (suggested by Pascal Glinas) + * [JACKSON-545] UTF8Writer.flush() should check against NPE + (reported by Michel G) + +1.7.4 [04-Mar-2011] + + Fixes: + + * [JACKSON-484]: improve serialization of InetAddress + (reported by Brian H) + * [JACKSON-506]: problems with type handling for java.util.Date + when using @JsonTypeInfo on field/method + (reported by Kirill S) + * [JACKSON-504]: FilterProvider registration directly via SerializationConfig + was not working + (reported by Kirill S) + * [JACKSON-508]: Type information lost when serializing List<List<X>> + (reported by Christopher B) + * [JACKSON-518]: Problems with JAX-RS, type variables + (reported by Kirill S) + * [JACKSON-522]: java.util.TimeZone was not correctly handled + * [JACKSON-525]: Problem with SmileGenerator, shared-names buffer recycling + (reported by Shay B) + +1.7.3 [14-Feb-2011] + + Fixes: + + * [JACKSON-483]: allow deserializing CharSequence (also: support + conversion from byte[] to char[], assuming base64 encoding) + * [JACKSON-492]: problem encoding 1 byte length "raw" UTF8 Strings + (reported by David Y) + + (plus all fixes up to and including 1.6.6) + +1.7.2 [02-Feb-2011] + + Fixes: + + * [JACKSON-476] ContextualDeserializer handling not completely working + (reported by Sean P) + * [JACKSON-481] OSGi headers must include 1.5 AND 1.6 + (reported by drozzy@gmail.com) + + (plus all fixes up to and including 1.6.5) + + Improvements: + + * [JACKSON-474] Add ability to pass externally allocated buffer + for Utf8Generator, SmileGenerator + (suggested by David Y) + +1.7.1 [12-Jan-2010] + + Fixes: + + * [JACKSON-456]: Type check issues with Jackson JAX-RS provider + (reported by Kirill S) + * [JACKSON-457]: Typo in Module method "getSeserializationConfig" ("bananana error"); renamed + as "getSerializationConfig" (version with old spelling retained as deprecated for compatibility) + (reported by Chris W) + * [JACKSON-458]: Problems with ObjectMapper.convertValue(), TokenBuffer, SerializedString + (reported by Larry Y) + * [JACKSON-462]: Buffer overflow in Utf8Generator#writeFieldName(String) + (reported by Coda H) + +1.7.0 [06-Jan-2010] + + Fixes: + + * [JACKSON-356]: Type information not written for nested-generics root types + (reported by Alex R on mailing list) + * [JACKSON-450] JAXB annotations chosen incorrectly from interface method + (instead of method definition in class), when serializing + (reported by Sean P) + + Improvements: + + * [JACKSON-280]: Allow use of @JsonTypeInfo for properties (fields, methods) + * [JACKSON-345]: Make BeanSerializer use SerializedString for even faster serialization + * [JACKSON-393]: Allow deserializing UUIDs from VALUE_EMBEDDED_OBJECT + * [JACKSON-399]: JAX-RS is not passing generic type information as root type + (reported by Kirill S) + * [JACKSON-409] Add SmileGenerator.writeRaw(byte) + * [JACKSON-414] Add 'JsonNode.getValueAsBoolean()' (and 'JsonParser.getValueAsBoolean()') + (suggested by Tauren M) + * [JACKSON-419]: Add explicit support for handling 'java.util.Locale' + (suggested by Brian R) + * [JACKSON-432]: Add 'ObjectMapper.enableDefaultTypingAsProperty()' to allow + specifying inclusion type 'As.PROPERTY' and property name to use + (suggested by Peter L) + * [JACKSON-434]: Add 'JsonGenerator.writeString(SerializableString)' + * [JACKSON-438]: Wrap exceptions thrown by Creator methods as JsonMappingException + (suggested by Tim W) + + New features: + + * [JACKSON-163] Add 'SerializationConfig.Feature.WRAP_ROOT_VALUE' which + allows wrapping of output within single-property JSON Object. + * [JACKSON-297] Add simple Module abstraction to allow pluggable support + tor third-party libraries, data types + * [JACKSON-312] Add ability to dynamically filter out serialized properties + * [JACKSON-351]: Add @JsonRawValue for injecting literal textual + value into JSON + (contributed by Ga�l Marziou) + * [JACKSON-369]: Allow registering custom Collection and Map deserializers + (implemented via 'org.codehaus.jackson.map.Deserializers') + * [JACKSON-385]: Support contextual serializers, deserializers; works by + implementing 'org.codehaus.jackson.map.ser.ContextualSerializer' or + 'org.codehaus.jackson.map.deser.ContextualDeserializer' + * [JACKSON-401] Add features 'SerializationConfig.FLUSH_AFTER_WRITE_VALUE' + and 'JsonGenerator.FLUSH_PASSED_TO_STREAM' to allow blocking of flush() + calls to underlying output stream or writer + * [JACKSON-405]: Add command-line tool for manual Smile encoding/decoding + * [JACKSON-407]: Add features (SerializationConfig.Feature.WRAP_EXCEPTIONS, + DeserializationConfig.Feature.WRAP_EXCEPTIONS) to disable exception wrapping + * [JACKSON-412] Add 'DeserializationConfig.Feature.FAIL_ON_NUMBERS_FOR_ENUMS' + to optionally prevent mapping JSON integers into Java Enum values + (suggested by Patrick L) + * [JACKSON-420] Add 'DeserializationConfig.Feature.FAIL_ON_NULL_FOR_PRIMITIVES' + to optionally prevent JSON null from mapping to default value + (suggested by Thomas D) + * [JACKSON-421] Add ability to register multiple sets of serializers + without extending SerializerFactory (related to [JACKSON-297]) + * [JACKSON-429] Add @JsonIgnoreType to allow ignoring any and all properties + of specified type; useful to exclude well-known proxy/facade/handler types + * [JACKSON-440] Add ability to process serializers, deserializers during their + construction (to allow adding, removing, modifying properties to handle) + * [JACKSON-448] Add 'JsonGenerator.writeString()' alternatives that accept + pre-encoded UTF-8 byte sequences (writeUTF8String() and writeRawUTF8String()) + (requested by Shay B) + + Issues handled by new external projects: + + * [JACKSON-317] Add support for Guava (ex-Google-collections); implemented + as a new module, see: https://github.com/FasterXML/jackson-module-guava + * [JACKSON-394] Add support for using data binding to/from XML (Stax) sources; + sort of "mini-JAXB". + + Potential backwards compatibility issues (compared to 1.6.x): + + * [JACKSON-419] (see above) 'java.util.Locale' now serialized as JSON String + (using Locale.toString()), instead of as bean-like JSON Object + * Added 'BeanProperty' argument for many methods in SerializerFactory / + DeserializerFactory, SerializerProvider / DeserializerProvider implementations. + * Related to [JACKSON-407], will wrap some previously unwrapped exceptions from + deserializer (to have symmetric handling; serializer already wrapped); new + features to allow disabling wrapping on serialization and/or deserialization. + +1.6.5 [01-Feb-2011] + + Fixes: + + * [JACKSON-454] JSON Schema generator was adding bogus "items" property + for JSON object types (only allowed for arrays) + * [JACKSON-461] ArrayIndexOutOfBoundsException when property is subclass of + Map with fewer type parameters + (reported by Tim W) + * [JACKSON-465] Deserialization with @JsonCreator that takes in a Map fails + (reported by Tim W) + * [JACKSON-468] Method-bound type variables (public <T> T getValue()) not handled + (reported by Christian N) + * [JACKSON-470] ArrayIndexOutOfBoundsException if @JsonCreator constructor + has @JsonParameter parameters with same name + (reported by Tim W) + * [JACKSON-472] Custom bean deserializers are not cached when using + JAXB annotation introspector + (reported by Seam P) + * [JACKSON-473] JsonMapping$Reference not Serializable + (reported by Steven S) + * [JACKSON-478] Improve support for 'java.sql.Timestamp' type by allowing + deserializing textual representations + (reported by John L) + +1.6.4 [21-Dec-2010] + + Fixes: + + * [JACKSON-364] @JsonTypeInfo not included properly for Collection types + when using JsonView functionality + * [JACKSON-428] Type information, Map key deserializer definitions don't + work together + (reported by Patrick R) + * [JACKSON-431] Deserialization fails with JSON array with beans with + @JsonCreator, unmapped properties before and after creator properties + (reported by Hannu L) + * [JACKSON-436] @XmlElementType not working correctly with Collection type + properties + (reported by Sean P) + +1.6.3 [04-Dec-2010] + + Fixes: + + * [JACKSON-228], [JACKSON-411] XmlJavaTypeAdapter, package-level annotations not + working + (reported by Claudio R, Raymond F) + * [JACKSON-387]: Deserialization fails for certain objects serialized with + enableDefaultTyping + (reported by Peter L) + * [JACKSON-415] XMLElement annotation ignored during schema generation + (reported by Sean P) + * [JACKSON-416] XmlElement.type() doesn't override type during serialization + (reported by Sean P) + * [JACKSON-417] Deserialization of "native" types (String, Integer, Boolean) + failed with abstract types + (reported by Joe J) + * [JACKSON-423] Incorrect serialization of BigDecimal, BigInteger, + when using TokenBuffer + (reported by Sean P) + * [JACKSON-424] ArrayIndexOutOfBounds with SmileGenerator, long Unicode + Strings + (reported by Shay B) + +1.6.2 [02-Nov-2010] + + Fixes: + + * [JACKSON-288] Problems with JAXB annotation handling for combination of + @XmlJavaTypeAdapter, @XmlElement + (reported by Kent R) + * [JACKSON-366] Type metadata not written for empty beans + (reported by Patrick R) + * [JACKSON-388] Deserialization of Throwable fails with Inclusion.NON_NULL + (reported by Kirill S) + * [JACKSON-391] ObjectReader.withValueUpdate() passing wrong object + (reported by Kurtis) + * [JACKSON-392] Beans with only @JsonAnyGetter fail on serialization + (reported by Kirill S) + * [JACKSON-395]: JsonParser.getCurrentName() not working with + JsonParser.nextValue() for nested JSON Arrays, Objects + * [JACKSON-397] Reverted most of [JACKSON-371] from 1.6 branch, since it caused + externally visible change in exception handling; behavior now back to 1.6.0 + (will change to catch and rethrow in 1.7.0) + (reported by Jon Berg) + * [JACKSON-398]: Root type information not correctly passed by + ObjectWriter when using JsonGenerator + (reported by Kirill S) + * [JACKSON-403]: XMLGregorianCalendar could not be deserialized from timestamp + (reported by Manual F) + * [JACKSON-404] Problem with XmlAdapter, generic types, deserialization + (reported by Davide) + +1.6.1 [06-Oct-2010] + + Fixes: + + * [JACKSON-359] TypeIdResolver.init() was not being called properly + (reported by Peter L) + * [JACKSON-372] handle missing primitive type values for @JsonCreator gracefully (with defaults) + * [JACKSON-376] writing binary data as object field value with Smile failed + (reported by Shay B) + * [JACKSON-371] Provide path of type error in ObjectMapper.convertValue() + (reported by Larry Y) + * [JACKSON-383] @JsonAnySetter gets called for ignorable properties if + FAIL_ON_UNKNOWN_PROPERTIES set to false (related to [JACKSON-313]) + (reported by Kirill S) + * [JACKSON-384] @JsonAnyGetter values were duplicated if method name was valid as a regular + getter name + (reported by Bruce R) + * all fixes from 1.5.x up to 1.5.7 + + Improvements: + + * [JACKSON-360] Convert empty String to null values for Joda + (suggested by Shilpa P) + * [JACKSON-386] Improve registration for optional/external types (javax.xml, joda) + +1.6.0 [06-Sep-2010] + + Fixes: + + * [JACKSON-265] Problems with generic wildcard type, type info + (reported by Fabrice D) + * [JACKSON-268] Property ordering for JAXB did not work with "raw" property + names (but just with renamed names like with Jackson annotations) + (reported by Valentin B) + * [JACKSON-303] JAXB annotation @XmlAccessorType(XmlAccessType.NONE) seems + to not work correctly during deserialisation process + (reported by David M) + * [JACKSON-313] Ignorable properties should not be passed to any-setter + * [JACKSON-336] Generics handling: Map type not handled if intermediate types + with just one generic parameter + + Improvements: + + * [JACKSON-193] @JsonCreator-annotated factory methods and @JsonValue annotated + output methods now work with enums, allowing more customizable enum ser/deser. + (requested by Paul B) + * [JACKSON-253] Support combination of @XmlAnyElement + @XmlElementRefs + * [JACKSON-261] @JsonView now implies that associated element (field, + getter/setter) is to be considered a property; similar to how + @JsonSerialize/@JsonDeserialize/@JsonProperty are used. + * [JACKSON-274] Un-deprecated @JsonGetter and @JsonSetter. + * [JACKSON-283] JDK atomic types (java.util.concurrent.atomic) supported + * [JACKSON-289] Added "SerializationConfig.Feature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS" + to allow serializing char[]s as JSON Arrays with single-char-String values + (also fixed issues with deserializing the same on deserializer side) + (requested by Brian O) + * [JACKSON-290] @JsonWriteNullProperties can be used with fields too; + annotation itself is now deprecated (use JsonSerialize#include instead). + * [JACKSON-301] Allow JsonMappingException to return name of "bad" (unrecognized) + field + (requested by Rob O) + * [JACKSON-302] Add JsonNode.has(String/int) to allow for more convenient checking + of whether JSON Object/Array nodes have specified value. + * [JACKSON-308] Configurable date formatting support for XMLGregorianCalendar: + XMLGregorianCalendar now uses same Date/Calendar serialization as other date types. + (suggested by Igor K) + * [JACKSON-321] Allow passing JsonNodeFactory to use for ObjectMapper, ObjectReader, + to allow use of custom JsonNode types. + * [JACKSON-326] Add 'JsonParser.hasTextCharacters()' to make it easier to optimize + text access (esp. when copying events) + * [JACKSON-328] Precedence of "getters-as-setters" (for Maps, Collections) was + accidentally higher than that of property fields (public, @JsonProperty) + (reported by Thomas D) + * [JACKSON-333] Add JsonNode.getValueAsInt()/.getValueAsDouble() for more convenient + coercion; including parsing of JSON text values to numbers if necessary + * [JACKSON-339] Support Joda ReadableDateTime, ReadableInstant out of the box + * [JACKSON-349] Accept empty String as number (null for wrappers, 0 for primitives) + + New features: + + * [JACKSON-41] Add code generation to allow deserialization into arbitrary Bean interfaces. + * [JACKSON-210] Add method(s) in JsonNode for finding values of named property + * [JACKSON-212] Allow serializer/deserializing Enums using toString() method + instead name() + * [JACKSON-235] Handle bi-directional (parent/child, double-linked lists) references + * [JACKSON-257] Add ability to register sub-types for Polymetric Type Handling + * [JACKSON-264] Ability to "update" values; to read and bind JSON + content as properties of existing beans. This is done by using + "ObjectMapper.updatingReader()" (and "reader.readValue(source)") + * [JACKSON-267] Allow unquoted field names to start with '@' in + (when unquoted name support is enabled, to support polymorphic + typing (which defaults to property names like "@class"). + (requested by Michel G) + * [JACKSON-278] Allow access to version information (via new Versioned interface) + (requested by Andrei V) + * [JACKSON-282] Added SerializationConfig.Feature.CLOSE_CLOSEABLE + which when enabled forced a call to value.close() right after + serialization of a (root-level) value. + * [JACKSON-287] Add JsonParser.releaseBufferedContent() which can be called + to "push back" content read but not (yet) consumed by JsonParser + * [JACKSON-292] Add "any-getter" (using @JsonAnyGetter) to complement @JsonAnySetter, + more convenient mapping of miscellaneous extra properties. + * [JACKSON-295] Add 'jackson-all' jar + (suggested by Ant E) + * [JACKSON-299] Added 'org.codehaus.jackson.impl.MinimalPrettyPrinter' + to make it easier to add simple output customizations + (suggested by David P) + * [JACKSON-300] Add 'JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER + to allow non-standard character escapes like \'. + (requested by Ketan G) + * [JACKSON-314] (go Pi, go!) Add 'SerializationConfig.Feature.WRITE_NULL_MAP_VALUES' + to suppress writing of Map entries with null values. + * [JACKSON-316] Allow per-call enable/disable of pretty printing (added + methods in ObjectWriter; .withPrettyPrinter()) + * [JACKSON-325] Add new Jackson "internal" annotation (@JacksonStdCodec?) to allow + marking default/standard serializers, deserializers + * [JACKSON-337] Add "ObjectMapper.valueToTree()" + + Backwards incompatible changes + + * [JACKSON-328] (see above) fixes precedence of "getter-as-setter" (for Maps, Collections) + to be LOWER than that of fields; this is the original intended behavior. However, + versions 1.1 - 1.5 accidentally had fields at lower precedence. This fix can + change behavior of code. + * [JACKSON-308] (see above) Configurable date formatting support for XMLGregorianCalendar: + since default Date/Calendar formatting uses timestamp instead of textual serialization, + default XMLGregorianCalendar serialization is changing. + +1.5.7 [03-Oct-2010] + + Fixes: + + * [JACKSON-352] Polymorphic deserialization for Object always assumes + array-wrapper style + (reported by Henry L) + * [JACKSON-355] Handling of BigInteger with JsonNode not correct + (reported by Adam S) + * [JACKSON-363] CustomDeserializerFactory did not work for custom + array deserializers. + (reported by Lubomir K) + * [JACKSON-370] TreeTraversingParser.skipChildren() not working correctly + (reported by Dmitry L) + * [JACKSON-373] Interface inheritance not traversed when looking up + custom serializers + (reported by Lubomir K) + * [JACKSON-377] ThrowableDeserializer was not properly using information from + @JsonCreator or @JsonAnySetter + (reported by Kirill S) + * [JACKSON-380] Incorrect type information serialized for some Enums + +1.5.6 [17-Aug-2010] + + Fixes: + + * [JACKSON-329] type information was not properly serialized for + Iterator or Iterable serializers + (reported by Yuanchen Z) + * [JACKSON-330] ObjectMapper.convertValue(): base64 conversions + do not work as expected + * [JACKSON-334] Support ISO-8601 date without milliseconds + * [JACKSON-340] Meta annotations missing for @JsonTypeResolver + (reported by Yuanchen Z) + * [JACKSON-341] Issue with static typing, array and subtyping + (reported by Yuanchen Z) + +1.5.5 [25-Jul-2010] + + Fixes: + + * [JACKSON-309] Serialization of null properties not working correctly + when using JAXB annotation introspector + * [JACKSON-318] Deserializer missing support for java.util.Currency + (reported by Geoffrey A) + * [JACKSON-319] Issues when trying to deserialize polymorphic type + with no data (just type information) + (reported by Chris C) + * [JACKSON-324] JsonParserBase: call releaseBuffers() in finally + block (within close()) + (suggested by Steve C) + * [JACKSON-327] CustomSerializerFactory had a bug in handling of + interface registrations + (reported by Yuanchen Z) + + (and all fixes from 1.4.x branch up to 1.4.5) + +1.5.4 [25-Jun-2010] + + Fixes: + + * [JACKSON-296]: Add support for JAXB/@XmlElementRef(s), fix related + issues uncovered (wrt. handling of polymorphic collection fields) + (reported by Ryan H) + * [JACKSON-311]: Problems handling polymorphic type information for + 'untyped' (Object) bean properties, default typing + (reported by Eric S) + +1.5.3 [31-May-2010] + + Fixes: + + * [JACKSON-285]: Problem with @JsonCreator annotated constructor that + also uses @JsonDeserialize annotations + + Improvements: + + * [JACKSON-284]: Reduce scope of sync block in + SerializerCache.getReadOnlyLookupMap() + * Partial fix for [JACKSON-289]: allow JSON Array with single-character + Strings to be bound to char[] during deserialization + (suggested by Brian O) + +1.5.2 [25-Apr-2010] + + Fixes: + + * [JACKSON-273] Yet another OSGi issue, "org.codehaus.jackson.map.util" + not exported by mapper module, needed by jax-rs module. + (reported by Lukasz D) + * [JACKSON-281] JsonGenerator.writeObject() only supports subset of + wrapper types (when not specifying ObjectCodec) + (reported by Aron A) + + (and all fixes from 1.4.x branch up to 1.4.4) + +1.5.1 [09-Apr-2010] + + Fixes: + + * [JACKSON-265]: problems with generic type handling for serialization + (reported by Fabrice D) + * [JACKSON-269]: missing OSGi export by mapper (o.c.j.m.jsontype.impl), + needed by jackson-xc module + (reported by Raymond F) + + (and all fixes from 1.4.x branch up to 1.4.3) + + +1.5.0 [14-Mar-2010] + + Fixes: + + * [JACKSON-246] JAXB property name determination not working correctly. + (reported by Lars C) + + Improvements: + + * [JACKSON-160] Factory Creator methods now handle polymorphic + construction correctly, allowing manual polymorphic deserialization + * [JACKSON-218] Extended support for Joda date/time types like + LocalDate, LocalDateTime and DateMidnight + * [JACKSON-220] @JsonSerialize.using() was not working properly for + non-Bean types (Collections, Maps, wrappers) + * [JACKSON-236] Allow deserialization of timestamps-as-Strings (not + just timestamps as JSON integer numbers). + (requested by Chris C) + * [JACKSON-255] Allow setter override even with incompatible type + (as long as only one setter per class, so there is no ambiguity) + * [JACKSON-256] AnnotationIntrospector.findSerializationInclusion + was not combining values correctly for JAXB annotations. + (reported by John L) + + New features: + + * [JACKSON-91] Polymorphic Type Handling: automatic handling of + polymorphic types, based on annotations (@JsonTypeInfo) and/or + global settings (ObjectMapper.enableDefaultTyping()) + * [JACKSON-175] Add "org.codehaus.jackson.util.TokenBuffer", used for + much more efficient type conversions (and other internal buffering) + * [JACKSON-195] Add methods to ObjectMapper to allow specification of + root object serialization type. + * [JACKSON-221] Add 'ObjectMapper.writeValueAsBytes()' convenience + method to simplify a common usage pattern + * [JACKSON-229] TypeFactory should have methods to construct parametric + types programmatically (TypeFactory.parametricType()) + * [JACKSON-232] Add 'SerializationConfig.Feature.DEFAULT_VIEW_INCLUSION' + to disable inclusion of non-annotated properties with explicit views + (suggested by Andrei V) + * [JACKSON-234] Add support for JSONP, by adding JSONPObject wrapper + that serializes as expected. + * [JACKSON-241] Add a mechanism for adding new "untouchable" types for + JAX-RS JSON provider, to allow excluding types from being handled + (added method "JacksonJsonProvider.addUntouchable()") + * [JACKSON-244] Allow specifying specific minimum visibility levels for + auto-detecting getters, setters, fields and creators + (requested by Pierre-Yves R) + * [JACKSON-245] Add configuration setting in JAX-RS provider to allow + automatic JSONP wrapping (provider.setJSONPFunctionName()) + * [JACKSON-259] Add JsonParser.Feature to allow disabling field name + canonicalization (JsonParser.Feature.CANONICALIZE_FIELD_NAMES) + + Backwards incompatible changes: + + * Moved following serializers out of BasicSerializerFactory + JdkSerializers: ClassSerializer (into JdkSerializers), + NullSerializer (separate class) + * Add one parameter to StdDeserializer.handleUnknownProperty: + addition was required for handling polymorphic cases that + can use nested JsonParser instances. + * Fixed issues in generic type handling (was not resolving all named + types completely) + * Annotation changes: + * Moved "NoClass" into "org.codehaus.jackson.map.annotate" package + * Removed @JsonUseSerializer and @JsonUseDeserializer annotations + (which has been deprecated for 1.1; replaced by + @JsonSerialize.using and @JsonDeserialize.using, respectively) + * @JsonGetter and @JsonSetter are marked as deprecated, since + @JsonProperty can (and should) be used instead. + +1.4.4 [25-Apr-2010] + + Fixes: + + * [JACKSON-263] BooleanNode.asToken() incorrectly returns 'true' token + for all nodes (not just 'false' ones) + (reported by Gennadiy S) + * [JACKSON-266] Deserialization issues when binding data from JsonNode + (reported by Martin T) + +1.4.3 [18-Feb-2010] + + Fixes: + + * [JACKSON-237]: NPE in deserialization due to race condition + (reported by Benjamin D) + + +1.4.2 [31-Jan-2010] + + Fixes: + + * [JACKSON-238]: Fix to ensure custom serializers can override + default serializers (like DOM, Joda serializers) + (reported by Pablo L) + * other fixes from 1.3.4 release + +1.4.1 [10-Jan-2010] + + Fixes: + + fixes from 1.3.x branch up to 1.3.3. + +1.4.0 [19-Dec-2009] + + Improvements: + + * [JACKSON-38] Allow serializing/deserializing DOM trees (Node, Document) + (suggested by Scott D) + * [JACKSON-89] Make ignored field/creator-backed properties quietly + skippable during deserialization (that is, without having to explicitly + declare such properties as ignorable as per [JACKSON-77]) + * [JACKSON-161] Added basic support for Joda, ser/deser DateTime class + * [JACKSON-170] Serialize Creator properties before other properties + * [JACKSON-196] Schema generation does not respect the annotation + configured serializer on a bean property + (reported by Gil M) + * [JACKSON-208] Add feature (JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS) + to allow unquoted control characters (esp. tabs) in Strings and + field names + (requested by Mark S) + * [JACKSON-216] Jackson JAXB annotation handler does not use @XmlElement.type + property for figuring out actual type + (reported by Mike R) + + New features: + + * [JACKSON-77] Add class annotation @JsonIgnoreProperties to allow + for ignoring specific set of properties for serialization/deserialization + * [JACKSON-90] Added @JsonPropertyOrder, which allows for specifying + order in which properties are serialized. + * [JACKSON-138] Implement JsonView; ability to suppress subsets of + properties, based on view definition. Views are defined using @JsonView + annotation. + * [JACKSON-191] Add access to basic statistics on number of cached + serializers, deserializers (and methods to flush these caches) + * [JACKSON-192] Added basic delegate implementations (JsonParserDelegate, + JsonGeneratorDelegate) to make it easier to override core parser and + generate behavior + * [JACKSON-201] Allow serialization of "empty beans" (classes without + getters), if SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS is + disabled; or if class has recognized Jackson annotation + (suggested by Mike P) + + Other: + + * Removed "BasicSerializerFactory.StringLikeSerializer" that was + deprecated for 1.0, replaced by public "ToStringSerializer" + +1.3.4 [31-Jan-2010] + + Fixes: + + * [JACKSON-225], [JACKSON-227], missing null checks/conversions when + adding entries to ArrayNode and ObjectNode + (reported by Kenny M) + * [JACKSON-230]: wrong NumberType reported for big ints, longs + (reported by Henning S) + * [JACKSON-231]: ArrayDeserializer for byte[] should be able to + use VALUE_EMBEDDED_OBJECT (if Object is byte[]) + +1.3.3 [21-Dec-2009] + + Fixes: + + * [JACKSON-214] Enum types with sub-classes failed to serialize + (reported by Elliot S) + * [JACKSON-215] Add JAX-RS provider annotations on JacksonJaxbJsonProvider + (suggested by Matthew R) + * [JACKSON-220] JsonSerialize.using() not recognized for Collection and + Map types (and similarly for JsonDeserialize) + +1.3.2 [02-Dec-2009] + + Fixes: + + * [JACKSON-103] (additional work) Groovy setMetaClass() setter caused + problems when deserializing (although serialization was fixed earlier) + (reported by Stephen F) + * [JACKSON-187] Issues with GAE security model, Class.getEnclosingMethod() + * [JACKSON-188] Jackson not working on Google App Engine (GAE) due to + unintended dependency from JacksonJsonProvider to JAXB API classes + (reported by Jeff S) + * [JACKSON-206] Support parsing dates of form "1984-11-13T00:00:00" + +1.3.1 [23-Nov-2009] + + Fixes: + + * [JACKSON-190] Problems deserializing certain nested generic types + (reported by Nathan C) + * [JACKSON-194] ObjectMapper class loading issues on Android + (reported by Martin L) + * [JACKSON-197] Remove 2 debug messages that print out to System.err + (reported by Edward T) + * [JACKSON-200] java.sql.Date deserialization not working well + (reported by Steve L) + * [JACKSON-202] Non-public fields not deserialized properly with + JAXB annotations + (reported by Mike P) + * [JACKSON-203] Date deserializers should map empty String to null + (reported by Steve L) + +1.3.0 [30-Oct-2009] + + Fixes: + + * [JACKSON-150] Some JAXB-required core types (XMLGregorianCalendar, + Duration, QName, DataHandler) were not completely supported + * [JACKSON-155] Failed to serialize java.io.File (with infinite + recursion) + (reported by Gabe S) + * [JACKSON-167] Map and Collection sub-classes seem to lose generic + information for deserialization + * [JACKSON-177] Problems with Hibernate, repackaged cglib + (reported by Ted B) + * [JACKSON-179] Single-long-arg factory Creators were not working + (reported by Brian M) + * [JACKSON-183] Root-level 'JsonDeserialize' annotation was not handled + completely; 'as' setting was not taking effect + (reported by Nick P) + + Improvements: + + * [JACKSON-152] Add "ObjectMapper.writeValueAsString()" convenience + method to simplify serializing JSON into String. + * [JACKSON-153] Allow use of @JsonCreator with Map types too + * [JACKSON-158] Bean serializer now checks for direct self-references + (partial, trivial cycle detection) + * [JACKSON-164] Improve null handling for JsonGenerator.writeStringValue + (suggested by Benjamin Darfler) + * [JACKSON-165] Add JsonParser.getBooleanValue() convenience method + (suggested by Benjamin Darfler) + * [JACKSON-166] Add ability to control auto-detection of + "is getters" (boolean isXxx()) methods separate from regular getters + * [JACKSON-168] Make JsonLocation serializable (and deserializable) + (suggested by Shay B) + * [JACKSON-182] Improved handling of SerializationConfig.AUTO_DETECT_GETTERS + with JAXB annotations (uses Jackson-specified default, not JAXB defaults) + + New features: + + * [JACKSON-129] Allow constructing JsonParser to read from JsonNode + (tree representation) + * [JACKSON-154] Added JsonDeserialize.keyUsing and .contentUsing, + to allow for overriding key and content/value deserializers for + properties of structured (array, Collection, Map) types + * [JACKSON-159] Added 'org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider' + to improve use of Jackson as JSON converter for JAX-RS services. + * [JACKSON-173] Add "JsonParser.Feature.ALLOW_SINGLE_QUOTES" to + handle some more invalid JSON content + (requested by Brian M) + * [JACKSON-174] Add "ObjectMapper.convertValue()" convenience method + for simple Object-to-Object conversions, using Jackson's data binding + functionality + * [JACKSON-176] Added 'JsonGenerator.Feature.WRITE_NUMBER_AS_STRINGS' + as a work-around for Javascript problems with big longs (due to + always representing numbers as 64-bit doubles internally) + (requested by Doug D) + * [JACKSON-180] Added 'JsonParser.Feature.INTERN_FIELD_NAMES' to allow + disabling field name intern()ing. + (suggested by Jeff Y) + * [JACKSON-181] Added convenience methods in TypeFactory to allow + dynamically constructed fully typed structured types (map, collection + array types), similar to using TypeReference but without inner classes + * Added method in AnnotationIntrospector to find declared namespace + for JAXB annotations, needed for XML compatibility (future features) + + Other: + + * Removed obsolete class 'org.codehaus.jackson.map.type.TypeReference' + (obsoleted by 'org.codehaus.jackson.type.TypeReference) -- was supposed + to have been removed by 1.0 but had not been. + * Added support to handle 'java.util.regex.Pattern' + +1.2.1 [03-Oct-2009] + + Problems fixed: + + * [JACKSON-162] OSGi packaging problems for xc package. + (reported by Troy Waldrep) + * [JACKSON-171] Self-referential types cause infinite recursion when + using only JAXB annotation introspector + (reported by Randy L) + +1.2.0 [02-Aug-2009] + + Improvements: + + * Added "-use" flag for generating javadocs + (suggested by Dain S) + * [JACKSON-136] JsonParser and JsonGenerator should implement + java.io.Closeable (since they already have close() method) + (suggested by Dain S) + * [JACKSON-148] Changed configuration methods to allow chaining, + by returning 'this' (instead of 'void') + + New features: + + * [JACKSON-33] Allow use of "non-default constructors" and + multiple-argument factory methods for constructing beans to + deserialize + * [JACKSON-69] Support parsing non-standard JSON where Object keys are not quoted + * [JACKSON-76] Mix-in annotations: allow dynamic attachment of + annotations to existing classes, for purposes of configuring + serialization/deserialization behavior + * [JACKSON-92] Allow use of @JsonCreator for constructors and + static methods that take a single deserializable type as argument + (so-called delegating creators) + * [JACKSON-114] Add feature and annotations to make serialization use + static (declared) type over concrete (actual/runtime) type + * [JACKSON-131] Allow constructing and passing of non-shared + SerializationConfig/DeserializationConfig instances to ObjectMapper + * [JACKSON-135] Add basic JsonNode construction support in ObjectMapper + * [JACKSON-147] Add global deserialization feature for suppressing error + reporting for unknown properties + * [JACKSON-149] Add ser/deser features + (DeserializationConfig.Feature.USE_ANNOTATIONS, + SerializationConfig.Feature.USE_ANNOTATIONS) to allow disabling + use of annotations for serialization and/or deserialization config + +1.1.2 [31-Jul-2009] + + Fixes: + + * [JACKSON-143] NPE on ArrayNode.equals() when comparing empty array + node to non-empty array node + (reported by Gregory G) + * [JACKSON-144] Static "getter-like" methods mistaken for getters (for + serialization) + (reported by Dan S) + +1.1.1 [18-Jul-2009] + + Fixes: + + * [JACKSON-139] Non-numeric double values (NaN, Infinity) are serialized + as invalid JSON tokens + (reported by Peter H) + * Core jar incorrectly included much of "mapper" classes (in addition + to core classes) + * Now compiles again using JDK 1.5 javac (1.1.0 didn't) + +1.1.0 [22-Jun-2009] + + Fixes: + + * [JACKSON-109] Allow deserializing into generics Bean classes + (like Wrapper<Bean>) not just generic Maps and Collections + * [JACKSON-121] Problems deserializing Date values of some ISO-8601 + variants (like one using 'Z' to indicate GMT timezone) + * [JACKSON-122] Annotated serializers and deserializers had to + be public classes with public default constructor; not any more. + + Improvements: + + * [JACKSON-111] Added "jackson-xc" jar to contains XML Compatibility + extensions. + + New features: + + * [JACKSON-70] Add support for generating JSON Schema + * [JACKSON-98] Allow serializing/deserializing field-accessible properties, + in addition to method-accessible ones. + * [JACKSON-105] Allow suppressing output of "default values"; which + means value of a property when bean is constructed using the default + no-arg constructor + (requested by Christoph S) + * [JACKSON-119] Add (optional) support for using JAXB annotations + (by using JaxbAnnotationIntrospector) + (requested by Ryan H) + * [JACKSON-120] Add annotations @JsonSerialize, @JsonDeserialize, + to streamline annotation by replacing host of existing annotations. + * [JACKSON-123] Add "chaining" AnnotationIntrospector (implemented + as inner class, AnnotationIntrospector.Pair) that allows combining + functionality of 2 introspectors. + +1.0.1 [04-Jun-2009] + + Fixes: + + * [JACKSON-104] Build fails on JDK 1.5, assorted other minor issues + (reported by Oleksander A) + * [JACKSON-121] Problems deserializing Date values of some ISO-8601 + variants (like one using 'Z' to indicate GMT timezone) + +1.0.0 [09-May-2009] + + Fixes: + + * [JACKSON-103] Serializing Groovy objects; need to exclude getter method + "getMetaClass" from serialization to prevent infinite recursion + (reported by Ray T) + + Improvements: + + * Removed JAX-RS META-INF/services - based auto-registration for + JAX-RS MessageBodyReader/MessageBodyWriter, because it could + conflict with other application/json content handlers. + +0.9.9-6 [27-Apr-2009] + + Improvements: + + * Improved jax-rs provider integration with jersey; now properly + auto-registers as handler for json media type(s), and allows + for defining custom ObjectMapper to be injected. + +0.9.9-5 [20-Apr-2009] + + New features: + + * [JACKSON-88]: Support for "Setter-less" collection (and Map) types + + Improvements: + + * [JACKSON-100]: Allow specifying that BigInteger should be used instead + of Integer or Long for "generic" integral numeric types (Object, Number) + (DeserializationConfig.Feature.USE_BIG_INTEGER_FOR_INTS) + * [JACKSON-101]: Allow disabling of access modifier overrides + (SerializationgConfig.Feature.CAN_OVERRIDE_ACCESS_MODIFIERS) + to support more security-constrainted running environments. + +0.9.9-4 [14-Apr-2009] + + Fixes: + + * [JACKSON-94] Added missing "JsonParser.readValueAsTree()" method. + * JacksonJsonProvider was using strict equality comparison against + JSON type; instead needs to use "isCompatible". There were other + similar problems + (reported by Stephen D) + * [JACKSON-97] Generic types (with bound wildcards) caused problems + when Class introspector could not figure out that a concrete method + was overriding/implementing generic method; as well as having + problems with synthetic bridge methods. + + Improvements: + + * [JACKSON-95] Added support for deserializing simple exceptions + (Throwable and its sub-classes): anything with a String constructor + (assumed to take "message") should work to some degree. + * [JACKSON-99] IOExceptions should not be wrapped during object + mapping. + (reported by Eldar A) + + New features: + + * [JACKSON-85]: Make Date deserialization (more) configurable (add + DeserializationConfig.setDateFormat()) + * [JACKSON-93]: Allow overriding the default ClassIntrospector. + * [JACKSON-96]: Allow enabling pretty-printing with data binding, + through SerializationConfig object. + +0.9.9-3 [03-Apr-2009] + + Fixes: + + * [JACKSON-79]: Primitive value deserialization fragile wrt nulls + * [JACKSON-81]: Data binding code could lead to unnecessary blocking + because it tried to advance parser (and stream) after binding + (reported by Eldar A) + + New features: + + * [JACKSON-61]: Allow suppressing writing of bean properties with null values + (requested by Justin F) + * [JACKSON-63]: Create CustomDeserializerFactory to allow for adding + custom deserializers for non-structured/generic types. + * [JACKSON-75]: Add "any setter" method; ability to catch otherwise + unknown (unmapped) properties and call a method with name+value. + * [JACKSON-80]: Add @JsonValue annotation, to specify that a Bean value + is to be serialized as value returned by annotated method: can for + example annotate "toString()" method. + * [JACKSON-84]: Added JsonGenerator.writeRawValue methods to augment + existing JsonGenerator.writeRaw() method + (requested by Scott A) + * [JACKSON-86]: Added JsonParser.isClosed() and JsonGenerator.isClosed() + methods. + * [JACKSON-87]: Added ability to customized Date/Calendar serialization, + both by toggling between timestamp (number) and textual (ISO-8601), + and by specifying alternate DateFormat to use. + +0.9.9-2 [19-Mar-2009]: + + Fixes: + + * [JACKSON-75]: Didn't have Deserializer for Number.class. + + Improvements: + + * [JACKSON-68]: Add DeserializationProblemListener, and + DeserializationConfig.addHandler to add instances to ObjectMapper. + * [JACKSON-71]: Add support ser/deser of Class.class. + * [JACKSON-72]: Allow specifying that BigDecimal should be used instead + of Double for "generic" numeric types (Object, Number) + (DeserializationConfig.Feature.USE_BIG_DECIMAL_FOR_FLOATS) + * [JACKSON-73]: Refactored ser/deser configuration settings into + separate configuration classes. + * [JACKSON-78]: Should be able to deserialize ints into Booleans (0 == false) + + New features: + + * [JACKSON-45]: Add convenience methods to help writing custom + serializers + (requested by Scott A) + +0.9.9 [02-Mar-2009]: + + Fixes: + + * [JACKSON-59]: NPE with String[] serializer + (reported by Kevin G) + * [JACKSON-62]: NPE with JsonMappingException if source exception used + null message. + (reported by Justin F) + * [JACKSON-64]: Handling of property name (with @JsonGetter, @JsonSetter) + made bit more intuitive; uses bean naming convention if no explicit + name given. + + Improvements: + + * [JACKSON-60]: Method annotations did not follow intuitive expectations + of inheritability; now do. + * [JACKSON-65]: Need to support typing using "java.lang.reflect.Type", to + help integration with frameworks. + * [JACKSON-66]: ObjectMapper now has "canSerialize" and "canDeserialize" + methods to help frameworks figure out what is supported. + + New features: + + * [JACKSON-52]: Allow disabling name-based auto-detection of + getter methods + (requested by Justin F) + * [JACKSON-58]: Allow defining custom global Enum serializer + (to, for example, make Enums be serialized using Enum.toString(), + or lower-case name or such) + * [JACKSON-67]: Add JAX-RS provider based on Jackson that can handle + JSON content type; initially as a separate jar. + + Other: + + * [JACKSON-22]: all contributors now have submitted contributor + agreement, stored under 'DEV/agreements-received' in svn trunk. + +0.9.8 [18-Feb-2009]: + + Fixes: + + * [JACKSON-49]: Incorrect bounds check for Float values resulted in + exception when trying to serializer 0.0f. + + New features: + + * [JACKSON-32]: add annotations to configure serialization process + (@JsonClass/@JsonContentClass/@JsonKeyClass; @JsonUseSerializer, + @JsonUseDeserializer, @JsonIgnore) + * [JACKSON-36]: add annotations to define property names that differ + from bean naming convention (@JsonGetter/@JsonSetter) + + Improvements: + + * [JACKSON-47]: Change DeserializerProvider.findValueDeserializer to + take "referrer" information. This is needed to be able to give + contextual mappings where a given type may be deserialized differently + (by different deserializer, and possibly to a different java class) + depending on where the reference is from. + * [JACKSON-48]: Integrate ObjectMapper with JsonGenerator, JsonParser; + add MappingJsonFactory. + (suggested by Scott A) + * [JACKSON-50]: JsonNode.getElements() and .iterator() now work for + ObjectNodes too, not just ArrayNodes. Also added convenience factory + methods to allow constructing child nodes directly from container + nodes. + * [JACKSON-53]: iBatis proxied value classes didn't work; fixed by + prevent CGLib-generated "getCallbacks" from getting called. + (reportd by Justin F) + * [JACKSON-55]: Added support for reference-path-tracking in + JsonMappingException, made serializers populate it: this to make + it easier to trouble-shoot nested serialization problems + * [JACKSON-56]: Added support for RFC-1123 date format, along with + simpler "standard" format; and can add more as need be. + +0.9.7 [04-Feb-2009]: + + Improvements: + + * [JACKSON-34]: Improved packaging by adding an intermediate directory + in source tarball, to not mess up the current directory (and to indicate + version number as well) + * [JACKSON-37]: Make Jackson run on Android, by ensuring that there are + no hard linkages to classes that Android SDK doesn't have (the only + reference that was there, to XMLGregorianCalendar, was changed to + soft linkage) + * [JACKSON-42]: Add new JsonNode sub-class, BinaryNode, to represent + base64 encoded binary content. + + New features: + + * [JACKSON-6]: Implement JsonParser.getBinaryValue() so that one can + now also read Base64-encoded binary, not just write. + * [JACKSON-40]: Add JsonParser.nextValue() for more convenient + iteration. + * [JACKSON-46]: Allow disabling quoting of field names by disabling + feature 'JsonGenerator.feature.QUOTE_FIELD_NAMES' + (requested by Scott Anderson) + +0.9.6 [14-Jan-2009]: + + Bug fixes: + + * Serialization of some core types (boolean/java.lang.Boolean, + long/java.lang.Long) was not working due to incorrectly mapped + serializers. + + New features: + + * [JACKSON-31]: Complete rewrite of ObjectMapper's deserialization: + now supports Beans, typed (generics-aware) Lists/Maps/arrays. + + Improvements: + + * [JACKSON-24]: Add efficient byte-array - based parser factory + method to JsonFactory (has maybe 5% improvement over wrapping + in ByteArrayInputStream). + * [JACKSON-29]: Split classes in 2 jars: core that has parser and + generator APIs and implementations; and mapper jar that has object + and tree mapper code. + * [JACKSON-30]: Renamed "JavaTypeMapper" as "ObjectMapper", and + "JsonTypeMapper" as "TreeMapper"; new names should be more intuitive + to indicate their purpose. Will leave simple implementations of + old classes to allow for gradual migration of existing code. + +0.9.5 [10-Dec-2008]: + + Bug fixes: + + * [JACKSON-25]: Problems with Maven pom for lgpl version + (report by Ray R) + note: backported to 0.9.4 Codehaus Maven repo + + Improvements: + + * [JACKSON-13]: JavaTypeMapper can now take JsonFactory argument, and + thus is able to construct JsonParser/JsonGenerator instances as necessary + * [JACKSON-17]: Handling of unknown types now configurable with + JavaTypeMapper serialization (see JsonSerializerProvider for methods) + * [JACKSON-20]: Handling of nulls (key, value) configurable with + JavaTypeMapper serialization (see JsonSerializerProvider for methods) + * [JACKSON-26]: Add convenience JsonGenerator.writeXxxField() methods + to simplify json generation. + + New features: + + * [JACKSON-27]: Allow automatic closing of incomplete START_ARRAY and + START_OBJECT events, when JsonGenerator.close() is called. + +0.9.4 [26-Nov-2008]: + + Bug fixes: + + * [JACKSON-16]: JavaDocs regarding whether Jackson is to close underlying + streams, readers and writers, were incorrect. Additionally added + parser/generator features to allow specifying whether automatic closing + is to be done by Jackson: feature is enabled by default, both for + backwards compatibility, and because it seems like the right setting. + * [JACKSON-18]: ArrayIndexOutOfBounds on IntNode, due to off-by-one + problem with comparisons + (reported by Michael D) + * Fixed a problem with CR (\r) handling; was sometimes skipping + characters (problematic if there's no indentation). + * Multiple UTF-8 decoding fixes: was specifically not working for + names. + + Improvements: + + * More complete JavaDoc comments for core public classes. + * Internal cleanup of core parsing, to unify handling of Object and + Array entries + +0.8.0 - 0.9.3 [between 17-Oct-2007 and 05-Sep-2008]: + + Changes: + + * [JACKSON-5]: Symbol table construction was not thread-safe for + utf-8 encoded content (new bug with 0.9.2, not present with earlier) + (reported by Tudor B) + * [JACKSON-8]: Serialization of BigDecimal broken with JavaTypeMapper + (reported by Johannes L) + * [JACKSON-9]: Add support for (non-standard) Json comments. + (requested by Mike G) + * [JACKSON-11]: Implement base64/binary methods for json generator. + * [JACKSON-14]: Problems with generic collections, serializer + method signatures (due to lack of covariance wrt collection types) + * [JACKSON-15]: Add copy-through methods to JsonGenerator for + pass-through copying of content (copyCurrentEvent, copyCurrentStructure) + * [JACKSON-23]: Add OSGi manifest headers for jars (to run on OSGi container). + * Added generic "feature" mechanism to parsers, writers; features are + togglable (on/off) things with well-defined default values, implemented + as Enums. + + * [JACKSON-1]: JsonNode now implements Iterable<JsonNode> so that + it is possible use Java 5 foreach loop over array/object nodes. + (suggested by Michael M) + * [JACKSON-4] Added JsonParser.skipChildren() method. + * UTF-16/32 handling was not completely correct, was erroneously + skipping first 2/4 bytes in some cases (even when no BOM included). + Also, related unit tests added/fixed. + * JsonGenerator.useDefaultPrettyPrinter()/.setPrettyPrinter() + allow for pretty printing (indentation). + (thanks to Ziad M for suggestion, sample code) + + * Implicit conversions for numbers could sometimes lose accuracy, + if floating-point number was first accessed as int/long, and then + as a BigDecimal. + * One Nasty NPE fixed from NameCanonicalizer (which was added in 0.9.2) + + * Java type mapper had a bug in Collection mapping (mismatched + calls between writeStartArray and writeEndObject!) + (reported by Mike E) + * Java type mapper had a bug which prevented custom mappers (as + well as slower interface-based introspection) from working. + (reported by Mike E) + * Numeric value parsing had some problems + * JavaTypeMapper and JsonTypeMapper had a bug which resulted + in NullPointerException when stream ends, instead of returning + null to indicate it. + (reported by Augusto C) + * JavaTypeMapper did not implicitly flush generator after mapping + objects: it should, and now will (note: JsonTypeMapper not directly + affected, flushing still needed) + (suggested by Maciej P)
diff --git a/1.9.10/release-notes/asl/ASL2.0 b/1.9.10/release-notes/asl/ASL2.0 new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/1.9.10/release-notes/asl/ASL2.0
@@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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.
diff --git a/1.9.10/release-notes/asl/LICENSE b/1.9.10/release-notes/asl/LICENSE new file mode 100644 index 0000000..3eaf591 --- /dev/null +++ b/1.9.10/release-notes/asl/LICENSE
@@ -0,0 +1,13 @@ +This copy of Jackson JSON processor is licensed under the +Apache (Software) License, version 2.0 ("the License"). +See the License for details about distribution rights, and the +specific rights regarding derivate works. + +You may obtain a copy of the License at: + +http://www.apache.org/licenses/ + +A copy is also included with both the the downloadable source code package +and jar that contains class bytecodes, as file "ASL 2.0". In both cases, +that file should be located next to this file: in source distribution +the location should be "release-notes/asl"; and in jar "META-INF/"
diff --git a/1.9.10/release-notes/asl/NOTICE b/1.9.10/release-notes/asl/NOTICE new file mode 100644 index 0000000..0cae638 --- /dev/null +++ b/1.9.10/release-notes/asl/NOTICE
@@ -0,0 +1,7 @@ +This product currently only contains code developed by authors +of specific components, as identified by the source code files; +if such notes are missing files have been created by +Tatu Saloranta. + +For additional credits (generally to people who reported problems) +see CREDITS file.
diff --git a/1.9.10/release-notes/lgpl/LGPL2.1 b/1.9.10/release-notes/lgpl/LGPL2.1 new file mode 100644 index 0000000..b1e3f5a --- /dev/null +++ b/1.9.10/release-notes/lgpl/LGPL2.1
@@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + +
diff --git a/1.9.10/release-notes/lgpl/LICENSE b/1.9.10/release-notes/lgpl/LICENSE new file mode 100644 index 0000000..b5420ca --- /dev/null +++ b/1.9.10/release-notes/lgpl/LICENSE
@@ -0,0 +1,13 @@ +This copy of Jackson JSON processor is licensed under the +Lesser General Public License (LGPL), version 2.1 ("the License"). +See the License for details about distribution rights, and the +specific rights regarding derivate works. + +You may obtain a copy of the License at: + +http://www.gnu.org/licenses/licenses.html + +A copy is also included with both the the downloadable source code package +and jar that contains class bytecodes, as file "LGPL 2.1". In both cases, +that file should be located next to this file: in source distribution +the location should be "release-notes/lgpl"; and in jar "META-INF/"
diff --git a/1.9.10/release-notes/lgpl/NOTICE b/1.9.10/release-notes/lgpl/NOTICE new file mode 100644 index 0000000..0cae638 --- /dev/null +++ b/1.9.10/release-notes/lgpl/NOTICE
@@ -0,0 +1,7 @@ +This product currently only contains code developed by authors +of specific components, as identified by the source code files; +if such notes are missing files have been created by +Tatu Saloranta. + +For additional credits (generally to people who reported problems) +see CREDITS file.
diff --git a/1.9.10/run.sh b/1.9.10/run.sh new file mode 100755 index 0000000..62d1b05 --- /dev/null +++ b/1.9.10/run.sh
@@ -0,0 +1,9 @@ +#!/bin/sh + +java -Xmx128m -server\ + -XX:-PrintGC -XX:-PrintGCDetails \ + -cp lib/junit/junit-3.8.1.jar\ +:lib/repackaged/\*:lib/xml/\*\ +:build/classes/core:build/classes/mapper:build/classes/xc:build/classes/extra\ +:build/classes/perf:build/classes/smile \ + $*
diff --git a/1.9.10/samples-nondist/twitter-search-mod-entry.json b/1.9.10/samples-nondist/twitter-search-mod-entry.json new file mode 100644 index 0000000..669476b --- /dev/null +++ b/1.9.10/samples-nondist/twitter-search-mod-entry.json
@@ -0,0 +1,7 @@ +{ + "id":1125687077, + "text":"@stroughtonsmith You need to add a \"Favourites\" tab to TC/iPhone. Like what TwitterFon did. I can't WAIT for your Twitter App!! :) Any ETA?", + "fromUserId":855523, + "toUserId":815309, + "languageCode":"en" +}
diff --git a/1.9.10/samples-nondist/twitter-search.jsn b/1.9.10/samples-nondist/twitter-search.jsn new file mode 100644 index 0000000..d81b044 --- /dev/null +++ b/1.9.10/samples-nondist/twitter-search.jsn
@@ -0,0 +1 @@ +{"results":[{"text":"@stroughtonsmith You need to add a "Favourites" tab to TC\/iPhone. Like what TwitterFon did. I can't WAIT for your Twitter App!! :) Any ETA?","to_user_id":815309,"to_user":"stroughtonsmith","from_user":"Shaun_R","id":1125687077,"from_user_id":855523,"iso_language_code":"en","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/68778135\/Safari_Dude_normal.jpg","created_at":"Sat, 17 Jan 2009 06:14:13 +0000"},{"text":"Beginning to understand the Twitter world...and liking it.","to_user_id":null,"from_user":"AWheeler15","id":1125687050,"from_user_id":3694831,"iso_language_code":"en","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/71564236\/Photo_2_normal.jpg","created_at":"Sat, 17 Jan 2009 06:14:11 +0000"},{"text":"@genar hehe, she cant twitter from work, hasnt got it set up on the phone, and on our workout nights generally the computer is untouched too","to_user_id":1089113,"to_user":"genar","from_user":"donro","id":1125687042,"from_user_id":1907789,"iso_language_code":"en","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/68316085\/stef_and_don_normal.jpg","created_at":"Sat, 17 Jan 2009 06:14:11 +0000"},{"text":"My morning routine: mail, flickr, google reader, friendfeed, twitter replies http:\/\/ff.im\/-DMrn","to_user_id":null,"from_user":"hakandahlstrom","id":1125686913,"from_user_id":213116,"iso_language_code":"en","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/67707376\/squarelg_normal.jpg","created_at":"Sat, 17 Jan 2009 06:14:04 +0000"},{"text":"@LeeCollins If you have not seen Lee's Website..Check it out ..Perfect layout. Also.. Twitter Photo tool","to_user_id":381690,"to_user":"leecollins","from_user":"MichaelGPerry","id":1125686877,"from_user_id":2765433,"iso_language_code":"en","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/70614206\/MG_Perry_normal.JPG","created_at":"Sat, 17 Jan 2009 06:14:02 +0000"},{"text":"Just Buzzed My Blog:: New Friend @AlohaArlene Gets Twooted From Twitter http:\/\/tinyurl.com\/8hd7qy","to_user_id":null,"from_user":"BabyBloggerBrie","id":1125686854,"from_user_id":3593267,"iso_language_code":"nl","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/70969980\/brie_normal.jpg","created_at":"Sat, 17 Jan 2009 06:14:02 +0000"},{"text":"Current will air the inauguration while streaming tweets from the twitter audience on the TV as we watch. Check it - http:\/\/ub0.cc\/7C\/2d","to_user_id":null,"from_user":"my3rdeye","id":1125686843,"from_user_id":2553098,"iso_language_code":"en","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/67353656\/Charlie_Boognish_normal.jpg","created_at":"Sat, 17 Jan 2009 06:14:01 +0000"},{"text":"milestone: Twitter Grader has now graded 1,000,000 unique twitter accounts. Woo hoo! (via @grader)","to_user_id":null,"from_user":"christyitamoto","id":1125686812,"from_user_id":1549031,"iso_language_code":"en","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/60294809\/MyPicture_normal.jpg","created_at":"Sat, 17 Jan 2009 06:13:59 +0000"},{"text":"Twitter-Yahoo Mashup Yields Impressive News Search Engine http:\/\/twurl.nl\/pg8sxs","to_user_id":null,"from_user":"synectic","id":1125686791,"from_user_id":2563073,"iso_language_code":"en","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/67483750\/8yplOv7l.kokopelli_trans_normal.png","created_at":"Sat, 17 Jan 2009 06:13:58 +0000"},{"text":"RT: @sarahamrin You really know how to work Twitter. *scribbles another mark for Sarah on the International T.. http:\/\/tinyurl.com\/7xt8hb","to_user_id":null,"from_user":"howtotweets","id":1125686790,"from_user_id":3437258,"iso_language_code":"en","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","created_at":"Sat, 17 Jan 2009 06:13:58 +0000"},{"text":"IPhone App Reviews - Breaking News in the 09s: iPhone and Twitter: Breaking News in the 09s: iPhone and Twitter .. http:\/\/tinyurl.com\/922qcl","to_user_id":null,"from_user":"ifones","id":1125686749,"from_user_id":1412337,"iso_language_code":"en","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","created_at":"Sat, 17 Jan 2009 06:13:56 +0000"},{"text":"RT: @davidall's book about how to use twitter RULES!! You can get it here: http:\/\/tinyurl.com\/495nm2 http:\/\/tinyurl.com\/8kuva5","to_user_id":null,"from_user":"howtotweets","id":1125686716,"from_user_id":3437258,"iso_language_code":"en","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","created_at":"Sat, 17 Jan 2009 06:13:54 +0000"},{"text":"@ev new 2 twitter & already hooked, thx 4 the welcome. It's rough being a newbie","to_user_id":5621,"to_user":"ev","from_user":"jgordo","id":1125686687,"from_user_id":3696186,"iso_language_code":"en","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/68508879\/Img00020_normal.jpg","created_at":"Sat, 17 Jan 2009 06:13:53 +0000"},{"text":"Twitter applicatie TweetDeck heeft een investering v $500k binnengehaald: http:\/\/twurl.nl\/gfei3i","to_user_id":null,"from_user":"gvenkdaily","id":1125686526,"from_user_id":230616,"iso_language_code":"nl","profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/55316327\/gvenkdaily-logo-vierkant_normal.png","created_at":"Sat, 17 Jan 2009 06:13:46 +0000"},{"text":"We are like Twitter Retards.. HA ha ha. I thought I was going to be gay, but I totally changed my mind after being chewed on the other night","to_user_id":null,"from_user":"Aroyal88","id":1125686475,"from_user_id":3219428,"iso_language_code":"en","profile_image_url":"http:\/\/static.twitter.com\/images\/default_profile_normal.png","created_at":"Sat, 17 Jan 2009 06:13:43 +0000"}],"since_id":0,"max_id":1125687077,"refresh_url":"?since_id=1125687077&q=twitter","results_per_page":15,"next_page":"?page=2&max_id=1125687077&q=twitter","completed_in":0.01338,"page":1,"query":"twitter"} \ No newline at end of file
diff --git a/1.9.10/samples-smile/db100.xml.smile b/1.9.10/samples-smile/db100.xml.smile new file mode 100644 index 0000000..0ead767 --- /dev/null +++ b/1.9.10/samples-smile/db100.xml.smile
@@ -0,0 +1,2 @@ +:) +útableúrowøúidú$C0000ûfirstnameúCAAlûlastnameúCEAranowû streetúCH1 Any St.ûcityúCFAnytownûstateúCAALûzipúCD22000ûûúBúCC0001ûDúCBBobûEúCûFúCH2 Any St.ûGúCûHúCûIúCûûúBúCC0002ûDúCFCharlesûEúCûFúCH3 Any St.ûGúCûHúCûIúCûûúBúCC0003ûDúCDDavidûEúCûFúCH4 Any St.ûGúCûHúCûIúCûûúBúCC0004ûDúCCEgonûEúCûFúCH5 Any St.ûGúCûHúCûIúCûûúBúCC0005ûDúCFFarboodûEúCûFúCH6 Any St.ûGúCûHúCûIúCûûúBúCC0006ûDúCEGeorgeûEúCûFúCH7 Any St.ûGúCûHúCûIúCûûúBúCC0007ûDúCCHankûEúCûFúCH8 Any St.ûGúCûHúCûIúCûûúBúCC0008ûDúCCInkiûEúCûFúCH9 Any St.ûGúCûHúCûIúCûûúBúCC0009ûDúCDJamesûEúCûFúCI10 Any St.ûGúCûHúCûIúCûûúBúCC0010ûDúCûEúCEBarkerûFúCI11 Any St.ûGúCûHúCûIúCûûúBúCC0011ûDúC ûEúCì#ûFúCI12 Any St.ûGúCûHúCûIúCûûúBúCC0012ûDúCûEúCì#ûFúCI13 Any St.ûGúCûHúCûIúCûûúBúCC0013ûDúCûEúCì#ûFúCI14 Any St.ûGúCûHúCûIúCûûúBúCC0014ûDúCûEúCì#ûFúCI15 Any St.ûGúCûHúCûIúCûûúBúCC0015ûDúCûEúCì#ûFúCI16 Any St.ûGúCûHúCûIúCûûúBúCC0016ûDúCûEúCì#ûFúCI17 Any St.ûGúCûHúCûIúCûûúBúCC0017ûDúCûEúCì#ûFúCI18 Any St.ûGúCûHúCûIúCûûúBúCC0018ûDúCûEúCì#ûFúCI19 Any St.ûGúCûHúCûIúCûûúBúCC0019ûDúCì ûEúCì#ûFúCI20 Any St.ûGúCûHúCûIúCûûúBúCC0020ûDúCûEúCGCorsettiûFúCI21 Any St.ûGúCûHúCûIúCûûúBúCC0021ûDúC ûEúCì8ûFúCI22 Any St.ûGúCûHúCûIúCûûúBúCC0022ûDúCûEúCì8ûFúCI23 Any St.ûGúCûHúCûIúCûûúBúCC0023ûDúCûEúCì8ûFúCI24 Any St.ûGúCûHúCûIúCûûúBúCC0024ûDúCCEgonûEúCì8ûFúCI25 Any St.ûGúCûHúCûIúCûûúBúCC0025ûDúCFFarboodûEúCì8ûFúCI26 Any St.ûGúCûHúCûIúCûûúBúCC0026ûDúCEGeorgeûEúCì8ûFúCI27 Any St.ûGúCûHúCûIúCûûúBúCC0027ûDúCûEúCì8ûFúCI28 Any St.ûGúCûHúCûIúCûûúBúCC0028ûDúCCInkiûEúCì8ûFúCI29 Any St.ûGúCûHúCûIúCûûúBúCC0029ûDúCDJamesûEúCì8ûFúCI30 Any St.ûGúCûHúCûIúCûûúBúCC0030ûDúCAAlûEúCIDershowitzûFúCI31 Any St.ûGúCûHúCûIúCûûúBúCC0031ûDúC ûEúCìSûFúCI32 Any St.ûGúCûHúCûIúCûûúBúCC0032ûDúCFCharlesûEúCìSûFúCI33 Any St.ûGúCûHúCûIúCûûúBúCC0033ûDúCûEúCìSûFúCI34 Any St.ûGúCûHúCûIúCûûúBúCC0034ûDúCìAûEúCìSûFúCI35 Any St.ûGúCûHúCûIúCûûúBúCC0035ûDúCìDûEúCìSûFúCI36 Any St.ûGúCûHúCûIúCûûúBúCC0036ûDúCìGûEúCìSûFúCI37 Any St.ûGúCûHúCûIúCûûúBúCC0037ûDúCûEúCìSûFúCI38 Any St.ûGúCûHúCûIúCûûúBúCC0038ûDúCìLûEúCìSûFúCI39 Any St.ûGúCûHúCûIúCûûúBúCC0039ûDúCìOûEúCìSûFúCI40 Any St.ûGúCûHúCûIúCûûúBúCC0040ûDúCìRûEúCGEnglemanûFúCI41 Any St.ûGúCûHúCûIúCûûúBúCC0041ûDúC ûEúCìiûFúCI42 Any St.ûGúCûHúCûIúCûûúBúCC0042ûDúCìXûEúCìiûFúCI43 Any St.ûGúCûHúCûIúCûûúBúCC0043ûDúCûEúCìiûFúCI44 Any St.ûGúCûHúCûIúCûûúBúCC0044ûDúCìAûEúCìiûFúCI45 Any St.ûGúCûHúCûIúCûûúBúCC0045ûDúCìDûEúCìiûFúCI46 Any St.ûGúCûHúCûIúCûûúBúCC0046ûDúCìGûEúCìiûFúCI47 Any St.ûGúCûHúCûIúCûûúBúCC0047ûDúCûEúCìiûFúCI48 Any St.ûGúCûHúCûIúCûûúBúCC0048ûDúCìLûEúCìiûFúCI49 Any St.ûGúCûHúCûIúCûûúBúCC0049ûDúCìOûEúCìiûFúCI50 Any St.ûGúCûHúCûIúCûûúBúCC0050ûDúCìRûEúCGFranklinûFúCI51 Any St.ûGúCûHúCûIúCûûúBúCC0051ûDúC ûEúCì~ûFúCI52 Any St.ûGúCûHúCûIúCûûúBúCC0052ûDúCìXûEúCì~ûFúCI53 Any St.ûGúCûHúCûIúCûûúBúCC0053ûDúCûEúCì~ûFúCI54 Any St.ûGúCûHúCûIúCûûúBúCC0054ûDúCìAûEúCì~ûFúCI55 Any St.ûGúCûHúCûIúCûûúBúCC0055ûDúCìDûEúCì~ûFúCI56 Any St.ûGúCûHúCûIúCûûúBúCC0056ûDúCìGûEúCì~ûFúCI57 Any St.ûGúCûHúCûIúCûûúBúCC0057ûDúCûEúCì~ûFúCI58 Any St.ûGúCûHúCûIúCûûúBúCC0058ûDúCìLûEúCì~ûFúCI59 Any St.ûGúCûHúCûIúCûûúBúCC0059ûDúCìOûEúCì~ûFúCI60 Any St.ûGúCûHúCûIúCûûúBúCC0060ûDúCìRûEúCDGriceûFúCI61 Any St.ûGúCûHúCûIúCûûúBúCC0061ûDúC ûEúCìûFúCI62 Any St.ûGúCûHúCûIúCûûúBúCC0062ûDúCìXûEúCìûFúCI63 Any St.ûGúCûHúCûIúCûûúBúCC0063ûDúCûEúCìûFúCI64 Any St.ûGúCûHúCûIúCûûúBúCC0064ûDúCìAûEúCìûFúCI65 Any St.ûGúCûHúCûIúCûûúBúCC0065ûDúCìDûEúCìûFúCI66 Any St.ûGúCûHúCûIúCûûúBúCC0066ûDúCìGûEúCìûFúCI67 Any St.ûGúCûHúCûIúCûûúBúCC0067ûDúCûEúCìûFúCI68 Any St.ûGúCûHúCûIúCûûúBúCC0068ûDúCìLûEúCìûFúCI69 Any St.ûGúCûHúCûIúCûûúBúCC0069ûDúCìOûEúCìûFúCI70 Any St.ûGúCûHúCûIúCûûúBúCC0070ûDúCìRûEúCHHaverfordûFúCI71 Any St.ûGúCûHúCûIúCûûúBúCC0071ûDúC ûEúCì¨ûFúCI72 Any St.ûGúCûHúCûIúCûûúBúCC0072ûDúCìXûEúCì¨ûFúCI73 Any St.ûGúCûHúCûIúCûûúBúCC0073ûDúCûEúCì¨ûFúCI74 Any St.ûGúCûHúCûIúCûûúBúCC0074ûDúCìAûEúCì¨ûFúCI75 Any St.ûGúCûHúCûIúCûûúBúCC0075ûDúCìDûEúCì¨ûFúCI76 Any St.ûGúCûHúCûIúCûûúBúCC0076ûDúCìGûEúCì¨ûFúCI77 Any St.ûGúCûHúCûIúCûûúBúCC0077ûDúCûEúCì¨ûFúCI78 Any St.ûGúCûHúCûIúCûûúBúCC0078ûDúCìLûEúCì¨ûFúCI79 Any St.ûGúCûHúCûIúCûûúBúCC0079ûDúCìOûEúCì¨ûFúCI80 Any St.ûGúCûHúCûIúCûûúBúCC0080ûDúCìRûEúCGIlvedsonûFúCI81 Any St.ûGúCûHúCûIúCûûúBúCC0081ûDúC ûEúCì½ûFúCI82 Any St.ûGúCûHúCûIúCûûúBúCC0082ûDúCìXûEúCì½ûFúCI83 Any St.ûGúCûHúCûIúCûûúBúCC0083ûDúCûEúCì½ûFúCI84 Any St.ûGúCûHúCûIúCûûúBúCC0084ûDúCìAûEúCì½ûFúCI85 Any St.ûGúCûHúCûIúCûûúBúCC0085ûDúCìDûEúCì½ûFúCI86 Any St.ûGúCûHúCûIúCûûúBúCC0086ûDúCìGûEúCì½ûFúCI87 Any St.ûGúCûHúCûIúCûûúBúCC0087ûDúCûEúCì½ûFúCI88 Any St.ûGúCûHúCûIúCûûúBúCC0088ûDúCìLûEúCì½ûFúCI89 Any St.ûGúCûHúCûIúCûûúBúCC0089ûDúCìOûEúCì½ûFúCI90 Any St.ûGúCûHúCûIúCûûúBúCC0090ûDúCìRûEúCDJonesûFúCI91 Any St.ûGúCûHúCûIúCûûúBúCC0091ûDúC ûEúCìÒûFúCI92 Any St.ûGúCûHúCûIúCûûúBúCC0092ûDúCìXûEúCìÒûFúCI93 Any St.ûGúCûHúCûIúCûûúBúCC0093ûDúCûEúCìÒûFúCI94 Any St.ûGúCûHúCûIúCûûúBúCC0094ûDúCìAûEúCìÒûFúCI95 Any St.ûGúCûHúCûIúCûûúBúCC0095ûDúCìDûEúCìÒûFúCI96 Any St.ûGúCûHúCûIúCûûúBúCC0096ûDúCìGûEúCìÒûFúCI97 Any St.ûGúCûHúCûIúCûûúBúCC0097ûDúCûEúCìÒûFúCI98 Any St.ûGúCûHúCûIúCûûúBúCC0098ûDúCìLûEúCìÒûFúCI99 Any St.ûGúCûHúCûIúCûûúBúCC0099ûDúCìOûEúCìÒûFúCJ100 Any St.ûGúCûHúCûIúCûûùûû \ No newline at end of file
diff --git a/1.9.10/samples-smile/json-org-sample1.smile b/1.9.10/samples-smile/json-org-sample1.smile new file mode 100644 index 0000000..b3d2f57 --- /dev/null +++ b/1.9.10/samples-smile/json-org-sample1.smile
@@ -0,0 +1,2 @@ +:) +úglossaryútitleOexample glossaryGlossDivúA@SGlossListúGlossEntryúIDCSGML SortAsGlossTermcStandard Generalized Markup LanguageAcronym AbbrevLISO 8879:1986GlossDefúparaàA meta-markup language, used to create markup languages such as DocBook.üGlossSeeAlsoøBGMLBXMLùûGlossSeeEmarkupûûûûû \ No newline at end of file
diff --git a/1.9.10/samples-smile/json-org-sample2.smile b/1.9.10/samples-smile/json-org-sample2.smile new file mode 100644 index 0000000..778d834 --- /dev/null +++ b/1.9.10/samples-smile/json-org-sample2.smile
@@ -0,0 +1,2 @@ +:) +úmenuúidCfilevalueCFilepopupúmenuitemøúBBNewonclickMCreateNewDoc()ûúBCOpenEHOpenDoc()ûúBDCloseEICloseDoc()ûùûûû \ No newline at end of file
diff --git a/1.9.10/samples-smile/json-org-sample3.smile b/1.9.10/samples-smile/json-org-sample3.smile new file mode 100644 index 0000000..a4af3cc --- /dev/null +++ b/1.9.10/samples-smile/json-org-sample3.smile
@@ -0,0 +1,2 @@ +:) +ú widgetúdebugAon windowútitleYSample Konfabulator WidgetnameJmain_windowwidth$¨ height$¨ûimageúsrcMImages/Sun.pngDCsun1hOffset$´vOffset$´alignmentEcenterûtextúdataIClick Heresize$styleCboldDDtext1I$´J$KonMouseUphsun1.opacity = (sun1.opacity / 100) * 90;ûûû \ No newline at end of file
diff --git a/1.9.10/samples-smile/json-org-sample4.smile b/1.9.10/samples-smile/json-org-sample4.smile new file mode 100644 index 0000000..f37686e --- /dev/null +++ b/1.9.10/samples-smile/json-org-sample4.smile
@@ -0,0 +1,2 @@ +:) +úweb-appúservletøúservlet-nameGcofaxCDSservlet-classWorg.cofax.cds.CDSServletinit-paramúconfigGlossary:installationAtOPhiladelphia, PAconfigGlossary:adminEmailLksm@pobox.comconfigGlossary:poweredByDCofaxconfigGlossary:poweredByIconP/images/cofax.gifconfigGlossary:staticPathN/content/statictemplateProcessorClassXorg.cofax.WysiwygTemplatetemplateLoaderClass\org.cofax.FilesTemplateLoadertemplatePathHtemplatestemplateOverridePath defaultListTemplateOlistTemplate.htmdefaultFileTemplateRarticleTemplate.htm useJSP"jspListTemplateOlistTemplate.jspjspFileTemplateRarticleTemplate.jspcachePackageTagsTrack$cachePackageTagsStore$cachePackageTagsRefresh$¸cacheTemplatesTrack$cacheTemplatesStore$¤cacheTemplatesRefreshÞcachePagesTrack$cachePagesStore$cachePagesRefreshÔcachePagesDirtyReadÔsearchEngineListTemplateWforSearchEnginesList.htmsearchEngineFileTemplateSforSearchEngines.htmsearchEngineRobotsDbPWEB-INF/robots.dbuseDataStore#dataStoreClassUorg.cofax.SqlDataStoreredirectionClassWorg.cofax.SqlRedirectiondataStoreNameDcofaxdataStoreDriverkcom.microsoft.jdbc.sqlserver.SQLServerDriverdataStoreUrlzjdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goondataStoreUserAsadataStorePasswordQdataStoreTestQuerydataStoreTestQueryaSET NOCOUNT ON;select test='test';dataStoreLogFilec/usr/local/tomcat/logs/datastore.logdataStoreInitConnsÔdataStoreMaxConns$dataStoreConnUsageLimit$dataStoreLogLevelDdebugmaxUrlLength$¨ûûúBIcofaxEmailCYorg.cofax.cds.EmailServletDúmailHostDmail1mailHostOverrideDmail2ûûúBIcofaxAdminCYorg.cofax.cds.AdminServletûúBJfileServletCXorg.cofax.cds.FileServletûúBIcofaxToolsC^org.cofax.cms.CofaxToolsServletDúLNtoolstemplates/logÂlogLocationd/usr/local/tomcat/logs/CofaxTools.loglogMaxSize dataLogÂdataLogLocationa/usr/local/tomcat/logs/dataLog.logdataLogMaxSize removePageCached/content/admin/remove?cache=pages&id=removeTemplateCacheh/content/admin/remove?cache=templates&id=fileTransferFolders/usr/local/tomcat/webapps/content/fileTransferFolderlookInContextÂadminGroupIDÈbetaServer#ûûùservlet-mappingúcofaxCDS@/cofaxEmailR/cofaxutil/aemail/*cofaxAdminG/admin/*fileServletH/static/*cofaxToolsG/tools/*û taglibútaglib-uriHcofax.tldtaglib-locationV/WEB-INF/tlds/cofax.tldûûû \ No newline at end of file
diff --git a/1.9.10/samples-smile/json-org-sample5.smile b/1.9.10/samples-smile/json-org-sample5.smile new file mode 100644 index 0000000..aa5c4fc --- /dev/null +++ b/1.9.10/samples-smile/json-org-sample5.smile
@@ -0,0 +1,2 @@ +:) +úmenuú headerISVG VieweritemsøúidCOpenûúCFOpenNewlabelGOpen Newû!úCEZoomInDFZoom InûúCFZoomOutDGZoom OutûúCKOriginalViewDLOriginal Viewû!úCFQualityûúCDPauseûúCCMuteû!úCCFindDFFind...ûúCHFindAgainDIFind AgainûúCCCopyûúCHCopyAgainDICopy AgainûúCFCopySVGDGCopy SVGûúCFViewSVGDGView SVGûúCIViewSourceDJView SourceûúCESaveAsDFSave Asû!úCCHelpûúCDAboutDXAbout Adobe CVG Viewer...ûùûû \ No newline at end of file
diff --git a/1.9.10/samples-smile/map-spam.xml.smile b/1.9.10/samples-smile/map-spam.xml.smile new file mode 100644 index 0000000..6c96a71 --- /dev/null +++ b/1.9.10/samples-smile/map-spam.xml.smile
@@ -0,0 +1,89 @@ +:) +úsvgú@údefsúfontøúfont-faceú@idESymbol@font-variantEnormal@font-weightB400 @xmlnsúxlink[http://www.w3.org/1999/xlink$Yhttp://www.w3.org/2000/svgûûmissing-glyphú@horiz-adv-xB500@diM63 0V800H438V0H63ZM125 63H375V738H125V63ZGúHIûûglyphúpathúLàM51 3688l0 5 -40 20 40 19 0 5 -48 -23 0 -3 48 -23zm-48 55l48 0 0 5 -48 0 0 -5züGúHIûû@unicodeB163GúHIûûDFFontID5KC1000GúHIûûúCúDNHumnst777_Lt_BTE@font-styleEitalicFGúHIûûJúKLGúHIûûMøúNúL\M5 3698l41 0 -2 9 -41 0 2 -9zGúHIûûOA45GúHIûûúNúLàM15 3632l54 0 0 10 -43 -1 0 42 41 0 0 10 -41 0 0 55 -11 0 0 -116züGúHIûûOA70GúHIûûúNúLàM15 3632l17 0 39 95c0,2 1,3 1,5 1,2 1,4 1,6 1,-2 1,-4 1,-5 1,-2 1,-3 2,-5l41 -96 16 0 0 116 -10 0 0 -98c0,0 -1,0 -1,-1 0,-1 0,-1 0,-2 0,-1 0,-2 1,-3 0,-1 0,-2 0,-4 -1,3 -2,6 -3,8 0,1 0,1 0,1l-42 99 -10 0 -41 -99c0,-1 -1,-3 -2,-6 0,-1 0,-2 0,-3 0,2 0,4 0,7 0,2 0,3 0,3l0 98 -10 0 0 -116züGúHIûûOA77GúHIûûúNúLàM101 3677c0,-12 -3,-21 -9,-28 -6,-6 -14,-10 -24,-10 -6,0 -12,2 -18,5 -6,2 -11,7 -15,12 -5,6 -9,13 -11,21 -3,8 -5,17 -5,25 0,12 3,21 9,28 6,7 14,10 24,10 7,0 13,-1 19,-4 6,-3 11,-8 16,-15 4,-5 8,-12 10,-20 3,-8 4,-16 4,-24zm-32 -47c13,0 24,4 32,13 8,8 11,19 11,33 0,8 -1,16 -3,24 -2,8 -5,15 -9,21 -6,9 -13,17 -21,22 -8,5 -17,7 -27,7 -14,0 -24,-4 -32,-13 -8,-9 -12,-20 -12,-35 0,-10 2,-20 5,-30 4,-10 10,-18 16,-25 5,-5 11,-9 18,-12 7,-3 14,-5 22,-5züGúHIûûOA79GúHIûûúNúLàM68 3642l-39 65 50 0 -11 -65zm-4 -10l12 0 23 116 -11 0 -7 -31 -58 0 -19 31 -12 0 72 -116züGúHIûûOA65GúHIûûúNúLàM26 3642l0 47 12 0c9,0 16,-2 21,-7 6,-4 8,-10 8,-17 0,-7 -2,-13 -7,-17 -5,-4 -11,-6 -19,-6l-15 0zm-11 -10l25 0c12,0 22,3 29,9 6,5 10,13 10,24 0,10 -4,19 -11,25 -7,5 -17,8 -30,8l-12 0 0 50 -11 0 0 -116züGúHIûûOA80GúHIûûúNúLàM44 3672c-8,0 -13,3 -18,9 -4,6 -6,14 -6,24 0,11 2,19 6,25 5,6 11,9 18,9 8,0 14,-3 18,-9 5,-6 7,-14 7,-24 0,-11 -2,-19 -7,-25 -4,-6 -10,-9 -18,-9zm26 9l0 -16 10 0 0 74c0,15 -3,27 -10,34 -6,8 -15,12 -28,12 -4,0 -9,-1 -14,-2 -4,0 -8,-2 -12,-3l1 -11c4,2 8,4 12,5 4,1 9,1 13,1 9,0 16,-3 21,-9 5,-6 7,-14 7,-25l0 -11c-3,6 -7,11 -12,14 -4,3 -10,4 -16,4 -10,0 -18,-4 -24,-11 -6,-8 -9,-18 -9,-31 0,-13 3,-24 9,-31 6,-8 14,-12 25,-12 6,0 11,2 16,5 5,3 9,7 11,13züGúHIûûOB103GúHIûûúNúLàM15 3624l10 0 0 73 37 -32 13 0 -40 35 45 48 -14 0 -41 -44 0 44 -10 0 0 -124züGúHIûûOB107GúHIûûúNúLàM46 3672c-8,0 -14,3 -19,9 -5,7 -8,15 -8,25 0,11 3,19 8,25 5,7 11,10 19,10 9,0 15,-3 20,-10 5,-6 8,-14 8,-25 0,-10 -3,-18 -8,-25 -4,-6 -11,-9 -20,-9zm0 -9c12,0 22,4 29,12 6,8 10,18 10,31 0,14 -4,24 -10,32 -7,8 -17,12 -29,12 -11,0 -21,-4 -28,-12 -7,-8 -10,-18 -10,-31 0,-14 3,-24 10,-32 7,-8 17,-12 28,-12züGúHIûûOB111GúHIûûúNúLàM67 3698c0,-8 -2,-14 -6,-18 -4,-5 -9,-8 -16,-8 -3,1 -6,1 -9,2 -3,2 -6,4 -8,6 -4,4 -7,10 -10,16 -2,7 -4,14 -4,21 0,7 2,13 6,18 4,4 9,6 15,6 5,0 9,-1 13,-4 4,-3 8,-7 11,-12 3,-3 4,-8 6,-12 1,-5 2,-10 2,-15zm17 -74l10 0 -26 124 -9 0 2 -14c-4,5 -8,9 -13,12 -5,3 -10,4 -15,4 -9,0 -17,-3 -22,-9 -5,-6 -8,-14 -8,-25 0,-5 1,-11 3,-17 1,-6 4,-11 7,-16 4,-7 8,-11 14,-15 5,-3 11,-5 17,-5 7,0 13,2 18,5 4,3 8,8 10,14l12 -58züGúHIûûOB100GúHIûûúNúLàM77 3702l0 6 -59 0c0,11 3,19 8,25 6,5 13,8 22,8 4,0 8,-1 11,-2 4,-1 8,-2 11,-4l0 10c-3,2 -7,3 -11,4 -4,1 -8,1 -12,1 -12,0 -22,-4 -29,-12 -7,-7 -10,-18 -10,-32 0,-13 3,-23 10,-31 7,-8 16,-12 27,-12 9,0 17,4 23,11 6,7 9,16 9,28zm-10 -1c-1,-10 -3,-17 -7,-22 -4,-5 -10,-7 -17,-7 -6,0 -12,2 -17,8 -4,5 -7,12 -8,21l49 0züGúHIûûOB101GúHIûûúNúLàM15 3624l10 0 0 55c3,-5 7,-9 11,-12 5,-2 10,-4 17,-4 9,0 15,3 20,9 5,6 7,14 7,25l0 51 -10 0 0 -48c0,-10 -2,-16 -5,-21 -3,-4 -8,-6 -15,-6 -8,0 -14,2 -18,8 -5,6 -7,14 -7,24l0 43 -10 0 0 -124züGúHIûûOB104GúHIûûúNúLàM69 3668l-1 10c-2,-1 -5,-3 -8,-3 -3,-1 -7,-1 -10,-1 -9,0 -17,3 -22,9 -6,6 -9,14 -9,23 0,11 3,19 8,24 6,6 13,9 22,9 3,0 6,0 9,-1 4,-1 7,-2 11,-3l1 10c-4,1 -7,2 -11,3 -3,1 -7,1 -11,1 -12,0 -22,-4 -29,-12 -7,-7 -11,-18 -11,-31 0,-12 4,-22 12,-30 7,-8 18,-12 30,-12 4,0 7,1 10,1 3,1 6,1 9,3züGúHIûûOA99GúHIûûúNúL|M14 3665l10 0 0 83 -10 0 0 -83zm-1 -39l12 0 0 14 -12 0 0 -14zGúHIûûOB105GúHIûûúNúLàM80 3697l0 51 -10 0 0 -48c0,-10 -2,-16 -5,-21 -3,-4 -8,-6 -15,-6 -8,0 -14,2 -18,8 -5,6 -7,14 -7,24l0 43 -10 0 0 -83 9 0 0 16c3,-6 7,-11 12,-13 5,-3 10,-5 17,-5 9,0 15,3 20,9 5,6 7,14 7,25züGúHIûûOB110GúHIûûúNúLàM48 3706c-10,0 -17,1 -22,5 -6,3 -8,8 -8,14 0,4 1,8 4,11 3,3 8,5 13,5 7,0 13,-3 18,-8 5,-5 7,-11 7,-20l0 -7 -12 0zm22 -11l0 53 -9 0 0 -14c-3,5 -7,9 -12,11 -4,3 -10,4 -16,4 -8,0 -14,-2 -19,-6 -5,-5 -7,-10 -7,-18 0,-9 4,-15 11,-20 7,-5 18,-8 31,-8l11 0c0,0 0,0 0,-1 0,-1 0,-1 0,-1 0,-7 -2,-13 -5,-17 -4,-4 -8,-6 -14,-6 -5,0 -9,1 -13,2 -4,1 -7,3 -11,5l0 -10c4,-2 8,-3 12,-4 4,-1 9,-2 13,-2 9,0 16,3 21,8 5,5 7,13 7,24züGúHIûûOA97GúHIûûúNúL`M14 3624l10 0 0 124 -10 0 0 -124zGúHIûûOB108GúHIûûúNúLàM13 3665l10 0 0 48c0,9 2,16 5,20 3,5 8,7 15,7 8,0 14,-3 18,-9 5,-6 7,-15 7,-27l0 -39 10 0 0 83 -9 0 0 -16c-4,5 -7,10 -12,13 -5,3 -10,4 -17,4 -9,0 -16,-3 -20,-9 -5,-5 -7,-14 -7,-25l0 -50züGúHIûûOB117GúHIûûúNúLàM14 3665l61 0 -2 9 -64 66 51 0 -2 8 -64 0 2 -10 65 -65 -48 0 1 -8züGúHIûûOB122GúHIûûúNúLàM53 3664l0 11c-1,0 -2,0 -3,-1 -1,0 -2,0 -3,0 -7,0 -12,3 -16,8 -4,5 -6,13 -6,22l0 44 -10 0 0 -83 9 0 0 18c2,-6 5,-11 10,-14 4,-3 9,-5 14,-5 1,0 2,0 2,0 1,0 2,0 3,0züGúHIûûOB114GúHIûûúNúLàM61 3667l-3 10c-3,-2 -6,-3 -9,-4 -3,-1 -6,-1 -10,-1 -5,0 -10,1 -13,3 -4,2 -6,5 -6,9 0,4 5,9 14,15 3,2 5,4 6,5 5,3 8,6 10,10 2,3 3,7 3,11 0,8 -3,14 -9,18 -6,5 -14,7 -25,7 -4,0 -8,0 -12,-1 -4,-1 -8,-2 -12,-4l4 -10c3,2 7,3 10,4 4,1 8,2 12,2 6,0 11,-2 15,-4 4,-3 5,-7 5,-12 0,-3 0,-5 -2,-8 -2,-2 -5,-5 -11,-9 -1,-1 -1,-1 -1,-1 -12,-8 -17,-15 -17,-21 0,-7 3,-13 8,-17 5,-4 13,-6 22,-6 4,0 7,0 10,1 4,1 7,2 11,3züGúHIûûOB115GúHIûûúNúLàM32 3640l-1 25 20 0 0 9 -20 0 0 48c0,7 1,11 3,14 2,3 5,4 9,4 2,0 3,0 5,0 1,-1 2,-1 4,-2l0 10c-2,0 -4,1 -5,1 -2,0 -4,0 -6,0 -7,0 -12,-2 -15,-6 -3,-3 -5,-10 -5,-19l0 -50 -17 0 0 -9 17 0 0 -21 11 -4züGúHIûûOB116GúHIûûúNúLàM58 3705c-1,0 -2,0 -3,0 -1,0 -3,0 -6,0 -13,0 -23,2 -29,5 -6,3 -9,9 -9,16 0,4 2,8 5,10 3,3 6,5 11,5 9,0 16,-4 21,-10 5,-6 9,-15 10,-26zm11 -5l-5 26c-1,7 -2,12 -3,14 0,3 -1,6 -1,8l-9 0 2 -13c-4,5 -8,8 -13,11 -4,2 -9,3 -15,3 -7,0 -13,-2 -18,-6 -5,-4 -7,-10 -7,-17 0,-9 4,-17 12,-22 8,-5 19,-8 33,-8 2,0 4,0 6,1 2,0 5,0 8,0 1,-2 1,-4 1,-5 0,-1 0,-2 0,-3 0,-5 -1,-10 -4,-13 -3,-3 -8,-4 -14,-4 -3,0 -6,0 -10,1 -5,1 -9,3 -15,5l1 -11c6,-1 10,-3 14,-3 4,-1 8,-1 11,-1 9,0 15,2 20,6 5,5 7,11 7,19 0,1 0,3 0,5 0,2 -1,4 -1,7zm-13 -66l12 0 -3 14 -12 0 3 -14zm-26 0l11 0 -2 14 -12 0 3 -14züGúHIûûOB228GúHIûûùDFFontID1K +GúHIûûúCúDKHumnst777_BTEPFF400,700GúHIûûJúKLGúHIûûMøúNúLàM56 3723c-2,0 -4,1 -5,3 -1,1 -2,4 -2,7 0,4 1,6 2,8 1,2 3,3 5,3 2,0 4,-1 5,-3 2,-2 2,-4 2,-8 0,-3 0,-6 -2,-7 -1,-2 -3,-3 -5,-3zm0 -5c4,0 8,1 10,4 2,3 4,7 4,11 0,5 -2,9 -4,12 -2,3 -6,4 -10,4 -4,0 -7,-1 -10,-4 -2,-3 -3,-7 -3,-12 0,-4 1,-8 3,-11 3,-3 6,-4 10,-4zm-39 -24c-2,0 -4,1 -5,3 -2,2 -2,4 -2,8 0,3 0,6 2,7 1,2 3,3 5,3 2,0 3,-1 5,-3 1,-1 1,-4 1,-7 0,-4 0,-6 -1,-8 -2,-2 -3,-3 -5,-3zm32 -5l6 0 -31 60 -6 0 31 -60zm-32 0c4,0 7,1 9,4 3,3 4,7 4,12 0,4 -1,8 -4,11 -2,3 -5,4 -9,4 -4,0 -8,-1 -10,-4 -3,-3 -4,-6 -4,-11 0,-5 1,-9 4,-12 2,-3 6,-4 10,-4züGúHIûûOA37GúHIûûúNúL_M16 3699l5 0 -20 55 -5 0 20 -55zGúHIûûOA47GúHIûûúNúL[M4 3722l21 0 0 6 -21 0 0 -6zGúHIûûOGúHIûûúNúLàM2 3685l6 0c5,7 8,13 10,19 2,6 3,12 3,18 0,6 -1,12 -3,18 -2,6 -5,13 -10,19l-6 0c4,-7 7,-13 9,-19 2,-6 3,-12 3,-18 0,-6 -1,-12 -3,-18 -2,-6 -5,-12 -9,-19züGúHIûûOA41GúHIûûúNúLàM19 3685l6 0c-4,7 -7,13 -9,19 -2,6 -3,12 -3,18 0,6 1,12 3,18 2,6 5,12 9,19l-6 0c-5,-6 -8,-13 -10,-19 -2,-6 -3,-12 -3,-18 0,-6 1,-12 3,-18 2,-6 5,-13 10,-19züGúHIûûOA40GúHIûûúNúL\M9 3739l9 0 -7 19 -7 0 5 -19zGúHIûûOA44GúHIûûúNúLYM8 3739l8 0 0 9 -8 0 0 -9zGúHIûûOA46GúHIûûúNúLàM8 3690l32 0 0 6 -24 0 -1 16c2,0 3,0 4,0 2,0 3,-1 4,-1 6,0 11,2 14,5 4,3 5,8 5,13 0,6 -2,11 -6,14 -4,4 -9,6 -16,6 -3,0 -5,-1 -7,-1 -2,0 -4,-1 -6,-2l0 -7c2,1 4,2 6,2 2,1 4,1 7,1 4,0 8,-1 10,-3 3,-3 4,-6 4,-10 0,-3 -1,-6 -4,-8 -2,-2 -5,-3 -10,-3 -1,0 -3,0 -5,0 -2,0 -5,1 -7,2l0 -30züGúHIûûOA53GúHIûûúNúLnM5 3690l36 0 0 7 -22 51 -9 0 23 -51 -28 0 0 -7zGúHIûûOA55GúHIûûúNúLàM35 3708c0,-4 -1,-7 -3,-9 -2,-3 -5,-4 -8,-4 -3,0 -6,2 -8,4 -2,2 -3,6 -3,9 0,4 1,7 3,9 2,2 4,3 8,3 3,0 6,-1 8,-3 2,-2 3,-6 3,-9zm-28 39l1 -7c1,1 3,1 4,2 2,0 4,0 6,0 6,0 10,-2 13,-6 3,-3 5,-9 5,-17 -1,3 -3,5 -6,6 -2,1 -5,2 -8,2 -5,0 -9,-2 -12,-5 -4,-4 -5,-8 -5,-13 0,-6 2,-11 5,-14 4,-4 8,-6 14,-6 6,0 11,2 14,7 4,5 6,12 6,20 0,11 -3,19 -7,24 -4,6 -10,9 -18,9 -2,0 -4,0 -6,-1 -2,0 -4,-1 -6,-1züGúHIûûOA57GúHIûûúNúLrM8 3739l8 0 0 9 -8 0 0 -9zm0 -33l8 0 0 9 -8 0 0 -9zGúHIûûOA58GúHIûûúNúLàM28 3718c4,0 7,2 10,4 2,3 3,6 3,9 0,5 -2,10 -6,13 -4,3 -10,4 -17,4 -2,0 -5,0 -7,0 -3,0 -5,-1 -7,-2l1 -7c2,1 4,2 6,2 2,1 4,1 6,1 5,0 8,-1 11,-3 3,-2 4,-5 4,-8 0,-3 -1,-6 -3,-7 -2,-2 -6,-3 -10,-3l-6 0 0 -6 6 0c4,0 7,-1 10,-3 2,-2 3,-4 3,-7 0,-2 -1,-5 -3,-6 -3,-2 -6,-3 -9,-3 -2,0 -4,0 -6,1 -3,0 -5,1 -7,2l0 -7c2,-1 5,-1 7,-2 3,0 5,0 7,0 6,0 11,1 14,4 4,3 5,6 5,11 0,3 -1,6 -3,8 -2,2 -5,4 -9,5züGúHIûûOA51GúHIûûúNúLàM12 3743l22 0 0 5 -30 0 0 -6c9,-8 15,-15 18,-19 3,-4 4,-8 4,-11 0,-2 -1,-4 -2,-5 -2,-1 -4,-2 -7,-2 -2,0 -3,0 -5,1 -2,0 -4,1 -6,2l0 -6c2,-1 4,-2 6,-2 3,-1 5,-1 7,-1 4,0 7,1 10,4 3,2 4,5 4,9 0,4 -2,8 -5,12 -3,5 -8,11 -16,19züGúHIûûOA50GúHIûûúNúLàM30 3697l-21 32 21 0 0 -32zm-2 -7l9 0 0 39 9 0 0 6 -9 0 0 13 -7 0 0 -13 -28 0 0 -7 26 -38züGúHIûûOA52GúHIûûúNúLàM25 3718c-3,0 -6,1 -8,3 -2,3 -3,6 -3,9 0,4 1,7 3,9 2,3 5,4 8,4 3,0 6,-1 8,-4 2,-2 3,-5 3,-9 0,-4 -1,-7 -3,-9 -2,-2 -5,-3 -8,-3zm17 -27l-1 7c-1,-1 -3,-1 -4,-2 -2,0 -4,0 -6,0 -6,0 -10,2 -13,6 -3,4 -5,9 -5,17 1,-3 3,-4 6,-6 2,-1 5,-2 8,-2 5,0 9,2 12,5 4,4 5,8 5,13 0,6 -2,11 -5,14 -4,4 -8,6 -14,6 -6,0 -11,-2 -15,-7 -3,-5 -5,-11 -5,-20 0,-11 2,-18 7,-24 4,-6 10,-9 18,-9 2,0 4,1 6,1 2,0 4,1 6,1züGúHIûûOA54GúHIûûúNúLàM24 3715c4,-1 6,-3 8,-5 1,-2 2,-4 2,-7 0,-2 -1,-4 -2,-6 -2,-1 -5,-2 -7,-2 -4,0 -6,1 -8,2 -2,2 -3,4 -3,7 0,2 1,4 2,6 2,2 5,4 8,5zm-1 6c-4,1 -6,3 -8,5 -2,2 -3,4 -3,6 0,3 1,6 3,8 3,2 5,3 9,3 3,0 6,-1 8,-3 2,-2 4,-4 4,-7 0,-3 -1,-5 -3,-7 -2,-2 -6,-4 -10,-5zm8 -3c4,1 7,3 10,6 2,2 3,5 3,9 0,5 -2,9 -6,12 -3,3 -8,4 -14,4 -6,0 -11,-2 -15,-5 -3,-3 -5,-6 -5,-11 0,-4 1,-7 3,-9 3,-3 6,-5 10,-6 -3,-2 -6,-4 -8,-6 -2,-3 -3,-6 -3,-9 0,-4 2,-7 5,-10 4,-3 8,-4 14,-4 5,0 9,1 12,4 3,2 5,6 5,10 0,3 -1,6 -3,8 -2,3 -5,5 -8,7züGúHIûûOA56GúHIûûúNúLàM24 3695c-4,0 -7,2 -9,6 -2,4 -3,10 -3,18 0,8 1,14 3,18 2,4 5,6 9,6 4,0 7,-2 8,-6 2,-4 3,-10 3,-18 0,-8 -1,-14 -2,-18 -2,-4 -5,-6 -9,-6zm0 -6c6,0 11,3 15,8 3,5 5,12 5,22 0,10 -2,17 -5,22 -4,6 -9,8 -15,8 -6,0 -11,-2 -15,-8 -3,-5 -5,-12 -5,-22 0,-10 2,-17 5,-22 4,-5 9,-8 15,-8züGúHIûûOA48GúHIûûúNúLnM23 3690l7 0 0 58 -8 0 0 -49 -9 8 -4 -5 14 -12zGúHIûûOA49GúH[http://www.w3.org/1999/xlinkIûûúNúLàM7 3690l8 0 0 25 27 0 0 -25 8 0 0 58 -8 0 0 -27 -27 0 0 27 -8 0 0 -58züGúHìAIûûOA72GúHìAIûûúNúLàM6 3700l8 0 21 37c1,1 1,2 1,3 1,1 1,2 2,4 -1,-2 -1,-4 -1,-5 0,-1 0,-3 0,-4l0 -35 6 0 0 48 -8 0 -22 -38c0,0 0,-1 -1,-2 0,-1 0,-3 -1,-4 1,2 1,4 1,6 0,1 0,2 0,3l0 35 -6 0 0 -48züGúHìAIûûOA78GúHìAIûûúNúLàM13 3705l0 37 5 0c6,0 11,-1 14,-5 4,-3 5,-7 5,-13 0,-6 -1,-11 -5,-14 -3,-3 -7,-5 -14,-5l-5 0zm-7 -5l11 0c9,0 16,2 21,6 4,4 6,10 6,18 0,8 -2,14 -7,18 -4,4 -11,6 -20,6l-11 0 0 -48züGúHìAIûûOA68GúHìAIûûúNúLàM10 3671l41 0 0 8 -31 0 0 25 30 0 0 8 -30 0 0 27 32 0 0 9 -42 0 0 -77züGúHìAIûûOA69GúHìAIûûúNúLàM28 3697l-11 30 22 0 -11 -30zm-5 -7l10 0 23 58 -9 0 -5 -15 -28 0 -5 15 -9 0 23 -58züGúHìAIûûOA65GúHìAIûûúNúLàM41 3702l-1 5c-2,0 -3,-1 -5,-1 -2,-1 -4,-1 -6,-1 -5,0 -10,2 -13,5 -4,4 -5,8 -5,14 0,6 1,10 5,14 3,3 8,5 14,5 1,0 3,-1 5,-1 2,0 3,-1 5,-2l0 6c-1,1 -3,1 -5,2 -2,0 -4,0 -6,0 -8,0 -14,-2 -19,-6 -4,-5 -7,-10 -7,-18 0,-7 3,-13 7,-18 5,-4 11,-6 19,-6 2,0 4,0 6,0 2,0 4,1 6,2züGúHìAIûûOA67GúHìAIûûúNúL[M6 3700l7 0 0 48 -7 0 0 -48zGúHìAIûûOA73GúHìAIûûúNúLàM29 3705l0 29 11 0c6,0 11,-1 15,-4 3,-2 5,-6 5,-11 0,-4 -2,-8 -5,-10 -3,-3 -8,-4 -14,-4l-12 0zm0 -40l0 27 9 0c7,0 11,-1 15,-4 3,-2 5,-5 5,-9 0,-5 -2,-8 -5,-10 -3,-3 -8,-4 -13,-4l-11 0zm-18 -13l32 0c11,0 19,2 25,6 6,4 9,10 9,19 0,5 -2,9 -5,13 -3,4 -8,6 -13,8 6,1 11,4 15,8 3,4 5,9 5,15 0,9 -3,16 -9,20 -7,5 -16,7 -28,7l-31 0 0 -96züGúHìAIûûOA66GúHìAIûûúNúLeM7 3690l8 0 0 51 23 0 0 7 -31 0 0 -58zGúHìAIûûOA76GúHìAIûûúNúLàM6 3700l7 0 0 21 20 -21 8 0 -22 22 24 26 -9 0 -21 -24 0 24 -7 0 0 -48züGúHìAIûûOA75GúHìAIûûúNúLàM7 3690l12 0 18 45c0,1 0,2 0,3 1,2 1,3 1,4 0,-1 0,-3 1,-4 0,-2 0,-2 0,-3l18 -45 12 0 0 58 -8 0 0 -45c0,-2 0,-3 0,-5 1,-1 1,-3 1,-4 0,1 -1,3 -1,4 -1,1 -1,2 -1,4l-19 46 -7 0 -18 -47c-1,-1 -1,-2 -1,-3 0,-1 -1,-3 -1,-4 0,2 0,4 0,6 0,1 0,2 0,3l0 45 -7 0 0 -58züGúHìAIûûOA77GúHìAIûûúNúLàM51 3693l-1 7c-2,-2 -4,-2 -7,-3 -2,0 -5,-1 -7,-1 -7,0 -13,2 -17,7 -4,4 -6,9 -6,16 0,7 2,13 6,17 4,4 10,6 17,6 2,0 3,0 5,-1 1,0 3,0 4,-1l0 -17 -12 0 0 -7 20 0 0 29c-3,1 -5,2 -8,2 -3,1 -6,1 -10,1 -9,0 -17,-2 -22,-8 -6,-5 -9,-12 -9,-21 0,-9 3,-16 9,-21 5,-5 13,-8 22,-8 3,0 6,0 9,1 2,0 5,1 7,2züGúHìAIûûOA71GúHìAIûûúNúLàM42 3747l12 12 -9 0 -11 -10c-1,0 -1,0 -2,0 0,0 -1,0 -1,0 -8,0 -15,-3 -20,-8 -4,-5 -7,-13 -7,-22 0,-9 3,-17 7,-22 5,-5 11,-8 20,-8 8,0 14,3 19,8 4,5 7,13 7,22 0,7 -2,13 -4,17 -3,5 -6,8 -11,11zm-11 -51c-6,0 -10,2 -13,6 -4,4 -5,10 -5,17 0,7 1,13 5,17 3,4 7,6 13,6 5,0 9,-2 12,-6 4,-4 5,-10 5,-17 0,-7 -1,-13 -5,-17 -3,-4 -7,-6 -12,-6züGúHìAIûûOA81GúHìAIûûúNúLàM1 3700l7 0 9 38c0,1 1,1 1,2 0,1 0,3 0,4 0,-1 0,-2 0,-3 1,-1 1,-2 1,-2l10 -39 9 0 9 39c1,0 1,1 1,2 0,1 0,2 0,3 0,-1 0,-2 1,-3 0,-1 0,-2 0,-2l10 -39 6 0 -13 48 -8 0 -10 -39c-1,-1 -1,-2 -1,-3 0,-1 0,-2 0,-3 0,2 0,4 -1,4 0,1 0,2 0,2l-10 39 -8 0 -13 -48züGúHìAIûûOA87GúHìAIûûúNúLàM6 3700l6 0 0 28c0,5 1,9 3,12 2,2 5,3 9,3 4,0 6,-1 8,-4 2,-2 3,-6 3,-11l0 -28 7 0 0 28c0,7 -2,12 -5,16 -3,3 -7,5 -14,5 -5,0 -10,-2 -13,-5 -3,-4 -4,-9 -4,-16l0 -28züGúHìAIûûOA85GúHìAIûûúNúLàM13 3705l0 16 5 0c3,0 6,0 8,-2 2,-1 3,-3 3,-6 0,-3 -1,-5 -3,-6 -2,-1 -5,-2 -8,-2l-5 0zm-7 -5l13 0c5,0 10,1 12,3 3,2 5,5 5,9 0,3 -1,6 -3,8 -2,2 -5,3 -8,4 1,0 3,1 4,2 0,1 1,2 2,5l8 17 -8 0 -6 -16c-1,-2 -2,-3 -3,-4 -1,-1 -3,-1 -5,-1l-4 0 0 21 -7 0 0 -48züGúHìAIûûOA82GúHìAIûûúNúLqM1 3690l40 0 0 7 -16 0 0 51 -8 0 0 -51 -16 0 0 -7zGúHìAIûûOA84GúHìAIûûúNúLàM15 3696l0 22 6 0c4,0 7,-1 9,-3 3,-2 4,-4 4,-8 0,-3 -1,-6 -3,-8 -2,-2 -5,-3 -9,-3l-7 0zm-8 -6l15 0c6,0 12,2 15,4 4,3 5,8 5,13 0,6 -2,10 -5,13 -4,3 -9,4 -16,4l-6 0 0 24 -8 0 0 -58züGúHìAIûûOA80GúHìAIûûúNúLàM37 3692l-1 7c-2,-1 -3,-2 -5,-2 -2,-1 -4,-1 -6,-1 -4,0 -6,1 -8,2 -2,1 -3,3 -3,5 0,2 0,4 2,5 1,2 4,4 8,6 6,3 10,6 12,9 2,2 3,5 3,9 0,5 -2,9 -5,12 -4,3 -8,4 -14,4 -3,0 -5,0 -8,0 -2,-1 -5,-1 -7,-2l1 -8c2,1 5,2 7,3 2,0 4,1 6,1 4,0 7,-1 9,-3 2,-1 3,-3 3,-6 0,-3 -4,-8 -12,-12 -2,-1 -3,-2 -4,-2 -3,-2 -5,-4 -7,-7 -2,-2 -2,-5 -2,-8 0,-4 1,-8 5,-10 3,-3 8,-4 14,-4 2,0 4,0 6,0 2,1 4,1 6,2züGúHìAIûûOA83GúHìAIûûúNúLpM1 3690l9 0 17 50 17 -50 8 0 -21 58 -9 0 -21 -58zGúHìAIûûOA86GúHìAIûûúNúL}M4 3690l37 0 0 7 -30 44 31 0 0 7 -39 0 0 -8 30 -43 -29 0 0 -7zGúHìAIûûOA90GúHìAIûûúNúLàM27 3711c-4,0 -7,2 -9,4 -2,3 -3,7 -3,12 0,5 1,8 3,11 2,3 5,4 8,4 4,0 6,-1 8,-4 3,-2 4,-6 4,-11 0,-5 -1,-9 -3,-12 -2,-2 -5,-4 -8,-4zm-20 -25l8 0 0 27c1,-3 3,-5 5,-6 3,-1 5,-2 8,-2 6,0 10,2 13,6 3,4 5,9 5,15 0,7 -2,12 -5,16 -3,5 -7,7 -13,7 -3,0 -6,-1 -8,-3 -2,-1 -4,-3 -6,-7l0 9 -7 0 0 -62züGúHìAIûûOA98GúHìAIûûúNúLàM40 3714c2,-3 4,-5 6,-6 3,-2 5,-3 8,-3 5,0 8,2 10,5 3,3 4,7 4,13l0 25 -8 0 0 -24c0,-4 -1,-7 -2,-9 -1,-2 -3,-3 -6,-3 -3,0 -6,1 -8,4 -2,3 -3,6 -3,11l0 21 -8 0 0 -24c0,-4 0,-7 -2,-9 -1,-2 -3,-3 -6,-3 -3,0 -6,1 -7,4 -2,3 -3,6 -3,11l0 21 -8 0 0 -42 7 0 0 8c2,-3 3,-5 6,-7 2,-1 5,-2 8,-2 3,0 5,1 7,3 3,1 4,3 5,6züGúHìAIûûOB109GúHìAIûûúNúLàM26 3727c-5,0 -9,1 -11,3 -3,1 -4,3 -4,6 0,2 1,4 2,5 2,1 3,2 6,2 3,0 6,-1 8,-3 2,-3 3,-6 3,-10l0 -3 -4 0zm12 -4l0 25 -7 0 0 -7c-2,3 -4,4 -6,6 -2,1 -5,2 -8,2 -4,0 -8,-2 -10,-4 -2,-2 -4,-5 -4,-9 0,-4 2,-8 6,-10 4,-3 9,-4 16,-4l5 0 0 -1c0,-3 0,-5 -2,-7 -2,-2 -5,-3 -8,-3 -2,0 -4,0 -6,1 -2,0 -4,1 -6,3l0 -7c2,-1 5,-2 7,-2 2,-1 5,-1 7,-1 6,0 9,2 12,5 3,2 4,7 4,13züGúHìAIûûOA97GúHìAIûûúNúLàM6 3696l6 0 0 31 14 -14 8 0 -16 15 17 20 -8 0 -15 -18 0 18 -6 0 0 -52züGúHìAIûûOB107GúHìAIûûúNúLàM7 3706l7 0 0 44c0,6 -1,10 -3,12 -1,3 -4,4 -9,4 0,0 -1,0 -2,0 -1,0 -2,-1 -3,-1l1 -5c0,0 1,0 1,0 1,0 1,0 2,0 2,0 3,-1 4,-2 1,-2 2,-4 2,-8l0 -44zm0 -19l7 0 0 8 -7 0 0 -8züGúHìAIûûOB106GúHìAIûûúNúLàM23 3711c-3,0 -6,2 -8,4 -2,3 -3,7 -3,12 0,4 1,8 3,11 2,2 5,4 8,4 4,0 7,-2 9,-4 2,-3 3,-7 3,-11 0,-5 -1,-9 -3,-12 -2,-2 -5,-4 -9,-4zm13 3l0 -8 7 0 0 37c0,8 -2,14 -5,18 -4,3 -9,5 -16,5 -2,0 -5,0 -7,0 -3,-1 -5,-1 -7,-2l1 -7c2,1 4,2 6,2 2,1 4,1 6,1 5,0 8,-1 11,-4 2,-3 3,-6 3,-11l0 -5c-1,2 -3,4 -6,6 -2,1 -5,2 -8,2 -5,0 -9,-2 -12,-6 -3,-4 -5,-9 -5,-15 0,-7 2,-12 5,-16 3,-4 7,-6 13,-6 3,0 6,1 8,2 2,2 4,4 6,7züGúHìAIûûOGúHìAIûûúNúLàM39 3665l0 8c-2,0 -3,0 -4,-1 0,0 -1,0 -2,0 -3,0 -5,1 -6,3 -2,2 -2,5 -2,9l0 8 13 0 0 8 -13 0 0 48 -11 0 0 -48 -11 0 0 -8 11 0 0 -9c0,-6 2,-11 5,-14 3,-3 7,-5 13,-5 1,0 2,0 3,0 1,0 3,1 4,1züGúHìAIûûOB102GúHìAIûûúNúLàM23 3711c-3,0 -6,2 -8,4 -2,3 -3,7 -3,12 0,5 1,8 3,11 2,3 5,4 8,4 4,0 7,-1 9,-4 2,-3 3,-6 3,-11 0,-5 -1,-9 -3,-12 -2,-2 -5,-4 -9,-4zm12 -25l8 0 0 62 -7 0 0 -9c-2,4 -4,6 -6,7 -3,2 -6,3 -9,3 -5,0 -9,-2 -12,-7 -3,-4 -5,-9 -5,-16 0,-6 1,-11 5,-15 3,-4 7,-6 12,-6 3,0 6,1 8,2 3,1 4,3 6,6l0 -27züGúHìAIûûOB100GúHìAIûûúNúLàM25 3711c-4,0 -7,2 -10,4 -2,3 -3,7 -3,12 0,5 1,9 3,11 3,3 6,5 10,5 3,0 6,-2 9,-4 2,-3 3,-7 3,-12 0,-5 -1,-9 -3,-12 -3,-2 -6,-4 -9,-4zm-1 -6c7,0 12,2 16,6 3,4 5,9 5,16 0,7 -2,12 -5,16 -4,4 -9,6 -16,6 -6,0 -11,-2 -15,-6 -3,-4 -5,-9 -5,-16 0,-7 2,-12 5,-16 4,-4 9,-6 15,-6züGúHìAIûûOGúHìAIûûúNúLàM7 3686l8 0 0 27c1,-3 3,-5 5,-6 3,-1 5,-2 9,-2 4,0 8,2 10,5 3,3 4,7 4,13l0 25 -8 0 0 -24c0,-4 -1,-7 -2,-9 -2,-2 -4,-3 -7,-3 -4,0 -6,1 -8,4 -2,2 -3,6 -3,11l0 21 -8 0 0 -62züGúHìAIûûOGúHìAIûûúNúLàM36 3708l-1 6c-1,0 -2,-1 -4,-1 -1,-1 -3,-1 -5,-1 -4,0 -7,1 -10,4 -3,3 -4,7 -4,11 0,5 1,8 4,11 2,3 6,4 10,4 2,0 3,0 5,-1 2,0 3,0 5,-1l0 7c-2,0 -3,1 -5,1 -2,0 -4,0 -6,0 -6,0 -12,-1 -15,-5 -4,-4 -6,-9 -6,-16 0,-6 2,-11 6,-15 4,-4 9,-6 16,-6 2,0 3,0 5,0 2,1 3,1 5,2züGúHìAIûûOA99GúHìAIûûúNúLtM7 3706l7 0 0 42 -7 0 0 -42zm0 -19l7 0 0 8 -7 0 0 -8zGúHìAIûûOGúHìAIûûúNúLàM43 3723l0 25 -8 0 0 -24c0,-4 -1,-7 -2,-9 -2,-2 -4,-3 -7,-3 -4,0 -6,1 -8,4 -2,2 -3,6 -3,11l0 21 -8 0 0 -42 7 0 0 8c2,-3 4,-5 6,-7 2,-1 5,-2 9,-2 4,0 8,2 10,5 3,3 4,7 4,13züGúHìAIûûOGúHìAIûûúNúL[M7 3686l7 0 0 62 -7 0 0 -62zGúHìAIûûOìGúHìAIûûúNúLàM41 3726l0 3 -30 0c1,4 2,8 5,10 2,3 6,4 10,4 2,0 4,0 6,-1 2,0 4,-1 6,-2l0 7c-2,0 -4,1 -7,1 -2,1 -4,1 -7,1 -6,0 -11,-2 -15,-6 -3,-4 -5,-9 -5,-16 0,-7 2,-12 5,-16 4,-4 8,-6 14,-6 6,0 10,2 13,6 3,3 5,8 5,15zm-7 -2c-1,-4 -2,-8 -4,-10 -1,-2 -4,-3 -7,-3 -3,0 -6,1 -8,3 -2,3 -3,6 -4,10l23 0züGúHìAIûûOGúHìAIûûúNúLàM1 3706l8 0 12 35 11 -35 8 0 -17 46c-2,5 -4,9 -6,11 -2,2 -5,3 -9,3 0,0 -1,0 -2,0 -1,0 -2,0 -3,0l1 -7c1,0 1,0 2,1 0,0 1,0 2,0 1,0 3,-1 5,-3 1,-1 2,-4 4,-7l-16 -44züGúHìAIûûOB121GúHìAIûûúNúLàM2 3706l9 0 9 15 9 -15 9 0 -13 20 14 22 -9 0 -10 -17 -11 17 -8 0 14 -22 -13 -20züGúHìAIûûOB120GúHìAIûûúNúLàM34 3723c0,-3 -1,-6 -2,-8 -2,-2 -5,-3 -8,-3 -3,0 -7,1 -10,5 -2,4 -4,9 -4,15 0,3 1,6 3,8 1,2 4,3 7,3 4,0 7,-2 10,-6 3,-4 4,-8 4,-14zm4 -17l8 0 -13 59 -7 0 5 -23c-2,3 -4,4 -6,5 -3,1 -5,2 -8,2 -5,0 -8,-2 -11,-5 -3,-3 -4,-7 -4,-13 0,-4 1,-7 2,-11 1,-3 3,-6 5,-9 2,-2 4,-3 7,-4 2,-1 4,-2 7,-2 4,0 6,1 9,3 2,1 4,4 4,7l2 -9züGúHìAIûûOB113GúHìAIûûúNúLàM6 3706l8 0 0 23c0,5 0,8 2,10 1,2 4,3 7,3 4,0 6,-2 8,-4 2,-3 3,-7 3,-13l0 -19 8 0 0 42 -7 0 0 -8c-2,3 -4,5 -6,6 -2,2 -5,3 -9,3 -4,0 -8,-2 -10,-5 -3,-3 -4,-7 -4,-13l0 -25züGúHìAIûûOì GúHìAIûûúNúLàM15 3741l0 24 -8 0 0 -59 7 0 0 8c2,-3 4,-5 6,-7 3,-1 6,-2 9,-2 5,0 9,2 12,6 3,4 5,9 5,15 0,7 -2,13 -5,17 -3,4 -7,6 -13,6 -3,0 -5,-1 -8,-2 -2,-1 -4,-3 -5,-6zm23 -14c0,-5 -1,-9 -3,-12 -2,-2 -5,-4 -8,-4 -4,0 -7,2 -9,5 -2,2 -3,6 -3,11 0,5 1,9 3,11 2,3 5,5 8,5 4,0 7,-2 9,-5 2,-3 3,-6 3,-11züGúHìAIûûOB112GúHìAIûûúNúL}M4 3706l31 0 0 7 -23 29 23 0 0 6 -32 0 0 -7 24 -29 -23 0 0 -6zGúHìAIûûOì!GúHìAIûûúNúLàM29 3706l0 7c-1,0 -1,0 -2,0 0,0 -1,0 -1,0 -4,0 -7,1 -8,3 -2,3 -3,6 -3,11l0 21 -8 0 0 -42 7 0 0 9c1,-3 3,-6 5,-7 2,-2 4,-3 7,-3 0,0 1,0 2,0 0,1 1,1 1,1züGúHìAIûûOì"GúHìAIûûúNúLpM1 3706l8 0 11 35 12 -35 7 0 -14 42 -9 0 -15 -42zGúHìAIûûOB118GúHìAIûûúNúLàM18 3693l0 13 10 0 0 6 -10 0 0 22c0,3 0,5 1,7 1,1 3,2 5,2 1,0 1,0 2,0 1,-1 1,-1 2,-1l0 6c-1,0 -2,0 -3,1 -1,0 -2,0 -3,0 -4,0 -7,-1 -9,-4 -2,-2 -3,-5 -3,-11l0 -22 -8 0 0 -6 9 0 0 -10 7 -3züGúHìAIûûOì$GúHìAIûûúNúLàM30 3707l0 7c-2,-1 -4,-2 -5,-2 -2,-1 -4,-1 -6,-1 -2,0 -4,1 -5,1 -1,1 -2,2 -2,4 0,1 1,2 2,3 1,1 3,3 6,4 5,2 8,4 9,6 2,2 3,4 3,7 0,4 -2,7 -5,9 -3,2 -7,3 -12,3 -2,0 -4,0 -6,0 -2,0 -3,-1 -5,-2l0 -6c2,1 4,2 6,2 2,1 4,1 5,1 3,0 5,-1 6,-2 2,-1 3,-2 3,-4 0,-2 -1,-3 -2,-4 -1,-1 -3,-2 -6,-4 -4,-2 -7,-4 -9,-6 -2,-2 -2,-4 -2,-6 0,-4 1,-6 4,-8 2,-2 6,-3 11,-3 1,0 3,0 5,0 2,0 3,1 5,1züGúHìAIûûOB115GúHìAIûûúNúLàM2 3692l11 0 12 43c0,0 0,1 0,2 0,2 1,3 1,5 0,-3 0,-4 1,-5 0,-1 0,-2 0,-2l12 -43 13 0 13 43c0,0 0,1 0,2 0,1 1,3 1,5 0,-2 0,-3 0,-5 1,-1 1,-2 1,-2l12 -43 11 0 -19 56 -11 0 -14 -44c0,-1 0,-2 0,-3 0,-1 0,-2 -1,-4 0,2 0,3 0,4 0,1 0,2 -1,3l-13 44 -12 0 -17 -56züGúHìAIûûOB119GúHìAIûûúNúLàM18 3708c0,-1 -1,-3 -2,-4 -1,-2 -3,-2 -5,-2 -1,0 -3,0 -4,2 -2,1 -2,3 -2,4 0,2 0,4 2,5 1,1 3,2 4,2 2,0 4,-1 5,-2 1,-1 2,-3 2,-5zm-7 -9c3,0 5,1 7,2 2,2 3,5 3,7 0,3 -1,5 -3,7 -2,2 -4,3 -7,3 -2,0 -5,-1 -7,-3 -1,-2 -2,-4 -2,-7 0,-2 1,-5 3,-7 1,-1 4,-2 6,-2züGúHìAIûûOB176GúHìAIûûúNúLàM34 3720c-6,0 -11,1 -14,3 -4,2 -5,5 -5,9 0,3 1,5 3,7 1,1 4,2 7,2 5,0 8,-1 11,-4 3,-3 5,-7 5,-12l0 -5 -7 0zm17 -6l0 34 -10 0 0 -9c-2,3 -5,6 -8,7 -3,2 -7,3 -11,3 -5,0 -9,-2 -13,-5 -3,-3 -5,-7 -5,-12 0,-6 3,-10 8,-14 5,-3 12,-4 21,-4l8 0 0 -2c0,-4 -2,-7 -4,-10 -3,-2 -6,-3 -10,-3 -3,0 -5,0 -8,1 -2,1 -5,2 -8,3l0 -8c3,-1 6,-2 9,-3 3,-1 6,-1 10,-1 7,0 12,2 15,6 4,4 6,9 6,17zm-17 -43l9 0 0 10 -9 0 0 -10zm-18 0l9 0 0 10 -9 0 0 -10züGúHìAIûûOì%GúHìAIûûúNúLàM8 3692l10 0 0 31c0,6 1,10 3,13 2,3 5,4 10,4 4,0 8,-2 11,-6 2,-3 4,-9 4,-16l0 -26 10 0 0 56 -10 0 0 -11c-2,4 -4,7 -7,9 -4,2 -7,3 -12,3 -6,0 -11,-2 -14,-6 -3,-4 -5,-10 -5,-18l0 -33zm29 -21l9 0 0 10 -9 0 0 -10zm-18 0l9 0 0 10 -9 0 0 -10züGúHìAIûûOB252GúHìAIûûúNúLàM43 3689c-5,0 -10,2 -13,6 -4,5 -5,10 -5,18 0,7 1,12 5,17 3,4 8,6 13,6 6,0 10,-2 14,-6 3,-5 5,-10 5,-17 0,-8 -2,-13 -5,-18 -4,-4 -8,-6 -14,-6zm0 -13c12,0 21,3 28,10 6,6 10,15 10,27 0,11 -4,20 -10,27 -7,7 -16,10 -28,10 -11,0 -21,-3 -27,-10 -7,-7 -10,-16 -10,-27 0,-12 3,-21 10,-27 6,-7 16,-10 27,-10zm5 -27l14 0 0 15 -14 0 0 -15zm-24 0l14 0 0 15 -14 0 0 -15züGúHìAIûûOB246GúHìAIûûùDFFontID0KC1000GúHìAIûûùstyleúIä + .str18 {stroke:#1F1A17;stroke-width:3} + .str7 {stroke:#0093DD;stroke-width:4;stroke-linejoin:round} + .str2 {stroke:#0093DD;stroke-width:4;stroke-linejoin:round} + .str11 {stroke:#1F1A17;stroke-width:4} + .str15 {stroke:#1F1A17;stroke-width:4;stroke-linejoin:round} + .str16 {stroke:#131516;stroke-width:4;stroke-linejoin:round} + .str13 {stroke:#1F1A17;stroke-width:4;stroke-linejoin:round} + .str6 {stroke:#0093DD;stroke-width:6;stroke-linejoin:round} + .str17 {stroke:#1F1A17;stroke-width:6} + .str9 {stroke:#131516;stroke-width:6;stroke-linejoin:round} + .str0 {stroke:#4E4B4A;stroke-width:6;stroke-linejoin:round} + .str5 {stroke:#0093DD;stroke-width:8;stroke-linejoin:round} + .str12 {stroke:#1F1A17;stroke-width:8} + .str14 {stroke:#131516;stroke-width:8;stroke-linejoin:round} + .str8 {stroke:#449285;stroke-width:8;stroke-linejoin:round} + .str4 {stroke:#0093DD;stroke-width:10;stroke-linejoin:round} + .str3 {stroke:#0093DD;stroke-width:12;stroke-linejoin:round} + .str10 {stroke:#131516;stroke-width:12;stroke-linejoin:round} + .str1 {stroke:#4E4B4A;stroke-width:12;stroke-linejoin:round} + .fil7 {fill:none} + .fil19 {fill:#0093DD} + .fil8 {fill:#1F1A17} + .fil20 {fill:#FFFFFF} + .fil9 {fill:#DA251D} + .fil18 {fill:#F1A400} + .fil16 {fill:#0096D4} + .fil13 {fill:#96C7EB} + .fil5 {fill:#C4E1F6} + .fil15 {fill:#E1553F} + .fil17 {fill:#E57A51} + .fil10 {fill:#EDF5D4} + .fil11 {fill:#EEA45C} + .fil14 {fill:#EFB289} + .fil12 {fill:#F5E0A0} + .fil6 {fill:#C3C3C2;fill-opacity:0.501961} + .fil4 {fill:#DA251D;fill-opacity:0.501961} + .fil3 {fill:#EC914F;fill-opacity:0.501961} + .fil1 {fill:#EECB97;fill-opacity:0.501961} + .fil2 {fill:#F4B770;fill-opacity:0.501961} + .fil0 {fill:#FFFEE3;fill-opacity:0.501961} + .fnt0 {font-weight:normal;font-size:69;font-family:FontID0, 'Humnst777 BT'} + .fnt42 {font-weight:normal;font-size:69;font-family:FontID34, 'Humnst777 BT'} + .fnt8 {font-weight:normal;font-size:69;font-family:FontID4, 'Humnst777 BT'} + .fnt41 {font-weight:normal;font-size:83;font-family:FontID34, 'Humnst777 BT'} + .fnt5 {font-weight:normal;font-size:83;font-family:FontID4, 'Humnst777 BT'} + .fnt17 {font-weight:normal;font-size:97;font-family:FontID10, 'Humnst777 BT'} + .fnt19 {font-weight:normal;font-size:97;font-family:FontID12, 'Humnst777 BT'} + .fnt21 {font-weight:normal;font-size:97;font-family:FontID14, 'Humnst777 BT'} + .fnt23 {font-weight:normal;font-size:97;font-family:FontID16, 'Humnst777 BT'} + .fnt25 {font-weight:normal;font-size:97;font-family:FontID18, 'Humnst777 BT'} + .fnt27 {font-weight:normal;font-size:97;font-family:FontID20, 'Humnst777 BT'} + .fnt29 {font-weight:normal;font-size:97;font-family:FontID22, 'Humnst777 BT'} + .fnt31 {font-weight:normal;font-size:97;font-family:FontID24, 'Humnst777 BT'} + .fnt33 {font-weight:normal;font-size:97;font-family:FontID26, 'Humnst777 BT'} + .fnt35 {font-weight:normal;font-size:97;font-family:FontID28, 'Humnst777 BT'} + .fnt37 {font-weight:normal;font-size:97;font-family:FontID30, 'Humnst777 BT'} + .fnt39 {font-weight:normal;font-size:97;font-family:FontID32, 'Humnst777 BT'} + .fnt13 {font-weight:normal;font-size:97;font-family:FontID6, 'Humnst777 BT'} + .fnt15 {font-weight:normal;font-size:97;font-family:FontID8, 'Humnst777 BT'} + .fnt18 {font-weight:normal;font-size:97;font-family:FontID11, Symbol} + .fnt20 {font-weight:normal;font-size:97;font-family:FontID13, Symbol} + .fnt22 {font-weight:normal;font-size:97;font-family:FontID15, Symbol} + .fnt24 {font-weight:normal;font-size:97;font-family:FontID17, Symbol} + .fnt26 {font-weight:normal;font-size:97;font-family:FontID19, Symbol} + .fnt28 {font-weight:normal;font-size:97;font-family:FontID21, Symbol} + .fnt30 {font-weight:normal;font-size:97;font-family:FontID23, Symbol} + .fnt32 {font-weight:normal;font-size:97;font-family:FontID25, Symbol} + .fnt34 {font-weight:normal;font-size:97;font-family:FontID27, Symbol} + .fnt36 {font-weight:normal;font-size:97;font-family:FontID29, Symbol} + .fnt38 {font-weight:normal;font-size:97;font-family:FontID31, Symbol} + .fnt40 {font-weight:normal;font-size:97;font-family:FontID33, Symbol} + .fnt12 {font-weight:normal;font-size:97;font-family:FontID5, Symbol} + .fnt14 {font-weight:normal;font-size:97;font-family:FontID7, Symbol} + .fnt16 {font-weight:normal;font-size:97;font-family:FontID9, Symbol} + .fnt3 {font-weight:normal;font-size:111;font-family:FontID2, 'Humnst777 BT'} + .fnt7 {font-weight:normal;font-size:111;font-family:FontID4, 'Humnst777 BT'} + .fnt2 {font-weight:normal;font-size:130;font-family:FontID2, 'Humnst777 BT'} + .fnt9 {font-weight:normal;font-size:130;font-family:FontID4, 'Humnst777 BT'} + .fnt11 {font-weight:bold;font-size:130;font-family:FontID4, 'Humnst777 BT'} + .fnt4 {font-weight:normal;font-size:167;font-family:FontID3, 'Humnst777 Lt BT'} + .fnt10 {font-weight:bold;font-size:222;font-family:FontID4, 'Humnst777 BT'} + .fnt6 {font-style:italic;font-weight:normal;font-size:83;font-family:FontID4, 'Humnst777 BT'} + .fnt1 {font-style:italic;font-weight:normal;font-size:167;font-family:FontID1, 'Humnst777 Lt BT'} + ü@typeGtext/cssGúHìAIûûGúHìAIûûgøúimageú@transformlmatrix(0.555102 0 0 0.555268 -5368.74 5205.7)@x@0@yD-8696 @widthD15792@heightD12444@xlink:hrefetests/resources/images/spainRelief.pngGúHìAIûûDEreliefGúHìAIûûúNøú @classCfil0LàM-1948 1100l87 -3 57 -27 23 7 33 53 60 13 10 77 14 7 30 -17 3 20 -30 17 57 36 -10 20 -20 -13 -80 50 13 43 -17 47 24 50 -4 23 -33 7 -13 20 10 33 26 0 44 184 46 3 24 20 -17 17 7 26 46 0 7 10 -13 27 13 17 53 -17 -3 20 -43 23 -10 27 -50 17 -4 26 27 47 -30 -3 -17 -24 -60 -3 -36 27 -47 -14 -20 20 -23 0 -17 -13 10 -27 -13 -13 -37 13 -33 -46 -27 -4 -33 34 -30 -7 -40 -63 -60 10 -10 -20 53 -107 -13 -43 -50 -10 16 -90 20 -4 10 -23 0 -13 -16 3 3 -23 37 -14 -10 -33 16 -67 -13 -13 23 -117 -33 -26 23 -30 0 -57 20 -7 37 -83 33 -20züGúHìAIûûú[ì|LàM199 1140l0 20 53 23 37 54 20 -7 10 -27 60 17 47 -37 60 40 23 -3 27 47 53 26 100 -40 43 10 24 30 33 -36 40 23 113 -10 17 -23 -20 -24 10 -63 23 -13 70 20 -73 103 7 47 36 16 -16 74 -20 10 30 60 6 63 -20 143 -30 97 -40 43 24 44 -144 153 20 53 44 4 10 33 -24 40 -30 10 0 50 -6 3 -50 -10 -7 14 -7 -4 -3 -3 -7 -3 -6 0 -4 0 -6 3 -7 0 -3 3 -7 4 -3 3 -4 7 -3 3 -7 3 -3 4 -3 6 -4 4 0 6 -3 7 0 7 -37 0 -6 -14 -7 0 0 14 -27 -10 -66 -164 -24 -3 -20 17 -63 -40 -10 -37 -73 -27 -7 -80 -77 -80 -60 0 -60 -30 30 -66 17 26 13 -10 -6 -130 16 -40 -6 -50 -7 -3 -10 10 0 17 -17 46 -33 -6 -13 26 -17 -6 53 -104 -46 -23 3 -60 -23 -3 16 -27 -16 -17 13 -20 -7 -36 17 -24 -17 -16 4 -27 30 -27 -4 -46 17 -47 50 -10züGúHìAIûûú[ì|LäM-3064 1633l40 34 36 -7 84 30 93 -13 53 43 97 -3 43 23 37 -17 20 27 43 -20 24 17 33 -17 43 67 34 -37 13 30 13 30 -10 23 20 7 10 -30 37 -17 47 47 -27 27 17 20 -14 63 7 3 -3 20 -30 24 0 23 23 37 0 50 30 10 -10 26 17 14 -4 23 -40 23 -3 4 17 43 -17 37 23 83 -26 47 26 6 -3 34 -20 13 -33 -17 -10 -36 -30 6 -7 24 -43 -54 -24 7 -26 -27 -67 17 -70 -17 -30 57 -10 3 -3 -10 -17 7 -10 -7 0 -30 -43 -3 -7 -7 -3 -3 -4 0 -6 7 -4 3 -6 0 -4 -3 -3 -4 -3 -6 -4 -7 0 -3 -6 -7 -4 -3 -3 -4 -7 0 -6 0 -4 -3 -3 -3 0 -7 0 -7 0 -6 0 -7 0 -3 -7 -7 -3 -3 -7 0 -3 3 -3 7 -4 3 -3 7 -7 3 -3 3 -7 4 -3 0 -7 0 -3 -4 -7 -3 -6 0 -4 0 -6 0 -7 -3 -7 0 -3 0 -7 0 -6 0 -7 0 -10 0 7 -7 3 -3 7 -4 3 -3 7 -3 3 -4 7 -3 3 -3 3 -7 4 -3 3 -7 0 -3 3 -7 4 -3 3 -7 3 0 7 0 7 0 6 -3 4 -4 3 -3 0 -7 0 -6 3 -7 0 -3 4 -7 3 -3 3 -7 4 -3 3 -7 3 -3 0 -7 4 -3 3 -7 3 -3 4 -7 3 -3 3 -7 4 -3 3 -7 3 -3 4 -4 3 -6 7 -4 10 -16 -84 -67 -50 -7 -36 17 -24 -20 -6 -47 30 -86 -30 -14 10 -40 -17 -20 -20 20 -53 0 -30 -26 -10 -14 -27 30 -50 0 -30 -20 13 -46 -20 -17 0 -23 30 -27 10 -33 40 -34 34 10 10 -30m530 317l-4 7 -3 3 -3 7 -4 3 -6 0 -4 0 -3 7 -3 3 0 7 0 6 3 7 3 3 4 7 0 3 0 7 0 7 -4 6 -3 4 -3 3 -4 3 -6 4 -4 6 -3 4 -3 6 0 4 -7 3 -3 7 -7 0 -3 0 -4 3 -3 7 0 6 0 7 0 7 -3 3 -7 3 -3 0 -7 4 -7 3 -3 3 -7 0 -6 0 -4 0 0 7 0 7 7 3 3 3 0 7 0 7 4 3 0 7 3 6 3 -3 7 -3 3 -4 0 -6 -3 -4 0 -6 3 -7 0 -3 4 -7 6 -3 7 0 3 0 7 -4 3 -3 0 -7 0 -6 4 -4 0 -6 3 -7 3 -3 7 0 3 -4 7 4 7 0 6 -4 0 -3 -3 -7 -3 -6 -4 -4 4 -6 0 -7 6 0 7 0 3 0 7 0 7 -3 6 -4 0 -3 0 -7 -3 -6 0 -7 -3 -3 -4 -7 -3 -3 -3 -7 0 -7 0 -3 0 -7 3 -3 3 -7 4 -3 3 -7 0 -6 -3 -7züGúHìAIûûú[ì|LàM-964 1820l23 10 33 -23 7 -47 27 -13 16 23 -20 53 90 14 37 -50 0 -20 10 -14 7 4 33 -24 67 -3 20 40 40 -17 33 7 -13 37 26 23 4 47 76 23 57 -30 27 77 -24 43 40 57 -16 40 -24 0 -36 43 -20 -7 -17 10 13 30 -6 44 26 60 -50 23 -6 -37 -37 -6 -10 50 -23 36 16 100 50 24 -3 50 -7 0 -26 -20 -17 0 -13 20 -34 -4 -46 24 -20 -17 -30 20 -27 -17 -37 -56 -23 6 -7 -6 4 -14 -24 -10 14 -16 -4 -4 -13 4 -10 -20 -37 -4 -3 -13 -10 -3 -27 16 -30 -10 -26 -33 -20 0 -17 13 -57 14 -80 -20 -80 -64 7 -50 -47 -13 -16 -40 -20 10 -20 -13 -10 -30 3 -24 43 17 7 -20 20 -43 23 -14 4 -30 36 -23 0 -53 20 -10 50 40 30 -44 -3 -16 47 -7 10 -30 20 -3 3 -37 27 -30züGúHìAIûûú[ì|LàM-1304 2147l10 30 20 13 20 -10 16 40 47 13 -7 50 80 64 -26 33 -77 -3 -17 13 4 27 -74 33 -43 13 -90 110 -63 24 -27 43 -17 87 -53 0 -47 70 -63 6 7 10 -10 10 -20 0 -24 4 -30 -10 -6 -54 -27 -30 -7 -43 -30 -3 0 -4 10 -16 -16 -14 -4 -50 -50 -66 -36 -14 0 -66 20 -24 20 7 6 -3 -6 -30 43 -37 -10 -27 7 -6 33 10 17 -24 -17 -50 90 -30 133 -23 64 -30 10 -43 43 20 43 53 17 -27 10 4 0 26 7 7 10 0 6 -40 27 -27 77 -16züGúHìAIûûú[ì|LàM766 2463l6 24 27 10 13 36 -23 57 17 53 -24 37 -33 20 3 10 -73 33 -13 -30 -47 10 -63 -43 -20 27 -10 46 -37 20 -13 -13 -27 13 3 37 47 3 -3 70 23 24 -43 30 36 46 -60 57 -10 37 -50 16 -26 -10 0 40 -37 87 -30 23 -40 0 -10 30 -30 17 -3 43 26 30 -53 20 -23 -76 -44 -14 -80 10 -13 -30 47 -20 0 -20 -40 -36 -54 0 -16 -30 -14 -27 -13 0 -3 40 -67 -3 0 -37 -60 7 -73 -77 -4 3 -13 -13 3 -3 -3 -4 -7 -6 -3 -4 -3 -3 -7 -3 -3 -7 -4 -3 -3 -4 -3 -6 -4 -4 -3 -3 -7 -3 -3 -4 -7 -3 30 -47 30 -13 10 -80 47 17 27 -20 3 -64 -17 -36 14 -54 -47 -56 -3 -47 83 -7 13 -26 -10 -20 54 -54 16 24 24 3 23 -17 -7 -33 27 -17 33 7 27 -27 43 20 24 -6 -10 36 30 14 33 -50 17 26 30 0 23 -46 43 33 34 -60 -30 -23 20 -14 0 -43 23 -3 0 3 3 -3 4 -30 46 3 44 53 36 17 14 -13 50 46 120 47 33 53 17 -23 80 3züGúHìAIûûú[ì|LàM-1118 2347l80 20 57 -14 17 -13 20 0 26 33 30 10 27 -16 10 3 3 13 37 4 10 20 13 -4 4 4 -14 16 24 10 -4 14 7 6 23 -6 37 56 27 17 30 -20 20 17 46 -24 34 4 13 -20 17 0 26 20 7 0 3 -50 54 -20 16 23 70 37 104 103 3 47 47 56 -14 54 17 36 -3 64 -27 20 -47 -17 -10 80 -30 13 -30 47 -6 -3 -4 -4 -3 0 -3 -3 0 -3 -4 -7 -3 -3 -3 -7 -4 -3 -6 -4 0 -6 -4 -7 0 -3 0 -7 -3 -7 0 -3 -3 -7 0 -6 0 -7 -4 -3 -3 -7 0 -7 -3 -3 0 -7 -4 -6 0 -4 -3 -6 -3 -10 -20 -10 -7 16 -27 -3 -40 -37 -33 -10 -23 30 -54 -6 4 36 -17 10 -50 -30 -10 20 23 27 -10 17 -63 10 -10 16 17 30 -7 14 -7 0 -3 -4 -3 -3 -4 -7 0 -3 -3 -7 -7 0 -6 0 -4 0 -6 4 -7 0 -3 3 -7 0 -7 3 -3 0 -7 0 -6 0 -7 0 -3 0 -7 4 -3 3 -7 0 -7 3 -3 4 -7 3 -3 3 -3 4 -7 -7 -17 7 -13 46 13 67 -13 43 -47 34 -53 -34 -10 37 -30 0 0 -3 -17 -84 -40 27 -10 -7 34 -106 -14 -24 -26 -13 0 -50 -30 -20 -20 7 0 -24 -24 -23 10 -37 -26 4 -14 -34 -10 14 -33 -14 13 -50 -33 -26 57 -147 -24 -37 4 -23 -34 -10 -30 -50 74 -33 -4 -27 17 -13 77 3 26 -33m314 456l-7 0 -3 0 -7 0 -7 4 -6 0 -4 3 -3 7 -3 3 0 7 -4 6 -3 4 -3 6 0 4 -4 6 0 7 -3 3 -3 7 0 7 3 3 3 7 4 3 0 7 -4 3 0 7 -3 6 0 7 0 3 -3 7 6 7 4 0 3 -7 3 -3 4 -7 0 -3 0 -7 3 -7 3 -3 4 -3 3 -7 3 -3 -3 -7 -3 -3 -7 -4 -3 -3 0 -7 0 -6 0 -7 3 -3 0 -7 3 -3 4 -7 6 -3 4 -4 3 -3 7 0 6 -3 4 -4 0 -10züGúHìAIûûú[ì|LàM-1954 2457l0 66 36 14 50 66 4 50 16 14 -10 16 0 4 30 3 7 43 27 30 6 54 30 10 24 -4 20 0 10 -10 -7 -10 63 -6 -6 50 -40 13 -17 -13 -7 6 4 24 -24 26 0 97 -56 7 -24 60 -30 -14 -10 7 4 27 -24 56 -50 10 -23 -63 -57 10 -3 33 -90 80 -20 0 -10 -36 -77 53 -93 -23 -20 -47 10 -40 -20 -13 -23 3 -24 30 -36 10 -107 -77 30 -30 -3 -56 33 -34 37 -10 -7 24 30 16 3 -30 27 0 17 -53 -10 -17 -37 10 3 -33 30 7 27 -14 27 -33 -7 -23 73 -40 50 -57 37 -127 -7 -26 -23 -17 13 -63 74 -17 80 47 26 -30 44 -10züGúHìAIûûú[ì|LäM-731 2977l7 -14 -17 -30 10 -16 63 -10 10 -17 -23 -27 10 -20 50 30 17 -10 -4 -36 54 6 23 -30 33 10 40 37 27 3 7 -16 20 10 3 10 3 6 0 4 4 6 0 7 3 3 0 7 3 7 4 3 0 7 0 6 3 7 0 3 3 7 0 7 0 3 4 7 0 6 6 4 4 3 3 7 3 3 4 7 0 3 3 3 3 0 4 4 6 3 7 3 3 4 7 3 3 3 4 4 3 6 3 4 4 3 3 7 7 3 3 3 3 4 7 6 3 4 -3 3 13 13 4 -3 73 77 60 -7 0 37 40 96 43 7 37 7 40 -14 13 30 -36 17 3 17 3 46 -36 87 3 43 -27 14 -36 -10 -64 86 -13 87 13 20 -133 77 -27 30 -60 -17 -53 7 -20 -44 -37 -3 0 10 4 3 0 7 0 7 3 3 0 7 3 6 0 4 4 6 3 7 0 3 3 7 -70 -10 -56 40 -30 -40 -30 33 -74 -73 -80 10 -6 0 -7 3 -3 0 -7 0 -7 4 -6 0 -4 0 -10 0 -13 -37 -20 -7 -20 24 -3 3 -30 -7 13 -23 -33 -57 6 -130 -46 -50 -44 -100 -30 -16 17 -80 -33 -7 -7 -53 57 -17 -20 -40 13 -10 30 0 10 -37 53 34 47 -34 13 -43 -13 -67 13 -46 17 -7 7 7 -4 6 -6 4 -4 6 0 4 7 3 3 3 7 4 3 3 4 7 0 6 0 4 0 6 0 7 3 7 0 3 3 7 4 3 3 3 7 0 6 0 4 0 3 -6 0 -7 3 -7 0 -3 0 -7 -3 -6 -3 -4 -4 -3 -3 -7 -3 -3 -4 -7 0 -3 0 -7 0 -6 4 -4 3 -6 3 -4 4 -3 6 -3 7 0 3 -4 7 0 7 0 6 0 4 0 6 0 7 0 7 4 3 0 7 3 3 3 7 0 3 4 7 3 6 0 4 3 6 0 7 0 3 -6 0 -4 -3 -3 -7 -3 -6 0 -7 0m247 626l-4 -6 -3 -4 -3 -6 -4 -4 0 -6 0 -4 -3 -6 -7 -4 -6 0 -7 0 -3 0 -7 -3 -3 -3 -4 -7 -6 -3 -4 -4 -3 -6 0 -4 -3 -6 0 -7 3 -3 3 -7 0 -3 -6 -7 -4 0 -6 0 -7 0 -7 -3 -3 -4 -3 -6 0 -4 -4 -6 -3 -4 -7 -3 -3 -3 -3 -4 -4 7 0 7 0 6 4 4 0 6 3 7 0 3 7 4 3 3 3 3 4 7 3 7 3 3 4 3 3 7 7 3 3 4 3 3 4 7 3 3 0 7 0 6 3 4 7 3 3 3 7 0 7 0 6 0 4 4 3 3 3 7 4 3 6 3 4 4 6 0 4 -4züGúHìAIûûú[ì|LäM-2521 3073l107 77 36 -10 24 -30 23 -3 20 13 -10 40 20 47 -23 16 3 60 -27 97 44 -7 23 14 -20 70 7 6 3 4 3 3 7 0 7 3 3 0 7 0 3 -3 3 -7 4 -3 6 -7 4 0 6 -3 4 -3 6 0 7 0 3 0 7 0 -3 30 16 26 -36 90 133 134 -7 0 -6 0 -4 3 -6 0 -4 3 -6 4 -4 6 -3 4 -3 10 -7 0 -27 -17 -13 40 -57 23 -43 -20 -23 14 -7 53 -23 47 -37 3 -30 -33 -33 0 -20 16 16 24 -10 30 -43 20 -77 -44 -13 24 -53 16 -14 -20 -33 34 -7 -34 -20 -3 -53 53 -50 -40 -40 -10 -10 -46 -20 -4 -13 7 -87 -17 -7 20 -40 -30 -43 10 -43 -10 -17 -40 33 -53 -26 -17 -4 -33 -46 -3 -90 -37 -10 17 26 20 -26 46 -17 7 -7 -33 17 -17 -30 -7 -27 24 -6 16 10 4 -24 36 -20 -3 -43 -50 13 -90 -46 -23 -4 -24 -66 -60 -10 -43 6 0 4 0 6 0 7 0 7 0 3 3 7 0 6 4 4 0 6 3 7 0 3 0 7 3 7 0 6 0 4 4 6 0 7 3 7 0 3 -3 7 0 3 -4 7 -3 6 -3 4 0 6 -4 7 0 3 0 7 0 7 4 6 0 4 0 6 0 7 3 3 0 7 0 7 0 6 0 4 0 6 3 7 0 7 -3 3 0 7 0 6 0 7 -3 10 0 7 0 3 -4 7 0 20 -96 43 -40 30 -107 -33 -67 -44 -20 -10 -46 17 -27 77 -27 20 20 36 7 24 -17 16 14 67 -20 10 -40 190 -107 83 60 -3 7 -10 3 -3 7 -4 3 -3 3 -3 7 -4 3 -3 4 -7 3 -3 3 -7 7 -3 0 -7 -3 -6 0 -4 -4 -6 4 -4 6 -3 7 0 3 7 0 6 -3 7 0 7 -3 3 3 7 0 3 3 3 7 0 7 0 3 0 7 -6 3 -4 7 -3 3 -3 3 -4 7 0 7 -3 3 0 7 3 3 7 3 3 4 7 0 7 -4 6 0 7 0 3 -3 7 -3 3 -4 4 -3 3 -3 0 -7 0 -7 0 -6 -7 -4 -3 0 -7 -3 -3 -3 -7 -4 0 -6 -3 -7 0 -3 0 -7 0 -7 3 -6 4 -4 3 -3 7 -3 40 13 20 27 43 16 13 -30 50 -20 0 44 37 -4m-150 324l7 3 6 0 4 -3 3 -4 7 -3 3 -3 7 -4 6 -3 0 -3 0 -7 4 -7 0 -3 3 -7 0 -6 -3 -4 -7 0 -3 4 -4 6 0 7 0 3 -3 7 -3 7 -4 3 -3 3 -7 0 -6 4 -4 3 -3 7m207 56l6 0 4 0 6 -3 4 -3 6 -4 4 -3 6 0 7 -3 3 0 7 0 7 0 6 0 4 0 6 0 7 3 3 7 7 0 3 -4 7 -3 3 0 7 -3 7 0 6 -4 4 4 6 3 4 3 3 4 10 0 -7 -4 -3 -3 -3 -7 0 -6 0 -7 3 -3 0 -7 3 -7 0 -3 0 -7 -3 -6 -7 0 -6 0 0 3 -4 7 0 6 -3 7 -3 3 -7 4 -3 3 -7 0 -7 0 -3 3 -7 -3 -6 3 -7 0 -3 0 -7 0 -7 0 -6 0 -4 0 -6 0 -7 4 -3 0 -7 0 -7 3 -3 3 -7 4 -3 3 -3 3 0 10m-204 -46l7 3 3 3 7 4 3 3 7 0 3 3 4 7 3 7 3 0 7 3 7 0 6 0 4 0 6 0 7 3 3 4 4 6 3 4 3 3 4 3 6 0 7 0 7 0 3 0 7 -3 6 0 4 -3 6 0 7 0 3 -4 7 -3 -3 -3 3 -7 3 -3 4 -4 6 -3 0 -7 -3 -3 -7 0 -3 3 -3 4 -4 6 -3 4 -3 3 -7 3 -7 4 -3 3 -3 3 -7 0 -7 0 -6 0 -4 -3 -6 0 -4 -3 -3 -7 -7 -3 -3 -4 -7 -3 -3 0 -7 0 -6 -3 -4 0 -3 -7 -3 -7 -4 -3 -3 -3 -7 3 -6 0 -7 -3 -3 0 -14 0m-510 60l4 3 6 0 7 0 3 -3 7 -4 3 -3 4 -3 6 -4 4 -3 6 0 7 0 7 -3 3 0 7 3 6 0 4 0 6 0 7 0 7 0 3 0 7 0 6 0 7 0 3 0 7 -3 3 0 7 0 7 3 3 0 7 7 3 3 7 3 3 4 7 3 3 3 7 0 3 4 7 3 3 3 7 4 0 6 0 4 -4 6 4 7 6 0 4 0 6 0 4 3 3 7 3 3 4 7 3 3 3 7 0 7 4 3 3 7 3 3 4 7 3 3 3 3 7 4 3 3 7 3 3 4 7 0 7 0 6 0 4 0 6 0 7 0 7 0 3 0 7 3 6 0 4 3 6 4 7 0 3 3 7 3 3 4 4 3 6 3 4 4 6 3 4 3 6 0 7 0 3 0 7 -3 0 -7 -3 -3 -7 -3 -3 0 -7 -4 -7 0 -3 -3 -7 -3 -3 -4 -7 -3 -3 -3 -7 -4 -3 -3 -7 -3 -3 -4 -3 -3 -7 -3 -7 0 -3 0 -7 0 -6 3 -7 0 -3 0 -7 0 -7 0 -6 -3 -4 -4 -6 0 -4 -6 -3 -4 -3 -3 -4 -7 -3 -3 -3 -3 -4 -7 -6 -3 -4 -7 -3 -3 -3 -4 0 -6 -4 -7 -3 -3 3 -7 4 -3 6 -4 7 0 3 -3 7 0 7 -3 3 0 7 0 6 -4 7 0 3 0 7 -3 7 0 3 -3 7 0 6 0 7 0 3 0 7 0 7 0 3 -4 7 0 6 -3 4 -3 6 0 7 -4 3 -3 7 -3 3 0 7 -4 7 -3 3 0 7 -3 6 0 4 0 6 0 4 -4 3 -6 7 -4 3 -3 3 -3 10 -7 -3 -7 0 -6 0 -7 -3 0 -7 7 0 3 0 7 -7 6 -3 4 -3 3 -7 3 -3 0 -7 0 -7 4 -3 3 -7 0 -6 3 -4 4 -6 0 -7 3 -3 0 -7 3 -3 4 -7 0 -7 3 -3 0 -7 3 -6 0 -7 0 -3 0 -7 4 -7 0 -6 0 -4 0 -6 0 -7 3 -3 0 -7 0 -7 3 -3 4 -7 3 -3 3 -7 0 -3 0 -7 -3 0 -7 0 -3 -6 -3 -7 0 -3 -4 -7 0 -7 4 -3 6 0 4 -7 3 -6 -3 -7 0 -3 -4 -4 -3 -6 -3 -4 -4 -6 -3 -4 -3 -3 -4 -3 -6 -4 -7 -3 -3 -3 -4 -7 4 -7 0 -6 0 -4 3 -3 3 -7 4 -6 0 -7 0 -3 -4 0 -6 6 -4 4 -3 -4 -7 -3 0 -7 4 -3 3 -3 3 -7 4 -3 0 -7 3 -7 0 -6 0 -4 3 -6 4 -7 0 -3 3 -7 3 -3 0 -7 4 -3 3 -7 3 -3 -3 -4 -3 7 -7 3 -3 4 -4 3 -6 3 -4 4 -6 3 -4 3 -6 4 -4 0 -6 3 -4 3 -6 0 -7 4 -3 3 -7 0 -3 3 -7 7 0 7 -3 6 0 4 -4 6 0 7 0 3 -3 4 -7 6 -3 4 -3 3 -4 7 -3 3 -3 7 -4 3 0 7 -3 6 0 4 0 6 -3 7 -4 3 -3 7 0 7 0 0 -3 -4 -7 -6 0 -7 0 -7 3 -3 0 -7 4 -3 3 -7 3 -3 0 -7 4 -6 3 -4 3 -3 4 -7 3 -3 3 -7 0 -3 -3 0 -7 3 -6 -3 -4 -7 -3 -3 7 0 6 0 4 0 6 0 7 -7 3 -3 0 -7 4 -3 3 -7 3 -3 4 -7 3 -3 3 -3 7 -4 3 0 7 -3 3 -3 7 -4 3 0 7 -3 3 -3 7 -4 7 0 3 -3 7 -3 3 -4 7 -3 3 -3 7 -4 3 -3 7 0 3 3 7züGúHìAIûûú[ì|LàM-901 3767l20 -24 20 7 13 37 14 40 -64 93 17 70 -43 73 63 34 23 73 57 40 -17 60 -33 27 -17 -7 0 70 -73 53 -17 -10 -63 17 -20 -23 -40 26 -113 -23 -20 7 -14 33 -40 20 -40 -7 -16 -30 -24 37 -110 -20 -53 43 -213 -23 -10 37 -104 -30 -46 -57 -44 -17 -56 -60 -84 -30 -6 -50 -54 0 -40 -33 30 -7 27 -90 23 -20 30 4 7 -30 -50 -27 -23 -63 46 13 27 -10 -23 -37 16 -50 20 -26 50 3 7 -13 -27 -70 27 -14 23 -60 -10 -26 37 -4 7 -26 60 -47 20 50 23 -30 107 33 26 -16 20 -50 60 -4 10 40 -16 7 -4 40 -23 0 -17 67 24 16 16 -16 54 10 6 43 60 27 44 -24 33 17 43 -20 64 -7 66 -70 60 4 10 -57 54 0 23 -17 83 37 44 -17 33 57 -13 23 30 7 3 -3züGúHìAIûûú[ì|LàM-2094 3723l13 -13 23 -73 24 -17 53 40 -3 60 -57 30 -3 0 6 -3 -3 -7 0 -7 -7 -3 -3 -3 -7 0 -6 -4 -4 -3 -6 0 -7 0 -3 3 -10 0züGúHìAIûûú[ì|LàM-798 3780l80 -10 74 73 30 -33 30 40 56 -40 70 10 -3 -7 0 -3 -3 -7 -4 -6 0 -4 -3 -6 0 -7 -3 -3 0 -7 0 -7 -4 -3 0 -10 37 3 20 44 53 -7 60 17 27 -30 133 -77 34 40 26 -10 34 27 100 20 -10 76 0 4 -40 106 73 84 103 -10 24 43 0 67 -20 16 33 64 -67 23 -50 -37 -6 -26 -30 -10 -47 16 -47 40 -16 -13 -20 7 -27 26 -3 57 -27 30 17 113 -44 44 -53 10 -23 -40 -37 -7 -3 3 -87 64 -47 13 -33 -20 -30 47 -63 36 -67 124 -120 -40 60 -87 7 -53 -10 -7 -24 -13 0 -70 -50 -14 -13 -70 -53 10 -44 -23 0 -70 17 7 33 -27 17 -60 -57 -40 -23 -73 -63 -34 43 -73 -17 -70 64 -93 -14 -40 10 0 4 0 6 0 7 -4 7 0 3 0 7 -3 6 0züGúHìAIûûú[Cfil1LàM-3514 537l36 -4 10 37 10 7 20 -34 44 4 -4 13 54 20 36 63 34 24 103 10 -3 50 -30 40 -37 0 -3 30 20 6 3 34 33 30 4 46 46 27 0 47 44 -24 26 20 -23 37 -40 10 -30 40 13 23 24 -13 40 20 10 50 -20 27 0 53 -30 37 -27 0 -43 36 16 44 -23 16 7 27 -20 57 -50 83 -7 -3 -7 0 -3 -4 -7 -3 -3 -3 -3 -7 -4 -7 0 -3 -3 -7 0 -6 -3 -4 -7 -3 -3 -3 -7 -4 -3 -3 -7 0 -7 0 -6 0 -4 0 -6 0 -7 0 -7 0 -3 0 -7 3 -6 0 -4 4 -6 0 -4 3 -6 7 -4 3 -3 3 -7 4 -3 3 -7 3 -3 0 -7 4 -6 0 -4 3 -6 0 -7 0 -7 0 -3 -3 -7 0 -6 0 -4 0 -6 0 -7 3 -3 0 -7 0 -7 -3 -6 0 -4 -4 -6 0 -4 -3 -6 -3 -4 -4 -6 -3 -4 -3 -6 -4 -4 -3 -3 -3 -10 -7 3 0 -20 -13 10 -10 -3 -7 -73 -10 10 -33 -17 -20 37 -100 -57 -47 7 -53 -14 -4 50 -80 -16 -66 16 -34 -23 -70 23 -46 -6 -20 30 -37 0 -47 33 0 30 -50 27 -110 20 -16 -10 -27 10 -33m-54 810l7 -7 3 -3 0 -7 0 -7 0 -6 0 -4 0 -6 4 -7 0 -3 6 -4 4 -3 6 -3 0 -7 0 -7 4 -3 3 -7 3 -3 0 -7 4 -3 3 -7 3 -3 4 -7 3 -3 0 -7 3 -3 7 -3 7 -4 3 -3 3 -3 4 -7 3 -3 3 -7 4 -3 -7 -4 -7 4 -6 0 -4 3 -3 7 -7 3 -3 3 -3 7 -4 3 0 7 -3 3 -3 7 -4 3 -3 4 -7 6 -3 4 -3 3 0 7 -4 6 0 4 -3 6 -3 4 -4 3 -6 3 -4 7 -3 3 0 7 -3 7 0 3 0 7 0 6 0 7 3 3 3 7 0 7züGúHìAIûûú[ì}LàM-2001 973l-3 57 36 20 20 50 -33 20 -37 83 -20 7 0 57 -23 30 33 26 -23 117 13 13 -16 67 10 33 -37 14 -3 23 16 -3 0 13 -10 23 -20 4 -23 -7 -3 13 -14 0 -6 -6 -14 -17 -36 33 -27 -6 -13 23 6 7 -6 6 -20 -3 -10 20 -20 -10 -20 20 0 33 3 70 -37 17 -10 30 -20 -7 10 -23 -13 -30 -13 -30 -34 37 -43 -67 -33 17 -24 -17 -43 20 -20 -27 -37 17 -43 -23 -97 3 -53 -43 -93 13 -84 -30 -36 7 -40 -34 30 -63 -57 -50 17 -50 -17 -10 -50 -23 -23 20 -50 -10 20 -57 -7 -27 23 -16 -16 -44 43 -36 27 0 30 -37 0 -53 20 -27 33 20 33 -27 77 10 63 -16 4 -17 -10 -7 6 -13 14 0 30 -47 73 37 10 -27 50 17 17 -30 33 10 20 -10 17 40 36 23 60 10 27 -36 43 -14 54 17 30 -3 10 -24 40 4 16 -30 80 6 37 -23 17 13 26 -56 37 0 47 -40 26 6 17 30züGúHìAIûûú[ì}LàM-1251 1010l83 -47 67 27 -17 27 24 16 -4 47 -16 13 60 7 43 57 -67 23 -60 -33 -33 56 33 34 10 -27 24 0 10 -10 6 7 -10 66 10 10 10 -3 7 0 3 0 7 0 7 0 6 0 4 3 3 7 3 3 4 4 6 6 4 4 3 3 7 3 3 4 7 3 3 0 7 3 6 0 4 4 6 0 7 3 3 3 4 4 6 3 4 3 3 7 3 3 0 7 4 7 0 3 -27 13 -27 -13 -50 3 -6 14 3 20 -23 26 0 10 16 4 -6 36 23 27 -3 43 -7 4 -10 -24 -10 10 20 30 -30 14 17 60 -20 46 53 84 57 0 10 43 -27 30 -3 37 -20 3 -10 30 -47 7 3 16 -30 44 -50 -40 -20 10 0 53 -36 23 -4 30 -23 14 -20 43 -7 20 -43 -17 -3 24 -77 16 -27 27 -6 40 -10 0 -7 -7 0 -26 -10 -4 -17 27 -43 -53 -43 -20 -17 -27 0 -3 -17 6 7 -56 -30 -27 20 -30 -27 -47 4 -26 50 -17 10 -27 43 -23 3 -20 -53 17 -13 -17 13 -27 -7 -10 -46 0 -7 -26 17 -17 -24 -20 -46 -3 -44 -184 -26 0 -10 -33 13 -20 33 -7 4 -23 -24 -50 17 -47 -13 -43 80 -50 20 13 10 -20 76 4 27 -30 40 0 -3 -27 -4 -27 -33 20 -10 -23 43 -27 -10 -20 -53 30 -20 -16 17 -50 10 0 6 0 4 0 6 0 7 3 3 0 7 3 3 -6 4 -4 0 -6 0 -7 -4 -3 -3 -7 -3 -3 23 -14 7 -26 43 -7 50 -60 77 30 43 0züGúHìAIûûú[ì}LàM1042 1167l50 23 14 -10 70 10 46 53 30 -13 67 3 53 80 -10 44 30 16 -26 20 20 37 53 0 23 -27 30 0 7 -26 30 -7 3 10 0 40 44 13 -4 34 0 3 30 -3 -3 43 -87 23 14 34 -7 26 27 7 6 17 -20 23 14 37 -24 26 14 20 -24 17 20 7 -3 6 -17 7 0 33 -36 37 30 10 -17 67 -27 16 -23 -20 -13 14 -4 -24 -26 7 3 50 -17 17 37 43 -43 20 20 27 -4 16 -93 -3 -27 27 7 36 -30 14 -27 -10 -10 6 10 20 -63 74 -43 10 -20 -14 -14 24 -30 0 -76 36 -20 -16 -74 10 -10 23 -23 0 -20 -37 13 -20 -33 -23 7 -17 6 -3 0 -50 30 -10 24 -40 -10 -33 -44 -4 -20 -53 144 -153 -24 -44 40 -43 30 -97 20 -143 -6 -63 -30 -60 20 -10 16 -74 -36 -16 -7 -47 73 -103züGúHìAIûûú[ì}LàM-921 1257l123 20 7 16 -17 30 20 17 7 3 10 -6 10 0 3 16 -10 7 -53 0 -23 -20 -44 10 -53 -50 20 -43züGúHìAIûûú[ì}LàM-2841 2347l3 3 7 7 3 3 4 3 3 7 -3 7 0 6 -4 4 -3 6 3 7 0 3 7 4 3 -4 7 -3 3 -7 4 -3 0 -7 3 -3 7 0 3 7 3 3 7 3 7 0 3 4 7 3 3 7 3 0 7 0 7 0 3 3 3 7 4 3 0 7 0 6 0 4 3 6 3 4 4 0 0 -7 3 -3 7 0 6 0 7 0 3 3 4 3 3 7 0 7 3 3 0 7 4 6 3 4 7 3 3 3 3 4 7 -7 0 -3 0 -7 -3 -7 0 -3 -4 -7 -3 -3 -3 -7 -4 -3 -3 -7 -3 -3 -7 -3 -3 -7 -4 -3 -3 -4 -3 -6 -4 -4 -6 -3 43 3 0 30 10 7 17 -7 3 10 10 -3 30 -57 70 17 67 -17 26 27 24 -7 43 54 7 -24 30 -6 10 36 33 17 20 -13 3 -34 7 -13 20 3 13 24 20 -4 30 24 -13 63 23 17 7 26 -37 127 -50 57 -73 40 7 23 -27 33 -27 14 -30 -7 -3 33 37 -10 10 17 -17 53 -27 0 -3 30 -30 -16 7 -24 -37 10 -33 34 3 56 -30 30 -37 4 0 -44 -50 20 -13 30 -43 -16 -20 -27 -40 -13 3 -4 3 -6 4 -4 3 -3 3 -7 -3 -6 3 -7 -83 -60 -190 107 -10 40 -67 20 -16 -14 -24 17 -36 -7 -20 -20 46 -60 -33 -66 33 -54 -26 -36 23 -64 -13 -73 6 -60 14 -10 -50 -93 6 -37 7 0 7 0 6 0 4 0 6 -3 7 -4 3 -3 7 -3 3 -4 4 -3 3 -7 3 -3 0 -7 4 -6 0 -4 3 -6 3 -4 0 -6 4 -7 3 -3 3 -7 4 -3 3 -7 3 -3 4 -7 0 -3 3 -7 3 -3 7 -4 3 -3 4 -7 3 -3 7 -3 3 -4 3 -6 7 -4 3 0 7 -3 7 0 3 0 7 0 6 -3 7 0 3 0 7 0 3 -4 7 -6 3 -4 4 -3 6 -3 7 0 3 -4 4 -3 3 -3 10 0 7 0 6 0 7 0 3 0 7 0 7 3 6 0 4 0 6 0 7 3 3 4 7 0züGúHìAIûûú[ì}LàM-2301 3207l93 23 77 -53 10 36 20 0 90 -80 3 -33 57 -10 23 63 50 -10 27 14 47 -30 30 -44 16 4 7 26 30 27 30 -40 30 -13 30 36 43 -16 34 36 110 30 23 27 20 -7 57 20 6 24 -13 23 -7 0 -3 3 -7 4 -3 3 -3 3 -7 4 -3 6 -4 4 -6 3 -4 3 -3 4 -3 6 -4 4 0 6 -6 4 -4 0 -6 0 -7 0 -7 3 -3 3 -7 4 -3 0 -7 3 -3 3 -7 4 -3 3 -7 3 -3 4 -3 3 23 27 7 3 50 -47 50 -10 0 -20 60 -20 13 -20 27 0 6 0 7 0 7 0 3 0 7 0 6 0 10 0 7 0 7 0 6 0 4 0 6 0 7 0 3 -3 4 0 26 0 40 -30 7 17 7 53 33 7 -17 80 30 16 44 100 46 50 -6 130 -44 17 -83 -37 -23 17 -54 0 -10 57 -60 -4 -66 70 -64 7 -43 20 -33 -17 -44 24 -60 -27 -6 -43 -54 -10 -16 16 -24 -16 17 -67 23 0 4 -40 16 -7 -10 -40 -60 4 -20 50 -26 16 -107 -33 -23 30 -20 -50 -60 47 -7 26 -37 4 -36 23 3 -60 -53 -40 -24 17 -23 73 -13 13 -7 4 -133 -134 36 -90 -16 -26 3 -30 -7 0 -3 0 -7 0 -6 0 -4 3 -6 3 -4 0 -6 7 -4 3 -3 7 -3 3 -7 0 -3 0 -7 -3 -7 0 -3 -3 -3 -4 -7 -6 20 -70 -23 -14 -44 7 27 -97 -3 -60 23 -16züGúHìAIûûú[ì}LäM-1984 3720l36 -23 10 26 -23 60 -27 14 27 70 -7 13 -50 -3 -20 26 -16 50 23 37 -27 10 -46 -13 23 63 50 27 -7 30 -30 -4 -23 20 -27 90 -30 7 -63 0 -13 10 6 23 -13 10 -43 24 -30 36 -40 0 -20 50 -90 57 -4 70 27 50 3 43 -10 34 -30 20 -26 -4 -50 40 -14 -30 30 -20 -10 -20 -26 -10 -47 10 -50 47 3 33 -20 40 -96 20 -44 30 -96 -46 -4 -24 -30 -20 -23 4 -13 33 -60 -13 -10 -44 -120 -23 10 -50 -80 -27 -90 24 -30 -74 -70 -110 -20 -13 3 -3 3 -7 4 -3 3 -7 3 -3 0 -7 -3 -7 0 -6 0 -4 0 -6 0 -7 0 -3 0 -7 3 -7 0 -6 4 -4 3 -6 3 -4 4 -3 3 -7 3 -3 4 -3 3 -7 3 -7 0 -3 4 -7 0 -6 -4 -4 0 -6 -3 -7 -7 -3 0 -7 0 -7 0 -6 0 -7 0 -3 0 -7 4 -7 3 -3 3 -3 7 -4 3 -6 4 -4 6 -3 4 -3 3 -4 7 -3 3 -3 7 -4 3 -3 7 -3 3 -4 3 -3 7 -3 3 -4 7 -3 3 -3 4 -4 6 -6 4 -4 3 -3 7 -3 3 -4 3 -3 7 -7 3 -3 -3 -30 53 -80 -6 -40 -27 -30 -73 0 6 -43 -56 -30 6 -47 20 3 24 -36 -10 -4 6 -16 27 -24 30 7 -17 17 7 33 17 -7 26 -46 -26 -20 10 -17 90 37 46 3 4 33 26 17 -33 53 17 40 43 10 43 -10 40 30 7 -20 87 17 13 -7 20 4 10 46 40 10 50 40 53 -53 20 3 7 34 33 -34 14 20 53 -16 13 -24 77 44 43 -20 10 -30 -16 -24 20 -16 33 0 30 33 37 -3 23 -47 7 -53 23 -14 43 20 57 -23 13 -40 27 17 7 0 0 3 -4 7 0 6 0 4 0 6 -3 7 0 7 0 3 -3 7 -4 6 -3 4 -3 6 -4 4 -3 3 -7 3 -3 4 -7 3 -3 3 -7 0 -3 -3 -3 -7 -4 -3 0 -7 -6 0 -4 4 0 3 0 7 0 6 0 7 0 3 -3 7 0 7 -3 3 0 7 -4 6 0 7 0 3 4 10 3 4 7 -4 -4 -6 0 -4 0 -6 0 -7 0 -7 4 -3 6 -3 4 -4 6 -3 4 -3 6 0 4 -4 6 -3 4 -3 6 -4 4 -3 6 -3 4 -4 3 -6 3 -4 4 -6 3 -4 3 -6 0 -4 4 -6 3 -7 0 -3 3 -7 0 -7 4 -3 3 -7 0 -3 7 -3 3 -4 7 -3 6 0 7 3 3 4 4 6 3 4 3 6 4 4 3 3 3 7 7 3 3 0 7 3 3 7 0 3 4 7 3 7 0 3 3 7 4 3 6 3 10 0 -3 -3 0 -7 -3 -6 -4 -4 -3 -6 -3 -4 3 -6 3 -7 -3 -3 -3 -4 -4 -3 -6 -3 -4 -4 -6 -3 -4 -3 -6 -4 -4 -3 0 -7 7 -3 3 3 7 0 7 -3 3 0 57 -30m-437 303l0 4 7 0 6 0 4 -4 6 -3 4 -3 6 -4 4 -3 6 0 7 -3 3 0 7 -4 7 -3 3 -3 7 -4 3 -3 3 -3 7 -4 3 -3 4 -3 3 -7 10 -7 -7 0 -6 0 -7 0 -3 4 -7 3 -3 3 -7 4 -3 3 0 7 -7 3 -3 3 -7 0 -7 4 -3 3 -7 0 -6 3 -4 0 -6 4 -7 0 -3 3 -4 7 -3 6m30 60l3 -3 7 0 7 0 6 3 4 0 6 0 7 4 3 0 7 3 7 0 6 0 4 0 6 -3 7 0 3 -7 7 0 3 0 7 -3 7 0 6 0 4 0 6 0 7 0 7 0 3 3 7 3 3 4 0 6 3 7 4 3 3 4 7 3 3 3 7 4 3 3 3 3 7 4 3 3 7 3 7 0 3 -6 0 -7 -3 -3 -4 -7 -3 -3 -7 0 -6 -4 -4 -3 -6 0 -4 -3 -6 -7 -4 -3 -3 -4 -3 -6 3 -7 0 -3 3 -7 0 -7 -3 -3 -7 0 -6 0 -4 3 -6 4 -4 3 -6 3 -7 0 -3 0 -7 0 -7 0 -6 0 -4 0 -6 0 -7 0 -3 4 -7 3 -3 3 -7 0 -7 4 -6 0 -4 0 -6 -4 -7 0 -3 -3 -7 -3 -3 -4 -7 0 -7 4 -3 3 0 7 0 6züGúHìAIûûú[ì}LàM-2818 4783l4 17 26 7 -20 33 20 27 -36 20 -7 40 -17 3 -20 -20 -116 23 -44 60 7 17 80 10 0 33 47 90 -30 17 6 37 -23 13 27 37 -14 40 4 86 -27 30 17 64 -14 40 27 30 -17 50 -13 6 -20 -10 -23 -56 -57 -70 -217 -140 10 -27 -6 -3 -30 16 6 14 -10 6 -80 -33 -113 13 -27 14 -10 -7 -20 -37 -6 -13 -4 -7 0 -6 0 -7 0 -7 0 -3 0 -7 0 -6 0 -4 -3 -6 0 -7 0 -7 0 -3 0 -7 0 -6 0 -7 0 -3 -3 -7 0 -7 0 -6 0 -4 0 -6 0 -7 0 -7 0 -3 0 -7 0 -6 -4 -7 0 -7 0 -3 -3 -7 0 -3 -3 -7 -4 -3 -6 -7 -4 -3 -3 -3 -3 -7 -7 -7 47 -73 16 -73 77 -64 30 -106 70 -7 13 -30 57 13 47 -130 80 27 -10 50 120 23 10 44 60 13 13 -33 23 -4 30 20 4 24 96 46züGúHìAIûûú[Cfil2LàM-348 880l47 -10 20 40 30 -30 83 17 7 50 -20 53 -27 27 27 33 43 7 4 -50 16 -10 10 6 -6 20 20 20 30 -6 146 70 60 3 44 -13 13 33 -50 10 -17 47 4 46 -30 27 -67 37 -7 40 -56 0 -27 70 -27 -7 -16 23 10 37 -37 37 -7 33 14 23 -30 37 -17 63 17 70 50 54 -50 86 -4 14 -46 -10 -30 13 -60 -40 -24 10 -40 -30 -43 -3 -27 -20 0 -34 44 -56 53 3 13 -20 -3 -13 -7 -4 -3 -3 -7 -3 -3 -4 -7 0 -3 -3 -7 -3 -6 -4 -4 -3 -6 0 -4 -3 -6 -4 -7 0 -3 -3 -7 0 -7 -3 -3 -4 -3 -3 0 -7 0 -6 -4 -7 -6 -7 -4 -3 -6 -7 -4 -3 -3 -3 -3 -4 -7 -3 -3 -7 -4 -3 -6 -3 -4 -4 -3 -3 -13 -3 -7 -4 -7 0 -3 0 -7 0 -6 0 -7 0 -3 0 -4 -3 -6 -7 -4 -3 -3 -7 -3 -3 -4 -3 -3 -4 -7 -3 -3 0 -7 0 -6 0 -7 0 -3 0 -7 -3 -7 0 -3 -4 -7 -3 -3 -3 -7 -4 -3 -3 -7 0 -3 -3 -7 -4 -6 0 -4 -3 -6 0 -7 0 -7 0 -3 -3 -7 0 -6 0 -7 -4 -3 0 -7 -3 -7 0 -3 0 -7 -3 -6 0 -4 -4 -6 0 -7 0 -7 -3 37 -7 13 -50 -13 -26 -23 20 -24 -30 47 -37 27 20 36 -17 -20 -56 27 -14 -3 -36 23 -34 -10 -36 23 -44 40 10 20 -26 27 -7 13 -60 60 -47 -6 -60 43 -10 23 -46 30 -7züGúHìAIûûú[ì~LàM-391 1827l43 3 40 30 24 -10 60 40 30 -13 46 10 4 -14 50 -86 -50 -54 -17 -70 17 -63 30 -37 -14 -23 7 -33 37 -37 -10 -37 16 -23 27 7 27 -70 56 0 7 -40 67 -37 -4 27 17 16 -17 24 7 36 -13 20 16 17 -16 27 23 3 -3 60 46 23 -53 104 17 6 13 -26 33 6 17 -46 0 -17 10 -10 7 3 6 50 -16 40 6 130 -13 10 -17 -26 -30 66 60 30 60 0 77 80 7 80 73 27 10 37 63 40 20 -17 24 3 66 164 27 10 0 -14 7 0 6 14 37 0 -3 6 -4 4 -3 3 -7 3 -6 0 -4 0 -6 0 -7 0 -3 4 -7 3 0 7 0 6 -3 4 0 6 0 7 -7 0 -7 0 -3 0 -7 -3 -6 -4 -4 0 -6 0 -7 0 -3 4 -7 3 0 10 3 3 7 0 7 0 6 4 4 0 6 0 7 3 3 3 7 0 7 0 3 0 7 -3 3 -7 3 -3 0 -7 4 -6 3 -4 3 -6 4 -4 6 0 4 -3 6 0 7 -3 3 -4 4 -3 3 -7 3 -3 4 -7 3 -3 3 -7 0 -6 4 -4 0 -6 0 -7 3 -3 3 -4 7 -3 7 -3 6 0 4 0 6 0 7 0 3 3 7 3 3 7 4 3 3 4 7 3 6 0 10 0 -3 -7 -3 -3 -4 -7 -3 -3 -3 -3 -7 -4 -3 -3 -7 -3 7 -14 50 10 -7 17 33 23 -13 20 20 37 -3 23 0 4 -34 23 -6 37 -47 26 7 40 -80 -3 -17 23 -33 -53 -120 -47 -50 -46 -14 13 -36 -17 -44 -53 -46 -3 -4 30 -3 3 0 -3 -23 3 0 43 -20 14 30 23 -34 60 -43 -33 -23 46 -30 0 -17 -26 -33 50 -30 -14 10 -36 -24 6 -43 -20 -27 27 -33 -7 -27 17 7 33 -23 17 -24 -3 -16 -24 -54 54 10 20 -13 26 -83 7 -104 -103 -70 -37 -16 -23 -54 20 -50 -24 -16 -100 23 -36 10 -50 37 6 6 37 50 -23 -26 -60 6 -44 -13 -30 17 -10 20 7 36 -43 24 0 16 -40 -40 -57 24 -43 -27 -77 0 -33züGúHìAIûûú[ì~LàM-914 1427l33 -47 33 27 -10 53 10 3 7 0 3 4 4 3 3 7 3 3 7 0 7 3 6 0 4 0 6 0 7 -3 3 -3 7 0 7 0 3 -4 7 0 6 0 7 0 3 4 7 0 3 3 7 3 7 0 6 0 4 4 6 0 7 3 3 0 7 0 7 3 3 0 7 4 6 0 7 0 3 3 7 0 7 0 6 0 4 3 6 0 7 4 3 3 7 0 3 3 7 4 3 3 7 3 3 4 7 0 7 3 3 0 7 0 6 0 7 0 3 0 7 3 3 4 4 3 3 3 3 7 4 3 6 7 4 3 3 0 7 0 6 0 7 0 3 0 7 0 7 4 13 3 3 3 4 4 6 3 4 3 3 7 7 3 3 4 3 3 4 3 6 7 4 3 6 7 4 7 0 6 0 7 3 3 3 4 7 3 7 0 3 3 7 0 6 4 4 3 6 0 4 3 6 4 7 3 3 3 7 0 3 4 7 3 3 3 7 4 3 13 -13 20 -53 -3 -44 56 0 34 27 20 0 33 -57 30 -76 -23 -4 -47 -26 -23 13 -37 -33 -7 -40 17 -20 -40 -67 3 -33 24 -7 -4 -10 14 0 20 -37 50 -90 -14 20 -53 -16 -23 -27 13 -7 47 -33 23 -23 -10 -10 -43 -57 0 -53 -84 20 -46 -17 -60 30 -14 -20 -30 10 -10 10 24 7 -4 3 -43 -23 -27 6 -36 -16 -4 0 -10 23 -26 -3 -20 6 -14 50 -3 27 13 27 -13 3 10 0 7 3 3 4 7 3 3 3 7 4 3 3 7 3 3 4 7züGúHìAIûûú[ì~LàM-3671 1377l17 20 -10 33 73 10 3 7 -10 10 20 13 -3 0 10 7 3 3 4 3 6 4 4 3 6 3 4 4 6 3 4 3 6 0 4 4 6 0 7 3 7 0 3 0 7 -3 6 0 4 0 6 0 7 0 3 3 7 0 7 0 6 0 4 -3 6 0 7 -4 3 0 7 -3 3 -3 7 -4 3 -3 4 -3 6 -7 4 -3 6 0 4 -4 6 0 7 -3 3 0 7 0 7 0 6 0 4 0 6 0 7 0 7 0 3 3 7 4 3 3 7 3 3 4 0 6 3 7 0 3 4 7 3 7 3 3 7 3 3 4 7 0 7 3 50 -83 50 10 23 -20 50 23 17 10 -17 50 57 50 -30 63 -10 30 -34 -10 -40 34 -10 33 -30 27 0 23 20 17 -13 46 -30 17 -43 -33 -34 6 -10 70 -70 27 -26 -3 -27 23 -17 -37 -6 0 -17 -6 -13 23 -47 3 7 -33 -57 -23 -73 13 -20 17 -7 0 -3 -34 -14 0 -6 20 -27 0 -43 40 -44 7 -20 -10 4 -33 -24 -10 -6 -27 36 -50 40 -23 4 -27 -24 -20 -30 10 -6 -70 3 0 3 -7 4 -3 3 -7 0 -3 0 -7 0 -6 0 -7 -3 -3 3 -7 0 -7 -27 7 -16 -13 3 -40 -37 -37 -6 -100 93 -50 87 17 53 -20züGúHìAIûûú[ì~LàM-2098 1627l-16 90 50 10 13 43 -53 107 10 20 60 -10 40 63 30 7 33 -34 27 4 33 46 37 -13 13 13 -10 27 17 13 23 0 20 -20 47 14 36 -27 60 3 17 24 30 3 -20 30 30 27 -7 56 17 -6 0 3 17 27 -10 43 -64 30 -133 23 -90 30 17 50 -17 24 -33 -10 -7 6 10 27 -43 37 6 30 -6 3 -20 -7 -20 24 -44 10 -26 30 -80 -47 -74 17 -30 -24 -20 4 -13 -24 -20 -3 -7 13 -26 -6 26 -47 -23 -83 17 -37 -17 -43 3 -4 40 -23 4 -23 -17 -14 10 -26 -30 -10 0 -50 -23 -37 0 -23 30 -24 3 -20 -7 -3 14 -63 -17 -20 27 -27 -47 -47 -3 -70 0 -33 20 -20 20 10 10 -20 20 3 6 -6 -6 -7 13 -23 27 6 36 -33 14 17 6 6 14 0 3 -13 23 7züGúHìAIûûú[ì~LàM752 2710l24 0 13 20 33 10 -6 37 70 20 23 36 43 17 -83 170 -90 103 -17 60 -56 40 -20 80 -57 70 -43 80 -47 -16 -17 -30 -36 -7 -24 40 -43 33 -23 -33 -67 3 -10 -63 -20 -7 -20 27 -37 -47 -26 -30 3 -43 30 -17 10 -30 40 0 30 -23 37 -87 0 -40 26 10 50 -16 10 -37 60 -57 -36 -46 43 -30 -23 -24 3 -70 -47 -3 -3 -37 27 -13 13 13 37 -20 10 -46 20 -27 63 43 47 -10 13 30 73 -33züGúHìAIûûú[ì~LàM-2148 4220l40 33 54 0 6 50 84 30 56 60 44 17 46 57 104 30 20 6 16 34 -3 36 30 64 -60 113 -3 3 -7 147 43 13 -20 40 40 27 -26 47 30 10 60 76 -7 14 43 63 -53 -7 -37 44 -43 6 -13 80 -40 34 -34 -27 -10 -43 -36 6 -17 37 -27 10 -33 0 -10 -30 -23 -3 -27 -70 -50 16 -17 -16 -10 -60 -30 -7 -30 -50 4 -67 -4 -6 -16 3 -4 -3 10 -27 -30 -47 -43 7 0 17 -7 0 -10 -14 -3 17 -10 3 -33 -6 -97 66 -30 -33 0 -33 3 -4 7 0 7 -3 3 -3 7 0 3 -4 7 -3 3 -3 7 0 6 -4 7 -3 -7 -47 -16 -13 -4 -40 -36 -23 0 -54 -37 -30 0 -33 -57 -73 30 -20 10 -34 -3 -43 -27 -50 4 -70 90 -57 20 -50 40 0 30 -36 43 -24 13 -10 -6 -23 13 -10 63 0züGúHìAIûûú[ì~LàM-1714 4497l10 -37 213 23 53 -43 110 20 24 -37 16 30 40 7 40 -20 14 -33 20 -7 113 23 40 -26 20 23 63 -17 17 10 73 -53 44 23 53 -10 13 70 50 14 0 70 24 13 10 7 -7 53 -60 87 -27 13 -10 57 -26 16 -27 -6 -47 40 -63 123 7 53 -47 30 -10 27 -33 -10 -30 13 -50 -33 -27 0 -40 40 -47 20 -80 -40 -60 63 -80 37 -23 -3 -27 70 -56 10 -34 -17 -43 -63 7 -14 -60 -76 -30 -10 26 -47 -40 -27 20 -40 -43 -13 7 -147 3 -3 60 -113 -30 -64 3 -36 -16 -34 -20 -6m846 186l7 -3 7 -3 3 -4 3 -6 4 -4 0 -6 -4 -4 -3 -6 -3 -7 0 -3 0 -7 3 -3 3 -7 7 -3 3 -4 4 -6 3 -4 3 -3 0 -7 0 -3 -6 0 -4 7 -3 3 -3 7 -4 3 -3 3 -3 7 -7 3 3 4 0 6 0 7 -3 7 0 3 0 7 -3 6 -4 4 0 6 -3 7 3 3züGúHìAIûûú[ì~LàM-721 4687l120 40 77 76 -47 37 -3 50 13 20 -27 67 7 40 -33 -4 -4 14 10 50 -10 16 -40 10 -3 14 -50 23 -53 47 -14 120 -13 10 -47 -14 -13 -20 -37 -10 -56 130 -30 -3 -10 10 26 90 -53 47 27 50 -67 40 3 26 -120 7 -23 23 -40 14 -93 -40 -74 16 -30 -10 7 -43 -33 -40 -127 -37 -33 -33 -64 -27 -6 -23 -30 -3 -10 -77 -20 -43 40 -34 13 -80 43 -6 37 -44 53 7 34 17 56 -10 27 -70 23 3 80 -37 60 -63 80 40 47 -20 40 -40 27 0 50 33 30 -13 33 10 10 -27 47 -30 -7 -53 63 -123 47 -40 27 6 26 -16 10 -57 27 -13züGúHìAIûûú[ì~LàM-524 4803l23 20 23 -10 24 17 43 0 17 23 -10 40 3 104 103 146 54 0 63 47 -77 97 -16 -7 0 3 10 7 -64 220 -56 40 0 33 -34 24 -3 26 -37 30 -36 14 -57 -74 -43 -13 -37 20 -33 -10 -47 10 -43 80 -50 23 -34 -3 -23 -17 -27 7 -40 -40 -120 3 -3 -26 67 -40 -27 -50 53 -47 -26 -90 10 -10 30 3 56 -130 37 10 13 20 47 14 13 -10 14 -120 53 -47 50 -23 3 -14 40 -10 10 -16 -10 -50 4 -14 33 4 -7 -40 27 -67 -13 -20 3 -50 47 -37züGúHìAIûûú[Cfil3LàM-3514 537l-10 33 10 27 -20 16 -27 110 -30 50 -33 0 0 47 -30 37 6 20 -23 46 23 70 -16 34 16 66 -50 80 -33 7 -17 -13 -53 -7 -17 7 4 16 -27 -6 -10 13 -20 -17 -10 10 -7 24 -30 0 -10 26 -73 -10 -97 40 -10 34 -23 10 -37 -20 -3 26 -7 4 -6 -14 -17 4 -10 33 -47 37 -10 -7 0 -27 -16 -3 -4 -17 30 -73 40 -27 -13 -23 -43 -7 -14 34 -30 -44 24 -20 -20 -30 6 -33 -3 -3 -23 -10 0 6 -24 -13 -16 27 -20 -27 20 -30 -7 -50 20 -37 47 -16 0 -14 -20 10 0 -26 40 -27 36 13 30 -33 20 3 7 -13 -10 -27 73 -36 70 40 57 -20 33 6 60 -43 30 17 14 -4 0 -23 16 -10 30 33 30 -6 7 -30 -27 0 -46 -34 10 -43 16 -7 -6 -10 16 -13 17 0 37 -47 13 10 30 -26 20 3 7 -43 40 0 46 -37 20 0 0 33 -3 7 7 10 13 3 7 -23 66 -37 14 7 -20 27züGúHìAIûûú[ìLàM-3174 727l20 -27 -4 -27 40 -10 80 20 20 -10 17 17 47 -13 70 16 90 -6 56 -17 64 20 46 -23 30 10 34 -34 36 -13 70 57 7 20 150 -4 67 20 36 37 47 -10 30 17 290 56 -17 30 14 30 -7 24 -40 -17 -13 20 -47 7 -7 53 -53 3 -17 -30 -26 -6 -47 40 -37 0 -26 56 -17 -13 -37 23 -80 -6 -16 30 -40 -4 -10 24 -30 3 -54 -17 -43 14 -27 36 -60 -10 -36 -23 -17 -40 -20 10 -33 -10 -17 30 -50 -17 -10 27 -73 -37 -30 47 -14 0 -6 13 10 7 -4 17 -63 16 -77 -10 -33 27 -33 -20 -10 -50 -40 -20 -24 13 -13 -23 30 -40 40 -10 23 -37 -26 -20 -44 24 0 -47 -46 -27 -4 -46 -33 -30 -3 -34 -20 -6 3 -30 37 0 30 -40züGúHìAIûûú[ìLàM-1831 823l157 0 220 -73 20 20 -34 17 4 16 13 4 40 -37 80 -30 77 33 0 14 -14 3 17 20 50 -3 7 10 46 3 44 33 0 27 -17 13 -77 -3 -63 47 10 73 -43 0 -77 -30 -50 60 -43 7 -7 26 -23 14 -7 0 -7 -4 -6 0 -4 0 -6 -3 -7 0 -3 3 -7 4 -3 3 -4 7 -3 3 -3 3 -7 4 -3 3 -7 0 -7 -3 -3 0 -7 -4 -6 0 -7 0 -3 4 -7 0 -3 3 -4 7 4 6 3 4 3 3 7 3 7 -3 6 0 7 0 7 -3 6 0 7 0 3 0 7 -4 7 -3 3 0 7 -3 -17 50 20 16 53 -30 10 20 -43 27 10 23 33 -20 4 27 3 27 -40 0 -27 30 -76 -4 -57 -36 30 -17 -3 -20 -30 17 -14 -7 -10 -77 -60 -13 -33 -53 -23 -7 -57 27 -87 3 -20 -50 -36 -20 3 -57 53 -3 7 -53 47 -7 13 -20 40 17 7 -24 -14 -30 17 -30züGúHìAIûûú[ìLàM-778 1040l10 30 -40 27 4 23 26 13 77 0 80 44 10 36 -23 34 3 36 -27 14 20 56 -36 17 -27 -20 -47 37 24 30 23 -20 13 26 -13 50 -37 7 -3 -3 -7 0 -3 -4 -7 0 -6 0 -7 0 -3 4 -7 0 -7 0 -3 3 -7 3 -6 0 -4 0 -6 0 -7 -3 -7 0 -3 -3 -3 -7 -4 -3 -3 -4 -7 0 -10 -3 10 -53 -33 -27 -33 47 -4 -7 -3 -3 -3 -7 -4 -3 -3 -7 -3 -3 -4 -7 -3 -3 0 -7 -3 -10 0 -3 -4 -7 0 -7 -3 -3 -3 -7 -4 -3 -6 -3 -4 -4 -3 -3 -7 -3 -6 0 -4 -4 -6 0 -7 -3 -3 0 -7 -3 -3 -4 -7 -3 -3 -3 -4 -4 -6 -6 -4 -4 -3 -3 -3 -7 -4 -3 -6 0 -7 0 -7 0 -3 0 -7 0 -10 3 -10 -10 10 -66 -6 -7 -10 10 -24 0 -10 27 -33 -34 33 -56 60 33 67 -23 -43 -57 -60 -7 16 -13 4 -47 -24 -16 17 -27 57 3 3 -36 30 3 20 40 -13 40 93 43 83 7 -10 -40 60 -10m-143 217l-20 43 53 50 44 -10 23 20 53 0 10 -7 -3 -16 -10 0 -10 6 -7 -3 -20 -17 17 -30 -7 -16 -123 -20züGúHìAIûûú[ìLàM1532 1380l114 27 3 6 20 47 23 13 40 -10 27 -43 67 -17 93 27 20 30 30 10 23 -23 40 6 20 -43 57 -10 80 -53 50 0 30 30 43 -10 0 56 20 14 37 -7 20 20 -10 40 -37 23 -26 -20 -24 37 10 63 34 14 20 30 -10 33 23 40 -10 50 -53 40 -24 43 -53 54 -60 23 -23 30 -14 -60 -56 -3 -60 26 -44 -46 -73 -14 -7 -43 4 -7 20 4 50 -30 -4 -17 -26 -20 26 -10 10 -37 -10 -30 -36 4 -34 -37 -33 10 -20 -27 -73 30 -64 -23 -16 -20 3 -13 23 0 0 -14 -10 -13 17 -47 -77 -13 -43 10 3 -43 -30 3 0 -3 4 -34 -44 -13 0 -40züGúHìAIûûú[ìLàM1396 2057l26 6 4 20 -27 20 47 30 3 54 57 26 -10 14 16 33 24 -3 -7 30 -20 3 3 7 30 10 0 23 -230 77 -23 40 -30 -10 -77 30 -140 176 24 27 33 -3 57 36 -4 4 -63 46 -50 64 -33 0 -7 -14 43 -10 -3 -30 -47 17 -40 70 -43 -17 -23 -36 -70 -20 6 -37 -33 -10 -13 -20 -24 0 -3 -10 33 -20 24 -37 -17 -53 23 -57 -13 -36 -27 -10 -6 -24 -7 -40 47 -26 6 -37 34 -23 0 -4 3 -23 23 0 10 -23 74 -10 20 16 76 -36 30 0 14 -24 20 14 43 -10 63 -74 -10 -20 10 -6 27 10 30 -14 -7 -36 27 -27 93 3 4 -16züGúHìAIûûú[ìLàM-601 4727l67 -124 63 -36 30 -47 33 20 47 -13 87 -64 3 -3 37 7 23 40 53 -10 44 -44 -17 -113 27 -30 3 -57 27 -26 20 -7 16 13 47 -40 47 -16 30 10 6 26 50 37 10 113 -43 60 7 50 50 14 16 33 -6 57 -30 56 6 34 7 10 67 103 43 40 43 13 7 27 -7 10 -10 -7 -13 7 -30 60 33 40 40 13 7 -3 -3 -17 3 0 20 24 -20 23 -113 40 -37 -23 -50 6 -27 17 4 10 -10 3 -54 -26 -20 16 -43 0 -70 54 -17 50 -23 0 -60 33 -63 -47 -54 0 -103 -146 -3 -104 10 -40 -17 -23 -43 0 -24 -17 -23 10 -23 -20 -77 -76züGúHìAIûûú[ìLàM-2468 4647l57 73 0 33 37 30 0 54 36 23 4 40 16 13 7 47 -7 3 -6 4 -7 0 -3 3 -7 3 -3 4 -7 0 -3 3 -7 3 -7 0 -3 4 0 33 30 33 97 -66 33 6 10 -3 3 -17 10 14 7 0 0 -17 43 -7 30 47 -10 27 4 3 16 -3 4 6 -4 67 30 50 30 7 10 60 17 16 50 -16 27 70 -44 3 7 37 -40 30 -23 -34 -30 30 -24 -6 -6 6 16 17 -6 20 -60 43 -70 17 -7 17 -43 36 -20 -3 -24 -37 -26 -3 -57 50 -10 -3 -10 -24 23 -20 0 -26 -33 -7 -17 10 17 30 -3 17 -30 33 -17 0 -13 -17 -24 -10 -33 4 -13 20 -84 13 -26 43 -100 -3 -64 -33 -43 -4 0 -3 -20 -13 -30 10 -27 -30 14 -40 -17 -64 27 -30 -4 -86 14 -40 -27 -37 23 -13 -6 -37 30 -17 -47 -90 0 -33 -80 -10 -7 -17 44 -60 116 -23 20 20 17 -3 7 -40 36 -20 -20 -27 20 -33 -26 -7 -4 -17 44 -30 96 -20 20 -40 -3 -33 50 -47 47 -10 26 10 10 20 -30 20 14 30 50 -40 26 4züGúHìAIûûú[ìLàM-2871 5540l0 3 43 4 64 33 100 3 26 -43 84 -13 13 -20 33 -4 24 10 13 17 17 0 30 -33 3 -17 -17 -30 17 -10 33 7 0 26 -23 20 10 24 10 3 57 -50 26 3 24 37 20 3 43 -36 23 30 7 40 -27 50 -33 10 -37 -30 -26 -4 -30 30 30 44 -24 66 -36 34 -37 10 -40 63 -47 -10 -6 3 3 20 43 10 20 -23 17 -3 30 3 43 80 10 60 10 7 17 -7 20 20 -43 60 -14 53 -6 0 -14 -13 -30 -3 -6 3 0 77 -90 43 -17 -3 -40 -37 -73 -17 -54 -66 -16 -7 -57 -3 -17 -14 -36 -63 -27 -17 -90 -170 17 0 26 47 7 3 20 -26 -3 -7 -17 3 -7 -13 0 -37 -36 -30 -44 -3 -33 -73 10 -24 53 -30 14 -60 13 -13 30 0züGúHìAIûûú[Cfil4LàM-1104 853l26 -10 37 20 -3 -30 46 -23 4 -20 73 3 23 -20 34 34 100 23 50 40 -10 23 10 17 -37 47 -3 63 -24 20 -60 10 10 40 -83 -7 -93 -43 13 -40 -20 -40 -30 -3 -3 36 -57 -3 -67 -27 -83 47 -10 -73 63 -47 77 3 17 -13 0 -27züGúHìAIûûú[ìLàM-378 833l30 47 -30 7 -23 46 -43 10 6 60 -60 47 -13 60 -27 7 -20 26 -40 -10 -23 44 -80 -44 -77 0 -26 -13 -4 -23 40 -27 -10 -30 24 -20 3 -63 37 -47 -10 -17 10 -23 50 17 63 -14 40 17 127 -40 46 -37 10 20züGúHìAIûûú[ìLàM-4108 1297l10 -34 97 -40 73 10 10 -26 30 0 7 -24 10 -10 20 17 10 -13 27 6 -4 -16 17 -7 53 7 17 13 33 -7 14 4 -7 53 57 47 -37 100 -53 20 -87 -17 -93 50 6 100 37 37 -3 40 16 13 27 -7 0 7 -3 7 3 3 0 7 0 6 0 7 0 3 -3 7 -4 3 -3 7 -3 0 -7 3 -3 4 -7 3 -7 0 -3 3 -7 0 -6 4 -4 3 -6 3 -4 4 -3 3 -7 3 -3 4 -7 3 -3 3 -7 0 -6 4 -4 0 -6 3 -7 0 -7 0 -3 0 -7 0 -6 0 -7 0 -3 0 -7 -3 -7 0 -3 0 -7 0 -6 0 -7 3 -3 3 -4 4 -6 3 -4 3 -6 4 -4 0 -6 0 -7 -4 -7 0 -3 4 -7 3 -3 0 -7 3 -3 4 -7 3 -3 3 -3 7 -4 3 -3 7 -3 3 -4 4 -3 6 -7 4 -3 3 -3 3 -4 4 -6 6 -4 4 -3 3 -73 40 0 -160 23 -13 7 3 6 -10 -6 -13 43 -47 83 -43 7 -40 -7 -7 -30 50 -70 13 0 -53 20 -3 54 -64 -7 -10 -40 30 -43 0 -17 -46 -27 -7 4 -10 26 -17 10 14 -3 10 10 10 13 -4 -3 -20 13 -3 -13 -53 33 -17 20 -43züGúHìAIûûú[ìLàM1599 1510l43 -10 77 13 -17 47 10 13 0 14 -23 0 -3 13 16 20 64 23 73 -30 20 27 33 -10 34 37 36 -4 10 30 -10 37 -26 10 26 20 4 17 -50 30 -20 -4 -4 7 7 43 73 14 44 46 60 -26 56 3 14 60 -274 167 -70 126 -260 87 0 -23 -30 -10 -3 -7 20 -3 7 -30 -24 3 -16 -33 10 -14 -57 -26 -3 -54 -47 -30 27 -20 -4 -20 -26 -6 -20 -27 43 -20 -37 -43 17 -17 -3 -50 26 -7 4 24 13 -14 23 20 27 -16 17 -67 -30 -10 36 -37 0 -33 17 -7 3 -6 -20 -7 24 -17 -14 -20 24 -26 -14 -37 20 -23 -6 -17 -27 -7 7 -26 -14 -34 87 -23züGúHìAIûûú[ìLàM-1308 2450l30 50 34 10 -4 23 24 37 -57 147 33 26 -13 50 33 14 10 -14 14 34 26 -4 -10 37 24 23 0 24 20 -7 30 20 0 50 26 13 14 24 -34 106 10 7 40 -27 17 84 0 3 -13 10 20 40 -57 17 -7 -17 -40 30 -26 0 -4 0 -3 3 -7 0 -6 0 -4 0 -6 0 -7 0 -7 0 -10 0 -6 0 -7 0 -3 0 -7 0 -7 0 -6 0 -27 0 -13 20 -60 20 0 20 -50 10 -50 47 -7 -3 -23 -27 3 -3 3 -4 7 -3 3 -3 7 -4 3 -3 7 -3 3 0 7 -4 3 -3 7 -3 7 0 6 0 4 0 6 -4 0 -6 4 -4 3 -6 3 -4 4 -3 6 -3 4 -4 3 -6 7 -4 3 -3 3 -3 7 -4 3 -3 7 0 13 -23 -6 -24 -57 -20 -20 7 -23 -27 -110 -30 -34 -36 -43 16 -30 -36 -30 13 -30 40 -30 -27 -7 -26 -16 -4 -30 44 -47 30 -27 -14 24 -56 -4 -27 10 -7 30 14 24 -60 56 -7 0 -97 24 -26 -4 -24 7 -6 17 13 40 -13 6 -50 47 -70 53 0 17 -87 27 -43 63 -24 90 -110 43 -13züGúHìAIûûú[ìLàM3082 3223l-163 -76 -83 16 -10 -6 0 -47 -24 -17 20 -30 124 -10 16 -10 0 -10 14 24 16 -7 0 -3 4 -7 13 0 23 43 37 4 13 53 24 23 0 7 -20 -7 0 7 16 20 -20 33züGúHìAIûûú[ìLàM-131 3167l67 3 3 -40 13 0 14 27 16 30 54 0 40 36 0 20 -47 20 -40 14 -37 -7 -43 -7 -40 -96züGúHìAIûûú[ìLàM2509 3607l-7 10 -3 0 -60 53 -13 0 -54 -60 -73 10 -30 -10 -33 -70 13 -27 -47 -36 -73 30 -10 46 -7 0 -30 -43 -50 0 -13 -30 7 -27 113 -80 107 -113 36 -10 54 -47 66 -6 57 -37 17 3 3 4 -63 40 13 30 43 -20 7 3 -7 30 -33 7 10 36 70 34 53 -47 60 23 10 20 -13 64 -23 6 6 34 -53 60 -13 66 -7 14 -27 36 -3 4züGúHìAIûûú[ìLàM242 3353l37 47 20 -27 20 7 10 63 67 -3 23 33 43 -33 24 -40 36 7 17 30 47 16 -7 47 -63 113 -7 57 0 7 27 83 46 83 -6 24 -4 6 37 84 90 103 0 23 -23 -23 -40 23 -14 -16 -30 23 -53 -20 -83 60 -67 3 0 24 40 3 7 13 -67 47 -17 -37 -50 -16 -46 23 -20 -27 -27 0 -13 -16 0 -67 -24 -43 -103 10 -73 -84 40 -106 0 -4 10 -76 -100 -20 -34 -27 -26 10 -34 -40 -13 -20 13 -87 64 -86 36 10 27 -14 -3 -43 36 -87 -3 -46 -3 -17 36 -17 80 -10 44 14 23 76 53 -20züGúHìAIûûú[ìLgM2382 3780l-23 -20 3 -3 24 -4 3 7 -7 20zGúHìAIûûú[ìLàM1499 4057l-13 -27 -7 0 -57 0 -10 -3 -6 -54 3 -6 40 -10 3 -10 -6 -34 36 -30 94 -43 43 17 -7 20 17 20 0 10 -40 33 -23 43 -40 20 -4 47 -23 7züGúHìAIûûú[ìLàM699 4060l130 50 0 17 27 33 -70 50 -14 30 -60 13 -33 67 -33 -3 -117 63 -23 30 -10 50 -20 -7 -30 20 0 94 -64 33 -3 33 -7 94 -26 13 -34 93 -43 -13 -43 -40 -67 -103 -7 -10 -6 -34 30 -56 6 -57 -16 -33 -50 -14 -7 -50 43 -60 -10 -113 67 -23 -33 -64 20 -16 13 16 27 0 20 27 46 -23 50 16 17 37 67 -47 -7 -13 -40 -3 0 -24 67 -3 83 -60 53 20 30 -23 14 16 40 -23 23 23 0 -23züGúHìAIûûú[ìLàM1519 4193l-10 -56 27 -30 6 0 34 46 23 10 20 -10 3 0 4 7 -4 7 -23 13 -33 -17 -14 0 -33 30züGúHìAIûûú[ìLàM-1934 5297l23 3 10 30 33 0 27 -10 17 -37 36 -6 10 43 34 27 20 43 10 77 30 3 6 23 64 27 33 33 127 37 33 40 -7 43 -33 -13 -77 23 -66 -20 -34 27 -156 -7 -64 94 -53 20 -20 43 -57 17 -126 -7 -134 57 -43 73 -20 -20 -17 7 -10 -7 -10 -60 -43 -80 -30 -3 -17 3 -20 23 -43 -10 -3 -20 6 -3 47 10 40 -63 37 -10 36 -34 24 -66 -30 -44 30 -30 26 4 37 30 33 -10 27 -50 -7 -40 -23 -30 7 -17 70 -17 60 -43 6 -20 -16 -17 6 -6 24 6 30 -30 23 34 40 -30 -7 -37 44 -3züGúHìAIûûú[Cfil5LäM-3514 537l20 -27 -14 -7 -66 37 -7 23 -13 -3 -7 -10 3 -7 0 -33 -20 0 -46 37 -40 0 -7 43 -20 -3 -30 26 -13 -10 -37 47 -17 0 -16 13 6 10 -16 7 -10 43 46 34 27 0 -7 30 -30 6 -30 -33 -16 10 0 23 -14 4 -30 -17 -60 43 -33 -6 -57 20 -70 -40 -73 36 10 27 -7 13 -20 -3 -30 33 -36 -13 -40 27 0 26 20 -10 0 14 -47 16 -20 37 7 50 -20 30 20 27 16 -27 24 13 0 -6 23 10 3 3 -6 33 20 30 -24 20 30 44 14 -34 43 7 13 23 -40 27 -30 73 4 17 16 3 0 27 10 7 47 -37 10 -33 17 -4 6 14 7 -4 3 -26 37 20 23 -10 -20 43 -33 17 13 53 -13 3 3 20 -13 4 -10 -10 3 -10 -10 -14 -26 17 -4 10 27 7 17 46 43 0 40 -30 7 10 -54 64 -20 3 0 53 70 -13 30 -50 7 7 -7 40 -83 43 -43 47 6 13 -6 10 -7 -3 -23 13 0 160 73 -40 3 -3 -73 60 -10 83 23 47 24 156 -10 40 23 64 10 103 20 33 7 7 6 87 -66 250 3 0 23 -34 20 -80 10 0 7 10 0 7 -20 20 -3 10 0 20 23 10 0 3 -17 4 -20 50 -33 0 -10 26 -60 214 -37 83 27 40 0 3 -123 287 -20 103 -94 117 -73 33 -7 30 10 24 0 43 -53 113 0 94 -57 120 14 26 -7 20 7 14 80 23 100 -17 20 -13 30 -83 36 -50 14 0 3 50 27 50 -4 13 -70 33 4 17 36 -3 0 3 -16 7 -4 13 -3 0 -17 -10 -20 7 7 30 0 3 -10 -13 -23 -4 -4 -3 7 -3 -10 -24 -13 0 -44 14 -6 13 33 83 -20 74 7 6 16 -10 57 0 110 -53 63 33 10 -36 10 0 10 6 4 10 -20 37 16 17 -3 6 -53 -16 0 10 -7 0 -17 -17 -3 0 30 50 10 127 -33 123 -37 57 43 30 -10 126 20 14 0 6 -10 7 -20 70 10 107 -53 103 7 37 -37 53 3 30 -50 97 24 16 70 -43 93 -10 33 -37 44 17 3 -13 7 3 3 17 27 16 56 -10 54 27 60 -13 113 66 110 -3 127 -87 60 -20 20 4 13 -10 -3 -47 6 13 20 37 10 7 27 -14 113 -13 80 33 10 -6 -6 -14 30 -16 6 3 -10 27 217 140 57 70 23 56 20 10 13 -6 17 -50 30 -10 20 13 -30 0 -13 13 -14 60 -53 30 -10 24 33 73 44 3 36 30 0 37 7 13 17 -3 3 7 -20 26 -7 -3 -26 -47 -17 0 90 170 27 17 36 63 17 14 57 3 16 7 54 66 73 17 40 37 17 3 90 -43 0 -77 6 -3 30 3 14 13 0 24 6 -24 14 -53 43 -60 43 -73 134 -57 126 7 57 -17 20 -43 53 -20 64 -94 156 7 34 -27 66 20 77 -23 33 13 30 10 74 -16 93 40 40 -14 23 -23 120 -7 120 -3 40 40 27 -7 23 17 34 3 50 -23 43 -80 47 -10 33 10 37 -20 43 13 57 74 36 -14 37 -30 3 -26 34 -24 0 -33 56 -40 64 -220 -10 -7 0 -3 16 7 77 -97 60 -33 23 0 17 -50 70 -54 43 0 20 -16 54 26 10 -3 -4 -10 27 -17 50 -6 37 23 113 -40 20 -23 -20 -24 -3 0 3 17 -7 3 -40 -13 -33 -40 30 -60 13 -7 10 7 7 -10 -7 -27 34 -93 26 -13 7 -94 3 -33 64 -33 0 -94 30 -20 20 7 10 -50 23 -30 117 -63 33 3 33 -67 60 -13 14 -30 70 -50 -27 -33 0 -17 -130 -50 -90 -103 -37 -84 4 -6 6 -24 -46 -83 -27 -83 0 -7 7 -57 63 -113 7 -47 43 -80 57 -70 20 -80 56 -40 17 -60 90 -103 83 -170 40 -70 47 -17 3 30 -43 10 7 14 33 0 50 -64 63 -46 4 -4 -57 -36 -33 3 -24 -27 140 -176 77 -30 30 10 23 -40 230 -77 260 -87 70 -126 274 -167 23 -30 60 -23 53 -54 24 -43 53 -40 10 -50 -23 -40 10 -33 -20 -30 -34 -14 -10 -63 24 -37 26 20 37 -23 10 -40 -20 -20 -37 7 -20 -14 0 -56 -26 -34 3 -23 -50 -23 -17 -220 -3 0 -10 43 -23 -3 -10 -24 20 -43 20 -7 0 -16 -20 -14 3 -6 13 0 17 -67 -17 -10 0 -7 17 4 23 -60 80 -90 64 -30 43 6 70 -90 190 -140 47 0 10 40 30 20 40 0 3 -6 -13 -10 20 -17 16 7 7 23 37 -3 60 -7 40 0 36 23 34 14 16 0 37 6 0 -3 3 -20 24 -3 23 23 17 20 43 3 33 -3 34 0 20 -17 -20 -10 13 -10 53 0 24 -3 16 -7 0 4750 -36 -6 -277 40 -37 -17 -86 30 -50 53 -90 44 -100 0 -50 -20 -10 43 -40 17 -30 -7 -40 -40 -70 13 -57 84 -123 80 -100 6 -10 -20 -34 -6 -183 66 -93 0 -220 47 -77 -10 -50 30 -50 0 -67 23 -66 30 -44 54 -66 36 -64 10 -106 80 -67 20 -23 44 -50 23 -47 47 -3 10 -40 120 -87 70 -110 -24 -3 -3 -7 -30 -40 -23 -67 20 -23 76 -30 10 -30 37 -37 0 -16 -20 -64 -17 -26 40 -37 -3 -60 33 -70 80 -20 0 -40 130 -27 37 -43 33 -53 4 -37 20 -140 120 -23 -4 -87 40 -57 4 -63 -20 -40 10 -67 -27 -50 -20 -53 40 -100 -3 -57 -24 -66 -66 20 36 53 44 -20 6 -67 -33 -10 -83 -20 -40 -13 -34 10 -40 -17 -6 -53 110 -33 0 -34 36 -83 34 -140 -17 -73 -50 -37 10 -13 40 -30 13 -50 -10 -20 -33 -34 20 -36 -7 -60 34 -67 6 -43 27 -220 -43 -217 -147 -67 -97 -43 -23 -17 -80 -26 -13 -14 -107 30 -30 -3 -13 -53 -10 -47 3 -70 60 -60 -7 -47 37 -70 -13 -26 10 -60 213 -170 433 -144 284 -2296 0 0 -6920 5206 0 -33 183 3 73 -43 80 -33 70 -44 40 -43 4 -17 16 -10 -20 -46 37 -127 40 -40 -17 -63 14 -50 -17 -50 -40 -100 -23 -34 -34 -23 20 -73 -3 -4 20 -46 23 3 30 -37 -20 -26 10 -44 -33 -46 -3 -7 -10 -50 3 -17 -20 14 -3 0 -14 -77 -33 -80 30 -40 37 -13 -4 -4 -16 34 -17 -20 -20 -220 73 -157 0 -290 -56 -30 -17 -47 10 -36 -37 -67 -20 -150 4 -7 -20 -70 -57 -36 13 -34 34 -30 -10 -46 23 -64 -20 -56 17 -90 6 -70 -16 -47 13 -17 -17 -20 10 -80 -20 -40 10 4 27 -20 27 3 -50 -103 -10 -34 -24 -36 -63 -54 -20 4 -13 -44 -4 -20 34 -10 -7 -10 -37 -36 4m6596 2686l20 -33 -16 -20 0 -7 20 7 0 -7 -24 -23 -13 -53 -37 -4 -23 -43 -13 0 -4 7 0 3 -16 7 -14 -24 0 10 -16 10 -124 10 -20 30 24 17 0 47 10 6 83 -16 163 76m-573 384l3 -4 27 -36 7 -14 13 -66 53 -60 -6 -34 23 -6 13 -64 -10 -20 -60 -23 -53 47 -70 -34 -10 -36 33 -7 7 -30 -7 -3 -43 20 -13 -30 63 -40 -3 -4 -17 -3 -57 37 -66 6 -54 47 -36 10 -107 113 -113 80 -7 27 13 30 50 0 30 43 7 0 10 -46 73 -30 47 36 -13 27 33 70 30 10 73 -10 54 60 13 0 60 -53 3 0 7 -10m-127 173l7 -20 -3 -7 -24 4 -3 3 23 20m-883 277l23 -7 4 -47 40 -20 23 -43 40 -33 0 -10 -17 -20 7 -20 -43 -17 -94 43 -36 30 6 34 -3 10 -40 10 -3 6 6 54 10 3 57 0 7 0 13 27m20 136l33 -30 14 0 33 17 23 -13 4 -7 -4 -7 -3 0 -20 10 -23 -10 -34 -46 -6 0 -27 30 10 56züGúHìAIûûú[ìLàM-1494 1087l3 3 3 7 4 3 0 7 0 6 -4 4 -3 6 -7 -3 -3 0 -7 -3 -6 0 -4 0 -6 0 -10 0 -7 3 -3 0 -7 3 -7 4 -3 0 -7 0 -6 0 -7 3 -7 0 -6 0 -7 3 -7 -3 -3 -3 -3 -4 -4 -6 4 -7 3 -3 7 0 3 -4 7 0 6 0 7 4 3 0 7 3 7 0 3 -3 7 -4 3 -3 3 -3 4 -7 3 -3 7 -4 3 -3 7 0 6 3 4 0 6 0 7 4 7 0züGúHìAIûûú[ìLàM-3568 1347l0 -7 -3 -7 -3 -3 0 -7 0 -6 0 -7 0 -3 3 -7 0 -7 3 -3 4 -7 6 -3 4 -3 3 -4 3 -6 0 -4 4 -6 0 -7 3 -3 3 -4 7 -6 3 -4 4 -3 3 -7 3 -3 0 -7 4 -3 3 -7 3 -3 7 -3 3 -7 4 -3 6 0 7 -4 7 4 -4 3 -3 7 -3 3 -4 7 -3 3 -3 3 -7 4 -7 3 -3 3 0 7 -3 3 -4 7 -3 3 -3 7 -4 3 0 7 -3 3 -3 7 -4 3 0 7 0 7 -6 3 -4 3 -6 4 0 3 -4 7 0 6 0 4 0 6 0 7 0 7 -3 3 -7 7züGúHìAIûûú[ìLàM-2534 1950l3 7 0 6 -3 7 -4 3 -3 7 -3 3 0 7 0 3 0 7 3 7 3 3 4 7 3 3 0 7 3 6 0 7 0 3 -6 4 -7 3 -7 0 -3 0 -7 0 -6 0 0 7 -4 6 4 4 3 6 3 7 0 3 -6 4 -7 0 -7 -4 -3 4 -7 0 -3 3 -3 7 0 6 -4 4 0 6 0 7 -3 3 -7 4 -3 0 -7 0 -6 3 -4 7 0 3 -3 7 0 6 3 4 0 6 -3 4 -7 3 -3 3 -3 -6 0 -7 -4 -3 0 -7 0 -7 -3 -3 -7 -3 0 -7 0 -7 4 0 6 0 7 0 3 -3 7 -3 7 -4 3 0 7 -3 3 -3 0 -7 0 -7 0 -6 3 -7 4 -3 3 0 7 0 3 -7 7 -3 0 -4 3 -6 3 -4 4 -6 6 -4 4 -3 3 -3 3 -4 4 -6 0 -7 0 -7 0 -3 -4 -7 -3 -3 -3 -7 0 -6 0 -7 3 -3 3 -7 4 0 6 0 4 -3 3 -7 3 -3 4 -7züGúHìAIûûú[ìLàM759 2217l7 3 3 3 7 4 3 3 3 3 4 7 3 3 3 7 -10 0 -6 0 -7 -3 -3 -4 -4 -3 -3 -7 -7 -3 -3 -3 -7 0 -6 0 -4 0 -6 0 -7 3 -7 3 -3 4 -3 3 0 7 0 6 -4 4 0 6 -3 7 -3 3 -4 7 -3 3 -3 7 -4 3 -3 4 -7 3 -6 0 -4 3 -6 0 -4 4 -3 6 -3 4 -4 6 0 7 -3 3 -3 7 -7 3 -3 0 -7 0 -7 0 -3 -3 -7 -3 -6 0 -4 0 -6 -4 -7 0 -7 0 -3 -3 0 -10 7 -3 3 -4 7 0 6 0 4 0 6 4 7 3 3 0 7 0 7 0 0 -7 0 -6 3 -4 0 -6 0 -7 7 -3 3 -4 7 0 6 0 4 0 6 0 7 -3 3 -3 4 -4 3 -6 0 -7 3 -7 0 -6 4 -4 3 -6 3 -4 7 -3 3 -3 4 -7 3 -3 7 -4 3 -3 7 0 6 -3 4 0 6 0 7 3 3 3 7 4züGúHìAIûûú[ìLàM-2838 2350l-3 -3 3 0 7 -4 3 -3 7 -3 3 -7 4 -3 3 -7 3 -3 7 0 3 3 7 7 0 3 0 7 0 6 0 7 0 7 3 3 4 3 6 0 7 0 3 4 4 3 6 7 0 3 4 7 3 6 3 4 4 3 6 0 4 -3 6 -7 4 0 3 3 7 7 6 3 4 4 3 6 3 4 4 3 3 7 7 3 3 3 3 7 4 3 3 7 3 3 4 7 0 3 3 7 0 7 0 3 -7 7 -3 -4 -3 -3 -7 -3 -3 -4 -4 -6 0 -7 -3 -3 0 -7 -3 -7 -4 -3 -3 -3 -7 0 -6 0 -7 0 -3 3 0 7 -4 0 -3 -4 -3 -6 0 -4 0 -6 0 -7 -4 -3 -3 -7 -3 -3 -7 0 -7 0 -3 0 -3 -7 -7 -3 -3 -4 -7 0 -7 -3 -3 -3 -3 -7 -7 0 -3 3 0 7 -4 3 -3 7 -7 3 -3 4 -7 -4 0 -3 -3 -7 3 -6 4 -4 0 -6 3 -7 -3 -7 -4 -3 -3 -3 -7 -7züGúHìAIûûú[ìLàM-804 2803l0 10 -4 4 -6 3 -7 0 -3 3 -4 4 -6 3 -4 7 -3 3 0 7 -3 3 0 7 0 6 0 7 3 3 7 4 3 3 3 7 -3 3 -3 7 -4 3 -3 3 -3 7 0 7 0 3 -4 7 -3 3 -3 7 -4 0 -6 -7 3 -7 0 -3 0 -7 3 -6 0 -7 4 -3 0 -7 -4 -3 -3 -7 -3 -3 0 -7 3 -7 3 -3 0 -7 4 -6 0 -4 3 -6 3 -4 4 -6 0 -7 3 -3 3 -7 4 -3 6 0 7 -4 7 0 3 0 7 0züGúHìAIûûú[ìLàM-731 2977l7 0 6 0 7 3 3 3 0 4 -3 6 -7 0 -6 0 -4 -3 -6 0 -7 -3 -3 -4 -7 0 -3 -3 -7 -3 -3 0 -7 -4 -7 0 -6 0 -4 0 -6 0 -7 0 -7 0 -3 4 -7 0 -6 3 -4 3 -3 4 -3 6 -4 4 0 6 0 7 0 3 4 7 3 3 3 7 4 3 3 4 3 6 0 7 0 3 -3 7 0 7 -3 6 -4 0 -6 0 -7 0 -3 -3 -4 -3 -3 -7 0 -3 -3 -7 0 -7 0 -6 0 -4 0 -6 -4 -7 -3 -3 -7 -4 -3 -3 -7 -3 0 -4 4 -6 6 -4 4 -6 3 -4 3 -3 7 -3 3 -4 7 -3 7 0 3 -3 7 -4 3 0 7 0 6 0 7 0 3 0 7 -3 7 0 3 -3 7 0 6 -4 4 0 6 0 7 0 3 7 0 3 4 7 3 3 3 4 7 0züGúHìAIûûú[ìLàM-2711 2997l3 6 -3 7 -3 3 -4 4 -3 6 -3 4 -7 3 -3 3 -4 4 -3 6 0 7 0 7 0 3 3 7 0 6 7 4 3 3 7 3 3 0 7 4 0 6 0 7 0 7 -3 3 -4 3 -3 4 -7 3 -3 3 -7 0 -6 0 -7 4 -7 0 -3 -4 -7 -3 -3 -3 0 -7 3 -3 0 -7 4 -7 3 -3 3 -3 4 -7 6 -3 0 -7 0 -3 0 -7 -3 -7 -3 -3 -7 0 -3 -3 -7 3 -7 0 -6 3 -7 0 0 -3 3 -7 4 -6 6 -4 4 4 6 0 7 3 3 0 7 -7 3 -3 7 -3 3 -4 4 -3 3 -7 3 -3 4 -3 3 -7 10 -3züGúHìAIûûú[ìLäM-3178 3467l-3 -7 0 -3 3 -7 4 -3 3 -7 3 -3 4 -7 3 -3 3 -7 0 -3 4 -7 3 -7 3 -3 0 -7 4 -3 3 -7 3 -3 0 -7 4 -3 3 -7 3 -3 7 -3 3 -4 7 -3 3 -3 7 -4 3 0 7 -3 0 -7 0 -6 0 -4 0 -6 3 -7 7 3 3 4 -3 6 0 7 3 3 7 0 3 -3 7 -3 3 -4 4 -3 6 -3 7 -4 3 0 7 -3 3 -3 7 -4 3 0 7 -3 7 0 6 0 4 7 0 3 -7 0 -7 0 -3 3 -7 4 -6 3 -4 0 -6 0 -7 3 -3 0 -7 4 -3 3 -7 3 -3 4 -4 3 -6 3 -4 7 -3 3 -7 0 -6 0 -4 4 -6 0 -7 3 -7 0 -3 7 0 3 -3 7 -4 3 0 7 -3 6 -3 4 0 6 -4 4 -3 6 -3 4 -4 6 -3 4 -3 6 -4 4 -3 3 -7 7 4 3 3 3 7 -3 3 -3 7 -4 3 0 7 -3 3 -3 7 0 6 -4 4 -3 6 0 7 0 7 -3 3 0 7 -4 3 -3 3 -3 7 -4 3 0 4 7 -4 3 -6 4 0 6 3 4 7 0 6 0 7 -4 3 -3 4 -3 6 0 7 0 7 -4 3 4 3 3 4 7 3 6 3 4 4 3 6 3 4 4 6 3 4 3 3 4 7 0 6 3 7 -3 0 -4 3 -6 7 -4 7 0 3 4 7 0 6 3 0 3 0 7 7 3 3 0 7 0 3 -3 7 -3 3 -4 7 -3 7 0 3 0 7 -3 6 0 4 0 6 0 7 0 7 -4 3 0 7 0 6 0 7 -3 3 0 7 -3 7 0 3 -4 7 -3 3 0 7 -3 6 0 4 -4 6 -3 7 0 3 -3 7 -4 7 0 3 0 7 -3 3 -3 3 -4 7 -6 0 -7 0 -3 7 -7 3 0 0 7 0 6 3 7 -10 7 -3 3 -3 3 -7 4 -3 6 -4 4 -6 0 -4 0 -6 0 -7 3 -3 0 -7 3 -7 4 -3 0 -7 3 -3 3 -7 4 -6 0 -4 3 -6 3 -7 0 -3 4 -7 0 -7 0 -3 0 -7 0 -6 0 -7 0 -3 3 -7 0 -7 3 -3 0 -7 0 -6 4 -7 0 -3 0 -7 3 -7 0 -3 3 -7 0 -6 4 -4 3 -3 7 3 3 4 7 0 6 3 4 3 3 4 7 6 3 4 7 3 3 3 3 4 7 3 3 3 4 4 6 6 0 4 4 6 3 7 0 7 0 3 0 7 0 6 -3 7 0 3 0 7 0 7 3 3 3 3 4 7 3 3 3 7 4 3 3 7 3 3 4 7 3 3 3 7 0 7 4 3 0 7 3 3 3 0 7 -7 3 -3 0 -7 0 -6 0 -4 -3 -6 -3 -4 -4 -6 -3 -4 -3 -3 -4 -7 -3 -3 -3 -7 0 -6 -4 -4 -3 -6 0 -7 -3 -3 0 -7 0 -7 0 -6 0 -4 0 -6 0 -7 0 -7 0 -3 -4 -7 -3 -3 -3 -7 -4 -3 -3 -3 -3 -4 -7 -3 -3 -3 -7 -4 -3 0 -7 -3 -7 -3 -3 -4 -7 -3 -3 -3 -7 -4 -3 -6 0 -4 0 -6 0 -4 -7 4 -6 0 -4 0 -6 -7 -4 -3 -3 -7 -3 -3 -4 -7 0 -3 -3 -7 -3 -3 -4 -7 -3 -3 -3 -7 -7 -3 0 -7 -3 -7 0 -3 0 -7 3 -3 0 -7 0 -6 0 -7 0 -3 0 -7 0 -7 0 -6 0 -4 0 -6 0 -7 -3 -3 0 -7 3 -7 0 -6 0 -4 3 -6 4 -4 3 -3 3 -7 4 -3 3 -7 0 -6 0 -4 -3züGúHìAIûûú[ìLàM-2671 3397l3 -7 4 -3 6 -4 7 0 3 -3 4 -3 3 -7 3 -7 0 -3 0 -7 4 -6 3 -4 7 0 3 4 0 6 -3 7 0 3 -4 7 0 7 0 3 -6 3 -7 4 -3 3 -7 3 -3 4 -4 3 -6 0 -7 -3züGúHìAIûûú[ìLàM-2464 3453l0 -10 3 -3 3 -3 7 -4 3 -3 7 -3 7 0 3 0 7 -4 6 0 4 0 6 0 7 0 7 0 3 0 7 0 6 -3 7 3 3 -3 7 0 7 0 3 -3 7 -4 3 -3 3 -7 0 -6 4 -7 0 -3 6 0 7 0 3 6 0 7 0 3 -3 7 0 7 -3 3 0 7 0 6 3 7 3 3 7 4 -10 0 -3 -4 -4 -3 -6 -3 -4 -4 -6 4 -7 0 -7 3 -3 0 -7 3 -3 4 -7 0 -3 -7 -7 -3 -6 0 -4 0 -6 0 -7 0 -7 0 -3 0 -7 3 -6 0 -4 3 -6 4 -4 3 -6 3 -4 0 -6 0züGúHìAIûûú[ìLàM-3991 3567l0 -7 0 -7 3 -6 4 -4 6 0 7 4 3 -4 7 -3 3 -3 0 -7 -3 -3 -7 -4 0 -6 0 -7 4 -3 3 -7 3 -3 4 -7 3 -3 3 -4 4 -6 3 -4 0 -6 0 -7 0 -7 0 -3 0 -7 0 -6 0 -7 3 -3 0 -7 -3 -3 -3 -7 -4 -3 0 -7 4 0 6 0 7 3 7 0 3 4 3 6 -3 7 0 7 -3 3 0 7 -4 6 0 4 0 6 0 7 0 7 0 3 -3 7 0 6 0 7 0 3 7 4 6 0 4 3 3 3 -3 4 -7 0 -7 0 -3 0 -7 0 -3 6 0 4 3 6 0 7 0 7 -3 0 -3 3 -7 3 -3 7 -4 3 -3 7 -3 3 -4 4 -6 3 -7 0 -3 -3 -7 0züGúHìAIûûú[ìLàM-2668 3407l14 0 3 0 7 3 6 0 7 -3 3 3 4 3 3 7 3 7 4 0 6 3 7 0 3 0 7 3 3 4 7 3 3 7 4 3 6 0 4 3 6 0 7 0 7 0 3 -3 3 -3 7 -4 7 -3 3 -3 3 -4 4 -6 3 -4 3 -3 7 0 3 3 0 7 -6 3 -4 4 -3 3 -3 7 3 3 -7 3 -3 4 -7 0 -6 0 -4 3 -6 0 -7 3 -3 0 -7 0 -7 0 -6 0 -4 -3 -3 -3 -3 -4 -4 -6 -3 -4 -7 -3 -6 0 -4 0 -6 0 -7 0 -7 -3 -3 0 -3 -7 -4 -7 -3 -3 -7 0 -3 -3 -7 -4 -3 -3 -7 -3züGúHìAIûûú[ìLàM-484 3603l-4 4 -6 0 -4 -4 -6 -3 -4 -3 -3 -7 -3 -3 -4 -4 -6 0 -7 0 -7 0 -3 -3 -7 -3 -3 -4 0 -6 0 -7 -3 -3 -4 -7 -3 -3 -3 -4 -7 -3 -3 -7 -4 -3 -3 -3 -3 -7 -4 -7 -3 -3 -3 -3 -7 -4 0 -3 -3 -7 0 -6 -4 -4 0 -6 0 -7 4 -7 3 4 3 3 7 3 3 4 4 6 0 4 3 6 3 4 7 3 7 0 6 0 4 0 6 7 0 3 -3 7 -3 3 0 7 3 6 0 4 3 6 4 4 6 3 4 7 3 3 7 3 3 0 7 0 6 0 7 4 3 6 0 4 0 6 4 4 3 6 3 4 4 6züGúHìAIûûú[ìLàM-2094 3723l10 0 3 -3 7 0 6 0 4 3 6 4 7 0 3 3 7 3 0 7 3 7 -6 3 -7 3 -7 0 -3 -3 -7 3 0 7 4 3 6 4 4 3 6 3 4 4 6 3 4 3 3 4 3 3 -3 7 -3 6 3 4 3 6 4 4 3 6 0 7 3 3 -10 0 -6 -3 -4 -3 -3 -7 0 -3 -3 -7 -4 -7 0 -3 -3 -7 -7 -3 -3 0 -7 -3 -3 -7 -3 -3 -4 -4 -3 -6 -3 -4 -4 -6 -3 -4 -7 -3 -6 0 -7 3 -3 4 -7 3 0 3 -3 7 -4 3 0 7 -3 7 0 3 -3 7 -4 6 0 4 -3 6 -3 4 -4 6 -3 4 -3 6 -4 4 -6 3 -4 3 -6 4 -4 3 -6 3 -4 4 -6 0 -4 3 -6 3 -4 4 -6 3 -4 3 0 7 0 7 0 6 0 4 4 6 -7 4 -3 -4 -4 -10 0 -3 0 -7 4 -6 0 -7 3 -3 0 -7 3 -7 0 -3 0 -7 0 -6 0 -7 0 -3 4 -4 6 0 0 7 4 3 3 7 3 3 7 0 3 -3 7 -3 3 -4 7 -3 3 -3 4 -4 3 -6 3 -4 4 -6 3 -7 0 -3 0 -7 3 -7 0 -6 0 -4 0 -6 4 -7 0 -3 3 -10 3 -4 4 -6 6 -4 4 -3 6 0 4 -3 6 0 7 0 7 -4züGúHìAIûûú[ìLàM-2421 4023l3 -6 4 -7 3 -3 7 0 6 -4 4 0 6 -3 7 0 3 -3 7 -4 7 0 3 -3 7 -3 0 -7 3 -3 7 -4 3 -3 7 -3 3 -4 7 0 6 0 7 0 -10 7 -3 7 -4 3 -3 3 -7 4 -3 3 -3 3 -7 4 -3 3 -7 3 -7 4 -3 0 -7 3 -6 0 -4 3 -6 4 -4 3 -6 3 -4 4 -6 0 -7 0 0 -4züGúHìAIûûú[ìLàM-2391 4083l0 -6 0 -7 3 -3 7 -4 7 0 3 4 7 3 3 3 7 0 6 4 4 0 6 0 7 -4 7 0 3 -3 7 -3 3 -4 7 0 6 0 4 0 6 0 7 0 7 0 3 0 7 0 6 -3 4 -3 6 -4 4 -3 6 0 7 0 3 3 0 7 -3 7 0 3 -3 7 3 6 3 4 4 3 6 7 4 3 6 0 4 3 6 4 7 0 3 3 4 7 3 3 0 7 -3 6 -7 0 -7 -3 -3 -3 -7 -4 -3 -3 -3 -3 -7 -4 -3 -3 -7 -3 -3 -4 -4 -3 -3 -7 0 -6 -3 -4 -7 -3 -3 -3 -7 0 -7 0 -6 0 -4 0 -6 0 -7 0 -7 3 -3 0 -7 0 -3 7 -7 0 -6 3 -4 0 -6 0 -7 0 -7 -3 -3 0 -7 -4 -6 0 -4 0 -6 -3 -7 0 -7 0 -3 3züGúHìAIûûú[ìLàM-3454 4400l-7 7 -3 3 -4 3 -3 7 -3 3 -4 7 -3 3 -3 7 -4 3 -3 7 -3 3 -4 4 -3 6 -3 4 -4 6 -3 4 0 6 0 7 3 3 7 4 3 0 7 0 7 0 3 -4 7 0 6 -3 4 0 6 -3 7 0 3 -4 7 0 7 0 6 -3 4 0 6 0 7 3 7 0 3 4 7 0 3 6 0 7 0 7 -3 3 -4 0 -6 0 -7 0 -3 -3 -7 0 -7 0 -6 -4 -7 0 -3 0 -7 0 -7 0 -3 0 -7 0 -6 4 -4 3 -3 7 0 3 0 7 -3 6 -4 4 -3 6 -7 0 -3 4 -7 0 -6 0 -7 3 -3 0 -7 3 -3 4 -7 3 -3 3 -7 4 -3 3 0 7 -4 3 -3 7 -3 3 -7 3 -7 -6 0 -7 -3 -7 0 -3 0 -7 3 -6 0 -4 0 -6 0 -7 0 -7 -3 -3 0 -7 -3 -3 -7 -3 -3 -4 -7 -3 -7 0 -3 -7 3 -6 0 -4 -3 -6 0 -7 -3 -3 0 -7 0 -7 3 -3 7 -3 3 -4 3 4 4 6 0 7 0 7 3 3 3 7 4 3 3 7 3 3 4 3 3 7 3 3 4 7 3 3 0 7 3 7 4 0 3 -4 3 -6 4 -7 0 -3 3 -7 3 -7 0 -3 4 -7 0 -6 3 -4 0 -6 0 -7 0 -3 3 -7 4 -7 0 -6 -4 -4 -3 -6 -3 -4 0 -6 0 -4 3 -3 7 -3 6 0 7 0 7 3 6 0 4 -3 3 -4 3 -6 0 -7 4 -3 3 -7 0 -7 3 -3 4 -7 3 -3 3 -7 4 -3 0 -7 3 -3 0 -7 0 -6 0 -7 3 -3 0 -7 0 -7 -3 -6 -3 -4 -4 -3 -3 -7 0 -6 3 -4 7 4 7 3 6 0 4 0 6 -3 4 -7 0 -3 3 -7 0 -7 -3 -6 3 -4 0 -6 3 -4 7 -6 3 0 7 3 3 7 0 6 4 4 0 6 -4 7 0 3 -3 7 -3 7 -4 3 -3 3 -3 7 -4 3 -3 4 -3 6 -4 4 0 6 -3 7 0 7 0 3 0 7 0 6 0 4 0 6 3 7 0 7 -3 3 -3 7 -4 3 -3 7 -3 3züGúHìAIûûú[ìLàM-868 4683l-3 -3 3 -7 0 -6 4 -4 3 -6 0 -7 0 -3 3 -7 0 -7 0 -6 -3 -4 7 -3 3 -7 3 -3 4 -3 3 -7 3 -3 4 -7 6 0 0 3 0 7 -3 3 -3 4 -4 6 -3 4 -7 3 -3 7 -3 3 0 7 0 3 3 7 3 6 4 4 0 6 -4 4 -3 6 -3 4 -7 3 -7 3züGúHìAIûûú[ìLàM3402 6413l-6 -6 -4 0 -6 0 -7 0 -7 0 -3 -4 -7 -3 0 -7 0 -6 4 -4 0 -6 0 -7 0 -7 0 -6 0 -7 3 -3 3 0 7 3 7 0 6 3 7 0 3 4 0 56züGúHìAIûûú[ìLàM366 6487l6 -4 7 0 3 -3 7 0 7 -3 3 -4 7 0 6 -3 4 0 6 -3 7 -4 3 0 7 -3 7 0 3 0 7 3 6 4 4 3 0 7 0 3 0 7 -4 6 -3 4 -3 6 -4 4 -3 3 -7 3 -6 4 -4 0 -6 0 -7 0 -7 3 -3 0 -7 0 -6 0 -7 0 -3 3 -7 0 -7 0 -3 4 -7 3 -3 0 -7 7 -3 3 -3 3 -7 4 -3 3 -7 3 -3 4 -7 0 -7 0 -3 -4 -7 0 -6 -3 -7 0 -3 0 -7 0 -7 3 -3 0 -7 0 -6 4 -7 0 -3 0 -7 0 -7 0 -3 -4 -3 -6 3 -7 3 -3 7 -4 7 -3 3 0 3 -7 7 -3 3 -3 4 -4 6 -3 4 -3 6 -4 4 0 6 -3 7 -3 7 0 3 0 7 -4 6 4 4 3 6 3 4 0 6 -3 4 -3 6 -4 7 -3 7 -3züGúHìAIûûú[ìLàM2859 6683l0 -3 3 -7 0 -6 4 -4 0 -6 3 -7 3 -3 0 -7 4 -3 3 -7 3 -3 4 -7 3 -3 3 -7 4 -3 3 -7 3 -3 4 -7 3 -3 0 -7 3 -3 4 -7 3 -7 3 -3 4 -3 3 -7 7 -3 3 0 7 -4 3 -3 7 0 6 0 7 -3 3 0 7 -4 7 -3 3 -3 3 -4 4 -3 6 -3 4 -4 6 -3 7 0 3 -3 7 -4 7 -3 3 0 7 -3 6 0 4 3 3 7 3 3 4 7 0 6 0 7 0 3 -4 7 -3 3 -7 4 -3 0 -7 3 -6 -3 -7 3 -3 0 -7 0 -7 3 -3 4 -7 3 0 7 -3 3 -3 7 -4 6 0 4 -6 3 -4 7 -3 3 -7 3 -3 4 -7 3 -3 0 -7 0 -6 3 -4 4 -3 3 -7 3 -3 4 -3 6 -7 4 -3 3 -4 3 -6 4 -4 6 -3 4 -3 3 -4 7 -3 3 -3 3 -7 7 -3 3 -7 0 -10 0züGúHìAIûûú[ìLàM2599 6813l-3 7 -4 3 -3 7 0 3 -7 7 -3 3 -3 4 -7 0 -7 0 -6 0 -4 0 -6 3 -4 3 0 7 -6 3 -4 4 -6 3 -4 3 -6 0 -7 0 -7 0 -3 -3 -7 0 -6 0 -4 0 -6 0 -7 0 -7 0 -3 0 -7 0 -6 -3 -4 -4 -6 -3 -4 -3 -6 -4 -4 -3 0 -7 0 -6 7 -4 7 0 6 0 4 0 6 0 7 4 3 3 7 3 3 0 4 -6 3 -4 0 -6 3 -7 4 -3 3 -7 3 -3 7 -4 3 -3 7 0 7 3 3 0 7 -3 6 0 7 -3 3 0 7 -4 3 -3 4 -7 3 -3 3 -3 7 -4 7 0 6 0 4 -3 6 0 7 0 7 0 3 0 7 -3 6 0 7 3 3 3 0 7 -3 3 -3 7 -4 3 -6 4 -4 6 -3 4 -7 3 -3 3züGúHìAIûûú[ìLàM1512 7287l-220 0 7 -4 7 -3 3 -3 7 0 3 -4 7 0 6 -3 4 -3 6 -4 4 -3 3 -7 7 0 3 -3 7 3 6 0 7 0 7 0 3 -6 3 -4 0 -6 4 -7 0 -3 -4 -7 -3 -3 -3 -7 -4 -3 -6 -7 0 -3 0 -7 0 -3 3 -7 3 -7 4 -3 3 -3 3 -7 7 -3 3 -4 7 -3 3 0 7 -3 3 3 4 7 -4 3 0 7 0 6 0 7 0 7 4 3 3 3 7 4 6 0 7 0 3 -4 7 0 7 0 6 -3 4 0 6 -3 7 0 3 -4 7 -3 3 0 7 -3 3 -4 7 -3 0 -7 3 -6 4 -4 3 -6 3 -4 4 -6 3 -4 3 -3 7 -7 3 -3 7 0 3 3 4 7 0 7 3 6 0 4 3 6 -3 7 0 3 -3 7 -4 3 -6 4 -4 3 -6 3 -4 7 -3 3 -3 4 -7 3 -3 7 -4 3 -3 7 -3 3 -4 3 -3 7 0 7 0 3 0 7 0 6 0 7 0 3 0 7 0 7 3 6 0 4züGúHìAIûûú[Cfil6LàM2996 367l3 0 403 0 0 206 -16 7 -24 3 -53 0 -13 10 20 10 -20 17 -34 0 -33 3 -43 -3 -17 -20 -23 -23 -24 3 -3 20 0 3 -37 -6 -16 0 -34 -14 -36 -23 -40 0 -60 7 -37 3 -7 -23 -16 -7 -20 17 13 10 -3 6 -40 0 -30 -20 -10 -40 -47 0 -190 140 -70 90 -43 -6 -64 30 -80 90 -23 60 -17 -4 0 7 17 10 -17 67 -13 0 -3 6 20 14 0 16 -20 7 -20 43 10 24 23 3 10 -43 3 0 17 220 50 23 -3 23 26 34 -43 10 -30 -30 -50 0 -80 53 -57 10 -20 43 -40 -6 -23 23 -30 -10 -20 -30 -93 -27 -67 17 -27 43 -40 10 -23 -13 -20 -47 -3 -6 -114 -27 -3 -10 3 -37 24 -13 -27 -10 -3 -20 -130 -17 -7 37 -17 3 -53 -80 -67 -3 -30 13 -46 -53 -70 -10 -14 10 -50 -23 -70 -20 -23 13 -10 63 20 24 -17 23 -113 10 -40 -23 -33 36 -24 -30 -43 -10 -100 40 -53 -26 -27 -47 -23 3 -60 -40 -47 37 -60 -17 -10 27 -20 7 -37 -54 -53 -23 0 -20 -13 -33 -44 13 -60 -3 -146 -70 -30 6 -20 -20 6 -20 -10 -6 -16 10 -4 50 -43 -7 -27 -33 27 -27 20 -53 -7 -50 -83 -17 -30 30 -20 -40 -47 10 -30 -47 17 -16 43 -4 44 -40 33 -70 43 -80 -3 -73 33 -183 3164 0züGúHìAIûûú[ìLàM1372 1313l17 -3 7 -37 130 17 3 20 27 10 -24 13 -3 37 -30 7 -7 26 -30 0 -23 27 -53 0 -20 -37 26 -20 -30 -16 10 -44züGúHìAIûûú[ìLäM-3834 1670l6 70 30 -10 24 20 -4 27 -40 23 -36 50 6 27 24 10 -4 33 20 10 44 -7 43 -40 27 0 6 -20 14 0 3 34 7 0 20 -17 73 -13 57 23 -7 33 47 -3 13 -23 17 6 6 0 17 37 27 -23 26 3 70 -27 10 -70 34 -6 43 33 30 -17 30 20 50 0 27 -30 10 14 30 26 53 0 20 -20 17 20 -10 40 30 14 -30 86 6 47 24 20 36 -17 50 7 84 67 -10 16 -7 4 -3 6 -4 4 -3 3 -3 7 -4 3 -3 7 -3 3 -4 7 -3 3 -3 7 -4 3 0 7 -3 3 -3 7 -4 3 -3 7 -3 3 -4 7 0 3 -3 7 0 6 0 7 -3 3 -4 4 -6 3 -7 0 -7 0 -3 0 -3 7 -4 3 -3 7 0 3 -3 7 -4 3 -3 7 -3 3 -7 3 -3 4 -7 3 -3 3 -7 4 -3 3 -7 7 -3 3 -4 3 -3 4 -7 0 -6 3 -4 3 -3 4 -7 6 -3 4 -7 0 -3 0 -7 0 -6 3 -7 0 -3 0 -7 0 -7 3 -3 0 -7 4 -3 6 -3 4 -7 3 -3 3 -4 7 -3 3 -7 4 -3 3 -3 7 0 3 -4 7 -3 3 -3 7 -4 3 -3 7 -3 3 -4 7 0 6 -3 4 -3 6 0 4 -4 6 0 7 -3 3 -3 7 -4 3 -3 4 -7 3 -3 3 -7 4 -6 3 -4 0 -6 0 -7 0 -7 0 -6 37 50 93 -14 10 -6 60 13 73 -23 64 26 36 -33 54 33 66 -46 60 -77 27 -17 27 10 46 44 20 33 67 -30 107 -43 40 -20 96 -7 0 -3 4 -7 0 -10 0 -7 3 -6 0 -7 0 -3 0 -7 3 -7 0 -6 -3 -4 0 -6 0 -7 0 -7 0 -3 0 -7 -3 -6 0 -4 0 -6 0 -7 -4 -7 0 -3 0 -7 0 -6 4 -4 0 -6 3 -7 3 -3 4 -7 0 -3 3 -7 0 -7 -3 -6 0 -4 -4 -6 0 -7 0 -7 -3 -3 0 -7 0 -6 -3 -4 0 -6 -4 -7 0 -3 -3 -7 0 -7 0 -6 0 -4 0 -6 0 10 43 66 60 4 24 46 23 -13 90 43 50 -6 47 56 30 -6 43 73 0 27 30 6 40 -53 80 3 30 -3 3 -7 7 -3 3 -3 4 -7 3 -3 3 -4 4 -6 6 -4 4 -3 3 -7 3 -3 4 -7 3 -3 3 -3 4 -7 3 -3 3 -7 4 -3 3 -7 3 -3 4 -4 3 -6 3 -4 4 -3 6 -7 4 -3 3 -3 3 -4 7 0 7 0 3 0 7 0 6 0 7 0 7 -3 0 -7 6 -3 4 0 6 -3 4 3 6 0 7 -3 7 0 3 -4 7 -6 3 -4 0 -6 0 -7 -3 -7 -4 -3 4 0 6 3 7 4 3 3 4 3 6 0 7 0 7 -3 3 0 7 0 6 0 7 -3 3 0 7 -4 3 -3 7 -3 3 -4 7 -3 3 0 7 -3 7 -4 3 0 7 -3 6 -3 4 -4 3 -6 0 -7 -3 -7 0 -6 0 -7 3 -3 3 0 4 0 6 3 4 3 6 4 4 0 6 -4 7 -3 7 0 3 0 7 0 6 -3 4 0 6 -4 7 0 3 -3 7 -3 7 0 3 -4 7 -3 6 -3 4 -4 0 -3 -7 0 -7 -3 -3 -4 -7 -3 -3 -3 -7 -4 -3 -3 -3 -3 -7 -4 -3 -3 -7 -3 -3 0 -7 0 -7 -4 -6 -3 -4 -3 4 -7 3 -3 3 0 7 0 7 3 3 0 7 3 6 0 4 -3 6 3 7 7 0 7 3 3 4 7 3 3 3 0 7 3 3 0 7 0 7 0 6 0 4 -3 6 0 7 0 3 3 7 0 7 7 6 7 -3 3 -3 3 -7 4 -3 0 -7 3 -3 7 -4 3 -3 7 -3 3 -4 7 -3 3 0 7 -3 6 0 7 0 3 -4 7 0 3 -6 4 -4 3 -6 0 -7 0 -3 3 -7 4 -3 6 -4 7 0 3 0 7 0 7 0 3 0 7 0 6 4 7 0 7 0 3 3 7 0 6 0 4 0 3 -3 0 -7 0 -7 -3 -6 -7 0 -3 -4 -7 0 -7 -3 -6 0 -4 0 -6 3 -7 0 -7 0 -3 4 -7 0 -6 3 -4 0 -6 3 -7 0 -3 4 -7 0 -7 0 -3 0 -7 -4 -3 -3 0 -7 0 -6 3 -4 4 -6 3 -4 3 -6 4 -4 3 -3 3 -7 4 -3 3 -7 3 -3 4 -7 3 -3 3 -7 4 -3 3 -3 7 -7 20 13 70 110 30 74 90 -24 -47 130 -57 -13 -13 30 -70 7 -30 106 -77 64 -16 73 -47 73 7 7 3 7 3 3 4 3 6 7 4 3 3 7 0 3 3 7 0 3 0 7 4 7 0 6 0 7 0 3 0 7 0 7 0 6 0 4 0 6 0 7 3 7 0 3 0 7 0 6 0 7 0 3 0 7 0 7 3 6 0 4 0 6 0 7 0 3 0 7 0 7 0 6 4 7 3 47 -13 10 -20 -4 -60 20 -127 87 -110 3 -113 -66 -60 13 -54 -27 -56 10 -27 -16 -3 -17 -7 -3 -3 13 -44 -17 -33 37 -93 10 -70 43 -24 -16 50 -97 -3 -30 37 -53 -7 -37 53 -103 -10 -107 20 -70 10 -7 0 -6 -20 -14 10 -126 -43 -30 37 -57 33 -123 -10 -127 -30 -50 3 0 17 17 7 0 0 -10 53 16 3 -6 -16 -17 20 -37 -4 -10 -10 -6 -10 0 -10 36 -63 -33 -110 53 -57 0 -16 10 -7 -6 20 -74 -33 -83 6 -13 44 -14 13 0 10 24 -7 3 4 3 23 4 10 13 0 -3 -7 -30 20 -7 17 10 3 0 4 -13 16 -7 0 -3 -36 3 -4 -17 70 -33 4 -13 -27 -50 -3 -50 -14 0 -36 50 -30 83 -20 13 -100 17 -80 -23 -7 -14 7 -20 -14 -26 57 -120 0 -94 53 -113 0 -43 -10 -24 7 -30 73 -33 94 -117 20 -103 123 -287 0 -3 -27 -40 37 -83 60 -214 10 -26 33 0 20 -50 17 -4 0 -3 -23 -10 0 -20 3 -10 20 -20 0 -7 -7 -10 -10 0 -20 80 -23 34 -3 0 66 -250 -6 -87 -7 -7 -20 -33 -10 -103 -23 -64 10 -40 -24 -156 -23 -47 10 -83 73 -60 4 -4 6 -6 4 -4 3 -3 3 -3 7 -4 3 -6 4 -4 3 -3 3 -7 4 -3 3 -7 3 -3 7 -3 3 -4 7 -3 3 0 7 -3 3 -4 7 0 7 4 6 0 4 0 6 -4 4 -3 6 -3 4 -4 3 -3 7 -3 6 0 7 0 3 0 7 0 7 3 3 0 7 0 6 0 7 0 3 0 7 0 7 0 6 -3 4 0 6 -4 7 0 3 -3 7 -3 3 -4 7 -3 3 -3 4 -4 6 -3 4 -3 6 -4 7 0 3 -3 7 0 7 -3 3 -4 7 -3m-157 1897l7 0 3 3 7 0 6 -3 4 -4 3 -3 3 -7 4 -3 3 -7 7 -3 3 -3 3 0 0 -7 0 -7 -3 -6 0 -4 3 -6 7 0 3 0 7 0 7 0 3 -4 -3 -3 -4 -3 -6 0 -7 -4 0 -3 0 -7 0 -6 3 -7 0 -3 0 -7 0 -7 0 -6 0 -4 4 -6 0 -7 3 -3 0 -7 3 -7 -3 -6 -3 -4 -7 0 -7 -3 -6 0 -4 0 0 7 4 3 3 7 3 3 0 7 -3 3 0 7 0 6 0 7 0 3 0 7 0 7 0 6 -3 4 -4 6 -3 4 -3 3 -4 7 -3 3 -3 7 -4 3 0 7 0 6 7 4 3 3 0 7 -3 3 -7 3 -3 4 -7 -4 -6 0 -4 4 -3 6 0 7 0 7züGúHìAIûûú[ìLäM3402 6357l-3 -4 -7 0 -6 -3 -7 0 -7 -3 -3 0 -3 3 0 7 0 6 0 7 0 7 0 6 -4 4 0 6 0 7 7 3 3 4 7 0 7 0 6 0 4 0 6 6 0 874 -1890 0 0 -4 -3 -6 0 -7 0 -7 0 -3 0 -7 0 -6 0 -7 0 -3 0 -7 3 -7 4 -3 3 -3 3 -7 4 -3 3 -7 7 -3 3 -4 3 -3 4 -7 6 -3 4 -3 6 -4 4 -3 3 -7 0 -3 3 -7 -3 -6 0 -4 -3 -6 0 -7 -4 -7 -3 -3 -7 0 -3 3 -7 7 -3 3 -3 4 -4 6 -3 4 -3 6 -4 4 -3 6 0 7 -7 3 -3 4 -7 3 -3 0 -7 3 -3 4 -7 0 -6 3 -4 0 -6 3 -7 0 -7 0 -3 4 -7 0 -6 0 -7 -4 -3 -3 -4 -3 0 -7 0 -7 0 -6 0 -7 4 -3 -4 -7 -3 -3 -7 3 -3 0 -7 3 -3 4 -7 3 -3 7 -3 3 -4 3 -3 7 -3 7 0 3 0 7 0 3 6 7 4 3 3 7 3 3 4 7 0 3 -4 7 0 6 -3 4 -3 6 -7 0 -7 0 -6 0 -7 -3 -3 3 -7 0 -3 7 -4 3 -6 4 -4 3 -6 3 -7 0 -3 4 -7 0 -3 3 -7 3 -7 4 -1633 0 -57 -94 0 -46 34 -57 -34 -63 -40 -84 -30 -23 -23 -53 40 -10 63 20 57 -4 87 -40 23 4 140 -120 37 -20 53 -4 43 -33 27 -37 40 -130 20 0 70 -80 60 -33 37 3 26 -40 64 17 16 20 37 0 30 -37 30 -10 23 -76 67 -20 40 23 7 30 3 3 110 24 87 -70 40 -120 3 -10 47 -47 50 -23 23 -44 67 -20 106 -80 64 -10 66 -36 44 -54 66 -30 67 -23 50 0 50 -30 77 10 220 -47 93 0 183 -66 34 6 10 20 100 -6 123 -80 57 -84 70 -13 40 40 30 7 40 -17 10 -43 50 20 100 0 90 -44 50 -53 86 -30 37 17 277 -40 36 6 0 1034m-3036 130l-7 3 -7 3 -6 4 -4 3 -6 3 -4 0 -6 -3 -4 -3 -6 -4 -7 4 -3 0 -7 0 -7 3 -6 3 -4 0 -6 4 -4 3 -6 3 -4 4 -3 3 -7 3 -3 7 -3 0 -7 3 -7 4 -3 3 -3 7 3 6 3 4 7 0 7 0 3 0 7 0 6 -4 7 0 3 0 7 -3 7 0 3 0 7 0 6 3 7 0 3 4 7 0 7 0 3 -4 7 -3 3 -3 7 -4 3 -3 3 -3 7 -7 3 0 7 -3 3 -4 7 0 7 0 3 -3 7 0 6 0 7 0 3 0 7 -3 7 0 6 0 4 0 6 -4 7 -3 3 -3 4 -4 3 -6 3 -4 4 -6 0 -7 0 -3 0 -7 -4 -3 -6 -4 -7 -3 -3 0 -7 0 -7 3 -3 0 -7 4 -6 3 -4 0 -6 3 -7 0 -3 4 -7 3 -7 0 -3 3 -7 0 -6 4m2493 196l10 0 7 0 3 -3 7 -7 3 -3 3 -3 4 -7 3 -3 3 -4 4 -6 6 -4 4 -3 3 -3 7 -4 3 -6 3 -4 7 -3 3 -3 4 -4 6 -3 7 0 3 0 7 -3 3 -4 7 -3 3 -3 4 -7 6 -3 0 -4 4 -6 3 -7 3 -3 0 -7 7 -3 3 -4 7 -3 7 0 3 0 7 -3 6 3 7 -3 3 0 7 -4 3 -3 4 -7 0 -3 0 -7 0 -6 -4 -7 -3 -3 -3 -7 -4 -3 -6 0 -7 3 -3 0 -7 3 -7 4 -3 3 -7 0 -6 3 -4 4 -6 3 -4 3 -3 4 -3 3 -7 3 -7 4 -3 0 -7 3 -6 0 -7 0 -3 3 -7 4 -3 0 -7 3 -3 7 -4 3 -3 3 -3 7 -4 7 -3 3 0 7 -3 3 -4 7 -3 3 -3 7 -4 3 -3 7 -3 3 -4 7 -3 3 -3 7 -4 3 0 7 -3 3 -3 7 0 6 -4 4 0 6 -3 7 0 3m-260 130l3 -3 7 -3 3 -4 4 -6 6 -4 4 -3 3 -7 3 -3 0 -7 -3 -3 -7 -3 -6 0 -7 3 -3 0 -7 0 -7 0 -6 0 -4 3 -6 0 -7 0 -7 4 -3 3 -3 3 -4 7 -3 3 -7 4 -3 0 -7 3 -6 0 -7 3 -3 0 -7 -3 -7 0 -3 3 -7 4 -3 3 -3 7 -4 3 -3 7 0 6 -3 4 -4 6 -3 0 -7 -3 -3 -3 -7 -4 -6 0 -4 0 -6 0 -7 0 -7 4 0 6 0 7 4 3 6 4 4 3 6 3 4 4 6 3 7 0 3 0 7 0 7 0 6 0 4 0 6 0 7 0 3 3 7 0 7 0 6 0 4 -3 6 -3 4 -4 6 -3 0 -7 4 -3 6 -3 4 0 6 0 7 0 7 0 3 -4 3 -3 7 -7 0 -3 3 -7 4 -3 3 -7züGúHìAIûûú[ìL[M-2354 6093l6 0 -6 24 0 -24zGúHìAIûûú[ìLàM-2358 6320l14 107 26 13 17 80 43 23 67 97 217 147 220 43 43 -27 67 -6 60 -34 36 7 34 -20 20 33 50 10 30 -13 13 -40 37 -10 73 50 140 17 83 -34 34 -36 33 0 53 -110 17 6 -10 40 13 34 -10 36 30 4 10 83 67 33 20 -6 -53 -44 -20 -36 66 66 57 24 100 3 53 -40 50 20 67 27 23 53 30 23 40 84 34 63 -34 57 0 46 57 94 -2737 0 144 -284 170 -433 60 -213 26 -10 70 13 47 -37 60 7 70 -60 47 -3 26 53züGúHìAIûûú[ìLeM-2358 6320l-26 -53 53 10 3 13 -30 30zGúHìAIûûú[ìLbM-928 6697l0 0 -10 36 30 4 -20 -40zGúHìAIûûùDLareas_densityGúHìAIûûúSøúNøú[Hfil7 str0LMM3001 367l-3 0GúHìAIûûú[ìL}M-1830 821l-15 32 14 28 -8 26 -41 -18 -13 22 -47 6 -6 51 -54 3GúHìAIûûú[ìLWM-1248 1007l83 -46 67 27GúHìAIûûú[ìLiM-1104 851l2 29 -16 12 -78 -4 -63 48 11 71GúHìAIûûú[ìLiM-712 867l-11 25 10 16 -37 47 -2 65 -25 18GúHìAIûûú[ìLpM-1493 1087l24 -16 6 -26 43 -7 52 -59 76 29 44 -1GúHìAIûûú[ìLàM-777 1038l-60 13 11 38 -83 -7 -94 -45 14 -37 -20 -40 -29 -5 -5 36 -55 -3üGúHìAIûûú[ìL[M-2000 971l-1 57 34 20 22 50GúHìAIûûú[ìLàM-3173 725l-30 42 -37 0 -4 28 21 8 3 33 33 28 5 49 45 27 2 46 43 -23 27 19 -25 35 -41 10 -27 41 12 23 23 -12 39 20 12 50üGúHìAIûûú[ìLàM-2000 971l-15 -29 -28 -7 -47 41 -35 -2 -27 59 -18 -13 -37 21 -77 -6 -17 30 -43 -1 -8 20 -30 6 -53 -18 -45 12 -25 38 -61 -8 -37 -26 -15 -38 -20 10 -34 -12 -17 32 -50 -16 -8 24 -74 -36 -31 45 -12 1 -7 14 9 8 -3 16 -64 18 -76 -11 -36 26 -31 -20üGúHìAIûûú[ìLàM-3511 537l-13 33 10 24 -19 18 -25 110 -31 51 -32 -2 -3 48 -30 36 10 20 -24 48 21 71 -17 31 18 66 -50 80üGúHìAIûûú[ìLàM-346 877l-29 9 -25 46 -43 12 7 59 -60 46 -12 59 -28 8 -21 26 -40 -11 -22 44üGúHìAIûûú[ìLlM-777 1038l11 32 -39 25 3 23 28 13 77 0 78 44GúHìAIûûú[ìLbM200 1138l-48 12 -19 45 3 46 -28 29GúHìAIûûú[ìLàM-1098 988l-19 28 23 16 -2 46 -16 13 58 9 46 57 -67 20 -62 -33 -34 59 36 32 11 -25 23 -2 7 -9 8 7 -10 65 12 10üGúHìAIûûú[ìLàM-1945 1098l88 -3 54 -25 24 7 35 52 58 13 10 77 14 7 31 -16 2 19 -28 17 55 38üGúHìAIûûú[ìLàM-1602 1284l75 1 27 -28 42 -3 -3 -24 -5 -29 -32 21 -12 -25 44 -24 -10 -22 -53 31 -20 -15 17 -50üGúHìAIûûú[ìLàM-4107 1294l13 -32 95 -41 72 10 12 -25 28 0 8 -25 12 -8 18 17 11 -15 25 7 -4 -15 18 -7 54 5 15 15 34 -9üGúHìAIûûú[ìLàM-920 1257l123 19 9 17 -17 28 18 19 7 1 10 -7 10 2 3 17 -10 7 -52 -3 -22 -17 -46 9 -53 -51 20 -41üGúHìAIûûú[ìLcM-3696 1171l14 4 -8 53 58 46 -36 101GúHìAIûûú[ìLàM-3212 1444l19 -54 -6 -27 24 -16 -16 -45 42 -37 25 1 30 -36 1 -54 21 -27üGúHìAIûûú[ìL]M-914 1424l34 -44 34 27 -10 51GúHìAIûûú[ìLmM-3668 1375l16 22 -10 31 71 12 6 6 -9 11 17 12GúHìAIûûú[ìLàM-619 1175l10 37 -22 33 3 38 -28 12 21 56 -37 19 -26 -21 -46 37 22 30 23 -22 12 28 -13 50 -34 6üGúHìAIûûú[ìLkM1535 1379l-1 39 45 14 -3 34 0 2 30 -3 -4 44GúHìAIûûú[ìLQM-3264 1528l52 -84GúHìAIûûú[ìL}M-3668 1375l-54 21 -87 -19 -93 53 6 99 35 35 -2 40 18 15 27 -6GúHìAIûûú[ìLàM-1945 1098l-33 21 -38 85 -20 6 0 55 -23 30 32 29 -23 114 15 14 -16 66 7 35 -35 13 -4 23 18 -2 1 13 -13 24 -20 1üGúHìAIûûú[ìLvM-3212 1444l49 11 25 -19 48 24 18 8 -17 51 57 49 -31 64GúHìAIûûú[ìLàM-2097 1625l-21 -7 -4 13 -15 2 -5 -7 -13 -17 -38 34 -25 -8 -13 22 4 8 -6 7 -20 -4 -10 21 -19 -9 -21 18 1 35 2 69üGúHìAIûûú[ìLàM-941 1370l-28 13 -27 -15 -48 3 -9 14 5 20 -24 26 1 11 16 2 -8 38 23 27 -3 44 -5 2 -12 -23 -10 9 20 30 -28 14 17 62 -21 45 55 83 53 1 10 43üGúHìAIûûú[ìLnM-310 1686l4 13 -14 20 -54 -3 -41 55 0 35 26 19GúHìAIûûú[ìLàM-3063 1632l-10 31 -32 -12 -41 35 -11 32 -30 28 0 24 21 14 -12 48üGúHìAIûûú[ìLàM-3063 1632l41 34 35 -5 83 29 95 -14 53 42 97 -1 42 23 38 -17 21 26 44 -19 21 17 35 -18 43 65 33 -34 14 30 12 28 -11 23 20 9 11 -31 36 -17üGúHìAIûûú[ìLOM-389 1825l-2 34GúHìAIûûú[ìLàM108 1270l-68 34 -6 40 -55 0 -29 71 -25 -5 -16 24 8 35 -36 37 -6 35 13 22 -31 35 -15 65 15 69 50 52 -48 90 -6 11 -45 -8 -31 11 -58 -39 -26 10 -40 -30 -42 -4üGúHìAIûûú[ìLàM-964 1819l24 9 35 -21 6 -47 26 -14 17 24 -21 53 93 14 34 -52 2 -19 11 -12 6 2 32 -25 68 -3 20 40 38 -17 35 7 -13 36 25 26 3 44 78 25 54 -30üGúHìAIûûú[ìLàM1602 1509l42 -11 78 15 -18 46 11 15 -1 13 -22 -1 -5 13 17 20 64 22 74 -28 18 27 36 -11 33 38 35 -6 12 30 -10 38 -28 10 28 20 1 18 -48 29 -20 -5 -6 8 10 44 70 14 43 47 60 -27 58 3 13 60üGúHìAIûûú[ìLàM-1602 1284l-11 19 -21 -13 -78 49 13 42 -18 48 24 50 -4 24 -31 6 -13 19 9 33 27 1 43 183 45 5 24 19 -17 16 9 28 45 0 8 9 -14 28 13 15 52 -16 0 21 -45 21 -9 30 -52 14 -3 27 26 47üGúHìAIûûú[ìLàM-2097 1625l-15 92 50 8 14 43 -55 107 11 22 61 -11 39 64 28 5 35 -32 25 3 35 45 36 -11 13 11 -8 28 14 13 25 0 18 -19 48 14 36 -29 62 6 17 22 28 3üGúHìAIûûú[ìLàM1602 1509l-88 24 15 33 -7 25 26 7 5 17 -18 23 14 39 -24 24 14 20 -25 19 19 4 -1 9 -16 5 -2 35 -37 34 31 13 -17 66 -28 18 -23 -22 -12 13 -2 -22 -29 5 4 50 -16 17 37 45 -43 18 17 28üGúHìAIûûú[ìLmM-1580 2009l-18 28 30 30 -6 56 15 -6 1 1 15 27GúHìAIûûú[ìLàM-964 1819l-26 30 -3 37 -21 4 -10 29 -46 7 4 16 -31 45 -48 -43 -20 11 0 55 -39 22 -1 31 -23 12 -20 44 -8 19 -43 -16 -4 24üGúHìAIûûú[ìLàM1043 1166l-73 104 9 47 35 14 -16 75 -20 9 30 61 5 64 -18 142 -30 97 -40 43 24 45 -144 151 18 55 44 2 9 35 -22 38 -29 10 -2 50üGúHìAIûûú[ìLTM760 2215l8 -11 49 10GúHìAIûûú[ìLàM-1303 2146l-76 17 -26 27 -6 37 -12 2 -7 -6 0 -28 -8 -3 -18 27 -44 -54 -43 -20üGúHìAIûûú[ìLàM108 1270l-4 27 19 15 -20 25 8 34 -15 23 20 15 -17 28 20 2 0 61 44 24 -51 101 15 7 13 -28 33 9 20 -46 -4 -18 12 -11 8 4 4 49 -14 42 5 131 -14 7 -17 -26 -29 66 61 33 59 -1 78 79 6 80 73 28 11 35 61 41 21 -17 25 4 64 164 29 9 -2 -13 8 -1 7 12 35 1üGúHìAIûûú[ìLàM1396 2056l-3 17 -91 -3 -29 26 7 35 -30 14 -26 -10 -10 9 10 17 -63 75 -43 11 -22 -14 -12 24 -30 -1 -77 36 -19 -15 -75 10 -7 22 -27 0üGúHìAIûûú[ìL[M812 2230l31 21 -12 21 18 37GúHìAIûûú[ìLàM1396 2056l30 6 1 19 -27 20 49 30 3 55 55 25 -9 14 15 35 24 -5 -7 31 -18 3 3 5 30 10 -1 25üGúHìAIûûú[ìLtM-1303 2146l11 31 20 12 19 -9 18 39 45 14 -5 51 79 63GúHìAIûûú[ìLàM-2300 1802l49 48 -26 27 15 18 -15 63 8 4 -3 20 -31 23 -1 25 25 35 1 50 28 10 -8 26 16 15 -2 21 -42 26 -3 2 17 45 -17 36 22 82 -26 47 28 6üGúHìAIûûú[ìLàM-391 1859l27 75 -20 46 38 56 -15 39 -25 1 -35 43 -21 -8 -16 12 12 28 -6 46 25 59 -49 21 -7 -34 -37 -9 -7 52 -26 35 16 101 53 25üGúHìAIûûú[ìLkM-1116 2347l-28 32 -74 -5 -17 16 4 26 -75 34GúHìAIûûú[ìLàM-1543 2145l-9 43 -65 32 -133 21 -88 30 14 50 -14 25 -35 -9 -7 6 11 25 -44 39 7 27 -6 6 -20 -7 -21 24üGúHìAIûûú[ìLlM849 2309l-2 24 -1 3 -31 22 -6 38 -48 26 6 40GúHìAIûûú[ìLgM-2265 2431l4 -13 22 3 12 23 21 -1 29 24GúHìAIûûú[ìLàM-2265 2431l-4 34 -19 13 -33 -16 -12 -35 -30 4 -6 23 -44 -53 -22 8 -29 -27 -66 16 -69 -15 -29 57 -10 3 -6 -11 -15 6 -9 -7 -1 -28 -43 -3üGúHìAIûûú[ìLgM-1953 2457l-43 10 -26 29 -82 -47 -73 18GúHìAIûûú[ìLàM-484 2447l-4 48 -8 2 -25 -21 -16 0 -17 19 -32 -3 -46 24 -20 -18 -29 19 -29 -15 -36 -58 -23 9 -6 -6 4 -15 -23 -10 13 -17 -3 -4 -14 4 -12 -19 -35 -4 -6 -14 -9 -2 -24 15 -33 -8 -24 -33 -22 -2 -16 15 -56 13 -81 -19üGúHìAIûûú[ìLàM767 2462l-78 -4 -19 24 -32 -52 -121 -48 -49 -45 -12 13 -38 -18 -44 -52 -45 -6 -3 32 -6 2 -1 -2 -22 1 2 46 -21 12 31 24 -36 59 -43 -33 -22 47 -29 0 -18 -27 -34 50 -29 -14 9 -37 -24 9 -41 -21 -26 28 -34 -9 -28 19 6 32 -22 18 -25 -3 -14 -24 -55 52 12 21 -14 26 -85 8üGúHìAIûûú[ìLdM-484 2447l52 -20 17 24 70 34 102 105GúHìAIûûú[ìLxM767 2462l8 23 28 9 12 39 -25 56 19 52 -24 38 -36 20 6 11GúHìAIûûú[ìL{M-1306 2450l-42 14 -91 109 -63 23 -28 43 -16 85 -52 2 -47 70GúHìAIûûú[ìLàM-1645 2796l-64 6 6 11 -9 9 -21 2 -22 3 -32 -10 -4 -55 -27 -31 -6 -43 -30 -3 -3 -4 10 -15 -15 -15 -4 -49 -50 -65 -35 -14 -2 -66üGúHìAIûûú[ìLrM755 2710l23 -1 12 21 33 10 -7 36 71 19 23 36 44 17GúHìAIûûú[ìLàM-728 2977l5 -16 -15 -29 8 -18 63 -7 12 -19 -23 -25 9 -21 51 29 14 -10 -2 -34 53 7 24 -33 35 12 37 36 28 4 5 -16 22 9üGúHìAIûûú[ìLàM-243 2590l3 46 48 56 -13 53 17 37 -6 64 -26 20 -46 -17 -9 81 -29 11 -32 48üGúHìAIûûú[ìLàM-2177 2467l-13 62 26 17 4 28 -36 124 -51 57 -72 41 7 22 -28 35 -26 14 -29 -7 -4 32 36 -9 12 15 -17 53 -29 1 -2 30 -30 -15 6 -26 -36 11 -32 34 3 55 -31 32üGúHìAIûûú[ìL|M-2519 3073l-37 2 0 -42 -49 20 -14 30 -43 -17 -19 -27 -42 -13GúHìAIûûú[ìLàM-2710 2997l5 -9 -86 -59 -187 105 -12 43 -65 17 -19 -12 -22 16 -37 -5 -19 -20üGúHìAIûûú[ìLàM-1645 2796l-7 50 -40 13 -18 -12 -7 5 3 24 -22 26 2 96 -59 7 -22 61 -32 -14 -8 6 4 27 -24 56üGúHìAIûûú[ìLkM-276 3045l-1 3 12 14 3 -2 74 75 58 -5 -1 37GúHìAIûûú[ìLàM-1306 2450l31 49 32 10 -4 23 24 37 -56 147 32 25 -12 52 33 13 11 -15 13 34 28 -3 -11 37 24 23 -2 25 21 -9 29 20 0 51 29 12 11 24 -32 106 11 8 38 -27 17 83 1 4üGúHìAIûûú[ìLàM-1038 3179l28 2 12 -39 54 35 46 -33 13 -44 -13 -69 14 -44 14 -9 7 9üGúHìAIûûú[ìLvM-2519 3073l107 75 35 -8 26 -32 24 -3 17 15 -9 39 21 48GúHìAIûûú[ìLàM-2298 3207l91 22 76 -53 11 35 22 0 87 -80 5 -30 55 -11 24 61 52 -10üGúHìAIûûú[ìL`M-1088 3246l55 -19 -18 -38 13 -10GúHìAIûûú[ìL_M-1164 3258l0 1 28 1 41 -30 7 16GúHìAIûûú[ìLàM-1875 3141l25 14 48 -28 30 -44 15 3 8 25 29 27 31 -39 31 -14 28 36 45 -16 33 37 108 32 26 26 18 -7 58 21 5 22 -12 24üGúHìAIûûú[ìL~M-131 3167l70 3 1 -40 15 -2 14 27 16 31 51 0 43 36 -2 19 -45 22GúHìAIûûú[ìL`M-131 3167l42 97 44 6 35 6 42 -13GúHìAIûûú[ìLMM32 3263l11 28GúHìAIûûú[ìLàM755 2710l-75 32 -12 -28 -46 7 -63 -41 -23 24 -9 50 -35 20 -15 -14 -26 13 4 36 48 4 -4 70 20 21 -41 32 37 47 -61 55 -9 39 -51 14 -25 -8 0 39 -37 87 -33 22 -40 2 -6 30 -34 16 0 44 25 30üGúHìAIûûú[ìLeM244 3353l-53 21 -22 -79 -43 -13 -83 9GúHìAIûûú[ìLwM-1483 3350l23 27 8 1 50 -46 49 -10 -1 -20 61 -20 15 -21GúHìAIûûú[ìLpM-2298 3207l-23 15 3 60 -26 96 42 -7 22 15 -19 70GúHìAIûûú[ìLàM588 3454l-46 -18 -18 -32 -36 -7 -23 43 -45 31 -22 -31 -67 4 -11 -65 -18 -7 -23 27 -35 -46üGúHìAIûûú[ìLtM-1088 3246l7 54 30 6 -16 81 32 15 44 99 46 52 -8 129GúHìAIûûú[ìLàM43 3291l-36 17 3 17 6 46 -39 90 5 41 -26 13 -40 -8 -63 85 -11 87 13 19üGúHìAIûûú[ìLQM-1981 3718l34 -22GúHìAIûûú[ìLkM-2092 3722l15 -13 22 -73 23 -16 53 40 -2 58GúHìAIûûú[ìLeM-2208 3444l-6 32 18 25 -36 91 132 132GúHìAIûûú[ìLWM-1981 3718l-58 31 -2 -1GúHìAIûûú[ìL[M-953 3682l35 56 -14 24 28 5GúHìAIûûú[ìL[M-901 3767l24 -24 17 6 13 36GúHìAIûûú[ìLoM-477 3749l37 5 20 43 53 -9 63 19 25 -31 134 -78GúHìAIûûú[ìLàM-1947 3696l40 -4 4 -25 61 -47 20 49 22 -29 108 31 25 -15 21 -51 59 -2 11 38 -15 7 -5 42 -24 0 -17 66 24 17 18 -17 54 9 6 43 59 29 42 -24 34 17 45 -22 61 -5 67 -70 61 1 12 -54 50 -2 24 -16 85 38 42 -18üGúHìAIûûú[ìLoM-797 3779l82 -10 74 74 29 -35 31 42 55 -40 69 9GúHìAIûûú[ìLàM-2142 3754l-7 3 -26 -19 -16 40 -56 23 -44 -18 -21 11 -7 55 -24 47 -36 4 -31 -33 -34 -2 -20 18 19 21 -10 32 -43 21 -79 -46 -13 24 -53 17 -12 -19 -33 33 -7 -34 -20 -2 -54 53 -49 -39 -41 -12 -9 -46 -21 -5 -12 7 -89 -15 -5 18 -42 -29 -41 10 -44 -11 -18 -37 34 -54 -25 -18 -6 -35 -47 0 -87 -39 -12 17 26 22 -26 47 -17 3 -7 -33 17 -15 -30 -7 -25 23 -7 17 11 5 -25 34 -20 -1üGúHìAIûûú[ìLàM-145 3698l34 41 24 -11 33 26 103 22 -10 78 -1 2 -42 105 74 85 104 -9 24 42 0 67üGúHìAIûûú[ìLàM701 4059l0 23 -22 -22 -42 22 -12 -16 -32 22 -51 -19 -85 60 -66 2 1 24 38 5 7 13 -67 45 -15 -35 -51 -19 -47 23 -19 -25 -28 0 -12 -16üGúHìAIûûú[ìLàM-2147 4219l30 -7 28 -91 25 -18 27 3 9 -31 -51 -25 -22 -64 47 14 27 -11 -24 -37 14 -51 21 -24 49 2 10 -12 -1 -1 -29 -72 29 -13 22 -57 -11 -28üGúHìAIûûú[ìL\M198 4146l-20 17 34 63 -68 22GúHìAIûûú[ìLàM-844 4360l-1 -70 16 4 35 -24 15 -61 -57 -41 -22 -71 -63 -35 43 -75 -19 -67 64 -96 -14 -39 0 0üGúHìAIûûú[ìLàM-1714 4497l10 -39 214 23 55 -41 111 20 23 -39 17 30 39 7 40 -19 12 -35 19 -6 114 26 42 -28 19 23 64 -17 16 10 75 -52üGúHìAIûûú[ìLyM-2147 4219l41 32 54 0 7 51 81 30 60 61 43 17 45 55 102 32GúHìAIûûú[ìLàM-2147 4219l-61 1 -15 8 6 23 -10 12 -46 22 -28 38 -40 -1 -22 49 -89 56 -4 73 28 48 3 43 -12 34 -28 21üGúHìAIûûú[ìL~M-844 4360l41 23 55 -10 12 70 50 11 2 71 21 15 9 7 -6 53 -60 87GúHìAIûûú[ìLàM-599 4725l66 -122 65 -39 29 -44 35 17 45 -10 87 -65 3 -3 35 6 25 42 55 -10 42 -46 -16 -112 26 -30 3 -56 26 -28 21 -7 18 15 47 -42 45 -15 31 11 7 26 48 35üGúHìAIûûú[ìLPM-720 4687l121 38GúHìAIûûú[ìLàM-2465 4646l-28 -4 -49 40 -15 -28 31 -23 -11 -20 -27 -10 -45 11 -51 48 5 33 -21 41 -95 17 -44 31üGúHìAIûûú[ìLàM-2815 4782l-97 -45 -5 -23 -29 -22 -22 4 -15 31 -58 -10 -11 -46 -119 -23 8 -49 -78 -26üGúHìAIûûú[ìLOM-599 4725l76 79GúHìAIûûú[ìLàM144 4248l9 116 -41 59 6 50 50 13 17 34 -7 56 -30 57 6 31 8 12 66 102 44 42 42 11üGúHìAIûûú[ìLvM-2465 4646l55 73 0 34 37 29 0 54 38 23 3 38 18 17 4 45GúHìAIûûú[ìLàM-523 4804l25 18 21 -11 25 18 43 1 17 23 -10 40 4 102 103 147 53 1 62 45üGúHìAIûûú[ìLàM-1554 5190l-45 -64 5 -15 -60 -75 -29 -9 29 -48 -41 -27 20 -40 -45 -14 9 -145 3 -5 60 -111 -30 -65 2 -36 -17 -34 -21 -5üGúHìAIûûú[ìLàM-720 4687l-26 11 -11 58 -26 15 -24 -6 -49 40 -64 125 8 53 -46 29 -12 27 -31 -9 -33 12 -48 -32 -28 0 -38 40 -49 20 -80 -40 -57 62 -81 38 -23 -4 -26 71 -57 8 -33 -15üGúHìAIûûú[ìLàM-2370 4984l0 33 32 34 96 -67 34 9 10 -4 1 -17 2 -1 9 15 7 -2 0 -14 42 -6 32 46 -10 26 3 4 15 -4 5 7 -3 68 30 47 28 8 10 59 19 17 48 -16 28 69üGúHìAIûûú[ìLlM-1554 5190l-55 -6 -37 43 -42 5 -15 79 -40 34GúHìAIûûú[ìLyM-1932 5295l23 3 10 32 34 0 25 -10 19 -39 37 -4 9 41 32 27GúHìAIûûú[ìLàM-2219 5475l7 -15 68 -19 62 -42 5 -19 -15 -19 5 -6 24 8 29 -31 24 34 42 -31 -7 -37 43 -3üGúHìAIûûú[ìLàM-2920 5534l-26 -28 15 -41 -16 -62 24 -31 -4 -87 15 -40 -26 -36 21 -12 -5 -36 30 -19 -48 -89 0 -36 -80 -9 -4 -15 40 -60 118 -26 21 23 17 -5 6 -40 37 -19 -21 -26 22 -33 -28 -8 -3 -17üGúHìAIûûú[ìLàM-2870 5540l1 1 45 4 62 35 100 4 25 -46 86 -11 13 -23 33 -1 21 9 14 16 16 -1 32 -32 3 -16 -16 -30 17 -10 32 8 -1 25 -23 19 12 26 11 1 55 -50 26 4 23 36 20 3 44 -36üGúHìAIûûú[ìLàM-523 4804l-47 34 -3 51 14 21 -26 64 6 42 -35 -3 -3 13 12 49 -11 19 -38 7 -4 16 -52 21 -53 47 -11 119 -16 10 -47 -10 -13 -22 -37 -9 -56 130 -29 -5 -11 12 26 90 -52 46 26 50 -66 38 3 29üGúHìAIûûú[ìLM-1743 5345l22 43 10 79 28 1 7 23 62 27 35 35 128 37 32 38 -8 43GúHìAIûûú[ìLàM-2219 5475l25 31 4 41 -26 50 -33 10 -36 -32 -28 -3 -28 32 28 41 -24 69 -35 33 -39 7 -39 65 -45 -10 -7 4 2 18 43 10 22 -22 15 -4 29 6 44 77 12 62 10 4 17 -4 18 18üGúHìAIûûùGúHìAIûûúNøú[Hfil7 str1LNM-374 834l28 43GúHìAIûûú[ìÄLàM-346 877l49 -8 18 40 31 -29 81 17 9 48 -20 54 -27 28 27 34 42 3 2 -49 17 -8 10 6 -7 18 22 21 28 -5 149 70 61 3 40 -16 14 34üGúHìAIûûú[ìÄLàM200 1138l0 21 54 25 38 51 18 -5 11 -26 61 16 46 -39 60 42 24 -6 25 48 55 28 97 -41 45 9 24 31 32 -37 39 25 116 -10 15 -23 -18 -24 9 -64 25 -12 67 19üGúHìAIûûú[ìÄLtM1043 1166l50 24 14 -10 72 10 45 52 30 -14 66 3 56 81GúHìAIûûú[ìÄLtM1376 1312l15 -5 7 -34 128 14 4 22 29 10 -24 13 -6 37GúHìAIûûú[ìÄLNM1529 1369l6 10GúHìAIûûú[ìÄLàM1376 1312l-11 44 28 18 -24 19 19 35 52 -1 25 -24 29 -1 8 -27 27 -6üGúHìAIûûú[ìÄLàM1535 1379l114 25 3 7 20 47 22 14 39 -9 29 -45 67 -16 91 27 21 29 31 11 22 -22 42 6 17 -45 57 -9 81 -55 50 0 29 30 46 -8üGúHìAIûûú[ìÄLàM-3834 1670l7 69 31 -9 25 18 -5 27 -41 23 -34 51 6 27 22 11 -1 31 17 10 46 -7 42 -38 27 -2 8 -18 10 0 5 31 8 2 20 -17 72 -12 58 22 -9 34 46 -6 15 -22 18 6 4 2 17 37 27 -26 26 5 70 -27 11 -68 33 -9 44 33 31 -16üGúHìAIûûú[ìÄLàM-3178 1832l30 20 49 2 25 -32 13 12 29 30 54 -2 19 -18 18 20 -13 38 32 14 -31 87 6 47 25 20 35 -19 50 9 84 66 -10 17üGúHìAIûûú[ìÄLàM-3146 2517l-8 38 50 93 -13 10 -5 61 14 74 -24 62 26 37 -34 55 36 64 -48 62üGúHìAIûûú[ìÄLM-3152 3073l-77 25 -16 28 8 47 44 21 34 64 -30 108 -43 41 -20 95GúHìAIûûú[ìÄLnM-3544 3500l13 43 64 58 3 24 50 24 -14 90 42 51GúHìAIûûú[ìÄLxM-3386 3790l-6 46 56 30 -6 42 73 3 27 29 8 40 -56 79 4 32GúHìAIûûú[ìÄLdM-3453 4399l21 15 70 108 30 72 91 -21GúHìAIûûú[ìÄLàM-3241 4573l-47 129 -57 -14 -14 31 -71 8 -30 107 -76 62 -17 72 -46 73 7 9üGúHìAIûûú[ìÄLNM-2352 6093l7 0GúHìAIûûú[ìÄLRM-2355 6320l-29 -55GúHìAIûûú[ìÄLWM-906 6736l-31 -4 11 -36GúHìAIûûú[ìÄLsM-489 6865l22 54 30 23 40 83 33 65 -33 57 2 44 56 96GúHìAIûûùGúHìAIûûùDFbordersGúHìAIûûúSøúNøú[Hfil7 str2LwM-1532 1117l-6 2 -5 1 -6 2 -6 2 -5 1 -6 1 -6 1 -6 1 -9 2GúHìAIûûú[ìÒLàM-1587 1130l-6 1 -6 0 -5 -1 -6 -3 -3 -5 -1 -6 1 -6 4 -3 5 -3 6 -1 6 0 6 1 6 1 5 1 6 1 6 1 5 -2 6 -3 4 -3 4 -5 2 -5 4 -5 4 -4 6 -1 5 0 6 1 6 1 6 1 6 2 6 2üGúHìAIûûú[ìÒLàM-3565 1344l-2 -5 -2 -6 -2 -5 -1 -6 0 -6 0 -6 1 -6 1 -5 2 -6 2 -5 4 -5 5 -3 4 -3 4 -5 3 -5 2 -5 1 -6 2 -6 3 -4 4 -5 4 -4 4 -4 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 4 -5 4 -4 4 -4 5 -3 5 -2 7 -1 5 1 -1 4 -4 6 -3 5 -4 5 -3 4 -5 4 -5 2 -6 3 -3 4 -2 6 -1 5 -3 5 -4 5 -4 4 -2 6 -3 5 -3 5 -4 4 0 6 -1 6 -2 6 -4 4 -5 2 -5 3 -3 5 -1 6 -1 6 0 6 0 6 0 6 0 6 -3 4 -6 5üGúHìAIûûú[ìÒLàM-2635 2170l6 -3 2 -4 0 -6 -1 -6 -1 -6 2 -6 3 -5 3 -5 4 -4 6 0 7 0 5 -1 3 -5 1 -6 1 -6 0 -6 1 -6 3 -5 4 -3 6 -3 6 -1 6 1 6 1 5 -2 1 -5 -2 -7 -4 -4 -3 -5 1 -6 3 -5 5 -3 6 1 6 0 6 -1 6 -3 5 -3 1 -4 0 -6 -2 -6 -2 -6 -2 -6 -3 -5 -4 -4 -2 -5 -1 -6 0 -6 0 -6 3 -5 4 -4 3 -5 2 -6 2 -5 -4 -8üGúHìAIûûú[ìÒLàM-2532 1949l-3 6 -3 5 -3 5 -4 3 -6 1 -5 1 -4 5 -1 6 -1 5 1 6 1 6 3 5 3 5 2 6 0 6 0 5 -2 6 -4 5 -4 3 -5 4 -4 4 -4 4 -4 4 -2 6 -3 5 -4 4 -4 4 -6 1 -5 1 -3 4 -2 6 -2 6 1 6 0 6 -4 4 -5 3 -6 2 -5 3 -5 3 -5 2 -6 1 -7 0 -5 2 0 6 3 4 5 4 3 5 1 5 1 6 1 6 2 6 1 5 5 -1üGúHìAIûûú[ìÒLàM680 2265l-2 6 -3 5 -5 3 -5 2 -6 2 -6 0 -5 -2 -6 2 -5 3 -4 4 -3 5 -1 6 0 6 0 7 -2 4 -5 2 -7 0 -6 -1 -5 -3 -5 -3 -6 -2 -5 0 -6 2 -6 3 -3 3 -1 9üGúHìAIûûú[ìÒLàM-2723 3026l-5 3 -5 4 -4 4 -2 6 -1 5 0 6 2 6 2 6 2 5 3 4 5 3 6 3 5 2 5 3 1 6 -1 6 1 6 -2 5 -4 4 -5 4 -5 3 -5 2 -6 1 -6 1 -6 1üGúHìAIûûú[ìÒLàM-2668 3397l6 1 5 0 5 -3 5 -4 4 -3 6 -3 5 -2 5 -3 2 -5 1 -6 0 -6 3 -5 2 -5 0 -6 -5 -4 -5 -1 -3 4 -3 6 -1 6 -1 6 -1 5 -3 5 -5 4 -4 3 -6 3 -6 1 -3 4 -3 8üGúHìAIûûú[ìÒLàM-2311 3446l-4 -4 -3 -5 -3 -5 -1 -6 0 -5 2 -6 2 -6 1 -5 1 -6 -1 -6 -3 -5 -5 -2 -6 1 -3 5 0 6 -2 6 -3 5 -4 4 -4 3 -6 3 -6 1 -5 2 -6 0 -6 -1 -6 1 -5 1 -6 1 -6 0 -6 0 -6 0 -6 0 -5 1 -6 0 -6 1 -6 2 -5 1 -5 3 -5 3 -4 5 -3 5 -1 8üGúHìAIûûú[ìÒLàM-2463 3452l6 1 5 -1 6 -3 5 -2 5 -3 5 -3 5 -3 6 -2 5 0 6 0 6 1 6 0 6 0 6 0 5 3 4 4 5 1 6 -2 5 -3 6 -2 5 -2 6 -1 6 -1 6 0 4 5 4 4 5 2 7 1üGúHìAIûûú[ìÒLàM-2509 3450l-3 -5 2 -5 4 -4 5 -4 4 -4 2 -6 -4 -3 -6 0 -4 3 -4 5 -3 5 -3 5 -5 3 -5 3 -5 2 -5 4 -4 3 -6 1 -6 0 -6 -1 -6 -1 -5 -3 -4 -4 -4 -4 -4 -4 -5 -4 -5 -2 -6 -1 -6 -1 -6 -1 -5 -3 -3 -5 -2 -5 -3 -5 -5 -3 -6 2 -6 -1 -6 -1 -5 -1 -12 1üGúHìAIûûú[ìÒLàM-2665 3406l5 4 5 3 4 3 6 3 6 1 3 4 3 5 3 5 5 3 6 1 6 1 6 -1 6 1 5 0 5 3 5 4 4 5 2 5 3 4 6 1 6 1 6 1 5 0 6 0 6 -3 5 -2 5 -3 6 -1 6 0 5 -2 6 -2üGúHìAIûûú[ìÒLàM-2994 3305l-3 -5 -5 0 -6 0 -6 1 -6 2 -4 4 -5 2 -6 2 -5 2 -6 3 -5 3 -5 2 -4 4 -5 4 -5 3 -6 0 -3 -4 0 -6 2 -6 -3 -4 -6 -2 -3 5 -1 6 1 6 1 6 -1 5 -5 3 -6 2 -5 3 -6 2 -5 3 -5 3 -4 4 -4 4 -3 5 -2 6 -2 5 -2 6 -4 4 -3 5 -2 6 -3 5 -2 5 -2 6 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -2 5 -4 5 -2 5 4 7üGúHìAIûûú[ìÒLàM-2707 3409l-1 -6 -1 -6 -1 -6 -3 -1 -5 5 -2 6 -1 5 -3 5 -5 4 -4 4 -5 3 -5 1 -6 1 -6 2 -5 2 -6 2 -5 2 -5 2 -6 2 -5 2 -6 2 -5 2 -6 2 -5 2 -6 2 -5 2 -6 1 -6 1 -6 1 -5 0 -6 1 -6 1 -6 -1 -6 0 -5 1 -6 2 -6 2 -5 1 -6 2 -5 2 -5 4 -4 4 -6 1 -6 0 -3 -5 -1 -6 -1 -4 -5 -2 -6 -2 -6 0 -7 0 -4 2 -4 6 -3 5 -5 1 -6 -1 -5 -3 -5 -2 -5 -4 -5 -3 -5 -3 -5 -3 -4 -4 -5 -4 -2 -5 -1 -6 -4 -4 -6 -3 -5 2 -6 1 -6 1 -5 2 -4 4 -6 3 -6 0 -6 -1 -3 -3 0 -7 5 -3 3 -5 -1 -6 -5 0 -6 3 -4 4 -4 4 -6 3 -5 2 -6 2 -5 0 -6 1 -6 2 -5 2 -5 2 -6 3 -5 2 -6 2 -5 3 -5 4 -5 2 -5 -2 0 -5 4 -5 3 -5 5 -4 3 -4 4 -5 3 -5 3 -5 3 -5 3 -5 2 -5 2 -6 2 -5 2 -6 2 -5 2 -6 3 -5 4 -4 5 -2 6 -2 6 -1 5 -1 6 -1 6 -2 5 -3 4 -4 4 -4 4 -4 5 -4 4 -3 5 -4 5 -2 6 -2 6 -1 6 0 5 -2 5 -3 6 -2 5 -3 6 -1 6 0 -1 -4üGúHìAIûûú[ìÒLàM-3947 3399l2 5 2 6 3 5 4 4 1 6 -3 5 -1 6 0 6 -1 6 0 5 1 6 0 6 0 6 -2 5 -3 5 -4 5 -4 4 -3 5 -4 5 -3 5 -2 5 -2 6 1 6 5 4 4 4 -1 5 -3 5 -5 4 -5 0 -6 -2 -6 1 -5 3 -2 6 0 6 0 7üGúHìAIûûú[ìÒLàM-3989 3565l5 2 6 2 6 -1 5 -2 5 -3 4 -5 2 -5 4 -5 4 -4 4 -4 6 -3 4 -3 -1 -5 -2 -6 -1 -6 0 -6 3 -5 5 -1 6 2 6 0 7 -1 3 -2 -3 -6 -6 -3 -6 -1 -5 -1 -2 -5 2 -6 0 -6 1 -6 0 -6 0 -6 0 -6 0 -5 2 -6 2 -6 1 -5 2 -6 2 -5 1 -6 -2 -6 -5 -4 -5 -1 -6 -2 -6 0 -6 -1üGúHìAIûûú[ìÒLàM-604 3461l5 3 5 4 4 4 4 4 3 5 2 6 3 5 4 4 5 3 6 2 6 -2 5 1 5 4 0 5 -4 5 -1 6 0 6 1 5 3 6 3 5 4 4 4 5 4 3 5 4 5 3 6 1 6 0 5 2 5 3 5 4 1 5 -1 6 3 5 3 4 4 5 5 6üGúHìAIûûú[ìÒLàM-481 3602l-5 3 -6 0 -4 -2 -5 -5 -4 -4 -4 -5 -3 -5 -4 -2 -6 0 -7 0 -5 0 -6 -2 -5 -3 -2 -5 -2 -6 -2 -6 -1 -6 -3 -5 -4 -4 -4 -4 -5 -3 -4 -5 -4 -4 -3 -5 -2 -5 -3 -5 -5 -4 -5 -3 -4 -4 -2 -5 -2 -6 -1 -6 -1 -5 -1 -6 0 -6 1 -8üGúHìAIûûú[ìÒLàM-3176 3467l4 3 6 0 6 -1 5 -2 5 -3 4 -4 4 -5 5 -2 6 -3 5 -1 6 -2 6 0 6 0 5 2 6 1 6 0 6 0 5 0 6 0 6 0 6 0 6 0 6 0 5 -2 5 -3 6 0 6 1 6 2 5 2 4 4 5 4 5 3 4 3 5 4 5 3 5 3 5 3 5 3 5 3 5 3 3 5 -1 6 -2 6 1 4 6 3 6 0 6 -1 4 4 3 5 3 5 3 6 2 5 3 5 2 5 3 5 3 5 3 6 3 4 4 5 4 4 5 3 5 3 5 3 6 2 5 1 6 0 6 0 6 1 6 0 6 0 6 0 5 0 6 2 6 2 5 2 5 2 6 3 5 2 5 4 4 3 5 4 4 4 5 3 5 3 5 2 6 2 6 0 6 -1 4 -5 1 -6 -4 -4 -5 -3 -6 -1 -6 0 -5 -3 -5 -2 -5 -4 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -4 -4 -5 -3 -5 -4 -5 -3 -6 0 -5 0 -6 1 -6 1 -6 1 -6 1 -5 -1 -6 -1 -6 -2 -5 -2 -5 -3 -5 -4 -4 -4 -4 -4 -3 -5 -3 -5 -4 -5 -3 -4 -4 -5 -3 -5 -4 -4 -3 -5 -3 -5 -2 -6 -1 -6 1 -5 5 -4 5 -2 6 -2 6 -1 5 -1 6 -2 5 -2 6 -1 6 -1 5 -1 6 -1 6 -2 5 -1 6 -1 6 0 6 0 6 0 5 -1 6 -1 6 -1 6 -1 5 -2 6 -2 5 -2 5 -2 6 -3 5 -2 5 -3 5 -3 6 -2 5 -3 5 -2 6 -1 6 0 6 1 5 -2 5 -3 3 -5 4 -4 5 -4 4 -4 8 -6üGúHìAIûûú[ìÒLàM-2017 3833l-1 -6 -2 -5 -3 -5 -3 -5 -3 -5 -2 -5 1 -6 3 -6 -1 -5 -4 -4 -5 -4 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -4 -4 1 -6 5 -2 6 1 6 1 7 -4üGúHìAIûûú[ìÒLàM-2142 3754l-1 6 -1 6 -1 5 -1 6 -1 6 -1 6 -1 5 -2 6 -2 5 -2 6 -3 5 -3 5 -4 4 -5 4 -5 3 -5 3 -5 4 -5 3 -5 0 -5 -3 -4 -5 -2 -6 -1 -6 -4 -1 -6 4 0 5 2 6 -1 6 0 6 -1 6 -1 5 -2 6 -2 5 -1 6 -2 6 -1 5 -1 6 3 10üGúHìAIûûú[ìÒLàM-2224 3903l5 2 5 -3 0 -5 -1 -6 -2 -6 0 -6 2 -5 3 -5 5 -4 4 -4 6 -2 5 -2 6 -3 5 -3 5 -3 5 -3 4 -3 5 -3 5 -4 4 -4 4 -5 3 -4 3 -5 3 -5 3 -6 2 -5 3 -5 2 -6 2 -5 2 -6 2 -5 2 -6 2 -5 2 -5 5 -4 5 -2 6 -2 6 1 6 1 4 4 3 5 3 5 3 5 4 5 3 5 5 3 5 3 5 3 4 4 4 4 3 5 2 6 2 5 2 6 3 5 4 5 5 2 9 1üGúHìAIûûú[ìÒLàM-2310 3962l-6 1 -6 0 -6 1 -5 1 -6 2 -5 4 -4 4 -3 5 -3 5 -4 4 -5 3 -6 2 -5 2 -6 2 -5 1 -6 2 -6 1 -5 2 -5 3 -5 3 -3 5 -5 7üGúHìAIûûú[ìÒLàM-2420 4022l2 3 6 1 6 -1 5 -3 5 -3 5 -3 5 -3 5 -3 6 -2 5 -2 6 -2 5 -2 5 -3 5 -3 5 -3 5 -3 5 -4 4 -3 5 -4 4 -4 4 -5 7 -8üGúHìAIûûú[ìÒLàM-2391 4081l1 -7 1 -5 4 -3 6 -2 6 -1 6 1 4 5 5 3 5 2 6 1 6 0 6 0 6 -1 5 -2 6 -3 4 -3 5 -3 6 0 6 0 6 0 6 0 6 0 5 0 6 -1 6 -1 5 -2 6 -2 5 -4 4 -3 6 -2 6 2 4 3 0 5 -3 6 -1 6 -1 6 2 5 4 5 4 4 4 4 5 4 5 2 6 3 5 1 6 2 4 4 4 5 3 6 0 5 -5 5 -5 0 -5 -2 -5 -3 -6 -3 -4 -3 -5 -5 -4 -4 -5 -2 -6 -2 -3 -5 -3 -5 -3 -5 -2 -5 -4 -5 -4 -4 -6 -2 -5 -1 -6 0 -6 1 -6 0 -6 1 -6 0 -5 1 -6 1 -6 1 -4 4 -5 3 -6 1 -6 0 -6 0 -6 0 -5 -1 -6 -2 -6 -2 -5 -1 -6 -1 -6 -1 -6 0 -5 1 -7 0üGúHìAIûûú[ìÒLàM-858 4621l4 -3 5 -4 4 -4 4 -5 3 -5 3 -5 3 -5 5 -3 3 5 -1 6 -4 4 -4 4 -4 5 -4 4 -4 4 -3 5 -3 5 -1 6 1 5 3 6 2 5 3 6 0 5 -3 5 -4 5 -4 4 -4 4 -9 3üGúHìAIûûú[ìÒLàM-867 4683l-1 -5 1 -6 2 -6 2 -5 2 -5 2 -6 1 -5 1 -6 1 -6 -1 -6 -1 -6üGúHìAIûûú[ìÒLàM3405 6355l-6 -2 -5 -2 -6 -1 -5 -2 -7 -2 -5 0 -2 4 0 6 0 7 0 6 -1 6 -2 6 -1 6 -1 5 2 6 4 5 5 2 6 0 6 -1 6 1 5 2 7 4üGúHìAIûûú[ìÒLàM369 6486l6 -2 5 -2 6 -2 5 -2 6 -2 5 -2 6 -2 5 -2 6 -2 5 -2 6 -3 5 -2 6 -1 5 -1 6 0 6 2 5 4 4 4 2 5 -1 6 -2 6 -2 6 -3 5 -3 5 -4 5 -4 3 -5 2 -6 2 -6 1 -6 1 -5 1 -6 0 -6 0 -6 1 -6 1 -5 1 -6 1 -6 1 -6 2 -5 1 -6 3 -5 2 -4 4 -4 4 -4 5 -5 4 -4 3 -6 2 -5 2 -6 1 -6 0 -5 -1 -6 -2 -6 -2 -6 -1 -5 0 -6 1 -6 1 -6 1 -5 1 -6 1 -6 1 -6 0 -6 0 -6 0 -4 -3 -1 -6 2 -6 5 -3 5 -3 5 -3 5 -4 5 -3 4 -4 5 -4 4 -4 5 -3 5 -3 5 -3 5 -2 6 -2 6 -2 5 -2 6 -1 6 0 5 1 5 4 5 3 5 -1 5 -3 6 -4 5 -2 5 -2 10 -4üGúHìAIûûú[ìÒLàM2860 6683l2 -5 2 -6 1 -6 2 -5 2 -6 2 -5 2 -5 3 -6 2 -5 3 -5 3 -5 3 -5 3 -5 4 -5 3 -5 3 -5 3 -4 3 -5 4 -5 2 -5 3 -6 3 -5 3 -5 4 -5 3 -5 4 -4 4 -3 5 -3 6 -2 5 -1 6 -2 6 -1 6 -2 6 -1 5 -2 5 -3 5 -3 4 -5 4 -4 5 -3 5 -2 6 -3 5 -2 6 -2 5 -3 6 -3 6 -2 5 -1 5 0 5 3 4 5 3 5 2 6 1 6 0 6 -1 6 -2 5 -5 4 -5 3 -6 1 -5 0 -6 0 -6 0 -6 1 -6 2 -5 3 -5 3 -4 4 -3 5 -1 6 -3 5 -3 5 -3 5 -4 4 -4 4 -4 4 -5 4 -5 3 -5 2 -6 2 -6 1 -5 3 -5 3 -4 4 -5 3 -5 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 4 -4 4 -4 5 -4 4 -3 5 -4 5 -4 4 -5 3 -5 1 -12 1üGúHìAIûûú[ìÒLàM-3569 4591l5 -3 5 -3 4 -5 1 -5 2 -6 4 -4 5 -3 5 -3 5 -3 5 -3 5 -3 6 -2 5 -2 6 -1 6 0 6 -1 5 -3 4 -4 3 -5 2 -5 0 -7 1 -5 3 -5 5 -4 5 -3 5 -2 6 0 6 0 6 1 5 1 6 1 6 1 6 1 6 0 6 1 7 2 6 1 4 -1 3 -4 0 -7 -1 -6 -4 -5 -5 -3 -6 -2 -5 -1 -6 -1 -6 0 -6 0 -6 1 -5 1 -6 1 -6 1 -5 2 -6 1 -6 2 -6 2 -5 2 -6 2 -6 1 -5 1 -5 0 -6 -3 -3 -6 0 -5 1 -6 3 -6 2 -5 4 -5 3 -4 5 -4 3 -5 4 -4 3 -5 3 -5 3 -5 3 -6 2 -5 3 -5 4 -4 4 -4 6 -6üGúHìAIûûú[ìÒLàM-3415 4234l-6 3 -4 4 -3 5 -2 5 -2 6 2 6 0 5 -2 6 -1 6 -3 5 -5 4 -5 1 -6 -3 -6 -2 -6 -2 -3 2 -1 7 2 6 4 4 4 5 1 5 0 6 0 6 -1 6 0 6 -1 6 0 6 -2 5 -3 5 -3 5 -3 5 -4 5 -2 5 -2 5 -2 6 -2 5 -3 6 -2 5 -3 6 -3 5 -4 2 -6 0 -7 -1 -6 0 -6 0 -5 1 -5 3 -2 6 1 5 4 5 4 5 2 5 -1 6 -2 5 -1 6 -1 6 -1 6 -1 6 -1 5 -2 6 -2 5 -2 6 -2 5 -2 6 -2 5 -3 6 -2 6 -3 4 -4 -1 -3 -6 -3 -5 -2 -6 -2 -5 -4 -5 -3 -5 -4 -4 -4 -5 -4 -4 -3 -5 -2 -5 -2 -5 -1 -6 -1 -7 -2 -6 -3 -3 -6 1 -6 4 -2 4 0 6 1 6 1 6 2 6 1 5 0 6 -1 6 3 5 5 2 6 2 5 3 5 4 4 4 2 5 2 6 1 6 0 6 0 6 -1 5 -3 5 -1 6 1 5 2 6 3 5 5 7üGúHìAIûûú[ìÒLàM-2748 3125l-6 -1 -6 -1 -5 -2 -3 -5 1 -6 1 -6 1 -6 2 -4 5 -5 3 -4 4 -5 4 -4 2 -5 1 -6 -1 -6 -3 -5 -5 -4 -5 -2 -6 -1 -6 1 -5 1 -7 2 -6 0 -1 -3 3 -7 4 -5 5 -2 6 0 6 1 5 2 6 0 4 -3 5 -4 4 -4 5 -4 4 -4 4 -4 4 -5 3 -5 4 -4 7 -3üGúHìAIûûú[ìÒLàM-856 2935l4 -1 4 -4 4 -4 1 -6 0 -6 0 -5 3 -6 3 -5 5 -3 3 -5 2 -6 -1 -5 -4 -3 -6 -3 -3 -5 -2 -6 0 -6 1 -6 2 -5 2 -6 3 -5 4 -4 4 -5 4 -3 5 -3 7 -1 5 -2 2 -5 2 -9üGúHìAIûûú[ìÒLàM-802 2802l-6 0 -6 0 -6 1 -6 2 -5 2 -4 3 -4 5 -3 5 -2 6 -2 5 -3 5 -2 6 -2 5 -2 6 -1 5 -3 6 -2 5 0 6 2 5 4 5 3 5 -1 5 -3 6 -1 5 0 6 -1 6 -3 5 0 6 5 6üGúHìAIûûú[ìÒLàM572 2328l4 3 5 2 6 1 6 1 6 1 5 1 6 2 5 3 6 2 5 -1 6 -2 5 -3 4 -5 2 -5 2 -6 2 -5 3 -5 3 -5 5 -4 5 -1 6 -1 6 -3 5 -3 4 -3 5 -4 3 -4 4 -5 3 -5 2 -6 2 -5 2 -6 1 -6 1 -6 2 -5 2 -5 5 -4 5 -2 6 -2 6 -2 6 0 6 1 5 1 5 3 5 4 4 4 4 5 4 3 5 2 6 0 11 0üGúHìAIûûú[ìÒLxM794 2248l-2 -5 -3 -6 -3 -4 -5 -4 -5 -3 -4 -4 -5 -3 -7 -4GúHìAIûûú[ìÒLàM1514 7287l-1 -6 -1 -6 0 -6 -1 -6 -1 -5 0 -6 -1 -6 0 -6 1 -6 1 -5 3 -5 4 -5 3 -5 4 -5 3 -4 4 -4 4 -5 4 -4 5 -4 4 -4 5 -4 4 -4 5 -4 4 -4 3 -5 2 -4 1 -6 -1 -6 -1 -6 -2 -6 -2 -6 -4 -6 -3 -3 -5 0 -6 4 -4 4 -4 4 -4 5 -3 5 -4 5 -3 4 -3 6 -2 5 -3 5 -4 4 -4 4 -5 3 -6 2 -5 2 -6 3 -5 2 -6 1 -5 2 -6 2 -6 1 -5 1 -6 1 -7 0 -6 -1 -5 -1 -4 -3 -3 -5 -1 -6 0 -7 0 -6 2 -6 1 -5 -1 -5 -6 -3 -5 1 -5 2 -6 4 -4 3 -5 3 -5 4 -3 5 -4 5 -3 5 -2 6 -2 5 0 5 3 5 4 5 5 4 3 5 4 5 2 5 -1 6 -1 6 -2 6 -3 5 -4 4 -6 0 -6 0 -6 0 -6 -1 -6 1 -4 3 -5 3 -4 5 -5 4 -5 3 -5 2 -5 2 -6 2 -5 2 -6 2 -5 3 -8 5üGúHìAIûûú[ìÒLàM2600 6812l5 -4 5 -3 4 -4 5 -4 4 -5 4 -4 4 -4 2 -5 0 -7 -3 -4 -6 -1 -6 0 -6 1 -6 0 -6 1 -6 1 -5 0 -6 2 -6 1 -6 0 -6 2 -4 3 -4 4 -3 5 -4 5 -5 3 -5 2 -6 2 -6 1 -6 1 -6 0 -6 -1 -6 0 -5 2 -4 3 -5 4 -3 5 -3 5 -2 6 -1 6 -2 5 -4 5 -5 1 -5 -3 -5 -4 -6 -2 -5 -1 -6 0 -6 0 -6 1 -5 3 -2 5 1 7 3 4 5 4 5 3 5 3 6 3 5 2 5 2 6 0 6 0 6 0 6 0 6 0 5 0 6 2 6 1 6 1 5 0 6 -2 6 -2 5 -2 5 -3 4 -5 3 -5 3 -5 4 -3 6 -1 6 1 6 1 6 -1 5 -4 4 -4 4 -5 3 -4 2 -6 3 -5 2 -6üGúHìAIûûú[ìÒLgM-2710 2997l3 5 -1 6 -4 5 -3 4 -4 4 -4 5GúHìAIûûú[ìÒLàM-2041 3748l4 -3 -1 -6 -3 -5 -4 -4 -5 -3 -5 -3 -6 -2 -5 -1 -6 -1 -6 0 -6 1 -8 1üGúHìAIûûú[ìÒLwM-2100 3724l-5 1 -6 1 -6 2 -5 2 -5 3 -5 4 -4 4 -4 4 -2 9GúHìAIûûú[ìÒLOM-2092 3722l-8 2GúHìAIûûú[ìÒLàM-728 2977l-6 0 -5 -3 -4 -5 -1 -6 -2 -5 -4 -5 -5 -2 -6 0 -6 1 -5 2 -6 2 -5 2 -6 2 -5 1 -6 1 -6 1 -6 0 -6 0 -5 0 -6 2 -5 3 -5 2 -5 3 -6 2 -5 3 -4 4 -4 5üGúHìAIûûú[ìÒLàM-863 2987l-4 5 -4 4 -4 5 0 5 5 4 5 3 6 3 4 4 2 5 1 6 1 6 0 5 0 6 0 6 2 6 2 6 3 4 6 2 6 1 6 0 5 -2 2 -5 1 -6 1 -6 1 -6 -1 -6 -3 -5 -2 -5 -4 -4 -4 -5 -4 -5 -2 -5 -1 -6 0 -6 1 -5 3 -5 4 -4 3 -5 5 -3 5 -3 6 -2 6 0 5 -1 6 -1 6 0 6 0 6 1 5 0 6 1 6 1 5 3 5 3 5 3 6 2 5 2 5 2 6 1 6 1 6 -1 5 -5 -1 -4 -5 -4 -5 -3 -6 1 -7 1üGúHìAIûûú[ìÒLàM760 2215l-5 -3 -5 -3 -5 -2 -6 -1 -6 0 -6 1 -6 2 -4 3 -5 4 -4 4 -4 4 -5 4 -4 5 -3 4 -4 5 -2 5 -3 5 -1 6 -2 7üGúHìAIûûú[ìÒLàM-2840 2347l5 -3 5 -3 5 -3 4 -4 5 -4 4 -5 3 -5 4 -4 5 1 6 3 4 5 1 5 -1 6 0 6 1 6 1 7 2 5 4 2 6 0 7 0 4 3 4 4 4 5 3 6 3 6 3 5 3 5 3 3 5 0 5 -4 6 -5 5 -1 3 4 6 7üGúHìAIûûú[ìÒLàM-2712 2400l5 3 4 4 4 4 4 5 4 4 4 4 3 5 4 4 4 5 3 5 4 4 3 5 2 6 3 5 2 6 1 6 -1 5 -5 4 -5 -1 -5 -4 -5 -4 -4 -4 -3 -5 -1 -6 -2 -6 -1 -6 -2 -5 -3 -4 -5 -3 -6 -2 -6 0 -6 1 -5 3 0 8 -2 1 -4 -4 -3 -7 -1 -5 2 -6 0 -6 -3 -5 -5 -5 -4 -3 -6 0 -6 1 -5 -3 -4 -5 -4 -3 -6 -2 -5 -2 -5 -3 -5 -5 -5 -4 -4 -1 -3 3 -3 6 -3 6 -3 5 -5 5 -5 2 -4 -2 -3 -6 -1 -6 2 -5 2 -6 2 -6 1 -6 0 -5 -4 -5 -4 -4 -6 -6üGúHìAIûûú[ìÒLàM-3453 4399l5 -4 3 -5 4 -5 3 -5 1 -5 0 -6 -1 -6 -1 -6 0 -6 -1 -5 0 -6 0 -6 2 -6 1 -5 2 -6 2 -5 3 -5 4 -4 4 -5 4 -4 4 -5 3 -4 3 -6 2 -5 1 -6 1 -6 0 -5 -1 -6 -2 -6 -3 -4 -5 -7üGúHìAIûûú[ìÒLàM-1493 1087l4 3 4 5 3 5 1 5 -1 7 -2 5 -4 4 -6 -1 -6 -2 -6 -1 -5 -2 -6 0 -6 0 -9 2üGúHìAIûûùGúHìAIûûúNøú[Hfil7 str3LàM-3176 3467l-5 3 -4 3 -5 4 -5 3 -5 4 -4 3 -5 3 -5 3 -5 3 -6 2 -6 1 -5 1 -6 1 -10 1üGúHìAIûûú[ìØLàM-3544 3500l-6 0 -6 1 -6 0 -5 2 -5 2 -5 3 -5 4 -5 3 -5 3 -6 2 -5 0 -6 -2 -6 -1 -5 -2 -6 -2 -6 1 -5 2 -5 4 -4 4 -4 4 -4 4 -4 4 -4 4 -5 4 -4 4 -4 4 -5 4 -4 3 -5 4 -5 4 -4 3 -5 4 -4 3 -5 4 -4 4 -4 4 -4 4 -4 5 -3 4 -4 5 -4 5 -4 4 -4 4 -5 2 -6 1 -6 0 -6 -2 -5 -2 -6 -1 -6 -1 -6 -1 -5 1 -6 2 -5 2 -6 2 -6 1 -6 1 -5 1 -6 1 -6 0 -6 -1 -6 -1 -5 -1 -5 -3 -6 -2 -5 -2 -6 -1 -6 -1 -5 1 -6 2 -5 3 -5 4 -4 4 -5 3 -6 2 -6 1 -5 0 -5 -3 -5 -3 -5 -4 -5 -3 -5 -2 -6 -1 -6 0 -6 1 -5 -1 -6 0 -7 -1üGúHìAIûûú[ìØLàM-3997 3618l-4 4 -5 3 -5 2 -6 1 -6 0 -6 0 -5 0 -6 0 -6 0 -6 1 -6 1 -5 2 -4 4 -3 5 -2 6 -2 5 -2 6 -2 5 -4 5 -4 4 -4 4 -4 4 -4 5 -4 4 -4 4 -4 4 -4 5 -4 3 -5 4 -5 3 -5 4 -4 3 -5 3 -5 3 -5 4 -5 3 -4 4 -4 4 -3 5 -3 5 -1 6 -1 6 -3 4 -5 4 -5 3 -4 4 -3 5 -4 5 -4 4 -3 5 -2 5 -2 6 -1 6 0 6 0 5 -2 6 -2 6 -2 5 -2 5 -3 5 -4 5 -3 5 -4 4 -3 5 -4 5 -3 4 -4 5 -4 4 -4 4 -4 4 -5 4 -5 3 -4 4 -5 3 -5 4 -5 3 -5 3 -5 2 -5 1 -6 0 -6 0 -6 0 -6 0 -6 0 -6 1 -5 1 -6 2 -5 3 -5 3 -4 5 -3 4 -1 6 -2 6 -2 5 -2 6 -2 5 -3 5 -2 5 -3 6 -3 5 -3 5 -3 5 -3 6üGúHìAIûûú[ìØL_M-3252 3502l-6 1 -5 1 -6 1 -11 2GúHìAIûûú[ìØLàM-3280 3507l-6 0 -6 1 -6 1 -5 1 -6 1 -6 0 -6 -1 -6 0 -5 -1 -6 0 -6 -1 -6 0 -6 -1 -5 -1 -6 0 -6 -2 -6 -1 -5 -1 -6 0 -6 2 -5 2 -6 1 -5 2 -6 2 -5 3 -5 2 -6 2 -6 -1 -5 -1 -6 -2 -6 -1 -6 -1 -5 -1 -6 -1 -6 0 -6 -1 -5 -2 -6 -2 -5 -1 -6 -2 -6 -2 -5 0 -6 -1 -6 0 -6 1 -7 0üGúHìAIûûú[ìØLcM-2869 5541l6 -3 5 -2 5 -4 4 -4 4 -5GúHìAIûûú[ìØLàM1155 2704l-6 1 -6 1 -5 1 -6 1 -6 1 -6 1 -5 1 -6 1 -6 1 -6 0 -5 0 -6 -2 -6 -2 -5 -1 -6 -1 -6 -1 -6 -1 -6 0 -5 -1 -6 0 -6 0 -6 0 -6 0 -6 0 -5 1 -6 2 -5 3 -6 1 -5 -1 -5 -3 -5 -4 -4 -3 -5 -4 -5 -3 -5 -4 -4 -3 -5 -3 -6 -3 -5 -3 -4 -4 -3 -4 -3 -6 -1 -6 0 -5 2 -6 1 -6 2 -6 0 -5 0 -6 0 -6 0 -6 -1 -6 0 -5 -2 -6 -1 -6 -2 -5 -2 -6 -1 -6 -2 -5 -1 -6 -1 -6 -1 -6 0 -5 0 -6 1 -6 2 -5 2 -6 3 -5 4 -4 4 -4 5 -3 5 -3 6 -3 5 -2 6 -2 5 -2 6 -3 4 -3 3 -5 3 -5 2 -5 3 -6 2 -5 3 -6 2 -5 2 -6 1 -5 1 -6 1 -6 1 -6 0 -5 -1 -6 -1 -6 -2 -6 -3 -5 -4 -4 -5 -3 -4 -4 -5 -3 -4 -4 -5 -4 -4 -5 -2 -5 -2 -5 -1 -6 0 -6 -1 -6 -3 -5 -5 -3 -6 -3 -5 -2 -6 -1 -6 -1 -5 -1 -6 1 -6 2 -5 2 -6 1 -6 2 -5 2 -6 1 -6 1 -5 1 -6 0 -6 0 -6 0 -6 -1üGúHìAIûûú[ìØLàM-3921 2460l-6 2 -5 2 -4 4 -5 4 -4 3 -6 2 -6 1 -5 -1 -6 -2 -5 -3 -6 -1 -5 1 -6 1 -6 -1 -6 -2 -5 -2 -3 -5 -3 -5 -5 -2 -6 -2 -6 -1 -5 -2 -5 -3 -5 -4 -3 -5 -3 -5 -3 -5 -4 -4 -3 -5 -4 -4 -5 -5 -4 -3 -5 -3 -5 -2 -6 -2 -6 -2 -5 -2 -6 -1 -5 -2 -6 -1 -11 -2üGúHìAIûûú[ìØLàM847 2333l-6 -1 -7 -1 -4 -3 -3 -5 -2 -5 -1 -6 -1 -6 0 -6 2 -6 1 -5 1 -6 1 -6 1 -6 0 -6 -3 -4 -6 -4 -5 -2 -8 -3üGúHìAIûûú[ìØLPM794 2248l4 0 9 4GúHìAIûûú[ìØLàM3001 367l0 6 0 6 0 6 0 5 1 6 0 6 1 6 2 5 2 6 2 5 3 5 2 6 2 5 3 5 2 6 2 5 3 5 2 6 3 5 3 5 2 5 3 6 3 5 3 5 2 5 3 5 3 5 3 5 3 5 3 5 3 5 3 5 4 5 3 4 4 5 3 4 4 5 4 4 4 5 4 4 4 4 4 5 4 4 4 4 4 5 3 6üGúHìAIûûùGúHìAIûûúNøú[Hfil7 str4LàM1184 367l2 5 3 5 3 5 3 5 4 5 3 5 3 5 3 5 2 5 3 5 2 6 3 5 3 5 4 4 4 4 4 5 4 4 4 4 2 6 2 5 1 6 2 5 3 5 3 5 4 5 4 4 4 5 3 4 4 5 4 4 3 5 4 5 3 5 2 5 3 5 2 5 3 6 2 5 3 5 3 5 4 4 5 4 7 5üGúHìAIûûú[ìÜL]M-2665 3406l-5 -2 -6 -2 -10 -1GúHìAIûûú[ìÜLZM-2686 3401l-6 2 -5 2 -10 4GúHìAIûûú[ìÜLwM-2463 3452l-5 2 -6 2 -5 0 -6 -1 -6 -1 -5 -2 -6 -1 -7 -1GúHìAIûûú[ìÜLàM-3569 4591l-6 1 -5 1 -6 1 -6 -1 -6 -1 -5 -1 -6 0 -6 0 -6 2 -4 3 -4 5 -3 5 -3 5 -4 4 -4 4 -4 5 -3 5 -3 5 -2 5 -1 6 -1 6 -1 6 0 5 0 6 0 6 1 6 1 6 1 6 2 5 1 6 0 6 -1 5 -3 5 -3 5 -3 5 -3 5 -4 5 -3 5 -1 6 -1 6 1 6 1 5 3 6 2 5 2 5 0 6 1 6 0 6 0 6 0 6 0 5 1 6 2 6 1 6 1 5 2 6 0 6 0 5 -1 6 -2 6 -1 5 -1 6 0 6 1 6 2 6 -1 5 -1 6 -3 5 -2 6 -2 5 -2 6 -2 5 -2 6 -1 5 -1 6 -1 6 0 6 0 6 1 5 2 6 2 6 3 5 3 5 4 4 5 3 5 3 4 4 5 4 4 4 4 4 4 4 5 4 4 4 5 3 5 1 6 1 6 2 8 6üGúHìAIûûú[ìÜLàM-3592 5050l3 5 4 4 4 5 4 4 4 5 3 5 2 5 2 5 1 6 1 6 0 5 0 6 0 6 0 6 1 6 0 6 0 6 1 6 0 6 1 5 0 6 1 6 0 6 1 6 0 5 1 6 0 6 0 6 1 6 0 5 1 6 0 6 0 6 1 6 0 6 1 5 0 7üGúHìAIûûú[ìÜLàM-2224 3903l-4 4 -5 4 -4 3 -5 3 -6 3 -5 2 -6 2 -5 2 -5 2 -6 3 -5 3 -4 3 -5 4 -4 4 -4 4 -4 4 -5 5 -4 4üGúHìAIûûú[ìÜLàM-2420 4022l-6 2 -6 1 -5 0 -6 -2 -6 -2 -5 -2 -5 -3 -5 -3 -5 -3 -5 -3 -6 -1 -6 -1 -5 1 -6 0 -6 0 -6 0 -6 0 -6 0 -6 0 -5 -1 -6 0 -6 -1 -6 0 -6 -1 -5 -1 -10 -2üGúHìAIûûú[ìÜLàM-2571 4000l-6 0 -6 -1 -6 -1 -6 0 -6 0 -5 2 -6 1 -5 2 -6 3 -5 2 -5 3 -6 2 -5 3 -4 3 -5 4 -5 4 -4 4 -4 4 -4 5 -4 4 -4 4 -4 4 -5 3 -6 1 -6 -1 -6 0 -6 0 -5 0 -6 -2 -5 -3 -5 -3 -5 -3 -6 -2 -5 -1 -6 1 -6 0 -6 2 -6 1 -5 2 -6 2 -4 3 -4 5 -3 5 -3 5 -2 5 -2 6 -1 6 -1 5 -1 6 -1 6 -2 6 -3 4 -5 4 -5 3 -5 3 -6 2 -5 2 -6 2 -6 0 -5 -1 -6 -1 -6 -3 -5 -3 -5 -3 -4 -4 -3 -5 -1 -6 -2 -6 0 -5 0 -6 0 -6 -2 -6 -3 -5 -4 -4 -5 -3 -5 -2 -6 -2 -6 -1 -6 0 -6 1 -5 1 -6 2 -5 3 -6 2 -4 4 -5 3 -4 4 -4 5 -4 4 -5 2 -6 2 -6 2 -6 1 -5 0 -6 0 -6 1 -6 0 -6 0 -6 0 -5 0 -6 0 -6 0 -6 0 -6 0 -6 -1 -5 0 -6 -1 -6 0 -6 -1 -5 -2 -6 -1 -6 -2 -5 -2 -5 -3 -5 -3 -4 -4 -5 -4 -5 -3 -5 -3 -5 -3 -5 -3 -5 -2 -6 -1 -6 -1 -6 0 -6 1 -5 1 -6 1 -6 1 -6 1 -5 2 -6 1 -6 2 -5 1 -6 2 -5 3 -5 2 -6 2 -5 2 -6 2 -5 3 -5 2 -6 3 -5 2 -10 5üGúHìAIûûú[ìÜLàM-3286 4091l-5 3 -4 4 -4 3 -5 4 -4 4 -4 4 -5 4 -4 4 -5 3 -4 4 -5 4 -5 3 -4 3 -5 4 -5 3 -5 3 -5 4 -4 3 -5 3 -5 3 -5 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 4 -4 4 -3 5 1 6 -1 6 0 6 0 6 0 6 0 6üGúHìAIûûú[ìÜLàM-2310 4959l5 -3 5 -3 5 -3 5 -1 6 -2 6 -1 6 -1 4 -3 4 -5 3 -5 3 -5 3 -5 4 -5 4 -3 6 -2 6 -1 5 -1 6 -1 6 -2 5 -3 5 -2 6 -2 5 -2 6 -1 6 -1 6 -1 5 0 6 0 6 1 6 1 5 1 6 0 6 -1 6 -1 6 -1 5 -1 6 -2 5 -1 6 -2 6 -2 5 -2 6 -2 5 -2 6 -1 5 -2 6 -2 5 -2 6 -2 5 -1 6 -2 5 -3 6 -2 5 -3 5 -3 5 -3 5 -3 5 -2 5 -2 6 -2 6 -2 5 -3 6 -2 5 -2 5 -3 5 -2 3 -5 3 -5 4 -5 4 -4 5 -3 5 -3 5 -4 5 -2 5 -1 6 1 6 1 6 1 6 1 5 -1 6 -1 6 -1 6 -1 5 -2 6 -1 6 -2 5 -2 6 -1 5 -3 5 -2 6 -3 5 -3 4 -3 5 -4 3 -5 3 -5 3 -5 2 -6 2 -5 3 -5 5 -3 5 -3 6 -2 6 -1 5 -1 6 0 6 1 6 1 5 1 6 2 6 1 5 2 6 2 4 4 6 1 6 0 8 0üGúHìAIûûú[ìÜLàM-2481 5030l5 0 6 -1 6 -1 5 -2 5 -3 6 -3 5 -3 5 -3 5 -3 4 -3 5 -3 6 -3 5 -1 6 -1 6 -2 5 -1 6 -2 5 -3 5 -2 10 -6üGúHìAIûûú[ìÜLàM-2845 5523l2 -6 3 -5 2 -5 2 -5 2 -6 2 -6 1 -5 2 -6 2 -5 3 -6 2 -5 3 -5 3 -5 3 -5 4 -4 6 -2 6 -2 5 -3 4 -3 5 -4 4 -4 3 -5 3 -5 1 -6 1 -6 0 -6 -1 -6 0 -5 -2 -6 -1 -6 -1 -6 -2 -5 -1 -6 -1 -6 -1 -5 0 -6 1 -6 2 -6 1 -5 3 -5 3 -5 3 -5 3 -5 3 -6 2 -5 1 -6 1 -6 1 -5 2 -6 3 -5 2 -5 3 -5 3 -5 3 -5 4 -5 4 -4 4 -5 3 -4 3 -5 2 -6 1 -6 1 -5 1 -6 1 -6 1 -6 2 -5 1 -6 1 -6 1 -6 0 -5 -1 -6 -1 -6 -2 -6 -1 -5 0 -6 1 -6 1 -6 2 -5 2 -6 3 -5 4 -4 4 -4 5 -4 5 -3 5 -2 6 -2 5 -2 5 -3 5 -4 4 -3 5 -4 4 -4 4 -4 5 -4 4 -4 4 -4 5 -3 5 -2 6 -2 6 -2 5 -2 6 -1 5 -3 5 -2 6 -3 5 -2 6 -1 6 -1 5 0 6 0 6 0 6 1 5 2 6 3 5 2 6 2 5 0 6 0 6 -1 6 0 6 -1 5 0 7 -1üGúHìAIûûú[ìÜLàM-2845 5523l5 0 6 1 6 1 6 2 5 2 5 3 4 5 3 5 4 3 6 -1 4 -5 1 -6 2 -5 2 -5 4 -5 4 -4 5 -4 4 -3 5 -4 5 -3 4 -4 5 -3 5 -3 5 -3 5 -4 4 -3 5 -3 5 -4 5 -2 5 -3 6 -3 5 -2 6 -1 6 -1 6 0 5 3 5 3 5 -1 5 -4 5 -3 4 -4 4 -5 3 -5 2 -6 2 -5 0 -6 0 -6 0 -6 0 -6 2 -5 3 -5 3 -5 2 -6 0 -5 0 -6 0 -6 -1 -6 -2 -6 -2 -5 -3 -5 -4 -5 -4 -4 -5 -2 -5 -3 -6 -2 -5 -2 -6 -2 -5 -2 -5 -3 -5 -4 -5 -3 -3 -4 -3 -6 -2 -5 -2 -6 -1 -6 -1 -5 1 -6 0 -6 2 -6 1 -5 1 -6 1 -6 2 -6 1 -5 2 -6 3 -5 3 -5 3 -4 5 -4 5 -3 5 -3 5 -2 3 -5 2 -6 2 -5 2 -6 2 -5 2 -6 1 -6 1 -5 2 -6 1 -6 1 -6 0 -5 -1 -6 0 -6 0 -6 0 -6 1 -5 2 -6 3 -5 3 -5 3 -5 3 -5 4 -4 5 -4 5 -3 5 -3 5 -3 5 -3 5 -3 5 -2 6 -2 5 -2 6 -2 5 -2 6 -1 6 -1 6 0 6 0 5 0 6 0 6 0 6 1 6 0 5 -1 6 -2 5 -2 6 -3 5 -2 5 -3 7 -9üGúHìAIûûú[ìÜLàM-2370 4984l5 -2 6 -1 5 -2 6 -2 5 -3 5 -2 5 -3 6 -2 5 -3 5 -2 7 -3üGúHìAIûûú[ìÜLàM-141 1874l-3 -5 -4 -5 -5 -3 -4 -3 -5 -3 -5 -4 -5 -3 -4 -4 -5 -4 -4 -4 -4 -4 -5 -3 -5 -4 -5 -2 -5 -3 -5 -3 -5 -3 -4 -5 -2 -5 0 -6 1 -6 -1 -5 -4 -3 -6 -2 -6 -3 -4 -3 -4 -5 -3 -5 -2 -6 1 -5 2 -6 1 -6 -1 -6 -1 -5 -3 -6 -3 -5 -4 -4 -4 -4 -5 -4 -5 -3 -5 -3 -4 -4 -5 -3 -6 -2 -5 -3 -9 -5üGúHìAIûûú[ìÜLàM572 2328l-5 -3 -5 -2 -5 -3 -6 -3 -5 -2 -5 -2 -6 -2 -6 -1 -6 -1 -5 0 -6 0 -6 0 -5 2 -6 3 -5 2 -6 2 -5 1 -6 1 -6 1 -6 1 -6 1 -6 1 -6 1 -5 0 -5 -4 -3 -5 1 -4 5 -4 6 -4 3 -4 4 -5 2 -6 1 -5 -3 -6 -5 -2 -6 0 -5 3 -5 4 -5 3 -5 0 -5 -3 -6 -2 -6 -2 -5 -3 -3 -4 -3 -5 -2 -6 -2 -6 -4 -5 -3 -4 -3 -5 -4 -5 -4 -4 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -3 -5 -4 -5 -3 -4 -3 -5 -3 -5 -3 -6 -2 -5 -1 -6 -3 -6 -3 -4 -4 -3 -6 -1 -7 -1 -5 0 -6 0 -6 1 -6 -1 -6 -1 -5 -2 -5 -2 -5 -3 -6 -3 -5 -3 -5 -3 -5 -3 -5 -3 -4 -3 -5 -3 -5 -4 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -2 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -4 -5 -3 -5 -3 -5 -3 -5 -4 -4 -3 -5 -3 -5 -4 -5 -3 -5 -2 -5 -3 -6 -2 -5 -2 -6 -3 -5 -2 -4 -4 -5 -3 -5 -3 -5 -4 -4 -3 -5 -4 -4 -4 -5 -3 -5 -4 -4 -3 -5 -4 -4 -4 -5 -3 -5 -4 -4 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -4 -4 -4 -4 -4 -4 -4 -4 -5 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -3 -5 -3 -5 -3 -5 -4 -4 -4 -4 -3 -6 -6üGúHìAIûûú[ìÜLàM-473 1564l-5 -1 -6 0 -6 0 -6 0 -6 0 -6 1 -5 -2 -4 -4 -4 -5 -3 -5 -4 -4 -3 -5 -3 -5 -5 -3 -5 -1 -6 -2 -6 0 -6 1 -6 0 -5 -1 -6 -1 -5 -3 -5 -3 -5 -3 -6 -3 -5 -2 -5 -3 -5 -2 -6 -2 -5 -3 -6 -2 -5 -1 -6 -1 -6 -1 -5 -1 -6 0 -6 -1 -6 -1 -5 -2 -6 -1 -6 -1 -5 -2 -6 -1 -6 -2 -5 -1 -6 -1 -6 -2 -5 -1 -6 -3üGúHìAIûûú[ìÜLàM-3298 2439l-6 1 -5 1 -6 0 -6 -1 -6 -1 -5 -2 -6 -1 -6 -1 -5 -1 -6 -1 -6 -1 -6 0 -6 -1 -5 -1 -6 -2 -5 -2 -5 -4 -4 -4 -5 -4 -4 -4 -4 -4 -3 -5 -3 -5 -4 -4 -5 -4 -4 -4 -5 -3 -5 -2 -6 -1 -6 0 -6 1 -6 1 -6 1 -5 2 -6 2 -5 2 -5 2 -6 3 -5 3 -5 3 -5 3 -5 2 -6 2 -5 1 -6 0 -6 0 -6 -1 -6 0 -5 -1 -6 1 -6 1 -6 2 -5 2 -6 1 -5 3 -5 4 -5 0 -5 -2 -6 -4 -5 -2 -6 -2 -5 -1 -6 -1 -6 -1 -6 0 -6 0 -5 -1 -6 0 -6 0 -6 0 -6 0 -6 1 -5 1 -6 2 -5 2 -6 2 -5 3 -5 2 -5 3 -5 3 -5 3 -5 4 -4 4 -5 2 -6 3 -5 1 -6 2 -6 1 -6 1 -5 1 -6 0 -6 0 -6 0 -6 0 -5 0 -6 0 -6 0 -6 1 -6 1 -5 1 -6 1 -6 -1 -6 -1 -5 0 -6 0 -6 1 -6 1 -6 1 -5 2 -6 1 -6 1 -5 2 -6 2 -6 2üGúHìAIûûú[ìÜLàM-3146 2517l-6 -1 -6 -2 -5 0 -6 1 -5 2 -6 2 -6 2 -5 2 -6 2 -5 1 -6 -1 -6 -2 -5 -3 -4 -4 -4 -4 -4 -4 -3 -6 -3 -4 -6 -3 -4 -3 -5 -4 -5 -4 -4 -4 -2 -4 1 -6 2 -5 2 -6 0 -7 0 -6 -4 -3 -5 -3 -6 -1 -6 -1 -6 -1 -6 1 -7 1üGúHìAIûûú[ìÜLàM-2917 2335l-4 5 -4 4 -6 2 -6 0 -5 2 -4 4 -4 5 -4 4 -5 3 -5 2 -6 1 -6 0 -6 0 -6 1 -6 1 -5 1 -6 1 -5 2 -5 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 5 -4 4 -4 4 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -2 5 -3 6 -2 5 -2 6 -2 5 -2 5 -2 6 -3 5 -2 5 -4 5 -4 4 -5 3 -4 4 -6 2 -6 1 -5 2 -6 0 -6 -1 -8 -1üGúHìAIûûú[ìÜLàM-310 1686l-5 -3 -5 -3 -5 -4 -5 -2 -5 -3 -5 -3 -6 -2 -5 -3 -5 -2 -5 -3 -5 -3 -6 -2 -5 -2 -6 -2 -6 -1 -6 -2 -4 -3 -3 -5 -1 -6 0 -6 -3 -6 -7 -8 -4 -4 -4 -4 -4 -5 -4 -4 -5 -4 -4 -4 -4 -3 -5 -4 -4 -4 -5 -4 -5 -2 -10 -5üGúHìAIûûùGúHìAIûûúNøú[Hfil7 str5LàM2998 367l0 6 -3 5 -5 2 -6 -1 -6 -1 -6 -1 -5 -1 -6 0 -6 1 -6 2 -5 2 -6 2 -4 3 -5 4 -4 4 -4 5 -2 5 -2 5 -2 6 -1 6 -1 5 -1 6 0 6 0 7 2 5 6 1 6 0 2 6 -2 5 -4 4 -5 4 -5 4 -4 3 -4 5 -4 4 -5 3 -4 4 -5 4 -4 4 -2 6 -1 5 1 6 1 6 1 6 1 5 2 6 2 5 3 6 2 5 4 9üGúHìAIûûú[ìàLäM1321 577l6 1 4 4 5 3 3 5 3 5 3 5 3 5 2 6 3 5 3 5 3 5 3 5 2 5 3 6 3 5 4 4 3 5 4 4 4 4 5 4 4 3 5 4 5 3 5 3 5 3 5 4 5 3 4 3 5 3 5 3 5 4 5 3 4 4 5 4 4 3 5 3 5 3 5 3 5 3 5 3 6 3 5 2 5 3 6 2 5 2 5 2 6 2 5 2 6 2 5 2 6 1 6 2 5 2 6 2 5 2 6 1 5 2 6 3 5 2 6 1 5 2 6 0 6 0 6 1 5 2 6 2 5 3 5 2 6 2 5 3 5 2 6 2 5 2 6 3 5 2 6 1 5 2 6 2 5 1 6 2 5 2 6 2 6 2 5 1 6 2 5 1 6 1 6 0 6 1 6 0 5 0 6 0 6 0 6 0 6 2 5 2 6 3 5 2 5 2 6 0 5 -2 5 -3 6 -2 6 -2 5 -1 6 1 6 1 6 1 5 1 6 -1 6 -1 6 0 5 1 6 3 5 2 6 2 5 1 6 0 6 -2 5 -2 5 -4 4 -4 4 -4 4 -4 4 -5 3 -5 4 -4 4 -4 5 -4 5 -3 5 -3 5 -3 5 -3 5 -2 5 -3 6 -2 5 -2 6 -2 6 -1 6 0 5 2 5 3 5 4 5 3 5 3 5 2 6 1 6 0 5 0 6 -1 6 -1 6 -1 6 -1 5 -1 5 -3 4 -4 4 -5 3 -5 3 -5 3 -5 3 -5 3 -5 4 -4 4 -5 5 -3 5 -3 5 -2 6 -2 6 -2 5 -1 6 -2 6 -1 5 -1 6 -1 6 0 6 1 5 2 6 2 5 2 6 -2 5 -2 6 -2 5 -1 6 -1 6 0 6 -1 6 -1 5 -1 6 -1 6 -1 6 1 5 2 6 1 5 2 6 2 6 1 5 0 6 0 6 0 6 1 5 2 6 2 6 1 6 1 6 1 5 1 6 0 6 0 5 0 5 -4 4 -4 3 -5 2 -6 2 -6 3 -5 4 -4 6 -1 5 0 6 1 6 0 6 -2 4 -3 5 -5 3 -4 3 -5 2 -6 2 -6 1 -5 3 -5 3 -6 3 -4 3 -5 4 -5 4 -4 4 -4 4 -4 4 -4 4 -5 5 -4 5 -3 5 2 5 3 6 1 6 0 6 -1 5 -1 6 -2 6 -1 5 -2 6 -2 5 -3 4 -3 5 -4 4 -4 5 -4 4 -4 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 5 -4 4 -4 5 -4 4 -3 5 -3 5 -3 6 -2 5 -3 5 -2 6 -1 6 -2 5 -2 6 -1 5 -2 6 -2 6 -1 5 -2 6 -2 5 -4 4 -4 5 -3 5 -1 6 1 6 2 5 2 6 2 6 1 5 -1 6 -3 4 -3 4 -5 4 -4 3 -5 4 -4 4 -5 4 -4 4 -4 4 -5 4 -4 5 -3 4 -4 5 -4 5 -3 5 -2 5 -2 6 1 6 0 6 1 6 1 6 1 6 -1 6 -1 5 -3 2 -4 2 -6 1 -6 1 -6 1 -6 2 -5 4 -5 3 -4 3 -5 3 -11üGúHìAIûûú[ìàLàM1321 367l3 5 3 5 2 5 3 5 4 5 3 5 4 4 4 4 5 4 4 4 5 3 5 4 5 3 5 3 5 3 5 2 5 2 6 2 6 1 6 1 5 1 6 0 6 0 6 -1 6 -1 5 -1 6 -3 5 -2 5 -3 4 -4 5 -3 5 -4 5 -3 5 -3 5 -2 6 -2 5 -2 5 -3 5 -4 3 -4 4 -5 3 -5 4 -5 4 -4 4 -3 6 -2 10 -2üGúHìAIûûú[ìàLàM770 1225l-1 -5 -1 -6 -1 -6 0 -6 -1 -6 -1 -5 0 -6 -1 -6 -1 -6 0 -6 1 -5 2 -6 1 -6 2 -5 1 -6 0 -6 1 -6 1 -5 1 -6 0 -6 1 -6 0 -6 1 -5 0 -6 0 -6 -1 -6 0 -6 -1 -6 0 -5 -1 -6 0 -6 0 -6 0 -6 0 -6 1 -6 1 -5 2 -6 4 -4 4 -5 5 -3 5 -1 6 0 6 1 6 1 6 0 6 -1 6 0 6 -1 5 0 6 -1 6 -1 6 -1 5 -1 6 -1 6 -2 5 -1 6 -2 6 -1 5 -2 5 -2 6 -3 5 -3 5 -2 6 -2 5 -1 6 0 6 0 6 0 6 0 6 0 5 1 6 0 6 0 6 -1 6 0 6 0 5 -1 6 -1 6 0 6 -1 5 -1 6 -2 6 -1 5 -2 6 -2 5 -3 5 -3 4 -4 5 -4 4 -4 4 -4 3 -5 2 -6 3 -5 3 -5 4 -4 4 -4 4 -5 4 -3 5 -4 4 -4 5 -3 5 -3 5 -3 5 -3 6 -2 5 -2 6 -2 5 -1 6 -2 6 -2 4 -3 5 -3 4 -4 4 -5 4 -4 4 -4 4 -5 4 -4 3 -5 4 -4 5 -4 4 -4 4 -4 4 -4 4 -4 4 -5 3 -5 4 -4 3 -5 3 -5 3 -5 3 -5 3 -5 1 -6 2 -5 0 -6 1 -6 1 -6 1 -6 2 -5 1 -6 2 -6 1 -5 2 -6 1 -6 2 -5 2 -5 3 -6 2 -5 3 -5 3 -5 3 -5 4 -4 4 -5 4 -4 5 -4 4 -4 4 -4 5 -4 2 -5 3 -5 2 -5 1 -6 2 -6 0 -6 1 -6 -1 -5 -1 -6 -1 -10üGúHìAIûûú[ìàLäM706 1099l1 -5 1 -6 -2 -6 -3 -5 -4 -4 -5 -4 -4 -3 -5 -3 -5 -4 -5 -3 -3 -5 -4 -5 -3 -5 -2 -5 -2 -5 0 -6 0 -6 -1 -6 -2 -5 -2 -6 -2 -5 -3 -5 -3 -6 -2 -5 -3 -5 -2 -5 -3 -6 -3 -5 -3 -5 -2 -5 -2 -6 -2 -5 -1 -6 -2 -6 -1 -5 -1 -6 -2 -6 -1 -5 -1 -6 -1 -6 -1 -6 -1 -5 0 -6 -1 -6 0 -6 0 -6 1 -5 0 -6 0 -6 1 -6 0 -6 1 -6 0 -5 0 -6 1 -6 0 -6 0 -6 0 -6 0 -5 0 -6 -1 -6 0 -6 -1 -6 -1 -5 -2 -6 -2 -5 -3 -5 -3 -5 -3 -5 -4 -5 -3 -5 -2 -5 -1 -6 -1 -6 -1 -6 0 -5 0 -6 -1 -6 -1 -6 -1 -6 -1 -5 -2 -6 -2 -5 -2 -6 -3 -5 -2 -5 -3 -6 -2 -5 -3 -5 -2 -5 -3 -6 -3 -5 -2 -5 -3 -5 -4 -5 -4 -4 -5 -2 -6 -2 -6 0 -6 -1 -6 1 -5 0 -6 1 -6 1 -6 1 -6 0 -5 0 -6 -1 -6 -2 -5 -2 -5 -3 -5 -3 -5 -3 -5 -3 -5 -4 -4 -3 -5 -4 -4 -4 -4 -5 -4 -4 -3 -5 -4 -4 -4 -4 -4 -5 -4 -4 -4 -4 -5 -4 -5 -2 -5 -2 -6 -2 -6 -1 -6 0 -6 -1 -5 1 -6 0 -6 1 -6 0 -6 -1 -5 0 -6 0 -6 0 -6 0 -6 -1 -6 0 -5 -1 -6 0 -6 -1 -6 0 -6 0 -5 1 -6 1 -6 2 -5 2 -6 1 -5 3 -5 3 -5 3 -6 2 -5 1 -6 0 -6 0 -6 0 -6 0 -6 1 -6 0 -5 -1 -6 0 -6 -2 -5 -1 -6 -2 -5 -2 -6 -2 -5 -3 -5 -3 -5 -4 -5 -3 -5 -2 -6 -2 -5 -2 -6 0 -6 2 -4 3 -4 5 -4 4 -5 3 -5 4 -3 5 -2 6 -2 5 -3 5 -4 3 -6 3 -5 2 -5 2 -6 3 -5 2 -5 3 -5 3 -5 2 -6 2 -6 2 -5 2 -5 2 -5 4 -3 5 -4 4 -4 5 -3 5 -3 5 -4 4 -4 4 -5 3 -6 2 -5 2 -6 1 -5 2 -5 4 -3 5 -4 4 -3 6 -2 5 -1 6 2 5 2 6 3 5 2 5 1 6 1 6 0 6 -1 5 -1 6 -2 6 -3 5 -4 4 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -6 1 -6 0 -6 -1 -6 0 -5 0 -6 0 -6 0 -6 1 -6 0 -5 1 -6 0 -6 2 -5 3 -6 1 -5 -2 -6 -2 -4 -4 -3 -5 -4 -5 -4 -4 -4 -5 -4 -5üGúHìAIûûú[ìàLàM3405 5687l-5 2 -6 3 -5 2 -5 3 -4 5 -3 5 -3 5 -3 4 -4 6 -3 4 -4 4 -5 3 -6 2 -6 2 -5 1 -6 0 -6 1 -6 0 -6 -1 -5 0 -6 0 -6 0 -6 0 -6 -1 -6 1 -5 1 -6 2 -5 2 -6 2 -6 1 -5 0 -6 0 -6 -1 -6 -1 -6 -1 -5 -1 -6 -1 -6 0 -6 -1 -5 0 -6 1 -6 1 -6 1 -6 1 -5 0 -6 0 -6 1 -6 0 -6 -1 -5 0 -6 0 -6 0 -6 -1 -6 0 -6 -1 -5 0 -6 -1 -7 -1 -6 -1 -5 0 -6 1 -4 2 -4 5 -3 6 -2 5 0 6 0 6 0 6üGúHìAIûûú[ìàLäM2442 6139l2 -6 2 -6 1 -5 1 -6 2 -6 2 -6 1 -6 1 -5 -1 -6 -2 -4 -5 -4 -5 -4 -5 -3 -6 -1 -6 -2 -5 -1 -6 -1 -6 -2 -5 -2 -6 -2 -6 -2 -6 -2 -5 -3 -4 -3 -2 -5 0 -6 0 -6 1 -6 -1 -6 -1 -6 -2 -6 -2 -5 -2 -6 -2 -5 -2 -6 -2 -5 -2 -6 -3 -4 -4 -5 -3 -4 -4 -5 -4 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -4 -4 -4 -4 -5 -4 -4 -4 -4 -4 -5 -4 -4 -3 -5 -3 -6 -3 -5 -1 -6 -1 -6 0 -6 0 -6 2 -5 2 -5 3 -5 3 -5 3 -5 2 -6 2 -6 1 -6 0 -5 0 -6 0 -6 -1 -6 0 -6 -1 -6 0 -5 -1 -6 -1 -6 -1 -6 -1 -5 -1 -6 -2 -6 -1 -5 -1 -6 -2 -6 -2 -5 -1 -6 -2 -5 -1 -6 -2 -6 -1 -5 -2 -6 -1 -6 -2 -5 -1 -6 -2 -6 -1 -5 -1 -6 -1 -6 -1 -6 0 -5 0 -6 -1 -6 0 -6 0 -6 -1 -6 0 -5 -1 -6 -1 -6 0 -6 -1 -6 0 -5 0 -6 0 -6 1 -6 1 -5 1 -6 2 -6 1 -5 2 -6 2 -5 2 -6 2 -5 2 -6 2 -5 3 -5 3 -5 2 -6 2 -5 1 -6 1 -6 1 -6 1 -5 1 -6 2 -6 1 -5 2 -6 1 -6 2 -5 0 -6 1 -6 0 -6 0 -6 1 -5 0 -6 1 -6 1 -6 1 -5 1 -6 1 -6 1 -6 1 -5 1 -6 1 -6 1 -6 1 -6 1 -5 1 -6 1 -5 2 -6 2 -5 3 -5 2 -6 2 -5 2 -6 2 -5 2 -6 2 -5 2 -6 2 -5 2 -6 2 -5 3 -5 3 -5 3 -4 4 -5 3 -5 3 -5 3 -5 3 -6 2 -5 2 -5 3 -6 2 -5 3 -5 2 -5 4 -5 3 -5 2 -6 2 -6 0 -6 -1 -5 0 -6 1 -6 2 -5 2 -6 3 -5 2 -5 3 -5 3 -2 5 -1 6 -2 6 -3 5 -5 3 -5 2 -6 2 -6 1 -5 1 -6 1 -6 1 -6 1 -5 2 -6 2 -5 3 -4 3 -4 5 -4 4 -3 5 -4 5 -4 4 -4 4 -4 4 -4 4 -5 4 -4 4 -4 4 -5 4 -5 2 -6 2 -5 1 -6 2 -6 1 -5 2 -4 4 -4 5 -5 4 -5 2 -5 1 -6 2 -6 1 -6 1 -6 1 -5 1 -6 0 -6 0 -6 0 -5 -1 -6 -1 -6 -1 -6 -1 -5 -2 -6 -1 -6 -1 -6 0 -5 1 -6 1 -6 0 -6 1 -6 0 -5 0 -6 0 -6 1 -6 1 -6 1 -5 1 -6 1 -6 0 -6 0 -6 -2 -4 -4 -3 -5 -2 -6 -4 -4 -5 -3 -5 -3 -5 -2 -6 -2 -5 -2 -6 -1 -6 -2 -6 -1 -5 0 -6 1 -6 1 -6 1 -6 2 -5 1 -6 2 -5 1 -6 2 -6 0 -6 1 -5 0 -6 0 -6 0 -6 0 -6 1 -6 0 -6 0 -5 0 -6 0 -6 0 -6 0 -6 0 -5 -1 -6 -1 -6 -1 -6 -1 -5 0 -6 -1 -6 0 -6 1üGúHìAIûûú[ìàLàM-556 6840l-5 2 -5 3 -6 3 -5 2 -5 3 -5 4 -4 3 -4 5 -4 5 -2 5 -2 5 -1 6 0 6 -1 6 0 6 -1 5 -2 6 -2 5 -2 6 -2 5 -3 6 -3 5 -3 4 -4 5 -4 4 -5 3 -5 3 -6 2 -5 2 -6 1 -6 1 -5 1 -6 1 -6 1 -6 2 -5 1 -6 3 -5 2 -5 3 -5 3 -5 2 -5 3 -6 3 -5 3 -5 3 -5 3 -4 4 -3 5 -4 4 -4 5 -4 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 4 -4 4 -4 5 -4 4 -4 4 -4 5 -4 4 -3 5 -3 5 -2 5 -2 6 -2 5 -2 6 -2 5 -3 6 -3 5 -3 5 -3 4 -4 5 -4 4 -4 4 -5 4 -5 3 -5 3 -5 2 -6 2 -5 0 -6 1 -6 2 -6 2 -5 2 -5 3 -4 4 -3 5 -2 6 -1 5 2 6 2 6 0 5 0 6 -2 6 -2 5 -2 6 -3 5 -4 5 -4 4 -4 3 -6 3 -5 2 -6 2 -5 3 -5 3 -4 4 -4 4 -3 5 -4 4 -4 5 -5 8üGúHìAIûûú[ìàLàM648 6287l0 6 0 6 0 6 1 6 2 5 1 6 2 6 2 5 3 5 1 6 0 5 -2 6 -3 5 -2 6 -4 5 -3 4 -4 5 -4 4 -3 5 -4 4 -4 5 -4 4 -5 3 -4 4 -5 3 -5 4 -4 4 -3 5 -2 5 -1 6 -4 5 -4 4 -4 4 -4 4 -5 4 -4 4 -3 4 -2 6 0 6 2 5 2 6 3 5 4 4 4 5 3 5 2 5 3 5 2 6 2 5 3 6 2 5 1 6 -1 5 -1 6 -1 6 -1 6 -1 5 -1 6 0 6 -1 6 -1 6 -1 5 -2 6 -1 6 -2 5 -2 6 -2 5 -2 6 -3 5 -3 5 -3 4 -4 5 -4 4 -5 4 -4 4 -5 3 -4 4 -5 4 -5 3 -5 3 -5 3 -4 3 -5 4 -4 4 -3 5 -4 4 -4 5 -3 5 -4 4 -3 5 -4 4 -3 5 -4 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 4 -4 5 -4 4 -4 5 -3 4 -4 5 -3 5 -4 4 -4 5 -4 5 -3 4 -3 5 -3 5 -2 5 -2 6 -1 6 0 6 0 6 -1 5 0 6 0 6 0 6 1 6 0 6 0 5 1 6 0 6 1 6 0 6 1 5 0 6 1 6 0 6 1 6 0 6 1 5 0 6 -1 6 -1 6 -1 5 -1 6 -1 6 0 6 -1 5 0 6 -1 6 -1 6 -2 5 -1 6 -1 6 -1 5 -2 6 -1 6 -1 6 0 5 0 6 0 6 1 6 1 6 2 5 0 6 1 6 0 6 -1 6 0 6 -1 5 -2 6 -2 5 -3 5 -3 5 -4 5 -4 4 -4 5 -3 5 -2 5 -2 5 -2 6 -2 5 -2 6 -1 6 -2 5 -2 5 -3 6 -2 5 -4 5 -3 5 -3 4 -4 5 -4 4 -4 5 -3 4 -4 5 -3 5 -2 5 -5 10üGúHìAIûûú[ìàLàM-2705 7287l-4 -5 -3 -5 -3 -5 0 -6 -1 -6 0 -6 1 -6 0 -5 -2 -6 -3 -5 -5 -2 -6 -1 -6 -1 -6 -1 -6 0 -5 -1 -6 0 -6 -1 -6 -1 -5 -2 -6 -2 -5 -2 -6 -2 -5 -2 -6 -1 -5 -2 -6 -1 -6 -1 -6 -1 -6 -1 -5 -1 -6 0 -6 2 -5 2 -5 2 -5 3 -5 4 -4 4 -4 4 -4 5 -4 4 -5 4 -4 4 -4 4 -5 3 -4 4 -5 3 -5 2 -6 3 -5 3 -4 4 -5 3 -6 1 -6 0 -6 -1 -4 -4 -2 -6 -5 -2 -6 0 -6 1 -5 3 -3 5 -2 6 -1 11üGúHìAIûûú[ìàLàM-3947 3399l-5 -4 -4 -3 -2 -6 0 -6 0 -6 1 -5 2 -6 2 -6 3 -5 4 -3 6 -2 5 -1 6 -1 6 -1 5 -2 5 -3 5 -3 5 -4 5 -3 4 -3 5 -4 4 -4 4 -5 4 -4 3 -5 3 -5 3 -5 3 -5 3 -5 4 -4 4 -4 5 -4 5 -3 5 -3 5 -2 5 -3 5 -3 6 -3 5 -2 6 -1 5 -1 6 -1 6 0 6 0 6 -1 6 -1 5 -1 6 -1 6 -2 5 -1 6 -2 4 -4 5 -4 5 -2 6 0 6 1 6 0 6 1 5 -1 4 -3 4 -6 3 -4 3 -5 3 -6 1 -5 1 -6 3 -5 3 -5 5 -4 5 -3 5 -3 4 -3 5 -4 5 -4 4 -3 5 -4 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 4 -3 5 -4 5 -3 5 -2 6 -2 6 -1 5 0 6 -2 6 -1 6 -1 5 -2 6 -1 5 -2 6 -3 5 -3 4 -3 5 -4 4 -4 4 -5 3 -4 3 -5 4 -5 3 -4 4 -5 4 -4 5 -4 4 -4 5 -3 5 -4 4 -3 4 -4 4 -5 2 -5 2 -6 3 -5 3 -5 3 -5 4 -4üGúHìAIûûú[ìàLàM-4270 3123l5 2 6 2 5 1 6 2 6 2 5 0 6 -1 6 -2 5 -2 6 -2 5 -2 5 -3 4 -4 5 -4 5 -2 6 -2 5 -2 6 -1 6 -2 5 -1 6 -2 5 -2 6 -1 6 -2 5 -2 6 -2 5 -1 6 -2 5 -2 6 -2 5 -2 6 -2 5 -1 6 -2 6 -1 6 -1 5 -1 6 0 6 -1 6 1 6 1 5 2 5 4 3 5 3 5 4 4 5 4 5 3 5 2 5 -2 5 -4 5 -4 4 -4 5 -3 4 -4 5 -4 4 -4 5 -3 4 -4 4 -4 5 -4 4 -4 4 -5 3 -4 3 -5 3 -6 2 -5 2 -6 3 -5 3 -5 3 -4 5 -4 4 -4 5 -3 6 -3 5 -3 5 -2 6 -1 6 -1 5 0 6 0 6 0 6 1 6 0 6 0 6 -1 5 -1 5 -3 4 -4 5 -4 4 -4 5 -3 5 -3 6 -3 5 -2 5 -2 5 -3 6 -2 5 -2 6 -2 5 -3 6 -2 5 -2 5 -4 4 -3 4 -5 3 -4 4 -5 4 -4 4 -4 5 -4 4 -4 4 -4 5 -4 5 -3 4 -4 5 -2 6 -3 5 -1 6 -2 6 0 6 -1 6 -1 5 -2 5 -3 5 -3 5 -3 5 -2 6 -3 5 -2 5 -3 5 -2 6 -2 5 -2 6 -2 5 -1 6 -1 6 -1 6 -1 5 -2 6 -2 5 -2 5 -3 6 -3 5 -2 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -4 4 -3 5 -3 5 -4 4 -3 5 -3 5 -3 6 -3 5 -3 5 -2 6 -1 6 0 6 0 6 0 6 1 6 1 5 1 5 3 4 4 3 5üGúHìAIûûú[ìàLàM-3997 3618l-1 -6 0 -6 -1 -6 -1 -5 -2 -6 -1 -5 1 -6 4 -5 4 -4 5 -4üGúHìAIûûú[ìàLàM-2994 3305l6 -3 4 -3 5 -5 5 -2 6 -1 5 0 6 -1 6 0 6 2 4 3 5 4 5 4 5 3 5 1 6 1 6 1 6 1 5 2 6 1 5 3 6 2 5 1 6 -1 5 -3 6 -1 6 0 6 0 5 -1 5 -4 1 -5 -3 -6 -3 -5 -3 -5 -4 -4 -2 -6 -1 -5 -1 -6 0 -6 0 -6 -1 -6 1 -6 3 -4 5 -4 4 -4 4 -4 5 -4 4 -4 4 -5 4 -4 3 -4 4 -5 4 -4 4 -5 3 -5 3 -5 3 -5 4 -4 4 -3 5 -4 5 -3 5 -3 5 -3 5 -4 4 -4 4 -4 3 -5 2 -6 2 -9üGúHìAIûûú[ìàLàM-3280 3507l4 3 4 4 4 5 3 5 3 5 3 5 2 5 2 6 1 5 2 6 2 6 2 5 2 6 2 5 2 5 3 6 2 5 3 5 4 5 3 4 4 5 4 4 4 4 4 4 5 4 4 4 4 4 5 4 5 3 4 4 5 3 5 3 5 3 5 3 5 3 5 3 6 2 5 3 5 2 6 2 6 1 5 0 6 -1 5 -3 6 -2 5 -2 6 -2 6 -2 5 0 6 1 6 2 4 4 4 4 4 4 4 5 4 4 2 6 4 5 4 3 5 3 5 2 6 2 6 1 5 2 6 1 6 0 6 1 5 1 6 0 6 1 6 0 6 0 6 1 5 0 6 0 6 1 6 1 5 2 6 1 6 2 5 1 6 2 6 1 5 2 6 1 5 2 6 2 5 2 6 1 6 2 5 2 6 1 5 2 6 2 6 1 5 2üGúHìAIûûú[ìàLYM-2668 3397l-6 0 -6 1 -6 3GúHìAIûûú[ìàLàM-1483 3350l-4 4 -6 3 -5 2 -5 3 -5 4 -4 3 -5 3 -5 4 -5 3 -4 4 -5 3 -5 2 -6 1 -6 -1 -6 0 -6 0 -6 0 -5 0 -6 0 -6 0 -6 0 -6 0 -6 0 -5 -1 -6 -2 -5 -2 -6 -2 -5 -2 -6 -1 -6 -1 -6 0 -6 1 -5 1 -6 2 -5 2 -5 3 -6 3 -4 3 -5 3 -6 3 -5 2 -5 3 -4 4 -4 5 -3 5 -3 4 -4 5 -5 4 -5 1 -6 -1 -6 -2 -4 -4 -4 -4 -4 -4 -6 -2 -5 -2 -6 -1 -6 -2 -5 -1 -6 -2 -6 -1 -5 -2 -5 -3 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -4 -4 -4 -5 -3 -5 -3 -6 -2 -5 -3 -5 -2 -6 -3 -5 -2 -5 -2 -6 -3 -5 -2 -5 -2 -5 -3 -6 -3 -5 -3 -5 -2 -5 -3 -5 -3 -5 -2 -6 -3 -5 -2 -6 -2 -5 -1 -6 -1 -6 -1 -6 0 -5 -1 -6 0 -6 -1 -6 0 -6 0 -5 1 -6 2 -6 2 -5 3 -4 3 -5 4 -4 4 -4 5 -4 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 4 -4 4 -3 5 -3 5 -3 5 -3 5 -3 5 -2 6 -3 5 -3 5 -2 5 -3 5 -3 6 -3 5 -3 5 -3 5 -4 4 -4 4 -5 3 -5 2 -6 1 -6 0 -6 0 -6 0 -6 -1 -5 -1 -6 -1 -6 -2 -5 -2 -6 -1 -5 -2 -6 -1 -6 0üGúHìAIûûú[ìàLVM-2299 3456l-4 -5 -8 -5GúHìAIûûú[ìàLàM-2208 3444l-6 0 -6 0 -6 1 -5 1 -6 2 -5 3 -5 3 -4 4 -3 5 -4 5 -4 3 -6 0 -5 1 -6 -2 -6 -2 -5 -2 -4 -4 -5 -6üGúHìAIûûú[ìàLàM-856 2935l-6 2 -6 1 -5 1 -4 5 -3 5 -4 4 -3 5 -3 5 -2 5 -2 6 -2 5 -2 6 -2 5 -2 6 -3 5 -3 5 -3 5 -3 5 -4 4 -4 4 -5 4 -4 4 -5 3 -5 3 -5 3 -5 3 -3 5 -1 6 -1 6 -3 5 -4 4 -4 5 -4 4 -4 4 -4 4 -3 5 -3 5 -3 5 -3 5 -2 6 -2 5 -2 5 -3 6 -3 5 -3 5 -3 5 -3 5 -3 4 -4 5 -4 4 -4 4 -5 4 -7 5üGúHìAIûûú[ìàLàM-1039 3175l-4 4 -5 3 -5 3 -5 4 -5 3 -4 3 -5 4 -5 3 -4 4 -5 3 -5 4 -4 4 -5 3 -4 4 -5 3 -5 4 -4 3 -5 3 -5 3 -5 3 -6 3 -5 2 -5 3 -5 3 -10 4üGúHìAIûûú[ìàLàM-1278 3261l-6 0 -5 0 -6 0 -6 -1 -6 0 -6 0 -6 -1 -5 0 -6 0 -6 0 -6 0 -7 1üGúHìAIûûú[ìàLàM-1349 3260l-6 0 -5 3 -5 3 -4 4 -5 3 -4 4 -5 4 -4 4 -5 3 -4 4 -4 5 -4 4 -1 6 -2 6 -4 2 -6 0 -6 1 -6 1 -5 2 -5 3 -6 2 -5 3 -5 2 -5 3 -5 3 -5 3 -4 4 -5 4 -4 4üGúHìAIûûú[ìàLàM-2391 4081l-6 0 -6 0 -6 0 -5 -1 -6 -2 -5 -2 -6 -2 -5 -3 -4 -4 -5 -4 -3 -4 -3 -5 -4 -5 -4 -4 -4 -4 -5 -3 -5 -3 -5 -3 -5 -3 -6 -2 -5 -2 -6 -1 -6 -1 -6 1 -6 0 -6 1 -6 0 -5 -1 -5 -2 -5 -3 -5 -3 -5 -4 -5 -3 -5 -4 -6 -5üGúHìAIûûú[ìàLàM-1958 3866l-4 -3 -5 -3 -6 -2 -5 -3 -5 -2 -6 -2 -5 -3 -5 -3 -5 -3 -5 -3 -8 -6üGúHìAIûûú[ìàLàM-904 3767l-6 1 -5 1 -6 1 -6 1 -6 1 -5 0 -6 0 -6 0 -6 -1 -6 0 -6 0 -5 0 -6 -1 -6 0 -6 0 -6 0 -6 -1 -6 0 -5 0 -6 1 -6 0 -5 3 -5 3 -5 3 -6 2 -5 3 -5 3 -5 2 -6 2 -5 2 -6 2 -6 0 -5 1 -6 0 -6 0 -6 1 -6 0 -6 0 -5 1 -6 0 -6 0 -6 0 -6 0 -6 1 -5 0 -6 0 -6 1 -6 0 -6 1 -5 1 -6 2 -5 2 -6 3 -5 3 -4 4 -3 5 -2 5 -2 6 -3 5 -3 4 -5 5 -4 3 -5 4 -5 3 -5 3 -6 2 -5 2 -6 2 -5 1 -6 1 -6 2 -5 1 -6 2 -6 1 -5 2 -6 1 -5 2 -6 3 -5 2 -5 2 -5 3 -5 3 -5 3 -5 4 -5 3 -5 3 -5 3 -5 4 -4 3 -5 4 -4 4 -4 4 -4 4 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -6 2 -5 3 -5 3 -5 3 -5 3 -4 4 -5 3 -5 4 -5 2 -5 3 -6 2 -5 1 -6 1 -6 1 -6 0 -6 1 -6 -2 -5 -1 -6 -2 -6 0 -6 0 -6 1 -5 2 -5 2 -5 4 -4 4 -4 4 -4 5 -4 4 -3 5 -1 6 1 6 3 5 3 5 2 5 3 6 2 5 1 6 1 6 1 6 0 6 0 6 -1 5 -3 5 -5 3 -6 3 -5 3 -5 3 -6 2 -5 1 -5 0 -6 -3 -5 -3 -5 -3 -5 -3 -5 -4 -5 -3 -5 -1 -6 -1 -6 -1 -6 -1 -6 -1 -5 -2 -5 -3 -4 -4 -5 -4 -4 -4 -6 -2 -5 -2 -5 -3 -5 -4 -5 -3 -4 -4 -5 -3 -5 -3 -5 -2 -6 0 -6 1 -6 0 -6 0 -6 0 -6 1 -6 0 -5 0 -6 -1 -6 -1 -5 -2 -6 -2 -5 -3 -5 -3 -5 -3 -5 -3 -4 -4 -5 -3 -4 -4 -4 -5 -3 -5 -3 -5 -4 -4 -5 -3 -5 -3 -6 -2 -5 -2 -6 -2 -5 -3 -4 -3 -5 -4 -5 -3 -4 -4 -5 -4 -4 -4 -4 -4 -4 -4 -4 -4 -3 -5 -3 -6 -2 -5 0 -6 1 -6 1 -6 -1 -5 -2 -6 -1 -6 -3 -5 -3 -5 -5 -3 -5 -4 -5 -3 -6 -4üGúHìAIûûú[ìàLàM-847 3785l-6 0 -5 -2 -5 -3 -5 -4 -5 -4 -4 -3 -5 -3 -6 -1 -6 1 -7 1üGúHìAIûûú[ìàLàM-721 3304l-1 6 -1 6 0 6 -1 6 0 6 0 5 -1 6 -2 6 -3 5 -4 4 -5 3 -6 1 -5 2 -5 4 -3 5 -2 6 -2 5 -1 6 0 6 0 6 1 6 0 5 -2 6 -4 5 -3 4 -3 5 -3 5 -3 5 -2 6 -3 5 -2 6 -1 5 0 6 0 6 1 6 0 6 1 5 1 6 2 6 1 5 2 6 2 5 2 6 3 5 3 5 4 4 3 5 3 5 4 5 3 5 2 5 1 6 1 6 0 5 0 6 -1 6 -2 5 -2 6 -3 5 -1 6 -1 6 -1 6 0 5 0 6 1 6 1 6 1 5 2 6 0 6 1 6 0 6 0 5 1 6 0 6 1 6 0 6 1 6 0 5 0 6 0 6 0 6 -1 6 -1 5 -3 6 -3 5 -4 5 -4 3 -5 2 -6 1 -6 2 -6 1 -7 1üGúHìAIûûú[ìàLàM-45 3270l-1 -5 -2 -6 -1 -6 -1 -5 0 -6 0 -6 1 -6 0 -6 1 -5 1 -6 1 -6 1 -6 1 -5 2 -6 1 -6 2 -5 1 -6 2 -6 2 -5 3 -7üGúHìAIûûú[ìàLàM10 3325l-4 -4 -5 -4 -4 -4 -4 -4 -4 -4 -4 -4 -5 -4 -4 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -7üGúHìAIûûú[ìàLàM512 3668l-5 -1 -6 -1 -6 -1 -5 -2 -6 -1 -6 -2 -5 -2 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -4 -4 -5 -3 -4 -4 -5 -4 -4 -3 -5 -3 -5 -4 -5 -3 -5 -3 -5 -4 -4 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -6 -2 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -4 -4 -5 -4 -4 -3 -6 -1 -6 0 -6 1 -6 0 -6 0 -5 -1 -6 0 -6 1 -6 1 -5 1 -6 1 -6 1 -6 1 -6 1 -5 1 -6 1 -6 0 -6 -1 -5 -1 -6 -2 -5 -3 -5 -4 -4 -4 -3 -5 -2 -5 -2 -6 -2 -5 -1 -6 -2 -6 -1 -6 -1 -5 -2 -6 -2 -5 -2 -6 -3 -4 -4 -5 -4 -5 -4 -4 -4 -3 -6 -1 -6 -1 -6 0 -6 0 -6 0 -5 1 -6 1 -6 1 -6 0 -6 1 -5 0 -7 0 -5 -2 -4 -3 -4 -5 -3 -5 -4 -5 -3 -4 -3 -6 -3 -5 -4 -4 -4 -5 -4 -4 -4 -4 -3 -5 -3 -5 0 -5 1 -6 1 -6 -1 -6 -1 -6 -1 -6 -2 -5 -1 -6 -2 -6 -2 -5 -3 -5 -3 -5 -4 -4 -8 -8üGúHìAIûûú[ìàLàM-477 3749l-1 -6 0 -6 -1 -5 0 -6 0 -6 0 -6 0 -6 0 -6 1 -5 0 -6 1 -6 1 -6 1 -5 2 -6 3 -5 2 -6 2 -5 1 -6 1 -6 -1 -6 -1 -5 -1 -6 -3 -5 -3 -5 -3 -5 -5 -6üGúHìAIûûú[ìàLàM39 3854l-6 -2 -6 -1 -6 -1 -5 0 -6 0 -6 -1 -6 0 -6 0 -5 1 -6 0 -6 0 -6 0 -6 0 -6 0 -5 1 -6 0 -6 1 -6 0 -6 1 -6 0 -5 1 -6 1 -6 2 -5 1 -6 2 -6 1 -5 2 -6 2 -5 3 -5 3 -5 3 -4 4 -5 3 -6 2 -5 2 -6 1 -6 2 -5 1 -6 1 -6 1 -5 2 -6 1 -6 1 -6 1 -5 1 -6 0 -6 0 -6 0 -6 0 -6 0 -5 0 -6 0 -6 0 -6 0 -6 0 -6 0 -5 0 -6 -1 -6 0 -6 -2 -5 -1 -6 -1 -6 -2 -5 -1 -6 -1 -6 -2 -5 -1 -6 -1 -6 -1 -6 0 -6 0 -6 1 -5 0 -6 0 -6 0 -6 -2 -5 -1 -6 -2 -5 -3 -5 -3 -5 -3 -4 -4 -4 -4 -4 -5 -4 -4 -3 -5 -4 -5 -3 -4 -3 -5 -3 -5 -4 -10üGúHìAIûûú[ìàLàM577 3867l-5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -4 -5 -3 -5 -3 -5 -2 -5 -3 -6 -1 -6 1 -6 0 -6 2 -5 1 -6 3 -5 3 -4 3 -5 4 -4 4 -4 4 -4 5 -3 4 -4 5 -3 5 -4 4 -3 5 -4 5 -4 4 -3 5 -3 5 -4 4 -2 6 -2 6 -3 5 -3 4 -5 3 -5 2 -6 2 -6 0 -6 0 -6 -1 -5 -3 -4 -4 -3 -5 -3 -5 -2 -6 -2 -5 -1 -6 -1 -6 -2 -5 -4 -5 -3 -4 -4 -5 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -4 -4 -3 -5 -4 -4 -4 -4 -4 -4 -5 -3 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -4 -5 -3 -5 -3 -6 -2 -5 -2 -6 -2 -5 -2 -6 -1 -6 -1 -5 -2 -6 0 -6 -1 -6 0 -5 1 -6 1 -6 2 -5 1 -6 2 -5 3 -5 2 -6 3 -5 2 -6 2 -5 1 -6 1 -6 1 -6 1 -5 1 -6 1 -6 2 -5 2 -4 5 -2 5 -3 5 -3 5 -4 5 -4 4 -5 3 -5 3 -5 3 -6 1 -5 0 -6 1 -6 0 -9 0üGúHìAIûûú[ìàLàM-353 3088l-3 5 -3 5 -4 4 -3 5 -4 5 -4 4 -3 4 -5 5 -4 4 -5 3 -5 1 -6 0 -6 -1 -5 -2 -5 -3 -5 -3 -5 -4 -4 -4 -4 -4 -5 -4 -5 -3 -5 -1 -6 -1 -6 0 -6 0 -6 0 -6 0 -5 1 -6 2 -5 2 -5 3 -5 4 -4 4 -4 5 -3 5 -2 5 -2 6 -1 5 -2 6 -1 6 -1 6 0 5 -1 6 0 6 -1 6 -1 6 -2 5 -2 6 -2 5 -3 5 -3 5 -4 4 -5 3 -5 4 -3 4 -4 5 -3 5 -4 5 -3 5 -3 5 -2 5 -2 5 -2 6 -2 6 -2 5 -1 6 -1 5 -1 6 0 6 0 6 0 6 0 6 0 5 0 6 -1 6 -2 6 -2 5 -4 5 -4 4 -3 5 -2 5 -2 6 -1 6 -1 5 1 6 1 6 1 6 2 5 1 6 1 6 1 6 0 5 0 6 0 6 0 6 -1 7üGúHìAIûûú[ìàLàM-31 3155l2 -5 3 -6 3 -5 3 -5 3 -4 3 -5 3 -5 4 -5 3 -5 3 -5 4 -4 3 -5 4 -4 4 -4 4 -4 4 -5 4 -4 3 -5 3 -5 3 -5 3 -5 3 -6 2 -5 2 -5 1 -6 1 -6 -1 -6 -4 -3 -5 -3 -6 -2 -5 -2 -6 -1 -6 -1 -6 -1 -5 -1 -6 -2 -6 -1 -5 -2 -6 -1 -6 -2 -5 -1 -6 -2 -5 -2 -6 -3 -4 -3 -5 -3 -5 -4 -4 -4 -5 -3 -6 -2 -5 -2 -6 -1 -5 -2 -6 -1 -6 -2 -5 -1 -6 -1 -6 -1 -6 1 -5 2 -6 2 -5 3 -5 3 -6 1 -5 0üGúHìAIûûú[ìàLrM-797 3779l-6 1 -5 2 -6 1 -6 1 -5 1 -6 0 -6 0 -10 0GúHìAIûûú[ìàLàM-457 3819l-2 -6 -2 -5 -2 -5 -2 -6 -1 -5 -2 -6 -2 -6 -1 -5 -1 -6 -1 -6 -2 -5 -2 -9üGúHìAIûûú[ìàLàM-272 4462l-6 -1 -6 -1 -6 0 -5 0 -6 0 -6 -1 -5 -2 -6 -2 -5 -2 -6 -1 -6 -2 -5 -2 -6 -1 -6 0 -6 0 -6 0 -5 0 -6 1 -6 2 -5 1 -6 0 -5 -3 -6 -2 -5 -2 -6 -2 -5 -1 -6 -1 -6 -1 -6 -1 -6 0 -5 -1 -6 0 -6 0 -6 0 -6 0 -6 1 -5 0 -6 0 -6 1 -6 1 -6 1 -5 1 -6 1 -5 2 -6 2 -5 3 -6 2 -5 3 -5 3 -5 3 -4 4 -5 3 -4 4 -5 3 -5 4 -5 3 -4 3 -5 4 -5 3 -5 4 -5 3 -4 3 -5 3 -6 2 -6 1 -6 0 -5 2 -5 3 -4 4 -4 4 -4 5 -3 5 -4 9üGúHìAIûûú[ìàLàM380 4634l-4 3 -5 4 -5 3 -5 3 -5 2 -6 2 -6 2 -5 1 -6 2 -6 1 -5 1 -6 1 -6 1 -6 1 -5 0 -6 0 -6 0 -6 -2 -5 -1 -6 -1 -6 0 -6 0 -6 0 -5 0 -6 0 -6 0 -6 0 -6 1 -6 0 -5 1 -6 0 -6 1 -6 2 -5 1 -6 2 -5 2 -6 3 -5 2 -5 4üGúHìAIûûú[ìàLàM162 4676l-5 3 -4 5 -4 4 -4 4 -4 4 -5 4 -5 3 -4 4 -5 3 -4 4 -4 4 -5 4 -5 3 -4 4 -5 3 -5 3 -5 3 -5 3 -6 2 -5 0 -6 0 -6 -1 -6 -1 -5 -3 -3 -5 -2 -6 -1 -6 -1 -6 0 -5 0 -6 -1 -6 0 -6 -2 -6 -1 -5 -1 -6 -1 -6 -2 -5 -1 -6 -2 -6 -1 -5 -2 -6 -1 -5 -2 -6 -2 -5 -3 -6 -2 -5 -2 -6 -4 -5 -3 -4 -4 -4 -4 -4 -5 -4 -4 -4 -5 -3 -5 -4 -5 -3 -5 -3 -5 -3 -5 -2 -6 -2 -5 -2 -6 -2 -5 -2 -6 -1 -6 -1 -5 -1 -6 -1 -6 0 -6 -1 -6 0 -6 -1 -5 0 -6 0 -6 -1 -6 0 -6 0 -5 -1 -6 -1 -6 0 -6 -1 -6 -1 -5 0 -6 -1 -6 0 -6 0 -6 0 -6 0 -5 -1 -6 0 -6 -1 -6 -1 -6 -2 -5 -2 -4 -3 -2 -6 0 -6 0 -6 1 -6 2 -5 2 -6 2 -5 1 -6 1 -6 0 -6 -2 -5 -5 -4 -5 -3 -6 -1 -5 -1 -6 -1 -9 0üGúHìAIûûú[ìàLàM-1708 4748l5 -1 6 -1 6 -2 5 -2 5 -3 5 -4 4 -4 3 -5 3 -5 4 -4 5 -3 6 -2 6 0 6 0 5 2 6 2 5 2 6 2 5 1 6 2 6 1 5 1 6 2 6 1 5 2 6 2 5 2 5 3 6 2 5 2 6 1 6 0 6 0 6 1 5 0 6 0 6 -2 5 -2 4 -4 3 -6 3 -4 6 -1 6 1 5 1 6 2 5 2 6 3 5 2 5 3 4 4 3 5 3 5 3 5 5 3 5 3 5 3 5 3 6 3 5 2 5 3 5 2 6 2 5 3 6 2 5 2 6 2 5 1 6 1 6 0 6 -1 6 0 5 -2 6 -1 6 -1 5 -1 6 -1 6 -1 6 1 5 1 6 1 6 1 6 1 5 1 6 2 6 2 5 2 5 2 6 2 5 2 6 3 5 2 5 3 6 1 5 1 6 0 6 -1 6 -1 6 -1 5 -2 6 -1 6 -2 5 -1 6 -2 5 -2 6 -1 6 -2 5 -1 6 -1 6 0 6 0 6 1 5 -2 5 -3 5 -3 5 -3 5 -4 4 -4 5 -4 4 -4 3 -5 3 -5 2 -5 2 -6 2 -5 3 -5 2 -6 4 -4 4 -5 4 -3 6 -2 5 -2 6 -2 5 -2 5 -3 4 -4 5 -4 5 -3 5 -3 5 -3 4 -4 4 -4 4 -5 3 -4 4 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 4 -4 5 -4 4 -4 5 -2 6 -2 6 -2 5 -1 6 0 6 0 6 1 6 1 5 0 6 1 6 2 6 1 5 2 8 3üGúHìAIûûú[ìàLàM1576 1466l-6 2 -5 1 -6 1 -6 1 -6 1 -5 1 -6 2 -6 1 -5 1 -6 0 -6 0 -6 0 -6 0 -5 0 -6 0 -6 0 -6 0 -6 0 -6 0 -5 0 -6 0 -6 0 -6 1 -6 0 -6 1 -5 1 -6 1 -6 1 -6 0 -5 2 -6 1 -6 2 -5 2 -6 2 -5 2 -6 2 -5 3 -4 3 -4 5 -4 4 -3 5 -3 5 -4 5 -3 5 -3 5 -2 5 -1 6 -1 6 -1 6 0 5 0 6 1 6 -1 6 -2 5 -3 6 -2 5 -2 5 -2 6 -2 6 -1 5 -2 6 -2 5 -1 6 -2 6 -1 5 0 6 0 6 0 6 0 6 1 5 0 6 1 6 1 6 1 6 1 5 0 6 -1 6 0 6 -2 5 -1 6 -3 5 -3 5 -3 5 -4 5 -4 4 -4 4 -5 3 -5 4 -4 3 -5 3 -5 3 -5 4 -5 3 -5 3 -5 3 -4 4 -5 3 -5 4 -4 4 -3 4 -5 4 -5 4 -5 3 -5 3 -5 3 -5 2 -6 1 -6 1 -5 -1 -6 -1 -6 -2 -5 -1 -6 -1 -6 0 -6 -1 -6 -1 -6 1 -6 0 -5 3 -3 3 -4 6 -3 5 -3 5 -4 4 -4 5 -4 4 -4 4 -4 5 -3 5 -2 5 -3 5 -2 6 -2 5 -2 5 -2 6 -2 6 -1 5 -1 6 -2 6 -2 5 -2 5 -3 6 -2 5 -3 5 -2 5 -3 6 -3 5 -3 4 -4 5 -3 5 -4 5 -3 4 -4 4 -4 5 -4 4 -4 5 -4 4 -4 4 -4 5 -3 4 -4 4 -4 5 -4 4 -4 4 -4 4 -5 4 -4 5 -4 4 -4 4 -4 4 -4 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 4 -4 5 -4 4 -5 4 -4 4 -3 4 -4 5 -4 4 -3 5 -3 5 -4 5 -4 4 -3 5 -4 4 -4 4 -4 5 -4 4 -4 4 -4 5 -4 4 -4 4 -4 4 -5 4 -4 3 -5 4 -8 7üGúHìAIûûú[ìàLXM812 2230l-2 5 -1 6 -2 11GúHìAIûûú[ìàLMM823 2208l-6 6GúHìAIûûú[ìàLNM817 2214l-5 16GúHìAIûûú[ìàLàM-1461 1230l-6 -2 -6 -1 -6 -1 -5 0 -6 0 -6 0 -6 2 -5 1 -5 3 -5 4 -4 4 -4 4 -5 4 -4 4 -5 4 -5 2 -6 1 -6 0 -6 -2 -5 -2 -3 -5 -3 -5 -3 -6 -2 -5 -1 -6 -1 -5 -2 -6 -1 -6 -1 -6 -1 -5 -1 -6 -1 -6 -1 -6 -1 -5 0 -6 0 -6 0 -6 0 -6 1 -6 0 -5 1 -12üGúHìAIûûú[ìàLàM-1084 1281l-6 1 -6 1 -6 -1 -5 -1 -6 -2 -5 -2 -6 -3 -5 -2 -6 -2 -5 -2 -6 -2 -5 0 -4 5 -4 3 -6 1 -6 -1 -6 -1 -6 -1 -5 0 -6 -1 -6 -1 -6 -2 -5 -3 -4 -5 -5 -4 -4 -1 -5 2 -5 4 -5 4 -4 5 -4 5 -4 1 -6 0 -6 -1 -6 -1 -6 -1 -6 0 -6 -2 -5 -1 -5 -3 -5 -3 -5 -4 -4 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -4 -4 -4 -5 -3 -4 -3 -5 -1 -6 1 -6 1 -6 -2 -6 -3 -5 -4 -3 -6 -2 -5 -2 -6 -1 -6 -1 -6 0 -6 0 -5 2 -6 3 -6 1 -6 1 -4 4 -3 5 -2 6 -1 5 1 6 1 6 -3 5 -4 4 -5 4 -6 2 -5 0 -6 0 -6 -1 -6 -2üGúHìAIûûú[ìàLàM-856 1458l-6 -2 -4 -4 -5 -3 -5 -3 -6 -1 -5 -1 -5 -3 -5 -4 -5 -3 -4 -4 -8 -6üGúHìAIûûú[ìàLàM-941 1370l-1 -6 -3 -5 -2 -5 -3 -5 -3 -5 -4 -4 -4 -4 -5 -4 -4 -4 -6 -1 -5 -2 -6 -2 -6 -1 -5 -2 -6 -2 -5 -2 -5 -3 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -4 -4 -4 -5 -4 -3 -5 -2 -6 0 -6 0 -6 0 -6 2 -8 1üGúHìAIûûú[ìàLàM-914 1424l-3 -4 -4 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -2 -5 -1 -6 -2 -9üGúHìAIûûú[ìàLàM-734 1478l-6 -2 -5 -2 -6 -2 -5 -1 -6 1 -6 1 -5 1 -6 1 -6 2 -5 3 -5 1 -6 0 -6 0 -6 0 -6 -1 -5 -1 -4 -4 -4 -5 -4 -4 -4 -3 -6 -2 -10 -3üGúHìAIûûú[ìàLàM-2142 1626l-4 4 -5 4 -4 3 -5 3 -5 4 -5 3 -5 3 -5 3 -5 3 -5 2 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 4 -5 3 -5 3 -5 3 -4 4 -5 3 -5 4 -4 3 -5 4 -4 4 -5 4 -4 3 -5 3 -5 3 -6 3 -5 3 -5 3üGúHìAIûûú[ìàLàM-2302 1733l-5 2 -5 3 -5 3 -5 4 -4 4 -4 4 -4 4 -4 4 -4 4 -4 4 -5 5 -4 4 -4 4 -4 4 -5 4üGúHìAIûûú[ìàLàM-2368 1790l-5 4 -4 4 -4 4 -5 4 -5 3 -4 3 -5 3 -6 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 2 -5 3 -6 2 -6 1 -5 2 -5 3 -4 4 -3 5 -4 5 -3 5 -3 5 -4 5 -3 4 -3 5 -3 5 -2 6 -2 6 -2 5 -2 5 -4 5 -4 4 -4 4 -4 4 -3 5 -3 5 -4 8üGúHìAIûûú[ìàLàM-1248 2119l-5 -3 -5 -3 -5 -2 -5 -3 -6 -2 -5 -2 -6 -1 -5 -1 -6 -1 -6 -1 -6 -2 -5 -1 -6 -1 -6 -1 -5 -2 -6 -1 -6 -1 -5 -2 -6 -1 -6 -2 -5 -1 -6 -2 -5 -2 -6 -2 -5 -2 -6 -2 -6 -1 -5 0 -6 1 -6 1 -6 0 -6 0 -5 -1 -6 -2 -5 -2 -6 -2 -6 -2 -5 -2 -5 -2 -6 -3 -5 -2 -6 -1 -5 -1 -6 0 -6 0 -6 1 -6 2 -5 2 -4 4 -4 5 -2 5 -3 5 -3 6 -3 4 -4 5 -3 5 -4 4 -4 5 -3 4 -5 5üGúHìAIûûú[ìàLàM-2635 2170l-1 5 -2 6 -2 6 -2 5 -4 4 -5 2 -6 2 -6 1 -6 0 -5 3 -7 5üGúHìAIûûú[ìàLàM-2286 2213l-3 -5 -3 -6 -3 -5 -5 -2 -5 -2 -6 0 -6 -1 -6 0 -6 -1 -6 0 -6 -1 -5 0 -6 1 -6 0 -6 1 -6 0 -6 0 -6 0 -5 -1 -5 -4 -4 -4 -4 -4 -6 -1 -5 3 -5 3 -5 4 -4 3 -6 2 -6 1 -6 -1 -5 -2 -5 -3 -6 -1 -6 -1 -6 0 -5 1 -6 1 -6 1 -5 2 -6 1 -6 1 -5 2 -6 1 -6 1 -6 1 -5 1 -6 1 -6 1 -6 1 -5 -1 -3 -6 -4 -4 -5 -3 -6 -1 -5 3 -4 4 -4 4 -3 5 -2 6 0 6 -2 6 -2 5 -3 5 -5 4 -5 1 -6 -1 -6 -2 -5 -2 -6 -2 -5 -2 -5 -2 -6 -3 -5 -2 -5 -3 -6 -2 -5 -2 -6 -2 -6 -2üGúHìAIûûú[ìàLàM-1558 2118l-5 3 -6 3 -5 1 -6 -1 -6 0 -6 -1 -5 -1 -6 -2 -6 -1 -5 -2 -6 -3 -5 -3 -5 -3 -5 -2 -5 0 -6 3 -5 2 -6 0 -6 -1 -6 0 -6 -1 -5 0 -6 0 -6 0 -6 0 -6 -1 -5 -1 -6 -1 -6 -1 -6 0 -6 0 -5 0 -6 1 -6 1 -5 2 -6 2 -5 3 -6 2 -5 3 -5 3 -5 2 -6 1 -6 0 -6 0 -5 -1 -6 0 -6 0 -6 0 -6 0 -6 1 -5 0 -6 2 -6 1 -5 2 -6 2 -5 1 -6 2 -5 2 -6 2 -5 3 -6 2 -5 3 -5 2 -5 3 -6 2 -5 2 -6 2 -5 2 -6 1 -6 1 -5 1 -6 0 -6 0 -6 0 -6 0 -5 -1 -6 -1 -6 -1 -6 -1 -6 0 -5 1 -6 1 -5 3 -5 4 -4 3 -5 4 -4 4 -5 4 -4 4 -4 4 -5 3 -5 4 -4 3 -6 2 -5 1 -6 0 -6 1 -6 1 -6 1 -5 1 -6 1 -6 1 -6 1 -6 1 -5 1 -6 1 -5 2 -6 3 -5 3 -5 2 -5 3 -6 1 -6 1 -5 1 -6 0 -6 1 -6 2 -5 2 -5 3 -4 4 -4 4 -4 5 -4 5 -4 4 -4 1 -6 -2 -5 -4 -4 -4 -3 -5 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -4 -5 -5 -7üGúHìAIûûú[ìàLàM-2114 1350l-1 6 -1 5 -1 6 -1 6 -1 5 -2 6 -2 5 -3 6 -2 5 -2 6 -2 5 -1 6 -1 6 -1 5 1 6 2 6 1 6 2 5 1 6 2 6 1 5 1 6 1 6 0 5 0 6 1 6 0 6 0 6 0 6 0 5 0 6 0 6 0 6 0 6 0 6 0 5 0 6 -1 6 0 6 -1 6 0 6 -1 6 -1 5 -1 6 -1 6 -2 5 -3 5 -5 4 -4 4üGúHìAIûûú[ìàLàM-872 1910l5 2 5 3 5 3 6 1 5 2 6 2 6 1 5 1 6 0 6 0 6 -1 6 -2 6 -1 5 1 3 5 2 6 4 4 4 4 5 3 6 2 5 2 6 2 5 2 6 2 5 2 6 2 5 3 5 2 6 3 4 4 3 5 1 5 1 6 1 6 0 6 0 6 0 6 -2 6 -2 5 -2 5 -1 6 0 6 2 6 3 5 3 4 4 5 4 4 4 5 4 4 4 4 3 5 2 5 1 6 1 6 0 6 -1 6 -1 5 -2 6 -2 5 -4 5 -4 4 -5 3 -6 2 -5 2 -6 1 -6 2 -4 4 -3 4 -2 6 -3 5 -2 6 -2 6 -2 5 -1 6 -3 5 -3 5 -4 4 -5 2 -6 2 -5 2 -6 2 -6 2 -5 1 -6 1 -6 0 -6 0 -6 -1 -5 0 -6 0 -6 1 -6 -1 -5 -3 -5 -3 -6 -1 -5 0 -6 0 -6 0 -6 0 -6 0 -6 -1 -5 -2 -6 -2 -5 -3 -5 -3 -6 -2 -5 -3 -5 -1 -6 0 -5 2 -6 3 -5 2 -6 3 -5 3 -5 2 -5 3 -6 2 -5 1 -6 0 -6 1 -6 -1 -6 0 -6 0 -6 -1 -6 -1 -3 -4 0 -7 -3 -4 -6 -3 -5 -1 -6 2 -5 3 -6 0 -5 -2 -6 -3 -5 -2 -6 -2 -5 -2 -5 -3 -4 -5 -3 -5 -4 -2 -6 2 -6 2 -4 -3 -3 -6 -3 -5 -4 -3 -6 -2 -6 -1 -5 -2 -6 -2 -5 -2 -6 -2 -6 0 -5 0 -6 1 -6 1 -6 0 -6 -1 -5 -2 -6 -2 -5 -2 -6 -2 -5 -2 -6 -2 -5 -2 -6 -2 -5 -3 -9 -5üGúHìAIûûú[ìàLàM-3441 1901l1 6 0 6 0 6 0 6 0 6 -1 5 0 6 -1 6 -1 6 -1 6 -2 5 -2 6 -2 5 -3 5 -3 5 -3 5 -4 4 -4 5 -4 4 -4 4 -5 4 -4 4 -5 3 -4 4 -5 4 -5 3 -4 3 -5 3 -5 4 -5 3 -4 4 -4 4 -4 5 -4 4 -4 4 -4 4 -5 4 -4 3 -5 4 -5 3 -6 2 -5 2 -5 2 -6 2 -6 1 -5 2 -6 2 -5 2 -6 2 -5 3 -4 3 -5 4 -5 3 -5 4 -4 3 -5 4 -4 4 -5 3 -4 4 -4 4 -5 4 -5 3 -5 3 -5 2 -6 2 -5 3 -5 2 -6 3 -5 3 -5 3 -4 4 -5 4 -3 4 -2 5 -2 6 -2 6 -1 5 -2 6 -1 6 0 6 -2 5 -1 6 -3 5 -2 6 -2 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -4 5 -4 4 -4 4 -4 4 -4 4 -4 4 -4 5 -4 4 -3 5 -2 6 -3 5 -4 4 -4 4 -4 5 -4 4 -4 4 -5 4 -4 4 -4 4 -4 4 -4 4 -4 5 -4 4 -4 4 -4 4 -4 5 -4 4 -3 5 -4 4 -4 4 -4 5 -3 4 -4 5 -3 5 -3 5 -4 4 -3 5 -3 5 -3 5 -4 5 -4 7üGúHìAIûûú[ìàLàM-3720 1802l5 -4 4 -3 5 -4 5 -3 5 -3 5 -3 5 -2 6 -2 5 -2 6 -1 6 -2 5 -1 6 -1 6 -2 5 -2 5 -3 5 -3 5 -4 5 -3 5 -3 5 -1 6 -1 6 1 6 1 5 1 6 0 6 0 6 0 6 0 6 0 5 -1 6 0 6 0 6 -1 6 -1 5 -1 6 -2 5 -3 5 -4 4 -3 5 -3 5 -3 5 -4 5 -3 5 -2 6 -1 6 1 5 3 4 4 3 5 3 5 3 5 3 5 3 5 3 5 3 6 2 5 2 5 1 6 1 6 1 6 1 5 1 6 0 6 0 6 -1 6 -2 5 -2 6 -2 5 -1 6 -1 5 -1 6 -1 6 -1 6 -1 6 0 5 -1 6 0 6 1 6 0 6üGúHìAIûûú[ìàLàM-3032 1971l3 5 3 5 2 5 3 6 2 5 3 5 1 6 2 5 2 6 1 6 1 6 1 5 1 6 1 6 0 6 0 5 0 6 0 6 -1 6 0 6 -1 6 -1 5 -1 6 -1 6 -1 5 -2 6 -1 6 -2 5 -1 6 -1 6 -1 6 0 5 -1 6 0 6 -1 6 -1 6 -1 5 -2 6 -2 6 -2 5 -3 5 -4 4 -5 3 -5 4 -6 2 -5 2 -6 1 -5 2 -6 1 -6 2 -5 2 -6 2 -6 3 -5 2 -5 3 -4 4 -3 5 -2 5 0 5 0 7 -1 6 0 6 -1 6 -2 5 -2 5 -3 5 -3 5 -4 5 -3 5 -2 6 -3 5 -2 5 -3 6 -2 5 -3 5 -4 4 -5 3 -5 3 -6 2 -5 3 -5 2 -6 2 -5 2 -6 3 -5 2 -5 4 -5 3 -4 3 -6 3 -5 2 -5 1 -6 1 -6 0 -6 0 -6 2 -4 3 -5 4 -4 4 -4 5 -4 4 -3 5 -3 5 -4 5 -3 5 -2 5 -5 8üGúHìAIûûú[ìàLàM-2763 2143l-5 4 -4 4 -4 5 -3 4 -3 5 -4 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -1 6 -2 5 -1 6 0 6 -3 4 -5 3 -5 3 -6 0 -6 1 -6 1 -3 4 -4 5 -1 6 -2 5 -3 5 -3 5 -4 5 -4 4 -5 3 -4 3 -5 4 -5 3 -5 4 -4 3 -5 6üGúHìAIûûú[ìàLàM-2840 2347l-5 -2 -6 -2 -5 -2 -6 -2 -5 -1 -6 -1 -6 0 -6 0 -6 0 -5 0 -6 -1 -6 0 -9 -1üGúHìAIûûú[ìàLàM-3565 1344l0 6 0 6 -1 5 0 6 0 6 0 6 1 6 3 5 2 6 -1 5 0 6 -1 6 0 6 -1 6 0 6 0 5 0 6 -1 6 0 6 -1 6 -3 4 -9 5üGúHìAIûûú[ìàLàM-3264 1528l-5 -1 -5 -3 -6 -3 -4 -3 -4 -4 -4 -5 -2 -5 -3 -6 -2 -5 -2 -6 -3 -4 -4 -5 -5 -3 -5 -3 -5 -2 -6 -1 -6 0 -6 0 -6 0 -6 0 -5 0 -6 0 -6 1 -6 1 -5 1 -6 2 -5 3 -5 3 -4 4 -4 4 -5 4 -5 3 -5 3 -5 3 -5 3 -6 2 -5 1 -6 2 -6 0 -6 1 -5 -1 -6 -2 -6 -1 -6 -2 -5 0 -6 2 -5 3 -6 0 -6 -1 -5 -1 -6 -2 -5 -2 -6 -2 -5 -3 -5 -3 -5 -3 -4 -4 -5 -3 -5 -4 -5 -3 -4 -4 -7 -5üGúHìAIûûú[ìàLàM-3090 1460l1 5 1 6 0 6 -1 6 -3 5 -3 5 -3 5 -4 5 -4 4 -4 3 -6 2 -6 -1 -6 -1 -5 -1 -6 -2 -6 -2 -5 -1 -6 0 -6 1 -5 1 -6 2 -6 2 -5 2 -6 2 -5 3 -5 2 -6 2 -5 2 -6 2 -5 1 -6 2 -6 1 -6 1 -5 1 -6 0 -6 -1 -7 -2üGúHìAIûûú[ìàLàM-3577 1469l-5 3 -5 3 -6 3 -5 3 -5 2 -4 4 -3 5 -3 5 -3 5 -4 5 -4 4 -4 4 -3 5 -4 5 -3 4 -4 5 -5 4 -5 1 -6 0 -6 0 -5 2 -6 3 -5 2 -6 3 -5 -1 -5 -4 -5 -1 -6 -1 -6 0 -6 0 -6 1 -6 1 -6 0 -5 1 -5 3 -5 4 -5 2 -6 1 -6 2 -5 1 -6 1 -6 1 -6 0 -5 3 -4 4 -3 5 -3 5 -3 5 -1 6 -2 6 -1 5 -2 6 -2 8üGúHìAIûûú[ìàL}M-3818 1613l-2 5 -1 6 1 6 0 6 1 6 1 5 -1 6 -2 5 -3 5 -4 4 -6 3GúHìAIûûú[ìàLàM-2681 2209l-4 -4 -5 -4 -3 -4 -3 -5 -3 -5 -3 -6 -2 -5 -1 -6 1 -6 1 -6 -1 -5 -2 -5 -4 -5 -4 -4 -5 -3 -6 -2 -6 -1 -5 -1 -6 -1 -6 0 -6 2 -4 4 -5 6üGúHìAIûûú[ìàLàM-3834 1670l-5 3 -5 3 -5 3 -6 1 -6 1 -5 2 -5 2 -5 3 -5 4 -5 3 -5 3 -5 4 -4 3 -5 3 -5 3 -6 2 -5 2 -6 2 -6 1 -5 0 -6 0 -6 0 -6 1 -6 0 -6 0 -5 -1 -6 -1 -6 -1 -6 -1 -5 0 -6 2 -6 1 -4 4 -5 3 -4 4 -5 3 -6 2 -5 2 -6 -2 -6 -1 -5 -1 -5 3 -6 3 -5 3 -5 2 -5 3 -5 4 -4 3 -4 5 -3 5 -3 5 -3 5 -4 4 -5 4 -4 4 -4 4 -4 4 -4 4 -4 4 -5 5üGúHìAIûûú[ìàLàM-1164 3258l-6 3 -5 1 -6 0 -6 0 -6 0 -6 0 -5 0 -12 -1 -6 0 -5 0 -6 0 -6 0 -6 0 -6 0 -6 0 -5 0 -6 0 -10 0üGúHìAIûûú[ìàLàM-402 2846l-3 -5 -3 -5 -4 -5 -3 -5 -3 -4 -4 -5 -4 -4 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -2 -5 -4 -5 -3 -4 -4 -5 -3 -5 -4 -5 -3 -5 -3 -4 -4 -4 -4 -4 -5 -2 -5 -2 -5 -2 -6 -2 -6 -1 -6 -1 -5 -2 -5 -4 -4 -5 -4 -5 -3 -5 -3 -6 -2 -6 -1 -5 -1 -6 -1 -6 0 -6 1 -6 1 -6 0 -5 1 -6 1 -6 1 -6 1 -5 0 -6 0 -6 0 -6 0 -6 -1 -6 0 -5 0 -6 1 -6 2 -5 3 -5 3 -4 4 -3 5 -2 6 -2 5 -3 5 -2 6 -3 5 -4 5 -4 3 -5 2 -6 2 -6 1 -6 1 -5 1 -6 1 -6 1 -6 2 -5 1 -6 1 -6 1 -5 1 -6 0 -6 1 -6 0 -6 1 -5 2 -5 3 -3 5 -3 6 -2 9üGúHìAIûûú[ìàLàM-336 2989l-5 -3 -5 -3 -1 -1 -4 -2 -3 -5 -3 -5 -4 -5 -3 -5 -3 -4 -4 -5 -3 -5 -1 -6 -1 -6 -1 -5 -1 -6 -2 -6 -1 -5 -1 -6 -2 -6 -2 -5 -1 -6 -2 -5 -2 -6 -2 -5 -2 -6 -2 -5 -2 -6 -3 -10üGúHìAIûûùGúHìAIûûúNøú[Hfil7 str6L_M774 1248l0 -6 -1 -6 -2 -5 -1 -6GúHìAIûûú[ìèL\M692 1118l5 -4 3 -5 4 -4 2 -6GúHìAIûûú[ìèLàM3058 5776l-3 5 -3 5 -3 5 -3 5 -2 6 -3 5 -2 5 -2 6 -2 5 0 6 1 6 1 6 1 5üGúHìAIûûú[ìèLàM2501 6261l-3 -6 -2 -5 -3 -5 -2 -6 -3 -5 -3 -5 -3 -4 -4 -5 -3 -5 -4 -4 -4 -5 -3 -4 -3 -5 -4 -5 -3 -5 -4 -5 -3 -5 -3 -5 -3 -5 -1 -6 -1 -5 0 -5 1 -6 2 -6üGúHìAIûûú[ìèLàM-2298 7095l-6 -3 -5 -3 -5 -3 -5 -2 -5 -3 -6 -2 -5 -2 -6 -1 -6 0 -6 1 -5 1 -6 1 -6 1 -6 1 -6 2 -4 3 -4 5 -2 5 -2 6 -2 5 -3 6 -2 5 -3 5 -4 5 -3 4 -5 4 -4 4 -5 3 -6 3 -5 2 -6 1 -5 1 -6 1 -6 2 -5 2 -5 4 -3 5 -2 5 -1 6 0 6 0 6 0 6 0 6 0 6 0 5 -2 6 -2 6 -3 5 -4 4 -4 4 -5 4 -5 2 -6 2 -6 1 -6 0 -5 -1 -5 -3 -5 -4 -5 -3 -6 -1 -6 0 -5 1 -6 1 -6 2 -5 1 -6 0 -7 0 -5 1 -5 2 -4 4 -3 6 -3 4 -4 4 -5 4 -4 4 -4 4 -4 5 -4 4 -5 8üGúHìAIûûú[ìèLàM-3441 3011l4 -4 5 -4 4 -5 2 -5 2 -6 1 -5 -2 -6 -4 -4 -6 -2 -5 -3 -6 -1 -5 -1 -6 -1 -6 -1 -6 -1 -6 0 -5 0 -6 0 -6 0 -6 0 -6 0 -6 0 -5 2 -5 3 -4 4 -4 5üGúHìAIûûú[ìèLàM-3398 2795l3 5 3 6 2 5 1 6 1 6 -1 6 -1 6 -1 5 -1 6 -2 6 -2 5 -3 6 -2 5 -4 4 -3 5 -4 5 -4 4 -4 4 -4 4 -5 4 -4 4 -5 3 -5 3 -5 3 -5 3 -5 3üGúHìAIûûú[ìèLàM-2710 2997l5 -4 4 -4 4 -4 4 -5 3 -4 4 -5 3 -5 4 -4 4 -5 3 -5 4 -4 3 -5 4 -4 4 -4 5 -4 5 -3 5 -3 5 -2 6 -2 5 -2 5 -3 6 -2 6 -2 4 -3 4 -4 3 -5 2 -6 2 -5 0 -6 1 -6 1 -6 2 -6 1 -5 2 -6 3 -5 3 -5 5 -4 5 -3 5 -1 6 -2 6 -1üGúHìAIûûú[ìèLàM-2831 3750l6 1 6 1 6 1 5 0 6 1 6 1 6 1 5 2 5 3 5 4 3 5 3 5 2 6 0 6 0 6 0 5 -1 6 -1 6üGúHìAIûûú[ìèLàM-285 3037l-4 -4 -4 -4 -4 -4 -4 -5 -3 -4 -4 -5 -3 -5 -4 -4 -4 -4 -5 -3 -5 -3 -7 -3üGúHìAIûûú[ìèLàM-654 3268l-6 0 -6 0 -6 1 -6 0 -6 1 -6 1 -5 3 -5 3 -4 3 -4 5 -4 4 -4 5 -3 5 -2 5üGúHìAIûûú[ìèLàM-160 2973l-6 0 -6 0 -6 -1 -6 -1 -5 -2 -6 -1 -6 -1 -5 2 -6 2 -5 2 -6 1 -6 2 -5 1 -6 1 -6 1 -6 1 -5 1 -6 1üGúHìAIûûú[ìèLyM-358 3029l1 6 3 5 3 5 3 5 2 5 2 6 1 5 -2 6 -3 5 -2 5 -3 6GúHìAIûûú[ìèLàM-867 4683l-3 5 -3 5 -4 5 -3 5 -4 4 -3 5 -3 5 -4 4 -3 5 -4 5 -3 4 -4 5 -3 5 -4 4 -4 5 -4 4 -4 4 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -2 5 -3 6 -3 5üGúHìAIûûú[ìèLàM-663 4540l-3 5 -3 5 -3 5 -3 5 -4 5 -4 4 -5 3 -5 3 -5 3 -5 3 -5 3 -4 4 -5 3 -5 3 -5 4 -5 3üGúHìAIûûú[ìèLàM1652 1411l-4 4 -5 3 -4 4 -5 3 -5 3 -5 3 -5 4 -4 4 -3 5 -4 4 -4 4 -5 4 -5 3 -5 3 -5 2 -8 2üGúHìAIûûú[ìèLàM-2080 1229l0 6 0 5 -1 6 -1 6 -2 5 -3 6 -3 5 -3 4 -4 5 -3 5 -2 5 -3 6 -2 5 -2 6 -1 5 -1 6 -1 6 -1 5 0 6 -1 6 0 6 0 6üGúHìAIûûú[ìèLàM-971 1874l3 5 3 5 4 5 4 4 5 3 5 3 5 2 6 2 5 1 6 2 6 1 6 1 6 1 5 1 6 0 6 0 6 -1 6 0 6 1üGúHìAIûûú[ìèLàM-3798 1862l5 -3 5 -3 5 -3 5 -3 4 -4 4 -4 4 -4 4 -4 5 -4 4 -4 5 -4 4 -3 5 -3 5 -4 5 -3 5 -3 4 -4üGúHìAIûûú[ìèLàM-3066 1874l2 5 4 6 2 5 3 5 2 5 2 6 1 6 0 5 0 6 0 6 1 6 1 6 1 6 2 5 2 5 3 5 4 5 4 4üGúHìAIûûú[ìèLàM-2970 1415l-5 3 -5 3 -5 3 -6 2 -5 2 -6 1 -6 0 -6 1 -5 -1 -6 0 -6 -1 -6 -1 -6 0 -5 0 -6 1 -6 2 -5 2 -5 3 -5 3 -5 3 -4 4 -3 5 -3 10üGúHìAIûûùGúHìAIûûúNøú[Hfil7 str7LSM775 1260l-1 -6 0 -6GúHìAIûûú[ììLMM688 1122l4 -4GúHìAIûûú[ììLYM3038 5846l0 6 1 6 0 6 1 8GúHìAIûûú[ììLgM2513 6287l-2 -5 -3 -6 -2 -5 -3 -5 -2 -5GúHìAIûûú[ììLmM-3528 2976l-3 5 -3 5 -2 5 -2 6 -3 5 -4 4 -5 6GúHìAIûûú[ììLmM-3458 2917l-5 3 -5 3 -5 2 -6 3 -5 2 -5 2 -9 3GúHìAIûûú[ììLYM-2769 3810l-1 6 -1 5 -4 7GúHìAIûûú[ììLmM-2554 2833l5 -1 6 -1 6 -2 4 -3 4 -5 2 -5 2 -7GúHìAIûûú[ììLUM-276 3045l-5 -4 -4 -4GúHìAIûûú[ììLXM-637 3268l-6 0 -6 0 -5 0GúHìAIûûú[ììL]M-263 2982l-6 2 -5 1 -6 1 -8 2GúHìAIûûú[ììLRM-358 3017l-1 6 1 6GúHìAIûûú[ììLmM-953 4808l-2 5 -2 6 -1 5 -2 6 -1 6 -1 5 -1 10GúHìAIûûú[ììLlM-732 4601l-4 3 -5 4 -5 3 -5 3 -4 4 -5 3 -8 6GúHìAIûûú[ììLgM1680 1389l-5 3 -4 4 -5 3 -5 4 -4 4 -5 4GúHìAIûûú[ììLtM-2084 1171l-1 6 -1 6 0 5 0 6 0 6 1 6 1 6 1 5 2 6 1 6GúHìAIûûú[ììLeM-963 1840l-2 6 -2 5 -2 6 -2 5 0 6 0 6GúHìAIûûú[ììLbM-3827 1868l6 0 6 -1 6 -1 5 -2 6 -2GúHìAIûûú[ììLkM-3061 1834l-1 6 -2 6 -1 6 -1 5 -1 6 0 6 1 5GúHìAIûûú[ììLmM-2935 1394l-5 3 -6 2 -5 3 -5 3 -5 3 -5 3 -4 4GúHìAIûûùGúHìAIûûùDKrivers_lakesGúHìAIûûúNøú[Hfil7 str8LàM-3511 537l35 -6 9 37 12 6 19 -31 45 2 -4 15 51 19 39 63 33 24 103 11 -4 48üGúHìAIûûú[íLàM-3173 725l20 -27 -4 -27 40 -8 80 20 23 -9 14 14 48 -14 70 17 89 -4 56 -19 66 20 45 -21 32 10 30 -34 38 -13 70 54 6 21 150 -4 69 21 34 36 47 -8 30 17 290 54üGúHìAIûûú[íLyM-374 834l16 -17 43 -4 42 -41 35 -69 42 -81 -2 -73 33 -182GúHìAIûûú[íLàM-1830 821l157 3 222 -74 18 18 -31 18 2 16 13 4 39 -38 81 -31 77 36 1 13 -16 1 18 23 51 -6 4 12 50 3 40 32üGúHìAIûûú[íLàM-1104 851l27 -9 39 21 -3 -30 46 -26 2 -17 75 3 21 -19 34 33 102 23 49 37üGúHìAIûûú[íLpM-712 867l50 18 63 -12 39 16 127 -40 48 -38 11 23GúHìAIûûú[íLàM2316 1366l-27 -35 2 -24 -51 -23 -16 -218 -5 -2 -9 44 -21 -2 -13 -22 20 -44 20 -9 0 -14 -18 -15 2 -8 13 1 17 -67 -16 -10 1 -6 15 2 26 -57 80 -92 61 -29 42 7 72 -90 191 -142 47 2 7 40 32 20 39 0 5 -7 -15 -12 21 -15 16 7 7 24 35 -4 60 -8 42 2 35 22 36 13 17 2 35 5 0 -2 2 -22 25 -1 23 23 18 20 41 4 35 -7 33 3 19 -19 -18 -10 12 -10 53 2 25 -5 16 -6üGúHìAIûûú[íLàM-4107 1294l-22 11 -37 -18 -4 26 -7 3 -6 -13 -16 3 -9 34 -48 35 -10 -5 1 -29 -19 -1 -3 -17 33 -73 37 -26 1 -2 -14 -23 -41 -8 -15 36 -28 -45 21 -20 -20 -30 6 -33 -3 -4 -22 -11 0 8 -24 -12 -17 25 -18 -26 20 -29 -8 -51 19 -37 49 -15 -1 -16 -19 10 -3 -26 41 -27 39 13 28 -32 20 2 7 -14 -10 -26 74 -34 68 38 58 -19 33 8 61 -46 29 19 13 -5 1 -21 17 -11 31 32 29 -6 5 -32 -25 0 -47 -33 8 -43 18 -7 -5 -10 16 -13 17 -1 35 -43 14 8 28 -27 22 5 6 -44 39 1 47 -39 21 2 1 33 -5 7 9 10 13 2 7 -22 67 -39 11 7 -18 29üGúHìAIûûú[íLàM-4136 1806l-4 2 -71 39 -2 -158 25 -15 7 4 4 -9 -5 -14 42 -46 86 -43 6 -41 -9 -5 -29 48 -70 14 1 -52 20 -5 53 -62 -8 -9 -40 29 -42 0 -18 -48 -25 -6 3 -9 26 -18 12 13 -5 9 11 10 12 -1 -4 -20 13 -6 -12 -51 34 -17 18 -45üGúHìAIûûú[íLàM2316 1366l-1 55 19 13 39 -5 19 20 -10 41 -38 22 -27 -19 -23 37 12 63 31 12 20 31 -8 34 22 39 -10 50 -55 39 -21 45 -55 52 -59 25 -24 30üGúHìAIûûú[íLbM2147 1950l-274 164 -68 128 -261 87GúHìAIûûú[íLàM1544 2329l-229 77 -24 40 -29 -12 -79 32 -139 177 24 26 32 -4 58 37 -3 2 -65 48 -50 64 -33 1 -5 -14 43 -12 -5 -28 -45 15 -41 70üGúHìAIûûú[íLàM3085 3222l-165 -75 -83 15 -8 -7 -1 -47 -24 -15 21 -31 123 -10 17 -10 -2 -11 2 0 12 24 17 -7 0 0 1 -2 1 -6 14 0 25 42 37 4 11 53 24 24 0 4 -18 -4 -2 6 18 21 -20 32üGúHìAIûûú[íL{M954 2848l-84 172 -88 101 -19 61 -56 40 -19 80 -58 69 -42 83GúHìAIûûú[íLàM2511 3605l2 -3 27 -37 0 0 9 -12 12 -67 53 -61 -6 -33 22 -8 15 -60 -10 -22 -61 -24 -53 46 -71 -33 -8 -35 34 -8 6 -28 -8 -4 -42 21 -15 -30 62 -41 0 -5 -18 0 -57 34 -67 9 -53 45 -36 9 -106 115 -113 80 -9 27 14 30 52 -1 28 44 7 1 11 -47 72 -31 46 37 -13 26 33 70 30 11 76 -12 53 59 11 3 63 -53 0 0 8 -12üGúHìAIûûú[íLàM1501 4056l-14 -26 -6 -3 -58 2 -8 -4 -7 -52 3 -8 40 -9 4 -9 -6 -35 35 -31 94 -41 43 17 -5 20 14 18 1 10 -42 36 -20 42 -43 21 -3 45 -22 7üGúHìAIûûú[íLàM588 3454l-9 46 -61 111 -6 57 0 8 24 81 50 86 -9 24 -3 7 37 82 90 103üGúHìAIûûú[íLàM1520 4191l-7 -55 24 -29 6 -1 35 47 22 9 20 -11 4 1 4 7 -2 8 -26 12 -33 -18 -14 0 -33 30üGúHìAIûûú[íLàM701 4059l131 50 -2 18 27 33 -68 49 -14 31 -61 12 -35 68 -32 -6 -115 65 -25 29 -8 51 -23 -5 -27 17 -1 94 -65 33 -3 36 -6 90 -25 16 -35 91üGúHìAIûûú[íLàM314 4831l6 29 -5 8 -12 -7 -13 9 -29 59 33 41 40 13 6 -4 -3 -17 4 -1 19 26 -19 22 -114 40 -38 -25 -49 8 -25 17 3 10 -10 2 -52 -24 -23 16 -41 -1 -72 55 -15 48 -25 -1 -60 34üGúHìAIûûú[íLàM-3554 5258l6 48 -14 10 -20 -4 -59 20 -127 87 -111 4 -112 -66 -63 12 -50 -26 -58 8 -29 -15 -1 -18 -5 -1 -5 11 -45 -17 -31 38 -95 9 -70 45 -24 -19 52 -97 -6 -29 38 -52 -7 -38 55 -103 -11 -107 20 -69 11 -7 1 -7 -22 -11 12 -129 -46 -30 36 -57 36 -123 -11 -125 -31 -50 4 -3 19 20 5 -1 1 -11 51 17 6 -6 -17 -16 20 -38 -3 -11 -11 -6 -9 1 -11 37 -65 -35 -109 56 -57 -2 -18 10 -6 -5 22 -76 -34 -83 7 -13 42 -13 13 1 12 23 -7 4 3 3 23 2 9 13 3 -3 -10 -29 22 -8 15 11 6 0 2 -15 16 -5 -1 -3 -36 2 -3 -16 70 -33 3 -12 -28 -53 -2 -47 -1 0 -11 -3 -36 51 -30 85 -21 11 -100 18 -79 -24 -6 -14 5 -18 -13 -29 55 -120 2 -90 53 -115 1 -44 -13 -24 7 -27 73 -35 96 -116 20 -102 121 -288 1 -3 -27 -41 39 -82 58 -214 10 -26 35 -3 18 -49 17 -3 0 -5 -24 -9 -1 -18 5 -11 21 -19 0 -8 -9 -10 -8 2 -21 78 -24 34 -3 -2 66 -249 -7 -86 -5 -8 -20 -32 -9 -104 -25 -62 10 -42 -23 -155 -22 -47 10 -82 72 -61üGúHìAIûûú[íLXM-2870 5540l-20 -14 -30 8GúHìAIûûú[íLàM-2920 5534l-17 51 -11 7 -2 0 -18 -9 -23 -58 -59 -69 -215 -140 10 -27 -7 -5 -30 18 6 14 -9 5 -82 -32 -113 12 -25 14 -11 -5 -20 -37 -8 -15üGúHìAIûûú[íLvM-1046 5663l-120 7 -22 23 -43 12 -90 -40 -73 16 -33 -10GúHìAIûûú[íLàM-180 5188l-76 98 -15 -8 -2 3 11 9 -65 219 -56 39 1 36 -35 21 -3 28 -34 31 -38 13 -57 -74 -45 -15 -36 22 -34 -13 -45 12 -43 79 -49 23 -35 -1 -22 -18 -28 7 -38 -39 -122 3üGúHìAIûûú[íLàM-1427 5671l-31 -11 -77 21 -68 -18 -34 25 -154 -4 -65 91 -52 19 -22 43 -56 17 -128 -4 -133 55 -43 73üGúHìAIûûú[íLXM-2290 5978l-42 60 -13 55GúHìAIûûú[íL[M-2345 6093l-6 24 -1 0 0 -24GúHìAIûûú[íLàM-2352 6093l-13 -15 -32 -2 -5 3 1 75 -90 44 -19 -3 -41 -37 -70 -14 -55 -69 -16 -7 -57 -3 -18 -12 -35 -65 -27 -14 -91 -171 16 -2 27 49 8 2 19 -27 -3 -6 -17 4 -7 -13 3 -38 -40 -31 -43 -2 -32 -72 10 -25 53 -29 14 -61 12 -13 30 1üGúHìAIûûú[íL`M-2355 6320l30 -32 -3 -11 -56 -12GúHìAIûûú[íLQM-906 6736l-20 -40GúHìAIûûú[íLàM-926 6696l-13 -33 10 -41 -16 -7 -53 111 -33 0 -36 38 -82 33 -142 -19 -71 -49 -38 11 -14 39 -30 14 -49 -12 -18 -31 -36 19 -34 -5 -62 32 -66 5 -45 28 -219 -43 -217 -148 -66 -97 -43 -22 -16 -80 -26 -14 -14 -105üGúHìAIûûú[íLàM-489 6865l-67 -25 -51 -21 -53 41 -98 -3 -56 -25 -68 -67 19 36 55 45 -19 6 -69 -33 -10 -83üGúHìAIûûú[íLàM3405 5323l-36 -9 -278 41 -37 -17 -87 30 -49 53 -90 45 -100 -1 -51 -19 -9 43 -41 15 -29 -5 -41 -40 -69 13 -56 83 -125 82 -99 5 -11 -20 -32 -7 -185 66 -91 0 -222 49 -75 -11 -50 29 -49 0 -69 24 -66 29 -44 55 -66 36 -64 10 -106 80 -68 20 -23 45 -49 22 -48 47 -3 10 -41 118 -83 71 -114 -23 -1 -5 -8 -28 -40 -23 -66 18 -23 79 -30 8 -30 39 -38 0 -16 -20 -63 -16 -26 38 -38 -2 -58 34 -71 78 -20 2 -41 128 -27 38 -43 32 -53 2 -36 23 -140 119 -24 -3 -88 40 -54 3 -64 -19 -39 9 -1 -1üGúHìAIûûú[íLàM-2384 6265l-45 4 -69 61 -61 -7 -48 35 -70 -13 -25 11 -62 211 -168 436 -144 284üGúHìAIûûú[íLfM2383 3779l-21 -19 2 -4 22 -3 4 5 -7 21GúHìAIûûùDHcoastlineGúHìAIûûúNøú[Hfil7 str9LhM-5373 7287l0 -6920 8778 0 0 6920 -8778 0GúHìAIûûú[Ifil7 str10LhM-5472 7385l0 -7117 8975 0 0 7117 -8975 0GúHìAIûûùtextøúIA10VD-4756WB344[Hfil8 fnt0GúHìAIûûúIíVD-5234WC7357[íGúHìAIûûúI@8VD-3682Wí[íGúHìAIûûúIíVD-3999Wí[íGúHìAIûûúI@6VD-2627Wí[íGúHìAIûûúIíVD-2784Wí[íGúHìAIûûúI@4VD-1581Wí[íGúHìAIûûúIíVD-1580Wí[íGúHìAIûûúI@2VC1592Wí[íGúHìAIûûúIí"VC2060Wí[íGúHìAIûûúIìvVB534Wí[íGúHìAIûûúIìvVB841Wí[íGúHìAIûûúIí"VC-522Wí[íGúHìAIûûúIí"VC-365Wí[íGúHìAIûûúIíVC2648Wí[íGúHìAIûûúIíVC3274Wí[íGúHìAIûûúIA36VC3412WC5999[íGúHìAIûûúIí+VD-5457WC6096[íGúHìAIûûúIA38Ví,WC4539[íGúHìAIûûúIí0Ví.WC4636[íGúHìAIûûúIì.VC3414WC3065[íGúHìAIûûúIì.Ví.WC3176[íGúHìAIûûúIA42VC3415WC1608[íGúHìAIûûúIí6VD-5460WC1720[íGúHìAIûûù switchøú\øúIRwestl. v. GreenwichVC-146Wí[í@systemLanguageAdeGúHìAIûûúIPwest of GreenwichVí<Wí[í^AenGúHìAIûûùGúHìAIûûú\øúIí;VB161Wí[í^í=GúHìAIûûúIí>Ví@Wí[í^í?GúHìAIûûùGúHìAIûûú\øúIöstl. v. GreenwichVB664Wí[í^í=GúHìAIûûúIPeast of GreenwichVíBWí[í^í?GúHìAIûûùGúHìAIûûú\øúIíAVB950Wí[í^í=GúHìAIûûúIíCVíDWí[í^í?GúHìAIûûùGúHìAIûûú\øúIhModifizierte Kegelprojektion nach LambertVC3500WC7501[í @styleOtext-anchor:end;^í=GúHìAIûûúIfModified conic projection after LambertVíFWíG[í_íH^í?GúHìAIûûùGúHìAIûûú\øúIäBerührungsbreitenkreise: 38° und 42° nördl. Breite, (Kanarische Inseln: 28° nördl. Breite)üVíFWC7585[í_íH^í=GúHìAIûûúIäTouching latitudes: 38° and 42° north latitude (Canary Islands: 28° north latitude)üVíFWíJ[í_íH^í?GúHìAIûûùGúHìAIûûú\øúIäZentralmeridian: 4° westl. Länge, (Kanarische Inseln: 16° westl. Länge)üVíFWC7669[í_íH^í=GúHìAIûûúIäCentral meridian: 4° west longitude, (Canary Islands: 16° west longitude)üVíFWíK[í_íH^í?GúHìAIûûùGúHìAIûûùDQgridline_letteringGúHìAIûûúSøúNøú[Ifil9 str11LeM-1010 3230l0 -663 -663 0 0 663 663 0zGúHìAIûûú[Jfil10 str11LeM-1150 3230l0 -523 -523 0 0 523 523 0zGúHìAIûûùGúHìAIûûúNøú[Jfil11 str11LdM1893 2362l0 -644 -647 0 0 644 647 0zGúHìAIûûú[íOLdM1639 2362l0 -393 -393 0 0 393 393 0zGúHìAIûûùGúHìAIûûúNøú[íOLcM-791 977l0 -334 -334 0 0 334 334 0zGúHìAIûûú[íOLcM-919 977l0 -210 -206 0 0 210 206 0zGúHìAIûûùGúHìAIûûúNøú[íOLdM-387 1045l0 -264 -264 0 0 264 264 0zGúHìAIûûú[íOLdM-491 1045l0 -164 -160 0 0 164 160 0zGúHìAIûûùGúHìAIûûúNøú[íQLcM450 4025l0 -440 -437 0 0 440 437 0zGúHìAIûûú[Jfil12 str11LcM290 4025l0 -274 -277 0 0 274 277 0zGúHìAIûûú[Ifil7 str11LJM0 3748l0 0GúHìAIûûùGúHìAIûûúNøú[íQLeM-2287 5402l0 -384 -383 0 0 384 383 0zGúHìAIûûú[íYLeM-2407 5402l0 -260 -263 0 0 260 263 0zGúHìAIûûùGúHìAIûûúNøú[íOLeM-2519 1022l0 -327 -327 0 0 327 327 0zGúHìAIûûú[íYLeM-2682 1022l0 -164 -164 0 0 164 164 0zGúHìAIûûùGúHìAIûûúNøú[íOLeM-1537 1059l0 -237 -240 0 0 237 240 0zGúHìAIûûú[íYLeM-1610 1059l0 -163 -167 0 0 163 167 0zGúHìAIûûùGúHìAIûûúNøú[íOLdM-195 1467l0 -237 -237 0 0 237 237 0zGúHìAIûûú[íYLdM-272 1467l0 -160 -160 0 0 160 160 0zGúHìAIûûùGúHìAIûûúNøú[Jfil13 str11LeM-2737 2807l0 -207 -207 0 0 207 207 0zGúHìAIûûú[íYLeM-2788 2807l0 -153 -156 0 0 153 156 0zGúHìAIûûùGúHìAIûûúNøú[íQLeM-2488 6003l0 -320 -320 0 0 320 320 0zGúHìAIûûú[íYLeM-2655 6003l0 -153 -153 0 0 153 153 0zGúHìAIûûùGúHìAIûûúNøú[íeLeM-2811 4508l0 -260 -260 0 0 260 260 0zGúHìAIûûú[íYLeM-2927 4508l0 -143 -144 0 0 143 144 0zGúHìAIûûùGúHìAIûûúNøú[íOLdM1303 1629l0 -203 -203 0 0 203 203 0zGúHìAIûûú[íYLdM1237 1629l0 -137 -137 0 0 137 137 0zGúHìAIûûùGúHìAIûûúNøú[íeLeM-3308 1106l0 -213 -214 0 0 213 214 0zGúHìAIûûú[íYLeM-3396 1106l0 -127 -126 0 0 127 126 0zGúHìAIûûùGúHìAIûûúNøú[íeLeM-2695 2041l0 -174 -173 0 0 174 173 0zGúHìAIûûú[íYLeM-2752 2041l0 -117 -116 0 0 117 116 0zGúHìAIûûùGúHìAIûûúNøú[íeLdM-353 3592l0 -170 -170 0 0 170 170 0zGúHìAIûûú[íYLdM-419 3592l0 -104 -104 0 0 104 104 0zGúHìAIûûùGúHìAIûûúNøú[íeLcM534 1659l0 -170 -170 0 0 170 170 0zGúHìAIûûú[íYLcM467 1659l0 -103 -103 0 0 103 103 0zGúHìAIûûùGúHìAIûûúNøú[íQLeM-1904 2272l0 -233 -233 0 0 233 233 0zGúHìAIûûú[Jfil14 str11LeM-1937 2272l0 -200 -200 0 0 200 200 0zGúHìAIûûùGúHìAIûûúNøú[Jfil15 str11LdM2541 3567l0 -273 -277 0 0 273 277 0zGúHìAIûûú[íwLdM2461 3567l0 -196 -197 0 0 196 197 0zGúHìAIûûùGúHìAIûûúNøú[íQLcM-14 4970l0 -320 -317 0 0 320 317 0zGúHìAIûûú[íwLdM-134 4970l0 -194 -197 0 0 194 197 0zGúHìAIûûùGúHìAIûûúNøú[íOLeM-1860 4895l0 -277 -273 0 0 277 273 0zGúHìAIûûú[íwLeM-1940 4895l0 -194 -193 0 0 194 193 0zGúHìAIûûùGúHìAIûûúNøú[íOLeM-1100 5523l0 -283 -284 0 0 283 284 0zGúHìAIûûú[íwLeM-1200 5523l0 -183 -184 0 0 183 184 0zGúHìAIûûùGúHìAIûûúNøú[íyLcM599 4608l0 -344 -343 0 0 344 343 0zGúHìAIûûú[íwLcM439 4608l0 -184 -183 0 0 184 183 0zGúHìAIûûùGúHìAIûûúNøú[íOLeM-3800 1072l0 -326 -327 0 0 326 327 0zGúHìAIûûú[íwLeM-3947 1072l0 -180 -180 0 0 180 180 0zGúHìAIûûùGúHìAIûûúNøú[íOLeM-1245 1681l0 -203 -207 0 0 203 207 0zGúHìAIûûú[íwLeM-1299 1681l0 -157 -153 0 0 157 153 0zGúHìAIûûùGúHìAIûûúNøú[íOLdM-663 1315l0 -204 -206 0 0 204 206 0zGúHìAIûûú[íwLdM-715 1315l0 -156 -154 0 0 156 154 0zGúHìAIûûùGúHìAIûûúNøú[íQLdM-458 5475l0 -224 -227 0 0 224 227 0zGúHìAIûûú[íwLdM-532 5475l0 -156 -153 0 0 156 153 0zGúHìAIûûùGúHìAIûûúNøú[íeLeM-2517 1522l0 -237 -237 0 0 237 237 0zGúHìAIûûú[íwLeM-2608 1522l0 -146 -146 0 0 146 146 0zGúHìAIûûùGúHìAIûûúNøú[íQLcM640 3226l0 -223 -223 0 0 223 223 0zGúHìAIûûú[íwLcM564 3226l0 -143 -147 0 0 143 147 0zGúHìAIûûùGúHìAIûûúNøú[íOLdM-312 4250l0 -200 -200 0 0 200 200 0zGúHìAIûûú[íwLdM-369 4250l0 -143 -143 0 0 143 143 0zGúHìAIûûùGúHìAIûûúNøú[íOLdM-723 1705l0 -183 -184 0 0 183 184 0zGúHìAIûûú[íwLdM-767 1705l0 -143 -140 0 0 143 140 0zGúHìAIûûùGúHìAIûûúNøú[íQLdM1148 2597l0 -240 -240 0 0 240 240 0zGúHìAIûûú[íwLdM1044 2597l0 -137 -136 0 0 137 136 0zGúHìAIûûùGúHìAIûûúNøú[íOLeM-1200 4922l0 -260 -257 0 0 260 257 0zGúHìAIûûú[íwLeM-1320 4922l0 -137 -137 0 0 137 137 0zGúHìAIûûùGúHìAIûûúNøú[íeLeM-1802 1675l0 -163 -164 0 0 163 164 0zGúHìAIûûú[íwLeM-1842 1675l0 -123 -124 0 0 123 124 0zGúHìAIûûùGúHìAIûûúNøú[íeLeM-2401 3769l0 -216 -216 0 0 216 216 0zGúHìAIûûú[íwLeM-2493 3769l0 -120 -124 0 0 120 124 0zGúHìAIûûùGúHìAIûûúNøú[íQLdM2259 1720l0 -237 -233 0 0 237 233 0zGúHìAIûûú[íwLdM2146 1720l0 -123 -120 0 0 123 120 0zGúHìAIûûùGúHìAIûûúNøú[íQLeM-3825 1565l0 -297 -300 0 0 297 300 0zGúHìAIûûú[íwLeM-4005 1565l0 -120 -120 0 0 120 120 0zGúHìAIûûùGúHìAIûûúNøú[íOLeM-1662 3525l0 -230 -230 0 0 230 230 0zGúHìAIûûú[íwLeM-1775 3525l0 -117 -117 0 0 117 117 0zGúHìAIûûùGúHìAIûûúNøú[íeLeM-1157 4308l0 -230 -230 0 0 230 230 0zGúHìAIûûú[íwLeM-1274 4308l0 -113 -113 0 0 113 113 0zGúHìAIûûùGúHìAIûûúNøú[íeLeM-1612 2535l0 -150 -153 0 0 150 153 0zGúHìAIûûú[íwLeM-1652 2535l0 -113 -113 0 0 113 113 0zGúHìAIûûùGúHìAIûûúNøú[Jfil16 str11LdM-803 2148l0 -130 -130 0 0 130 130 0zGúHìAIûûú[íwL`M-837 2148l0 -96 -96 0 0 96 96 0zGúHìAIûûùGúHìAIûûúNøú[íeLcM234 2837l0 -150 -150 0 0 150 150 0zGúHìAIûûú[íwL_M177 2837l0 -93 -93 0 0 93 93 0zGúHìAIûûùGúHìAIûûúNøú[íyLeM-1810 5814l0 -337 -337 0 0 337 337 0zGúHìAIûûú[Jfil17 str11LeM-1904 5814l0 -243 -243 0 0 243 243 0zGúHìAIûûùGúHìAIûûúNøú[íQLdM-933 1247l0 -186 -183 0 0 186 183 0zGúHìAIûûú[í¬LdM-946 1247l0 -166 -170 0 0 166 170 0zGúHìAIûûùGúHìAIûûúNøú[íOLeM-3130 5156l0 -223 -223 0 0 223 223 0zGúHìAIûûú[í¬LeM-3203 5156l0 -147 -150 0 0 147 150 0zGúHìAIûûùGúHìAIûûúNøú[íOLeM-3291 1785l0 -220 -220 0 0 220 220 0zGúHìAIûûú[í¬LeM-3374 1785l0 -136 -137 0 0 136 137 0zGúHìAIûûùGúHìAIûûúNøú[íeLeM-1987 2939l0 -160 -160 0 0 160 160 0zGúHìAIûûú[í¬LeM-2041 2939l0 -106 -106 0 0 106 106 0zGúHìAIûûùGúHìAIûûúNøú[íyLbM25 2378l0 -303 -300 0 0 303 300 0zGúHìAIûûú[íwLbM12 2378l0 -286 -287 0 0 286 287 0zGúHìAIûûùGúHìAIûûúNøú[Jfil18 str11LdM-723 2722l0 -150 -154 0 0 150 154 0zGúHìAIûûú[íMLdM-760 2722l0 -116 -117 0 0 116 117 0zGúHìAIûûùGúHìAIûûùDOrects_for_legendGúHìAIûûúNøúDOtextPathAtlantic_Qvisibility:hidden;LmM -4900,5300 C -4950,4300 -4950,1800 -4900,800GúHìAIûûúDMtextPathMiddle_í½LlM -1900,6500 C -1400,6400 -600,6150 -100,6000GúHìAIûûúDPtextPathMiddleSea_í½LjM 1200,5500 C 2200,5100 2400,4950 3400,4500GúHìAIûûúDOtextPathBalearic_í½LjM 1500,3600 C 2000,3200 2100,3150 2600,2900GúHìAIûûúDNtextPathMorocco_í½LmM -2700,7120 C -2200,7070 -1000,7070 -500,7120GúHìAIûûúDOtextPathPortugal_í½LnM -3900,4600 C -3850,4000 -3700,2900 -3500,2300GúHìAIûûúDQtextPathFranceText_í½LeM 50,650 C 500,850 1400,1020 1850,1050GúHìAIûûúDKtextPathEbro_í½LdM 30,1960 C 50,1970 170,2050 200,2065GúHìAIûûúDStextPathGuadalquivir_í½LnM -2860,5500 C -2850,5350 -2800,5200 -2700,5000GúHìAIûûúDOtextPathGuadiana_í½LnM -3725,4950 C -3710,4800 -3700,4720 -3670,4570GúHìAIûûù]øú\øútextPathúIQAtlantischer OzeanZP#textPathAtlantic@startOffsetA5%GúHìAIûû^í=[Ifil19 fnt1_Tletter-spacing:150px;GúHìAIûûú`úIMAtlantic OceanZíÒaB10%GúHìAIûû^í?[íÔ_Tletter-spacing:200px;GúHìAIûûùGúHìAIûûú\øú`úIFMittel-ZN#textPathMiddleaB25%GúHìAIûû^í=[íÔ_Sletter-spacing:70px;GúHìAIûûú`úIGMediter-ZíÚaíÓGúHìAIûû^í?[íÔ_Tletter-spacing:130px;GúHìAIûûùGúHìAIûûú\øú`úIländisches MeerZQ#textPathMiddleSeaaA0%GúHìAIûû^í=[íÔ_íÜGúHìAIûûú`úIIranean SeaZíàaíÓGúHìAIûû^í?[íÔ_íÞGúHìAIûûùGúHìAIûûú\øú`úIGBalearenZP#textPathBalearicaíÓGúHìAIûû^í=[Hfil8 fnt2_Sletter-spacing:85px;GúHìAIûûú`úIHBalearicsZíäaíÓGúHìAIûû^í?[íå_Sletter-spacing:80px;GúHìAIûûùGúHìAIûûú\øú`úIFMarokkoZO#textPathMoroccoaíÓGúHìAIûû^í=[Hfil8 fnt4_Tletter-spacing:220px;GúHìAIûûú`úIFMoroccoZíêaíÓGúHìAIûû^í?[íë_íìGúHìAIûûùGúHìAIûûú\øú`úIIFrankreichZR#textPathFranceTextaí×GúHìAIûû^í=[íë_íÜGúHìAIûûú`úIEFranceZíïaíÓGúHìAIûû^í?[íë_Tletter-spacing:190px;GúHìAIûûùGúHìAIûûú\øúIFSevillaVD-2247WC5318[Hfil8 fnt5^í=GúHìAIûûúIFSevilleVíóWíô[íõ^í?GúHìAIûûùGúHìAIûûú\øúIGLissabonVD-4885WC4076[íõ^í=GúHìAIûûúIELisbonVD-4806Wíù[íõ^í?GúHìAIûûùGúHìAIûûú\øúIEAlgierVC2298WC5447[íõ^í=GúHìAIûûúIFAlgiersVíýWíþ[íõ^í?GúHìAIûûùGúHìAIûûù\øúIGMallorcaVC2488WC3766[Hfil8 fnt3GúHìAIûûúIFMenorcaVC2928WC3006[îGúHìAIûûú`úIGPortugalZP#textPathPortugalaíÓGúHìAIûû[íë_íØGúHìAIûûúIHBarcelonaVC1998WC2171[íõGúHìAIûûúIGValenciaVB619WC3777[íõGúHìAIûûúIEMadridVC-966WC3255[íõGúHìAIûûúIEBilbaoVD-1400WB715[íõGúHìAIûûúILa CoruñaVD-4377WB663[íõGúHìAIûûúIHMarseilleVC3035WB484[íõGúHìAIûûúIJMontpellierVC2125WB485[íõGúHìAIûûúIHPerpignanVC1710WC1200[íõGúHìAIûûúIDPortoVD-4225WC3046[íõGúHìAIûûú`úICEbroZL#textPathEbroaíáGúHìAIûû[Ifil19 fnt6_Rletter-spacing:5px;GúHìAIûûú`úIKGuadalquivirZT#textPathGuadalquiviraíáGúHìAIûû[î&_Rletter-spacing:0px;GúHìAIûûú`úIGGuadianaZP#textPathGuadianaaíáGúHìAIûû[î&_î*GúHìAIûûúIDIbizaVC1598WC4068[Hfil8 fnt7GúHìAIûûùellipseøú[Jfil20 str12@cxD-4524@cyC4115@rxA20@ryî4GúHìAIûûú[î1cC2539dC5508eî4fî4GúHìAIûûú[î1cD-4248dC3087eî4fî4GúHìAIûûú[î1cC3344dB541eî4fî4GúHìAIûûú[î1cC2602dB516eî4fî4GúHìAIûûú[î1cC2139dC1235eî4fî4GúHìAIûûùSøú\úICTajoVìvWC3748[î&GúHìAIûûUmatrix(0.999514 -0.0311582 0.0311582 0.999514 -774.816 -1079.23)GúHìAIûûú\úICTejoVìvWî@[î&GúHìAIûûU|matrix(0.788941 -0.614468 0.614468 0.788941 -6525.95 784.685)GúHìAIûûú\úIDDueroVìvWî@[î&GúHìAIûûU{matrix(0.974789 0.22313 -0.22313 0.974789 -642.438 -1622.51)GúHìAIûûùDHletteringGúHìAIûûúSúNøú[Ifil7 str13LàM-5373 1689l93 8 103 7 103 8 103 7 103 8 53 3 50 4 104 6 103 7 103 6 103 6 103 6 104 6 103 5 103 5 104 5 103 5 3 0 100 5 103 4 104 4 103 4 103 3 104 4 103 3 104 3 103 3 103 2 56 2 48 1 103 2 103 2 104 1 103 2 104 1 103 1 103 1 104 0 103 1 104 0 5 0 98 0 103 -1 104 0 103 -1 104 -1 103 -1 103 -1 104 -2 103 -2 104 -2 58 -1 45 -1 103 -3 104 -3 103 -3 103 -3 104 -3 103 -4 104 -4 103 -4 103 -4 103 -5 9 0 95 -4 103 -5 103 -5 104 -6 103 -5 103 -6 103 -6 104 -7 103 -6 103 -7 61 -4 42 -3 103 -7 103 -7 104 -8 103 -8 103 -8 103 -8 103 -8 103 -9 103 -9 103 -9 11 -1 92 -9 103 -9 103 -10 103 -10 103 -10 103 -11 11 -1üGúHìAIûûú[îGLàM-5373 3150l87 7 106 8 106 7 107 8 54 3 52 4 106 7 107 7 106 6 106 6 106 6 107 6 106 6 107 5 106 5 106 5 3 0 104 5 106 4 107 5 106 3 107 4 106 4 106 3 107 3 106 3 107 3 57 1 49 1 107 2 106 2 107 2 106 1 107 2 106 1 107 0 106 1 107 0 106 1 6 0 101 -1 107 0 106 0 107 -1 106 -1 107 -1 106 -2 107 -2 106 -2 107 -2 60 -1 46 -1 107 -3 106 -2 106 -4 107 -3 106 -3 107 -4 106 -4 107 -4 106 -5 107 -4 8 -1 98 -4 106 -5 107 -6 106 -5 106 -6 107 -6 106 -6 106 -7 107 -6 106 -7 63 -5 43 -2 107 -8 106 -7 106 -8 106 -8 107 -9 106 -8 106 -9 106 -9 106 -9 106 -9 12 -1 94 -9 106 -10 106 -10 106 -10 75 -8üGúHìAIûûú[îGLàM-5373 4611l87 6 110 8 109 8 56 3 53 4 110 7 109 7 110 7 109 6 110 6 109 6 109 6 110 6 109 5 110 5 3 0 107 5 109 4 110 5 109 4 110 4 109 3 110 4 109 3 110 3 110 2 59 2 50 1 110 2 109 2 110 2 110 1 109 2 110 1 109 1 110 0 110 1 109 0 6 0 104 0 110 -1 109 0 110 -1 109 -1 110 -1 110 -2 109 -2 110 -2 109 -2 63 -1 47 -1 110 -3 109 -3 110 -3 109 -3 110 -4 110 -4 109 -4 110 -4 109 -5 110 -5 8 0 101 -5 110 -5 109 -5 110 -6 109 -6 110 -6 109 -7 109 -6 110 -7 109 -7 65 -5 45 -3 109 -7 109 -8 110 -8 109 -8 109 -9 110 -9 109 -9 109 -9 109 -9 109 -10 12 -1 98 -9 109 -10 109 -10 41 -4üGúHìAIûûú[îGLàM-5373 6072l94 7 112 8 58 3 55 4 112 7 113 8 112 6 113 7 113 6 112 7 113 6 112 5 113 6 113 5 3 0 109 5 113 4 112 5 113 4 113 4 112 4 113 3 113 4 112 3 113 2 61 2 52 1 113 2 112 2 113 2 113 2 112 1 113 1 113 1 113 1 112 0 113 0 6 0 107 0 113 0 112 -1 113 -1 113 -1 113 -1 112 -2 113 -1 113 -3 112 -2 64 -1 49 -1 113 -3 113 -3 112 -3 113 -4 113 -3 112 -4 113 -5 113 -4 112 -5 113 -5 9 0 103 -5 113 -5 113 -6 112 -6 113 -6 112 -6 113 -7 112 -7 113 -7 112 -7 67 -5 46 -3 112 -7 113 -8 112 -9 113 -8 112 -9 112 -9 113 -9 112 -10 112 -9 113 -10 12 -2 100 -9 112 -10 14 -1üGúHìAIûûú[îGLàM-5189 7287l1 -17 9 -139 9 -138 10 -139 9 -138 9 -139 10 -139 9 -138 9 -138 5 -72 5 -67 9 -138 9 -139 10 -138 9 -138 9 -139 10 -138 9 -138 9 -138 10 -139 9 -138 0 -4 9 -134 10 -138 9 -139 9 -138 10 -138 9 -138 9 -138 10 -139 9 -138 9 -138 5 -75 4 -63 10 -138 9 -138 9 -139 10 -138 9 -138 9 -138 10 -139 9 -138 9 -138 10 -138 0 -8 9 -131 9 -138 10 -139 9 -138 9 -138 10 -139 9 -138 9 -139 10 -138 8 -125üGúHìAIûûú[îGLàM-3976 7287l4 -88 6 -139 6 -138 6 -139 7 -139 6 -139 6 -138 6 -139 4 -71 3 -68 6 -138 6 -139 6 -138 6 -139 7 -138 6 -139 6 -138 6 -139 7 -138 6 -138 0 -4 6 -135 6 -138 6 -138 7 -139 6 -138 6 -139 6 -138 6 -138 7 -139 6 -138 3 -75 3 -63 6 -139 7 -138 6 -138 6 -139 6 -138 6 -139 7 -138 6 -139 6 -138 6 -138 1 -8 5 -131 7 -139 6 -138 6 -139 6 -138 7 -139 6 -139 6 -138 6 -139 7 -139 2 -45üGúHìAIûûú[îGLàM-2765 7287l1 -47 3 -139 3 -139 3 -139 3 -139 3 -138 3 -139 3 -139 2 -71 2 -68 3 -138 3 -139 3 -139 3 -138 3 -139 3 -138 3 -139 3 -138 4 -139 3 -139 0 -3 3 -135 3 -139 3 -138 3 -138 3 -139 3 -138 3 -139 4 -138 3 -139 3 -138 1 -75 2 -64 3 -138 3 -139 3 -138 3 -139 3 -138 4 -139 3 -138 3 -139 3 -138 3 -139 0 -7 3 -132 3 -138 3 -139 3 -138 4 -139 3 -139 3 -139 3 -138 3 -139 3 -139 2 -79 0 -2üGúHìAIûûú[îGLàM-1556 7287l0 -34 0 -139 0 -139 0 -138 0 -139 0 -139 0 -139 0 -139 0 -71 0 -67 0 -139 0 -139 0 -138 0 -139 0 -139 0 -138 0 -139 0 -138 0 -139 0 -139 0 -3 0 -135 0 -139 0 -138 0 -139 0 -138 0 -139 0 -138 0 -139 0 -138 0 -139 0 -74 0 -64 0 -139 0 -138 0 -139 0 -138 0 -139 0 -138 0 -139 0 -138 0 -139 0 -139 0 -7 0 -131 0 -139 0 -139 0 -138 0 -139 0 -139 0 -139 0 -139 0 -138 0 -139 0 -79 0 -14üGúHìAIûûú[îGLàM-346 7287l-1 -47 -3 -139 -4 -139 -3 -139 -3 -139 -3 -138 -3 -139 -3 -139 -2 -71 -1 -68 -3 -138 -3 -139 -4 -139 -3 -138 -3 -139 -3 -138 -3 -139 -3 -138 -3 -139 -3 -139 0 -3 -3 -135 -4 -139 -3 -138 -3 -138 -3 -139 -3 -138 -3 -139 -3 -138 -3 -139 -3 -138 -2 -75 -2 -64 -3 -138 -3 -139 -3 -138 -3 -139 -3 -138 -3 -139 -3 -138 -3 -139 -4 -138 -3 -139 0 -7 -3 -132 -3 -138 -3 -139 -3 -138 -3 -139 -3 -139 -3 -139 -4 -138 -3 -139 -3 -139 -2 -79 0 -2üGúHìAIûûú[îGLàM865 7287l-4 -88 -7 -139 -6 -138 -6 -139 -6 -139 -7 -139 -6 -138 -6 -139 -3 -71 -3 -68 -6 -138 -7 -139 -6 -138 -6 -139 -6 -138 -7 -139 -6 -138 -6 -139 -6 -138 -6 -138 -1 -4 -6 -135 -6 -138 -6 -138 -6 -139 -6 -138 -7 -139 -6 -138 -6 -138 -6 -139 -7 -138 -3 -75 -3 -63 -6 -139 -6 -138 -6 -138 -7 -139 -6 -138 -6 -139 -6 -138 -6 -139 -7 -138 -6 -138 0 -8 -6 -131 -6 -139 -7 -138 -6 -139 -6 -138 -6 -139 -7 -139 -6 -138 -6 -139 -6 -139 -2 -45üGúHìAIûûú[îGLàM2078 7287l-1 -17 -10 -139 -9 -138 -9 -139 -10 -138 -9 -139 -9 -139 -10 -138 -9 -138 -5 -72 -4 -67 -10 -138 -9 -139 -9 -138 -10 -138 -9 -139 -9 -138 -10 -138 -9 -138 -9 -139 -10 -138 0 -4 -9 -134 -9 -138 -10 -139 -9 -138 -9 -138 -10 -138 -9 -138 -9 -139 -10 -138 -9 -138 -5 -75 -4 -63 -9 -138 -10 -138 -9 -139 -9 -138 -10 -138 -9 -138 -9 -139 -10 -138 -9 -138 -9 -138 -1 -8 -9 -131 -9 -138 -9 -139 -10 -138 -9 -138 -9 -139 -10 -138 -9 -139 -9 -138 -9 -125üGúHìAIûûú[îGLàM3295 7287l-10 -112 -13 -138 -12 -139 -13 -138 -12 -139 -13 -138 -12 -138 -12 -138 -13 -139 -6 -71 -6 -67 -13 -138 -12 -138 -13 -138 -12 -138 -13 -138 -12 -138 -12 -138 -13 -138 -12 -138 -13 -138 0 -4 -12 -134 -12 -138 -13 -138 -12 -138 -13 -138 -12 -138 -13 -138 -12 -138 -12 -138 -13 -138 -6 -74 -6 -64 -13 -138 -12 -138 -12 -138 -13 -138 -12 -138 -13 -138 -12 -138 -13 -138 -12 -138 -12 -138 -1 -7 -12 -131 -12 -138 -13 -138 -12 -138 -13 -138 -12 -139 -12 -138 -13 -138 -12 -138 -4 -42üGúHìAIûûùGúHìAIûûDHgridlinesGúHìAIûûúNøú[Jfil20 str14LkM-12 7218l0 0 0 -1637 3344 0 0 1637 -3344 0zGúHìAIûûú[Ifil7 str15LeM85 7122l0 -1444 3149 0 0 1444 -3149 0GúHìAIûûúDMtextPathCanary_í½LiM 700,6300 C 1200,6125 2100,6000 2600,6000GúHìAIûûùTúUlmatrix(0.930151 0 0 0.929032 86.3544 3637.68)VìvWC2198XC3383YC1550Zftests/resources/images/canaryRelief.pngGúHìAIûûSøúSøúNøú[ìLàM3152 5774l-14 0 0 -3 -3 -3 3 -4 4 -6 10 -7 6 0 4 3 0 7 0 3 -7 4 0 3 -3 3züGúHìAIûûú[ìLàM3138 5898l-3 0 -3 -4 0 -3 -4 -3 4 0 3 -4 7 -6 0 -4 0 -3 0 -3 6 -20 4 0 3 0 7 3 6 3 4 4 0 6 0 4 -4 0 -3 3 -7 10 0 3 -3 7 -7 0 -6 3 -4 4züGúHìAIûûú[ìLàM2988 6178l-6 0 0 -4 -4 -3 0 -3 -6 0 -7 0 -3 -4 -4 0 -10 0 -13 0 -3 4 -4 0 -3 -7 0 -7 -3 -3 0 -3 0 -4 0 -6 3 0 7 -4 3 -6 7 -4 3 -3 0 -3 3 -4 0 -6 0 -10 4 -17 -4 -13 0 -4 4 -6 0 -4 6 -10 0 -3 7 -7 3 -3 4 -10 3 0 7 -3 6 -7 10 -10 17 0 7 -3 6 3 4 -3 3 -4 7 -3 3 -7 7 -3 3 -3 7 -10 6 0 4 0 3 0 3 0 7 -4 3 -3 7 -3 3 0 4 -4 3 4 3 0 4 3 3 3 3 4 4 0 3 0 3 0 7 -4 3 -3 4 -7 0 -3 3 -3 0 -4 0 -6 3 -4 0 -3 4 -7 0 -3 0 -3 3 -7 3 -13 14 -17 3 -3 3 3 7 3 7 4 10 10 3 6 3 4 -3 6 0 14 0 3 0 7 -3 3 -7 3 -10 7 -3 7 0 3 0 7 3 6 0 7 3 3 0 7 0 3 0 4 -3 6 -3 7 -4 33 0 4 -6 0 0 10 -4 3 -6 3 0 4 -4 0 -3 3 -3 3 -7 4 -3 0 -7 3 0 3 0 7 -3 0 -4 0 -10 0 -6 -3 -4 3 -6 3 0 4 -4 0 -6 10 0 3 -17 3 -13 7 -4 0 -10 -3 -6 0 -7 0 -10 6 -3 0 -4 4 -6 3 -4 10 -3 13 -3 0 -4 7 -3 3 -7 4 0 10züGúHìAIûûú[ìLàM2638 6761l-10 -3 -13 0 -3 0 -10 0 -7 -7 -7 -3 -3 0 -10 -4 -10 0 -20 0 -7 0 -3 4 -3 0 -4 0 -3 0 -3 -4 6 -6 4 -7 0 -7 0 -3 6 0 4 0 3 3 10 0 10 4 17 -4 3 -3 10 -3 7 -4 3 -3 17 -7 20 -10 6 -3 4 -3 6 -10 4 0 6 -7 7 -3 3 -4 4 0 6 -6 10 -14 4 -6 10 -10 3 -4 3 -10 0 -10 -3 -20 3 -6 4 -10 3 -10 0 -4 7 -6 6 -7 4 -7 3 -6 0 -4 3 -13 0 -7 4 -3 0 -3 0 -4 0 -10 0 -3 6 -7 4 -3 3 -3 3 -7 4 -7 10 -10 3 -6 3 -10 4 -10 0 -4 3 -3 3 -3 4 -7 0 -7 3 -3 3 -7 4 -3 0 -3 6 -7 7 -10 3 -3 -3 -17 3 -3 0 -7 4 -3 3 -17 3 -3 0 -10 0 -14 0 -10 4 -3 0 -3 10 -4 3 0 3 -3 4 -3 6 0 7 -7 3 0 7 -3 3 -4 7 -3 3 0 7 0 3 0 7 -3 7 3 3 0 3 3 4 7 0 3 10 4 6 10 4 3 0 3 3 14 -3 13 3 17 0 6 3 7 0 3 0 14 4 10 0 10 -4 3 0 7 0 20 -3 3 -3 13 -4 7 -3 7 -3 3 -4 7 0 6 0 4 4 10 0 3 -4 7 0 6 4 7 3 7 3 3 0 3 -6 7 0 3 -4 7 -6 3 -4 17 -3 7 0 3 -3 10 0 3 -7 7 -3 3 0 7 0 3 0 10 -7 4 0 3 -3 10 -4 7 -3 6 -10 7 -3 3 -4 0 -3 -3 -3 0 -4 0 -10 7 -3 3 -13 0 -7 3 -7 0 -10 0 -13 4 -7 3 -13 3 -10 4 -7 3 -10 7 -10 6 -10 4 -16 0 -7 6 -7 10 -3 4 -10 16 -3 4 -7 6 -3 4 -4 3 -10 10 -3 7 -3 3 -4 0 -10 10 -3 3 -3 4 -4 3züGúHìAIûûú[ìLàM1835 6994l-10 -3 -7 -7 -3 0 -10 -3 -27 0 -6 0 0 -3 -14 -14 -10 -3 -3 -3 0 -4 -13 -10 -4 -3 -3 -7 -7 -6 -10 -4 -3 -3 -3 0 0 -3 -7 -20 -7 -4 0 -6 -3 -10 -10 -17 0 -3 3 -10 0 -4 0 -6 0 -4 0 -3 0 -3 0 -14 0 -13 4 -7 3 0 3 -3 10 0 4 0 3 0 3 -7 7 -6 3 -7 7 0 3 0 4 -3 3 -4 3 -3 0 -3 0 -4 4 -3 3 0 3 -3 0 -4 4 -3 0 -7 -4 -6 4 -7 3 -3 -3 -4 3 -6 0 -7 3 -3 -3 -7 -3 -7 0 -6 13 3 10 0 3 0 10 0 4 0 3 7 10 3 7 0 3 3 3 0 17 0 10 0 7 0 3 4 3 -4 7 -3 3 0 4 3 6 4 4 -4 3 4 10 6 7 0 3 4 3 -4 7 -3 7 0 3 0 3 -3 0 -4 0 -3 0 -3 -6 -7 3 -7 10 0 3 -6 4 3 6 3 4 4 -4 3 -10 13 0 4 -3 6 0 7 3 3 7 7 0 3 0 7 0 7 -3 3 0 3 0 7 0 3 0 4 3 10 0 3 7 3 3 7 7 0 0 3 6 4 4 3 0 3 -4 7 -3 10 -3 3 0 7 3 3 3 7 0 3 0 7 7 3 0 7 -10 0 -3 3 0 4 -4 6 -3 7 3 7 0 3 4 3 6 7 4 3 -4 4 0 3 -10 7 -6 3 0 3 -4 4 -3 0 -3 6 -4 7 -3 3 -3 10 -10 7 -4 0 -16 7 -7 0 -7 3 -3 3 -3 0 -7 0 -7 4 -3 0 -3 3 -14 7 0 3 -3 3 -3 7 -4 3 -3 0züGúHìAIûûùGúHìAIûûúNøú[ìLàM415 6408l0 6 0 7 -3 3 -4 4 -3 3 -7 3 -3 4 0 6 -7 7 -3 10 -3 0 0 -3 -7 -4 -7 -6 -3 -4 0 -3 0 -7 0 -3 0 -3 -3 -4 -4 -3 0 -17 0 -6 0 -4 0 -3 0 -3 -3 -4 -13 -13 -7 -10 0 -3 0 -14 -3 -6 0 -7 -4 -3 -6 -7 0 -3 -4 -7 -6 -3 0 -7 0 -3 0 -4 -4 -6 0 -4 0 -3 -3 -7 -3 -3 -4 -3 -3 -10 -7 -4 -3 0 -7 -10 0 -3 0 -7 4 -6 0 -4 10 -10 3 -3 0 -7 0 -3 3 0 10 -3 7 -7 13 -7 7 -6 3 -4 4 -3 3 3 7 4 3 3 3 0 4 0 6 0 7 3 7 0 13 -3 7 -3 3 0 7 0 3 0 7 3 10 10 3 7 0 3 0 3 0 4 0 3 3 3 7 10 0 4 0 6 3 4 10 6 4 4 0 6 -4 7 0 3 -10 7 -6 13 -4 7 -3 10 0 10 0 3 3 7 4 13 3 10 0 7 -3 10 -4 3 0 4 -3 3 0 3 -3 7 -14 20 0 3 -3 4züGúHìAIûûú[ìLàM1128 6811l-3 0 -3 -3 -7 -4 0 -3 -3 -3 3 -14 0 -6 -3 -4 -4 -3 -3 -3 -3 0 -4 -4 -3 -3 0 -7 0 -6 -3 0 -7 -10 -10 -14 -7 -6 -3 -7 -7 -3 0 -4 -3 -3 -3 -7 -4 -16 -3 -7 -7 -3 -3 -4 -3 0 0 -3 -7 -7 0 -3 -3 -7 0 -13 -4 -17 0 -3 -3 -7 -10 -16 0 -4 -7 -10 -3 -3 -7 -3 -3 -4 -3 -6 -4 -4 -3 -6 3 -4 0 -3 10 0 7 -3 3 0 4 -4 6 -3 4 0 6 -3 10 -4 4 0 3 4 3 0 10 6 20 0 10 0 4 0 13 -6 10 0 10 3 10 -10 3 -3 4 0 3 -4 7 0 13 0 3 4 20 0 4 -4 16 0 4 -3 3 -3 3 -4 7 -6 7 -4 3 0 10 4 3 0 4 0 3 -4 3 -6 7 -4 7 -3 0 -3 3 -4 3 -6 4 -4 0 -3 6 -3 4 -4 3 0 3 -3 4 -3 3 -7 3 -13 4 -7 3 -3 7 0 6 -7 0 -3 10 3 10 -3 7 -7 7 -3 3 0 0 -4 3 -6 7 0 7 3 3 0 7 -3 3 -4 7 4 3 0 7 0 3 0 13 6 7 0 3 0 7 -3 10 0 3 0 7 -7 7 0 3 -6 3 -4 10 4 4 0 0 3 3 10 3 3 0 4 0 13 0 3 -3 7 0 3 -3 4 -7 3 -10 3 -3 0 -14 7 -13 7 -3 3 -4 0 -6 3 -7 4 -3 6 -10 10 -4 4 -3 3 -7 7 -6 10 -7 10 -7 6 -10 4 -3 3 -7 3 -6 7 -4 3 -3 4 0 13 0 3 0 14 3 6 0 4 -3 6 -3 4 -4 3 0 3 -3 4 0 6 -7 10 0 4 -10 20 -3 6 -3 10 -4 10 0 4 -6 16 0 10 0 4 0 3 -17 10 -7 3 0 4 -6 13 -7 10 -7 7 -3 3 -3 10 -4 3 -3 0 -7 10 -6 4 0 3 -4 3 -10 0 -10 0 -6 0 -20 7 -7 7 -3 3 -4 0 -10 0 -6 0 -4 3 -3 0 -7 7züGúHìAIûûú[ìLàM768 6788l-10 0 -10 -7 -13 -17 -7 0 -3 -3 -7 -7 -3 -10 -7 -6 -3 -4 0 -6 -3 -17 3 -3 0 -7 0 -10 7 -10 0 -3 0 -4 0 -3 3 -3 7 -4 3 -3 10 -7 17 -10 3 0 3 4 4 0 6 6 4 0 3 0 17 7 3 0 10 7 10 10 3 0 10 6 0 4 10 0 7 3 7 7 0 3 6 10 0 3 0 10 0 10 -3 4 0 3 -3 0 -7 10 -7 3 -3 7 -3 3 -4 0 -6 7 -7 7 -3 0 -7 3 -3 3 -4 0 -3 0 -13 -3 -4 3 -6 4 -4 0züGúHìAIûûú[ìLàM278 7051l-10 0 -3 0 -7 -7 -3 -3 -3 -3 -10 -20 -4 0 -3 -4 -3 0 -10 -3 -4 3 -6 -3 -10 0 -10 -3 -7 -4 -13 0 -4 -3 -3 0 -3 -10 -4 -10 0 -3 0 -4 0 -6 7 -7 10 -7 7 -3 3 3 7 7 3 0 7 0 6 0 7 0 7 3 3 0 7 0 6 -3 4 0 3 -3 7 -10 6 -7 4 0 10 -7 0 -3 -4 -3 -3 -4 3 -3 4 -3 3 0 10 0 3 0 4 -7 3 0 7 0 3 -3 3 -4 4 -3 3 -3 13 3 7 3 3 10 4 4 0 3 3 3 0 4 0 6 -3 4 -10 10 -4 3 -3 3 -3 7 0 3 0 4 -4 6 0 4 -3 16 -7 4 -3 3 -7 7 0 3 -3 3 -3 4 -4 3 0 7 0 6 0 4 -3 3 0 3 0 4 0 3 -7 0züGúHìAIûûùGúHìAIûûùNú[ìLäM85 7121l0 -1443 3150 0 0 1443 -3150 0m3053 -1223l4 -4 6 -3 7 0 3 -7 0 -3 7 -10 3 -3 4 0 0 -4 0 -6 -4 -4 -6 -3 -7 -3 -3 0 -4 0 -6 20 0 3 0 3 0 4 -7 6 -3 4 -4 0 4 3 0 3 3 4 3 0m-150 280l0 -10 7 -4 3 -3 4 -7 3 0 3 -13 4 -10 6 -3 4 -4 3 0 10 -6 7 0 6 0 10 3 4 0 13 -7 17 -3 0 -3 6 -10 4 0 0 -4 6 -3 4 -3 6 3 10 0 4 0 3 0 0 -7 0 -3 7 -3 3 0 7 -4 3 -3 3 -3 4 0 0 -4 6 -3 4 -3 0 -10 6 0 0 -4 4 -33 3 -7 3 -6 0 -4 0 -3 0 -7 -3 -3 0 -7 -3 -6 0 -7 0 -3 3 -7 10 -7 7 -3 3 -3 0 -7 0 -3 0 -14 3 -6 -3 -4 -3 -6 -10 -10 -7 -4 -7 -3 -3 -3 -3 3 -14 17 -3 13 -3 7 0 3 0 3 -4 7 0 3 -3 4 0 6 0 4 -3 3 0 3 -4 7 -3 3 -7 4 -3 0 -3 0 -4 0 -3 -4 -3 -3 -4 -3 -3 0 -3 -4 -4 4 -3 0 -7 3 -3 3 -7 4 -3 0 -3 0 -4 0 -6 0 -7 10 -3 3 -7 3 -3 7 -7 3 -3 4 -4 3 -6 -3 -7 3 -17 0 -10 10 -6 7 -7 3 -3 0 -4 10 -3 3 -7 7 0 3 -6 10 0 4 -4 6 0 4 4 13 -4 17 0 10 0 6 -3 4 0 3 -3 3 -7 4 -3 6 -7 4 -3 0 0 6 0 4 0 3 3 3 0 7 3 7 4 0 3 -4 13 0 10 0 4 0 3 4 7 0 6 0 0 3 4 3 0 4 6 0m-2573 230l3 -4 0 -3 14 -20 3 -7 0 -3 3 -3 0 -4 4 -3 3 -10 0 -7 -3 -10 -4 -13 -3 -7 0 -3 0 -10 3 -10 4 -7 6 -13 10 -7 0 -3 4 -7 0 -6 -4 -4 -10 -6 -3 -4 0 -6 0 -4 -7 -10 -3 -3 0 -3 0 -4 0 -3 0 -3 -3 -7 -10 -10 -7 -3 -3 0 -7 0 -3 0 -7 3 -13 3 -7 0 -7 -3 -6 0 -4 0 -3 0 -3 -3 -7 -4 -3 -3 -4 3 -3 4 -7 6 -13 7 -7 7 -10 3 -3 0 0 3 0 7 -3 3 -10 10 0 4 -4 6 0 7 0 3 7 10 3 0 7 4 3 10 4 3 3 3 3 7 0 3 0 4 4 6 0 4 0 3 0 7 6 3 4 7 0 3 6 7 4 3 0 7 3 6 0 14 0 3 7 10 13 13 3 4 0 3 0 3 0 4 0 6 0 17 4 3 3 4 0 3 0 3 0 7 0 3 3 4 7 6 7 4 0 3 3 0 3 -10 7 -7 0 -6 3 -4 7 -3 3 -3 4 -4 3 -3 0 -7 0 -6m2223 353l4 -3 3 -4 3 -3 10 -10 4 0 3 -3 3 -7 10 -10 4 -3 3 -4 7 -6 3 -4 10 -16 3 -4 7 -10 7 -6 16 0 10 -4 10 -6 10 -7 7 -3 10 -4 13 -3 7 -3 13 -4 10 0 7 0 7 -3 13 0 3 -3 10 -7 4 0 3 0 3 3 4 0 3 -3 10 -7 3 -6 4 -7 3 -10 0 -3 7 -4 0 -10 0 -3 0 -7 3 -3 7 -7 0 -3 3 -10 0 -3 3 -7 4 -17 6 -3 4 -7 0 -3 6 -7 0 -3 -3 -3 -3 -7 -4 -7 0 -6 4 -7 0 -3 -4 -10 0 -4 0 -6 4 -7 3 -3 3 -7 4 -7 3 -13 3 -3 0 -20 0 -7 4 -3 0 -10 -4 -10 0 -14 0 -3 -3 -7 0 -6 -3 -17 3 -13 -3 -14 0 -3 -4 -3 -6 -10 -10 -4 0 -3 -4 -7 -3 -3 -3 0 -7 -3 -7 3 -3 0 -7 0 -3 0 -7 3 -3 4 -7 3 -3 0 -7 7 -6 0 -4 3 -3 3 -3 0 -10 4 0 3 -4 3 0 10 0 14 0 10 -3 3 -3 17 -4 3 0 7 -3 3 3 17 -3 3 -7 10 -6 7 0 3 -4 3 -3 7 -3 3 0 7 -4 7 -3 3 -3 3 0 4 -4 10 -3 10 -3 6 -10 10 -4 7 -3 7 -3 3 -4 3 -6 7 0 3 0 10 0 4 0 3 -4 3 0 7 -3 13 0 4 -3 6 -4 7 -6 7 -7 6 0 4 -3 10 -4 10 -3 6 3 20 0 10 -3 10 -3 4 -10 10 -4 6 -10 14 -6 6 -4 0 -3 4 -7 3 -6 7 -4 0 -6 10 -4 3 -6 3 -20 10 -17 7 -3 3 -7 4 -10 3 -3 3 -17 4 -10 -4 -10 0 -3 -3 -4 0 -6 0 0 3 0 7 -4 7 -6 6 3 4 3 0 4 0 3 0 3 -4 7 0 20 0 10 0 10 4 3 0 7 3 7 7 10 0 3 0 13 0 10 3m-1870 27l4 0 6 -4 4 -3 13 3 3 0 4 0 3 -3 7 -3 3 0 7 -7 6 -7 4 0 3 -3 3 -7 7 -3 7 -10 3 0 0 -3 3 -4 0 -10 0 -10 0 -3 -6 -10 0 -3 -7 -7 -7 -3 -10 0 0 -4 -10 -6 -3 0 -10 -10 -10 -7 -3 0 -17 -7 -3 0 -4 0 -6 -6 -4 0 -3 -4 -3 0 -17 10 -10 7 -3 3 -7 4 -3 3 0 3 0 4 0 3 -7 10 0 10 0 7 -3 3 3 17 0 6 3 4 7 6 3 10 7 7 3 3 7 0 13 17 10 7 10 0m360 23l7 -7 3 0 4 -3 6 0 10 0 4 0 3 -3 7 -7 20 -7 6 0 10 0 10 0 4 -3 0 -3 6 -4 7 -10 3 0 4 -3 3 -10 3 -3 7 -7 7 -10 6 -13 0 -4 7 -3 17 -10 0 -3 0 -4 0 -10 6 -16 0 -4 4 -10 3 -10 3 -6 10 -20 0 -4 7 -10 0 -6 3 -4 0 -3 4 -3 3 -4 3 -6 0 -4 -3 -6 0 -14 0 -3 0 -13 3 -4 4 -3 6 -7 7 -3 3 -3 10 -4 7 -6 7 -10 6 -10 7 -7 3 -3 4 -4 10 -10 3 -6 7 -4 6 -3 4 0 3 -3 13 -7 14 -7 3 0 10 -3 7 -3 3 -4 0 -3 3 -7 0 -3 0 -13 0 -4 -3 -3 -3 -10 0 -3 -4 0 -10 -4 -3 4 -3 6 -7 0 -7 7 -3 0 -10 0 -7 3 -3 0 -7 0 -13 -6 -3 0 -7 0 -3 0 -7 -4 -3 4 -7 3 -3 0 -7 -3 -7 0 -3 6 0 4 -3 0 -7 3 -7 7 -10 3 -10 -3 0 3 -6 7 -7 0 -3 3 -4 7 -3 13 -3 7 -4 3 -3 3 -3 0 -4 4 -6 3 0 3 -4 4 -3 6 -3 4 0 3 -7 3 -7 4 -3 6 -3 4 -4 0 -3 0 -10 -4 -3 0 -7 4 -7 6 -3 4 -3 3 -4 3 -16 0 -4 4 -20 0 -3 -4 -13 0 -7 0 -3 4 -4 0 -3 3 -10 10 -10 -3 -10 0 -13 6 -4 0 -10 0 -20 0 -10 -6 -3 0 -3 -4 -4 0 -10 4 -6 3 -4 0 -6 3 -4 4 -3 0 -7 3 -10 0 0 3 -3 4 3 6 4 4 3 6 3 4 7 3 3 3 7 10 0 4 10 16 3 7 0 3 4 17 0 13 3 7 0 3 7 7 0 3 3 0 3 4 7 3 3 7 4 16 3 7 3 3 0 4 7 3 3 7 7 6 10 14 7 10 3 0 0 6 0 7 3 3 4 4 3 0 3 3 4 3 3 4 0 6 -3 14 3 3 0 3 7 4 3 3 3 0m707 183l3 0 4 -3 3 -7 3 -3 0 -3 14 -7 3 -3 3 0 7 -4 7 0 3 0 3 -3 7 -3 7 0 16 -7 4 0 10 -7 3 -10 3 -3 4 -7 3 -6 3 0 4 -4 0 -3 6 -3 10 -7 0 -3 4 -4 -4 -3 -6 -7 -4 -3 0 -3 -3 -7 3 -7 4 -6 0 -4 3 -3 10 0 0 -7 -7 -3 0 -7 0 -3 -3 -7 -3 -3 0 -7 3 -3 3 -10 4 -7 0 -3 -4 -3 -6 -4 0 -3 -7 0 -3 -7 -7 -3 0 -3 -3 -10 0 -4 0 -3 0 -7 0 -3 3 -3 0 -7 0 -7 0 -3 -7 -7 -3 -3 0 -7 3 -6 0 -4 10 -13 4 -3 -4 -4 -6 -3 -4 -3 -3 6 -10 0 -3 7 6 7 0 3 0 3 0 4 -3 3 -3 0 -7 0 -7 3 -3 4 -3 -4 -7 0 -10 -6 -3 -4 -4 4 -6 -4 -4 -3 -3 0 -7 3 -3 4 -3 -4 -7 0 -10 0 -17 0 -3 0 -3 -3 -7 0 -10 -3 -3 -7 -4 0 -10 0 -3 0 -10 0 -13 -3 0 6 3 7 3 7 -3 3 0 7 -3 6 3 4 -3 3 -4 7 4 6 0 7 -4 3 0 4 -3 3 -3 0 -4 3 0 4 0 3 -3 3 -3 4 -4 3 -3 0 -7 0 -3 7 -7 6 -3 7 -3 0 -4 0 -10 0 -3 3 -3 0 -4 7 0 13 0 14 0 3 0 3 0 4 0 6 0 4 -3 10 0 3 10 17 3 10 0 6 7 4 7 20 0 3 3 0 3 3 10 4 7 6 3 7 4 3 13 10 0 4 3 3 10 3 14 14 0 3 6 0 27 0 10 3 3 0 7 7 10 3m-1557 57l7 0 0 -3 0 -4 0 -3 3 -3 0 -4 0 -6 0 -7 4 -3 3 -4 3 -3 0 -3 7 -7 3 -3 7 -4 3 -16 0 -4 4 -6 0 -4 0 -3 3 -7 3 -3 4 -3 10 -10 3 -4 0 -6 0 -4 -3 -3 0 -3 -4 -4 -3 -10 -7 -3 -13 -3 -3 3 -4 3 -3 4 -3 3 -7 0 -3 0 -4 7 -3 0 -10 0 -3 0 -4 3 -3 3 3 4 4 3 0 3 -10 7 -4 0 -6 7 -7 10 -3 3 -4 0 -6 3 -7 0 -3 0 -7 -3 -7 0 -6 0 -7 0 -3 0 -7 -7 -3 -3 -7 3 -10 7 -7 7 0 6 0 4 0 3 4 10 3 10 3 0 4 3 13 0 7 4 10 3 10 0 6 3 4 -3 10 3 3 0 3 4 4 0 10 20 3 3 3 3 7 7 3 0 10 0m2874 -1277l3 -3 0 -3 7 -4 0 -3 0 -7 -4 -3 -6 0 -10 7 -4 6 -3 4 3 3 0 3 14 0züGúHìAIûûGúHìAIûûú\øúIA18VB242WC5654[Hfil8 fnt8GúHìAIûûúIA16VC1525WîV[îWGúHìAIûûúIA14VC2797WîV[îWGúHìAIûûúIîTVB222WC7192[îWGúHìAIûûúIîXVC1517Wî][îWGúHìAIûûúIîZVC2834Wî][îWGúHìAIûûúIA28VC3244WC6808[îWGúHìAIûûúIî`VA-2WC6812[îWGúHìAIûûù]ú\øúIí;VB377WîV[îW^í=GúHìAIûûúIí>VîeWîV[îW^í?GúHìAIûûùGúHìAIûûGúHìAIûûúNøú[íLàM3152 5776l2 -4 2 -3 5 -5 2 -3 0 -5 -4 -5 -6 0 -2 3 -11 3 -3 7 -1 5 1 4 2 1 13 2üGúHìAIûûú[íLàM3140 5897l-4 0 -4 -2 -1 -2 -1 -3 2 -3 3 -2 5 -5 0 -4 1 -4 1 -3 6 -19 4 -2 3 1 8 3 5 2 5 6 -1 4 -2 3 -3 2 -2 3 -6 10 0 4 -6 5 -4 0 -6 5 -3 1üGúHìAIûûú[íLàM2987 6178l-5 -1 -2 -3 -1 -3 -2 -3 -4 -1 -9 1 -3 -2 -4 -1 -9 1 -12 0 -3 2 -4 -1 -3 -5 -2 -7 -2 -3 -2 -4 0 -4 2 -4 3 -2 8 -1 3 -8 5 -5 3 -2 2 -3 1 -3 0 -8 0 -10 3 -17 -3 -11 0 -5 3 -7 1 -4 6 -9 2 -3 5 -6 4 -6 3 -7 3 -2 6 -3 9 -7 10 -10 14 0 9 -1 4 0 4 -1 6 -4 5 -4 4 -7 6 -3 3 -3 6 -8 3 -3 4 0 3 2 5 1 4 -1 6 -4 3 -2 6 -4 4 -1 4 -1 3 0 3 2 4 5 3 1 2 3 4 2 4 0 4 -2 6 -3 2 -3 4 -6 1 -5 2 -3 1 -3 0 -5 2 -4 1 -4 4 -5 1 -5 0 -5 1 -3 2 -3 3 -13 12 -18 4 0 2 3 7 3 9 2 8 11 5 5 1 4 -2 8 -2 13 1 4 -1 5 -2 3 -5 5 -10 6 -3 7 -1 4 -1 5 3 7 2 8 2 4 1 4 0 3 -1 5 -5 6 -3 6 -1 35 -2 3 -4 1 -2 9 -2 2 -6 4 -3 2 -3 2 -2 3 -3 2 -7 3 -3 3 -6 3 -3 3 0 5 -2 2 -4 -1 -9 -2 -5 0 -4 1 -6 3 -3 3 -3 2 -4 11 -3 2 -15 2 -12 8 -5 0 -11 -4 -5 -1 -8 3 -10 4 -4 1 -3 2 -5 5 -5 10 -3 12 -3 3 -4 6 -2 3 -6 4 -2 8üGúHìAIûûú[íLàM416 6407l2 -3 1 -4 13 -17 3 -7 0 -5 2 -4 1 -3 2 -3 5 -11 1 -4 -5 -11 -2 -12 -3 -7 -1 -4 0 -9 2 -12 4 -7 8 -12 8 -7 2 -3 2 -8 0 -4 -4 -4 -9 -7 -2 -2 0 -9 -2 -4 -7 -8 -2 -3 -1 -4 0 -5 2 -3 -1 -3 -4 -6 -10 -10 -7 -3 -4 -1 -5 0 -3 1 -7 4 -12 3 -8 -2 -8 -3 -5 0 -4 1 -4 -1 -4 -1 -5 -5 -3 -2 -3 2 -5 5 -7 4 -13 6 -7 9 -8 1 -3 3 -1 3 0 4 -2 4 -2 3 -8 7 -2 3 -3 7 -1 9 1 4 8 7 3 1 5 4 4 10 2 3 4 2 3 7 0 4 1 4 4 5 0 5 -1 5 2 3 3 6 6 5 1 4 4 6 4 6 2 3 1 8 2 14 0 4 7 8 12 14 2 3 0 3 1 4 1 4 0 5 1 19 2 2 2 3 1 4 -1 4 0 5 2 4 4 5 4 5 6 4 2 3 2 -1 4 -10 5 -5 3 -7 3 -3 6 -4 3 -2 4 -6 1 -3 2 -4 1 -10üGúHìAIûûú[íLàM2637 6761l3 -2 6 -4 3 -3 10 -9 3 -2 2 -3 5 -6 8 -11 3 -3 6 -4 5 -4 4 -6 10 -17 2 -2 6 -9 8 -7 18 -2 8 -1 10 -6 2 -2 9 -6 8 -2 10 -5 12 -3 7 -3 12 -3 13 -1 3 -1 9 -1 12 -2 4 -2 9 -6 3 -1 3 0 6 4 2 0 2 -3 3 -2 8 -7 4 -6 4 -7 2 -8 1 -4 5 -5 1 -9 0 -4 1 -5 1 -3 8 -8 1 -4 2 -8 2 -3 2 -9 5 -14 4 -7 4 -6 1 -3 5 -5 0 -5 -2 -4 -2 -7 -4 -6 -1 -4 2 -8 1 -4 -2 -9 0 -5 0 -4 2 -7 5 -6 4 -6 0 -5 6 -14 1 -3 1 -19 1 -8 1 -4 1 -10 -2 -8 0 -15 -1 -4 -3 -7 0 -4 -3 -18 2 -14 -3 -12 -1 -3 -2 -3 -5 -11 -11 -4 -2 -2 -1 -8 -3 -3 -4 -1 -7 -2 -7 3 -4 1 -5 0 -4 0 -7 3 -4 1 -5 5 -5 0 -4 6 -9 1 -3 2 -2 3 -3 2 -11 4 -2 3 -2 3 -1 9 2 13 -1 10 -2 3 -4 16 -4 7 -1 3 -1 4 1 18 -1 4 -7 8 -7 9 -1 3 -3 3 -4 6 -1 4 0 4 -6 9 -2 4 -2 3 -2 3 -2 8 -2 3 -2 8 -3 7 -9 11 -5 5 -4 6 -2 4 -5 4 -4 6 -1 4 -2 9 1 5 -1 4 -1 4 -1 4 -2 13 -2 3 -4 7 -2 8 -8 7 -5 5 -1 4 -3 12 -3 7 -2 9 2 18 -1 10 -3 12 -2 3 -10 11 -4 6 -11 13 -6 5 -3 2 -2 3 -7 3 -9 6 -3 2 -6 9 -3 2 -7 3 -19 11 -17 7 -3 2 -8 3 -9 6 -3 1 -17 4 -11 -4 -9 0 -5 -1 -3 -1 -5 0 -2 3 1 8 -4 6 -5 6 2 3 3 2 4 -1 4 -1 2 -2 9 -2 19 0 9 0 12 4 3 2 7 3 6 4 9 1 4 -1 13 3 9 1üGúHìAIûûú[íLàM767 6789l4 -1 6 -4 4 -1 13 2 4 0 5 -1 3 -1 6 -5 4 1 4 -6 3 -3 6 -3 3 -3 1 -3 5 -6 7 -3 6 -8 3 -3 2 -3 1 -4 1 -9 1 -9 -2 -3 -4 -11 -2 -3 -8 -8 -6 -2 -8 -2 -2 -1 -7 -8 -5 -1 -11 -9 -9 -6 -3 -2 -17 -4 -5 0 -3 -2 -6 -4 -2 -2 -4 -2 -5 0 -16 11 -10 5 -3 2 -6 4 -2 2 -2 4 -1 4 0 5 -5 10 0 10 -1 4 -2 4 1 18 3 7 2 4 7 6 4 10 5 6 3 2 7 3 15 15 9 6 9 1üGúHìAIûûú[íLàM1128 6811l6 -4 3 -3 4 -1 8 -2 8 1 4 -2 2 -2 10 -6 17 -7 9 -1 9 1 10 -1 3 -1 2 -4 5 -5 6 -9 4 -1 2 -3 5 -10 2 -3 8 -7 6 -9 6 -14 3 -3 5 -5 15 -9 2 -3 0 -4 1 -9 5 -16 0 -4 2 -8 5 -10 2 -9 10 -20 1 -4 5 -10 1 -4 5 -6 1 -3 2 -3 2 -2 4 -7 1 -4 -4 -7 -1 -13 0 -4 2 -11 1 -4 5 -5 7 -7 7 -3 3 -2 10 -5 6 -4 5 -10 8 -12 5 -5 3 -2 3 -2 3 -3 8 -12 5 -4 6 -4 7 -3 3 -2 4 -1 12 -8 14 -7 3 -1 12 -3 6 -4 3 -2 1 -5 1 -4 2 -3 0 -14 -1 -4 -2 -2 -3 -12 -1 -3 -4 0 -11 -3 -2 4 -5 5 -4 1 -9 6 -3 1 -9 1 -8 3 -4 -1 -4 -1 -14 -4 -4 -1 -5 1 -4 -1 -7 -3 -3 1 -6 4 -5 0 -7 -3 -4 0 -3 2 -1 4 -2 3 -2 3 -8 2 -7 8 -9 1 -8 -2 -3 2 -5 6 -6 3 -4 2 -4 6 -3 13 -3 6 -5 5 -4 2 -3 2 -2 3 -5 4 -2 3 -2 4 -5 5 -2 3 -1 4 -7 2 -6 5 -2 7 -3 2 -5 1 -4 -1 -8 -2 -5 1 -7 2 -6 5 -4 6 -2 3 -3 2 -18 2 -3 1 -19 -1 -4 -1 -15 0 -4 1 -3 1 -5 1 -3 2 -10 9 -9 -1 -13 0 -10 5 -5 1 -9 -1 -20 0 -11 -4 -3 -2 -3 -2 -5 0 -9 1 -6 4 -3 2 -6 4 -4 1 -4 1 -7 3 -8 1 -3 2 -2 3 -1 2 4 6 2 3 4 6 3 2 7 3 2 3 1 3 6 10 2 3 9 16 3 7 2 3 4 16 -1 14 2 8 1 3 6 6 1 3 3 2 3 2 6 4 5 5 3 17 4 6 2 3 1 3 4 5 6 5 7 8 9 14 8 8 2 3 1 4 0 9 2 4 3 2 4 1 3 2 2 3 3 5 2 4 -2 13 1 4 2 3 5 5 3 2 4 0üGúHìAIûûú[íLàM1833 6995l4 -1 3 -2 6 -8 1 -4 3 -3 10 -4 6 -4 4 -1 4 -1 7 -3 4 0 3 -2 6 -3 9 -2 16 -3 4 -2 8 -7 5 -10 1 -4 3 -6 6 -5 3 -2 2 -3 2 -3 5 -5 9 -6 2 -3 1 -4 -2 -3 -5 -5 -5 -6 -1 -3 -1 -5 2 -7 3 -7 2 -3 2 -3 8 -1 1 -4 -5 -4 -1 -7 -1 -3 -3 -7 -1 -4 0 -5 2 -3 5 -11 1 -7 0 -4 -3 -2 -5 -5 -3 -2 -4 -2 -6 -4 -4 -6 -1 -3 -2 -8 -1 -5 1 -5 -1 -4 0 -4 2 -3 2 -8 0 -5 -1 -3 -8 -8 -1 -4 0 -5 2 -8 1 -4 10 -11 1 -4 -2 -3 -5 -5 -3 -2 -4 6 -10 0 -3 2 0 4 4 6 2 4 -1 5 -1 3 -2 3 -4 1 -5 0 -7 4 -4 0 -4 0 -7 -3 -9 -7 -4 -1 -4 1 -4 -1 -6 -4 -3 0 -6 5 -5 0 -3 -1 -4 -1 -13 2 -14 -1 -5 -1 -3 -2 -5 0 -10 -5 -6 -5 -3 -1 -9 1 -5 0 -8 -2 -14 -2 0 5 2 3 3 6 1 5 -1 4 -2 8 -1 5 1 4 -2 2 -4 7 2 8 0 5 -1 5 -1 3 -2 3 -4 1 -2 3 -1 4 -2 3 -2 3 -3 2 -3 2 -3 2 -9 1 -4 7 -4 5 -5 5 -3 2 -4 1 -10 1 -4 0 -2 3 -2 4 1 14 -3 13 0 4 1 4 0 4 1 5 0 3 -4 12 1 3 10 16 1 8 2 8 5 5 6 18 2 3 4 2 3 1 7 3 8 8 4 6 5 5 11 9 2 3 2 3 10 5 12 13 2 2 5 0 29 2 7 2 4 1 9 7 7 2üGúHìAIûûú[íLàM277 7053l7 -2 2 -2 -1 -3 1 -4 2 -3 1 -4 0 -8 0 -4 2 -4 2 -2 2 -3 2 -3 2 -2 4 -6 6 -4 6 -2 1 -3 1 -15 1 -3 4 -6 1 -5 0 -4 1 -4 2 -3 3 -3 3 -2 11 -9 1 -3 1 -9 -1 -3 -1 -3 -3 -3 -1 -4 -5 -10 -5 -4 -14 -1 -4 1 -2 3 -4 6 -4 1 -5 0 -4 1 -5 5 -3 2 -9 0 -4 1 -3 2 -2 4 4 1 1 3 0 5 -9 5 -4 2 -8 7 -5 11 -2 2 -4 2 -9 2 -4 1 -5 -1 -6 -4 -5 0 -9 1 -5 -1 -3 -1 -9 -7 -4 -1 -7 3 -9 5 -5 6 -2 8 0 4 1 4 4 10 3 8 2 2 4 2 14 1 8 3 8 2 10 0 7 3 5 0 10 0 3 1 3 2 2 3 12 19 2 2 2 3 9 7 3 2 8 0üGúHìAIûûùGúHìAIûûúNøú[íyLdM2977 6617l0 -283 -283 0 0 283 283 0zGúHìAIûûú[íwLdM2901 6617l0 -206 -207 0 0 206 207 0zGúHìAIûûùGúHìAIûûúNøú[Ifil7 str16LeM85 7121l0 -1443 3150 0 0 1443 -3150 0GúHìAIûûú[îhLàM271 6790l0 -8 1 -37 0 -36 1 -37 0 -37 1 -36 1 -37 0 -36 1 -37 0 -36 1 -37 1 -36 0 -37 1 -37 0 -36 1 -37 1 -36 0 -37 1 -36 0 -37 1 -36 1 -37 0 -37 1 -36 0 -37 1 -36 1 -37 0 -36 1 -37 0 -37 1 -36 0 -7üGúHìAIûûú[îhLeM85 6786l27 1 33 0 32 1 32 1 33 0 29 1GúHìAIûûú[îhLàM2852 6790l18 -1 32 0 33 -1 32 0 33 -1 32 -1 33 0 32 -1 32 0 33 -1 32 -1 33 0 8 -1üGúHìAIûûú[îhLàM2852 6790l0 -8 -1 -37 0 -36 -1 -37 0 -37 -1 -36 -1 -37 0 -36 -1 -37 0 -36 -1 -37 -1 -36 0 -37 -1 -37 0 -36 -1 -37 -1 -36 0 -37 -1 -36 0 -37 -1 -36 -1 -37 0 -37 -1 -36 0 -37 -1 -36 -1 -37 0 -36 -1 -37 0 -37 -1 -36 0 -7üGúHìAIûûú[îhLàM1561 6800l11 0 33 0 32 0 32 0 33 0 32 0 33 0 32 0 33 0 32 0 33 0 32 -1 32 0 33 0 32 0 33 0 32 -1 33 0 32 0 33 0 32 -1 32 0 33 0 32 0 33 -1 32 0 33 0 32 -1 33 0 32 -1 32 0 33 0 32 -1 33 0 32 -1 33 0 32 -1 33 0 32 -1 32 0 15 0üGúHìAIûûú[îhLàM1561 6800l0 -8 0 -36 0 -37 0 -36 0 -37 0 -37 0 -36 0 -37 0 -36 0 -37 0 -36 0 -37 0 -36 0 -37 0 -37 0 -36 0 -37 0 -36 0 -37 0 -36 0 -37 0 -37 0 -36 0 -37 0 -36 0 -37 0 -36 0 -37 0 -37 0 -36 0 -37 0 -17üGúHìAIûûú[îhLàM271 6790l3 0 33 0 32 1 33 0 32 1 33 0 32 1 32 0 33 1 32 0 33 0 32 1 33 0 32 0 33 1 32 0 32 0 33 1 32 0 33 0 32 1 33 0 32 0 33 0 32 1 32 0 33 0 32 0 33 0 32 0 33 1 32 0 33 0 32 0 32 0 33 0 32 0 33 0 32 0 33 0 21 0üGúHìAIûûú[îhLM1561 7121l0 -36 0 -37 0 -36 0 -37 0 -37 0 -36 0 -37 0 -36 0 -29GúHìAIûûú[îhLàM2857 7121l0 -10 0 -37 -1 -37 0 -36 -1 -37 -1 -36 0 -37 -1 -36 0 -37 -1 -28üGúHìAIûûú[îhLàM265 7121l1 -10 0 -37 1 -37 0 -36 1 -37 1 -36 0 -37 1 -36 0 -37 1 -28üGúHìAIûûùGúHìAIûûúNøú[íyLdM1248 6705l0 -273 -276 0 0 273 276 0zGúHìAIûûú[í¬LdM1145 6705l0 -173 -173 0 0 173 173 0zGúHìAIûûùGúHìAIûûù]ú\øú`úIPKanarische InselnZN#textPathCanaryaíÓGúHìAIûû^í=[Hfil8 fnt9_Sletter-spacing:40px;GúHìAIûûú`úIMCanary IslandsZîoaíÓGúHìAIûû^í?[îp_Sletter-spacing:60px;GúHìAIûûùGúHìAIûû\øúIHTeneriffaVC1221WC6344[î0GúHìAIûûúIKGran CanariaVC1893WC7067[î0GúHìAIûûùDFislandsGúHìAIûûú]øúSøú\øúISpanien - BevölkerungVD-5481WB166[Ifil8 fnt10GúHìAIûûúIJ1970 - 1990VíFWB157[î~_íHGúHìAIûûúIàErstellt v. Andreas Neumann im Rahmen d. Kartenentwurfspraktikums, Sommersemester 1998,üVD-5483WC7499[îWGúHìAIûûúIägeleitet v. Prof. Ingrid Kretschmer, Institut für Geographie der Universität Wien.üVîWC7583[îWGúHìAIûûúIàVerwendete Software: Arc/Info und Module, CorelDRAW und div. Perl-Scripts.üVîWC7666[îWGúHìAIûûúIBevölkerungsdichteVC3665WB363[Ifil8 fnt11GúHìAIûûúIBevölkerungsveränderungVîWC4063[îGúHìAIûûúIBevölkerung absolutVîWC1815[îGúHìAIûûúIEinwohner/km² auf ProvinzebeneVîWB510[î0GúHìAIûûúIProzentuelle Veränderung derVîWC4210[î0GúHìAIûûúIProvinzen gegenüber Stand 1970VîWC4344[î0GúHìAIûûúIîVîWC5750[î0GúHìAIûûúI Hauptstädte gegenüber Stand 1970VîWC5884[î0GúHìAIûûúIZAuf Provinzebene und in denVîWC1962[î0GúHìAIûûúIHauptstädten (inneres Quadrat)VîWC2096[î0GúHìAIûûù^í=GúHìAIûûú\øúIQSpain - PopulationVî|Wî}[î~GúHìAIûûúIîVíFWî[î~_íHGúHìAIûûúIàCreated by Andreas Neumann for the map design course, summer semester 1998,üVîWî[îWGúHìAIûûúIàled by Prof. Ingrid Kretschmer, Geography Institute of Vienna University.üVîWî[îWGúHìAIûûúIàUsed software: Arc/Info and Modules, CorelDRAW and various Perl scripts.üVîWî[îWGúHìAIûûúIQPopulation densityVîWî[îGúHìAIûûúIPPopulation changeVîWî[îGúHìAIûûúIRPopulation absoluteVîWî[îGúHìAIûûúIInhab. per km² at province levelVîWî[î0GúHìAIûûúIWPercentual change of theVîWî[î0GúHìAIûûúIYprovince vs situation 1970VîWî[î0GúHìAIûûúIîVîWî[î0GúHìAIûûúIYcapitals vs situation 1970VîWî[î0GúHìAIûûúI]At provincial level and in theVîWî[î0GúHìAIûûúIVcapitals (inner square)VîWî[î0GúHìAIûûù^í?GúHìAIûûùGúHìAIûûú\øúIQAngaben in tausendVC4151WC3193[Ifil8 fnt41^í=GúHìAIûûúIWIndications in thousandsVî¥Wî¦[î§^í?GúHìAIûûùGúHìAIûûú\øúIVMassstab 1 : 6.000.000VD-1325WC7682[î§^í=GúHìAIûûúISScale 1 : 6.000.000VîªWî«[î§^í?GúHìAIûûùGúHìAIûûú\øúIjQuelle: Spanisches Statistisches ZentralamtVîWC7280[î§^í=GúHìAIûûúIlSource: Spanish Central Office for StatisticsVîWî®[î§^í?GúHìAIûûùGúHìAIûûú\øúI`Minimum (Provinz): Soria - 97.268VîWC3331[î§^í=GúHìAIûûúIaMinimum (Province): Soria - 97.268VîWî±[î§^í?GúHìAIûûùGúHìAIûûú\øúIdMaximum (Provinz): Madrid - 5.028.120VîWC3432[î§^í=GúHìAIûûúIeMaximum (Province): Madrid - 5.028.120VîWî´[î§^í?GúHìAIûûùGúHìAIûûú\øúIdMinimum (Hauptstadt): Teruel - 28.488VîWC3532[î§^í=GúHìAIûûúIaMinimum (capital): Teruel - 28.488VîWî·[î§^í?GúHìAIûûùGúHìAIûûú\øúIgMaximum (Hauptstadt): Madrid - 3.120.732VîWC3633[î§^í=GúHìAIûûúIdMaximum (capital): Madrid - 3.120.732VîWîº[î§^í?GúHìAIûûùGúHìAIûûú\øúIIStand 1990VC4779WC1362[î§^í=GúHìAIûûúIMSituation 1990Vî½Wî¾[î§^í?GúHìAIûûùGúHìAIûûú\øúIî¼VC5063WC3022[î§^í=GúHìAIûûúIHSit. 1990VîÀWîÁ[î§^í?GúHìAIûûùGúHìAIûûùSøúNøú[Ifil0 str11LaM3665 634l196 0 0 98 -196 0 0 -98zGúHìAIûûú[í[LîÄGúHìAIûûùGúHìAIûûúNøú[Ifil1 str11LaM3665 791l196 0 0 99 -196 0 0 -99zGúHìAIûûú[í[LîÆGúHìAIûûùGúHìAIûûúNøú[Ifil2 str11LaM3665 949l196 0 0 98 -196 0 0 -98zGúHìAIûûú[í[LîÈGúHìAIûûùGúHìAIûûúNøú[Ifil3 str11LbM3665 1106l196 0 0 99 -196 0 0 -99zGúHìAIûûú[í[LîÊGúHìAIûûùGúHìAIûûúNøú[Ifil4 str11LbM3665 1264l196 0 0 98 -196 0 0 -98zGúHìAIûûú[í[LîÌGúHìAIûûùGúHìAIûûúrectú[í[VD-2090WC7529XC2295YA39GúHìAIûûNøú[í[LPM-2090 7568l0 -48GúHìAIûûú[í[LPM-2024 7568l0 -40GúHìAIûûú[í[LPM-1959 7568l0 -40GúHìAIûûú[í[LPM-1893 7568l0 -40GúHìAIûûú[í[LPM-1827 7568l0 -40GúHìAIûûú[í[LPM-1762 7568l0 -48GúHìAIûûú[í[LPM-1434 7568l0 -40GúHìAIûûú[í[LPM-1106 7568l0 -48GúHìAIûûú[í[LOM-778 7568l0 -40GúHìAIûûú[í[LOM-450 7568l0 -48GúHìAIûûú[í[LOM-121 7568l0 -40GúHìAIûûú[í[LNM206 7567l0 -47GúHìAIûûú[í[LPM-1434 7547l328 0GúHìAIûûú[í[LOM-1828 7547l66 0GúHìAIûûú[í[LOM-1959 7547l65 0GúHìAIûûú[í[LOM-2090 7547l65 0GúHìAIûûú[í[LOM-778 7547l328 0GúHìAIûûú[í[LOM-122 7547l328 0GúHìAIûûù\øúIìvVD-1783WC7500[Ifil8 fnt42GúHìAIûûúIìbVD-1167Wîä[îåGúHìAIûûúIB200VC-511Wîä[îåGúHìAIûûúIE300 kmVB146Wîä[îåGúHìAIûûúIì:VD-2131Wîä[îåGúHìAIûûùGúHìAIûûùgøú[í¦VîWC4473XB197Yì\GúHìAIûûú[íOVîWC6014XîíYì\GúHìAIûûú[íeVîWC4631XîíYì\GúHìAIûûú[íYVîWC6172XîíYì\GúHìAIûûú[íOVîWC4788XîíYì\GúHìAIûûú[íwVîWC6329XîíYì\GúHìAIûûú[íQVîWC4946XîíYì\GúHìAIûûú[í¬VîWC6487XîíYì\GúHìAIûûú[íyVîWC5103XîíYì\GúHìAIûûú[íyVîWC6644XîíYì\GúHìAIûûù\øúI@<VC4250WB723[Ifil8 fnt12GúHìAIûûúID 25VC4304Wîù[Ifil8 fnt13GúHìAIûûúIî÷VC4338WC4563[Ifil8 fnt14GúHìAIûûúIF 85 %VC4392Wîÿ[Ifil8 fnt15GúHìAIûûúIî÷VîþWC6104[Ifil8 fnt16GúHìAIûûúIE 115 %VïWï[Ifil8 fnt17GúHìAIûûúIB25 VC4111WB881[ïGúHìAIûûúID 45VîüWï +[ïGúHìAIûûúIî÷VîøWï +[Ifil8 fnt18GúHìAIûûúID85 % VC4086WC4720[Ifil8 fnt19GúHìAIûûúIE 100 %VïWï[ïGúHìAIûûúIî÷VîþWï[Ifil8 fnt20GúHìAIûûúIE115 % VC4030WC6261[Ifil8 fnt21GúHìAIûûúIE 130 %VïWï[ïGúHìAIûûúIî÷VîþWï[Ifil8 fnt22GúHìAIûûúIB45 Vï WC1038[Ifil8 fnt23GúHìAIûûúID 75VîüWï[ïGúHìAIûûúIî÷VîøWï[Ifil8 fnt24GúHìAIûûúIE100 % VïWC4878[Ifil8 fnt25GúHìAIûûúIïVïWï[ï GúHìAIûûúIî÷VîþWï[Ifil8 fnt26GúHìAIûûúIE130 % VïWC6417[Ifil8 fnt27GúHìAIûûúIE 145 %VC4391Wï#[ï$GúHìAIûûúIî÷VC4337Wï#[Ifil8 fnt28GúHìAIûûúIB75 Vï WC1196[Ifil8 fnt29GúHìAIûûúIC 150VîüWï*[ï+GúHìAIûûúIî÷VC4251Wï*[Ifil8 fnt30GúHìAIûûúIïVïWC5035[Ifil8 fnt31GúHìAIûûúIïVïWï/[ï0GúHìAIûûúIî÷VîþWï/[Ifil8 fnt32GúHìAIûûúIE145 % VïWC6576[Ifil8 fnt33GúHìAIûûúIE 160 %VïWï3[ï4GúHìAIûûúIî÷VîþWï3[Ifil8 fnt34GúHìAIûûúIC150 VC4054WC1353[Ifil8 fnt35GúHìAIûûúIî÷VC4249Wï9[Ifil8 fnt36GúHìAIûûúIï"VC4035WC5193[Ifil8 fnt37GúHìAIûûúIî÷VC4343Wï>[Ifil8 fnt38GúHìAIûûúIE160 % Vï=WC6734[Ifil8 fnt39GúHìAIûûúIî÷Vï@WïC[Ifil8 fnt40GúHìAIûûúID5.000VC4712WC2359[î§GúHìAIûûúID1.000VC4709WC2484[î§GúHìAIûûúIB500VC4769WC2608[î§GúHìAIûûúIîçVC4770WC2733[î§GúHìAIûûúIìbVïOWC2857[î§GúHìAIûûúIì:VC4809WC2982[î§GúHìAIûûúIhMin.: Soria - 9,46, Max.: Madrid - 628,91VîWC1543[î§GúHìAIûûúIXMinimum: Soria - 84,61 %,VîWC5400[î§GúHìAIûûúI]Maximum: Las Palmas - 141,24 %VîWC5500[î§GúHìAIûûúIZMinimum: Vizcaya - 93,50 %,VîWC6939[î§GúHìAIûûúI^Maximum: Guadalajara - 199,18 %VîWC7040[î§GúHìAIûûùNøú[Ifil7 str17LdM4451 3032l0 -783 -786 0 0 783 786 0zGúHìAIûûú[ï^LdM4022 3032l0 -357 -357 0 0 357 357 0zGúHìAIûûú[ï^LdM3928 3032l0 -263 -263 0 0 263 263 0zGúHìAIûûú[ï^LdM3851 3032l0 -184 -186 0 0 184 186 0zGúHìAIûûú[ï^LdM3812 3032l0 -143 -147 0 0 143 147 0zGúHìAIûûú[ï^LdM3778 3032l0 -114 -113 0 0 114 113 0zGúHìAIûûú[Ifil7 str18LPM4680 2334l-232 0GúHìAIûûú[ïeLYM4680 2460l-331 0 -327 277GúHìAIûûú[ïeLYM4738 2576l-389 0 -424 263GúHìAIûûú[ïeLYM4738 2706l-389 0 -498 209GúHìAIûûú[ïeLYM4738 2832l-389 0 -536 137GúHìAIûûú[ïeLXM4779 2952l-430 0 -570 51GúHìAIûûùDJtext_legendGúHìAIûûù@xml:spaceGpreserveVA25WïnXB550YE382.36_àshape-rendering:geometricPrecision; text-rendering:auto; image-rendering:optimizeSpeedü@viewBoxQ-5483 0 11053 7684GúHìAIûûiJ0 0 600 420XB600YB420GúHìAIûûû \ No newline at end of file
diff --git a/1.9.10/samples-smile/ns-invoice100.xml.smile b/1.9.10/samples-smile/ns-invoice100.xml.smile new file mode 100644 index 0000000..75a75a4 --- /dev/null +++ b/1.9.10/samples-smile/ns-invoice100.xml.smile
@@ -0,0 +1,4 @@ +:) +úns1:invoiceú HeaderúIssueDateTimeú$X2003-03-13T13:13:32-08:00 @xmlnsúns1qhttp://www.sun.com/schema/spidermarkexpress/sm-invûûIdentifierúCG15570720@schemeAgencyNameBISO@schemeNameFInvoiceDúEûûPOIdentifierúCB691HFGenericGDúEûûBuyerPartyúPartyIDúC@1HPSpiderMarkExpressGCSUNWDúEûûNameúCQIDES Retail INC USDúEûûAddressú StreetúCGHill St.DúEûûHouseIDúCC5555HFHouseIDGDhouseDúEûû RoomIDúCFSuite 3HERoomIDGCroomDúEûûCityNameúCEBostonDúEûûPostalZoneIDúCD01234HFZipcodeGCUSPSDúEûûStateNameúCAMADúEûûCountryIdentificationCodeúCAUS@listAgencyId@listIdC3166DúEûûDúEûûContactúLúCHJoe BuyerDúEûûCommunicationøúValueúCK313-555-1212DúEûûChannelIDúCDphoneH G +DúEûûDúEûûúYúCK313-555-1213DúEûûZúCBfaxH G +DúEûûDúEûûùDúEûûDúEûûSellerPartyúKúCA10HGDúEûûLúCV1YvMdIkxZRXszgQfmoKqkitDúEûûMúNúCBZNkDúEûûOúCC1234HGDúEûûPúCFSte 301HGDúEûûQúCMtzFMMtlE1lxdagDúEûûRúCH992292786HGDúEûûSúCAFLDúEûûTúCASYUVDúEûûDúEûûWúLúCMjjzxxgwwqgwqjfDúEûûXøúYúCijjzxxgwwqgwqjf@1YvMdIkxZRXszgQfmoKqkit.comDúEûûZúCDemailHGDúEûûDúEûûúYúCO9433593740064593DúEûûZúCHGDúEûûDúEûûúYúCM38667976759785DúEûûZúCHGDúEûûDúEûûùDúEûûDúEûûShipmentúShipDateúCDúEûûTransportModeIDúCBseaGHLTransportModeDúEûûCarrierIDúCBUPSGHFCarrierDúEûûDúEûûPaymentMeansúPaymentDateúCI2003-04-13DúEûûPayeeFinancialAccountúFúCH312098283GHFAccountDúEûûFinancialInstitutionúFúCG33747420GAUNHTFinancial InstitutionDúEûûLúCDCaacoDúEûûMúNúCNH9LHLljO StreetDúEûûOúCA15HGDúEûûQúCGYigmnviiDúEûûRúCD48839HGDúEûûSúCACTDúEûûTúCUVDúEûûDúEûûDúEûû TypeIDúCEvozbixGHKAccount TypeDúEûûAccountNameúCGAdrvgrriDúEûûDúEûûDúEûûDúEûûLineItemøú LineIDúC@0HGDúEûûItemúStandardItemIdentifierúCA20HFGenericGDúEûûDescriptionúClvZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7tDúEûûQuantityúCA10@unitCodeEnumberDúEûûDúEûûOrderStatusúCHFULFILLEDVJOrderStatusUBSunDúEûûPricingúGrossUnitPriceAmountúCE437.00@currencyIdBUSDDúEûûNetUnitPriceAmountúCE367.08pìIDúEûûDúEûûPricingVariationúServiceIDúCGdiscountHìAGDúEûûConditionIDúCHallowanceHìAGDúEûûRateúCD16.00DúEûûDúEûûTotalAmountúCF3670.80pìIDúEûûDúEûûúgúC@1HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúC@2HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúC@3HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúC@4HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúC@5HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúC@6HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúC@7HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúC@8HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúC@9HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCìCHìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA11HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA12HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA13HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA14HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCì8HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA16HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA17HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA18HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA19HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCì@HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA21HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA22HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA23HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA24HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA25HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA26HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA27HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA28HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA29HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA30HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA31HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA32HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA33HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA34HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA35HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA36HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA37HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA38HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA39HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA40HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA41HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA42HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA43HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA44HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA45HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA46HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA47HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA48HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA49HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA50HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA51HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA52HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA53HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA54HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA55HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA56HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA57HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA58HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA59HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA60HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA61HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA62HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA63HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA64HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA65HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA66HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA67HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA68HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA69HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA70HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA71HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA72HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA73HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA74HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA75HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA76HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA77HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA78HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA79HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA80HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA81HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA82HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA83HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA84HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA85HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA86HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA87HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA88HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA89HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA90HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA91HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA92HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA93HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA94HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA95HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA96HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA97HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA98HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûúgúCA99HìAGDúEûûhúiúCì@HìAGDúEûûjúCìBDúEûûkúCìClìDDúEûûDúEûûmúCìEVìFUìGDúEûûnúoúCìHpìIDúEûûqúCìJpìIDúEûûDúEûûrúsúCìKHìAGDúEûûtúCìLHìAGDúEûûuúCìMDúEûûDúEûûvúCìNpìIDúEûûDúEûûùSummaryúLineItemCountValueúCìPDúEûûSubtotalAmountúCG18215.80pìIDúEûûrúsúCTshipping and handlingHIVariationsGDúEûûtúCEchargeHIConditionsGDúEûûLumpSumAmountúCC7.00pìIDúEûûDúEûûPriceAmountúCG18222.80pìIDúEûûPackingSlipIdentifierúCE156263GHKPacking SlipDúEûûDúEûûDúEûûû \ No newline at end of file
diff --git a/1.9.10/samples-smile/ns-soap.xml.smile b/1.9.10/samples-smile/ns-soap.xml.smile new file mode 100644 index 0000000..9e348ac --- /dev/null +++ b/1.9.10/samples-smile/ns-soap.xml.smile Binary files differ
diff --git a/1.9.10/samples-smile/numbers-fp-4k.smile b/1.9.10/samples-smile/numbers-fp-4k.smile new file mode 100644 index 0000000..a2afc2d --- /dev/null +++ b/1.9.10/samples-smile/numbers-fp-4k.smile Binary files differ
diff --git a/1.9.10/samples-smile/numbers-fp-64k.smile b/1.9.10/samples-smile/numbers-fp-64k.smile new file mode 100644 index 0000000..f99929e --- /dev/null +++ b/1.9.10/samples-smile/numbers-fp-64k.smile Binary files differ
diff --git a/1.9.10/samples-smile/numbers-int-4k.smile b/1.9.10/samples-smile/numbers-int-4k.smile new file mode 100644 index 0000000..540d68c --- /dev/null +++ b/1.9.10/samples-smile/numbers-int-4k.smile Binary files differ
diff --git a/1.9.10/samples-smile/numbers-int-64k.smile b/1.9.10/samples-smile/numbers-int-64k.smile new file mode 100644 index 0000000..cab77a8 --- /dev/null +++ b/1.9.10/samples-smile/numbers-int-64k.smile Binary files differ
diff --git a/1.9.10/samples-smile/test1.smile b/1.9.10/samples-smile/test1.smile new file mode 100644 index 0000000..c70f47c --- /dev/null +++ b/1.9.10/samples-smile/test1.smile
@@ -0,0 +1,4 @@ +:) +útest key#nullField!fooÂfoo2úaÆûÂaãb$ + 2øÂÄÆù"foo"Ffoo +barû \ No newline at end of file
diff --git a/1.9.10/samples-smile/test2.smile b/1.9.10/samples-smile/test2.smile new file mode 100644 index 0000000..f44dcb4 --- /dev/null +++ b/1.9.10/samples-smile/test2.smile
@@ -0,0 +1,2 @@ +:) +ú"abKey"Æfoo"û \ No newline at end of file
diff --git a/1.9.10/samples/db100.xml.jsn b/1.9.10/samples/db100.xml.jsn new file mode 100644 index 0000000..36231e7 --- /dev/null +++ b/1.9.10/samples/db100.xml.jsn
@@ -0,0 +1 @@ +{"table":{"row":[{"id":{"$":"0000"},"firstname":{"$":"Al"},"lastname":{"$":"Aranow"},"street":{"$":"1 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0001"},"firstname":{"$":"Bob"},"lastname":{"$":"Aranow"},"street":{"$":"2 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0002"},"firstname":{"$":"Charles"},"lastname":{"$":"Aranow"},"street":{"$":"3 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0003"},"firstname":{"$":"David"},"lastname":{"$":"Aranow"},"street":{"$":"4 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0004"},"firstname":{"$":"Egon"},"lastname":{"$":"Aranow"},"street":{"$":"5 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0005"},"firstname":{"$":"Farbood"},"lastname":{"$":"Aranow"},"street":{"$":"6 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0006"},"firstname":{"$":"George"},"lastname":{"$":"Aranow"},"street":{"$":"7 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0007"},"firstname":{"$":"Hank"},"lastname":{"$":"Aranow"},"street":{"$":"8 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0008"},"firstname":{"$":"Inki"},"lastname":{"$":"Aranow"},"street":{"$":"9 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0009"},"firstname":{"$":"James"},"lastname":{"$":"Aranow"},"street":{"$":"10 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0010"},"firstname":{"$":"Al"},"lastname":{"$":"Barker"},"street":{"$":"11 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0011"},"firstname":{"$":"Bob"},"lastname":{"$":"Barker"},"street":{"$":"12 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0012"},"firstname":{"$":"Charles"},"lastname":{"$":"Barker"},"street":{"$":"13 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0013"},"firstname":{"$":"David"},"lastname":{"$":"Barker"},"street":{"$":"14 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0014"},"firstname":{"$":"Egon"},"lastname":{"$":"Barker"},"street":{"$":"15 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0015"},"firstname":{"$":"Farbood"},"lastname":{"$":"Barker"},"street":{"$":"16 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0016"},"firstname":{"$":"George"},"lastname":{"$":"Barker"},"street":{"$":"17 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0017"},"firstname":{"$":"Hank"},"lastname":{"$":"Barker"},"street":{"$":"18 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0018"},"firstname":{"$":"Inki"},"lastname":{"$":"Barker"},"street":{"$":"19 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0019"},"firstname":{"$":"James"},"lastname":{"$":"Barker"},"street":{"$":"20 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0020"},"firstname":{"$":"Al"},"lastname":{"$":"Corsetti"},"street":{"$":"21 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0021"},"firstname":{"$":"Bob"},"lastname":{"$":"Corsetti"},"street":{"$":"22 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0022"},"firstname":{"$":"Charles"},"lastname":{"$":"Corsetti"},"street":{"$":"23 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0023"},"firstname":{"$":"David"},"lastname":{"$":"Corsetti"},"street":{"$":"24 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0024"},"firstname":{"$":"Egon"},"lastname":{"$":"Corsetti"},"street":{"$":"25 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0025"},"firstname":{"$":"Farbood"},"lastname":{"$":"Corsetti"},"street":{"$":"26 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0026"},"firstname":{"$":"George"},"lastname":{"$":"Corsetti"},"street":{"$":"27 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0027"},"firstname":{"$":"Hank"},"lastname":{"$":"Corsetti"},"street":{"$":"28 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0028"},"firstname":{"$":"Inki"},"lastname":{"$":"Corsetti"},"street":{"$":"29 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0029"},"firstname":{"$":"James"},"lastname":{"$":"Corsetti"},"street":{"$":"30 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0030"},"firstname":{"$":"Al"},"lastname":{"$":"Dershowitz"},"street":{"$":"31 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0031"},"firstname":{"$":"Bob"},"lastname":{"$":"Dershowitz"},"street":{"$":"32 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0032"},"firstname":{"$":"Charles"},"lastname":{"$":"Dershowitz"},"street":{"$":"33 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0033"},"firstname":{"$":"David"},"lastname":{"$":"Dershowitz"},"street":{"$":"34 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0034"},"firstname":{"$":"Egon"},"lastname":{"$":"Dershowitz"},"street":{"$":"35 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0035"},"firstname":{"$":"Farbood"},"lastname":{"$":"Dershowitz"},"street":{"$":"36 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0036"},"firstname":{"$":"George"},"lastname":{"$":"Dershowitz"},"street":{"$":"37 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0037"},"firstname":{"$":"Hank"},"lastname":{"$":"Dershowitz"},"street":{"$":"38 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0038"},"firstname":{"$":"Inki"},"lastname":{"$":"Dershowitz"},"street":{"$":"39 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0039"},"firstname":{"$":"James"},"lastname":{"$":"Dershowitz"},"street":{"$":"40 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0040"},"firstname":{"$":"Al"},"lastname":{"$":"Engleman"},"street":{"$":"41 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0041"},"firstname":{"$":"Bob"},"lastname":{"$":"Engleman"},"street":{"$":"42 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0042"},"firstname":{"$":"Charles"},"lastname":{"$":"Engleman"},"street":{"$":"43 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0043"},"firstname":{"$":"David"},"lastname":{"$":"Engleman"},"street":{"$":"44 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0044"},"firstname":{"$":"Egon"},"lastname":{"$":"Engleman"},"street":{"$":"45 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0045"},"firstname":{"$":"Farbood"},"lastname":{"$":"Engleman"},"street":{"$":"46 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0046"},"firstname":{"$":"George"},"lastname":{"$":"Engleman"},"street":{"$":"47 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0047"},"firstname":{"$":"Hank"},"lastname":{"$":"Engleman"},"street":{"$":"48 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0048"},"firstname":{"$":"Inki"},"lastname":{"$":"Engleman"},"street":{"$":"49 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0049"},"firstname":{"$":"James"},"lastname":{"$":"Engleman"},"street":{"$":"50 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0050"},"firstname":{"$":"Al"},"lastname":{"$":"Franklin"},"street":{"$":"51 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0051"},"firstname":{"$":"Bob"},"lastname":{"$":"Franklin"},"street":{"$":"52 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0052"},"firstname":{"$":"Charles"},"lastname":{"$":"Franklin"},"street":{"$":"53 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0053"},"firstname":{"$":"David"},"lastname":{"$":"Franklin"},"street":{"$":"54 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0054"},"firstname":{"$":"Egon"},"lastname":{"$":"Franklin"},"street":{"$":"55 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0055"},"firstname":{"$":"Farbood"},"lastname":{"$":"Franklin"},"street":{"$":"56 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0056"},"firstname":{"$":"George"},"lastname":{"$":"Franklin"},"street":{"$":"57 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0057"},"firstname":{"$":"Hank"},"lastname":{"$":"Franklin"},"street":{"$":"58 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0058"},"firstname":{"$":"Inki"},"lastname":{"$":"Franklin"},"street":{"$":"59 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0059"},"firstname":{"$":"James"},"lastname":{"$":"Franklin"},"street":{"$":"60 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0060"},"firstname":{"$":"Al"},"lastname":{"$":"Grice"},"street":{"$":"61 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0061"},"firstname":{"$":"Bob"},"lastname":{"$":"Grice"},"street":{"$":"62 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0062"},"firstname":{"$":"Charles"},"lastname":{"$":"Grice"},"street":{"$":"63 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0063"},"firstname":{"$":"David"},"lastname":{"$":"Grice"},"street":{"$":"64 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0064"},"firstname":{"$":"Egon"},"lastname":{"$":"Grice"},"street":{"$":"65 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0065"},"firstname":{"$":"Farbood"},"lastname":{"$":"Grice"},"street":{"$":"66 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0066"},"firstname":{"$":"George"},"lastname":{"$":"Grice"},"street":{"$":"67 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0067"},"firstname":{"$":"Hank"},"lastname":{"$":"Grice"},"street":{"$":"68 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0068"},"firstname":{"$":"Inki"},"lastname":{"$":"Grice"},"street":{"$":"69 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0069"},"firstname":{"$":"James"},"lastname":{"$":"Grice"},"street":{"$":"70 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0070"},"firstname":{"$":"Al"},"lastname":{"$":"Haverford"},"street":{"$":"71 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0071"},"firstname":{"$":"Bob"},"lastname":{"$":"Haverford"},"street":{"$":"72 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0072"},"firstname":{"$":"Charles"},"lastname":{"$":"Haverford"},"street":{"$":"73 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0073"},"firstname":{"$":"David"},"lastname":{"$":"Haverford"},"street":{"$":"74 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0074"},"firstname":{"$":"Egon"},"lastname":{"$":"Haverford"},"street":{"$":"75 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0075"},"firstname":{"$":"Farbood"},"lastname":{"$":"Haverford"},"street":{"$":"76 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0076"},"firstname":{"$":"George"},"lastname":{"$":"Haverford"},"street":{"$":"77 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0077"},"firstname":{"$":"Hank"},"lastname":{"$":"Haverford"},"street":{"$":"78 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0078"},"firstname":{"$":"Inki"},"lastname":{"$":"Haverford"},"street":{"$":"79 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0079"},"firstname":{"$":"James"},"lastname":{"$":"Haverford"},"street":{"$":"80 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0080"},"firstname":{"$":"Al"},"lastname":{"$":"Ilvedson"},"street":{"$":"81 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0081"},"firstname":{"$":"Bob"},"lastname":{"$":"Ilvedson"},"street":{"$":"82 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0082"},"firstname":{"$":"Charles"},"lastname":{"$":"Ilvedson"},"street":{"$":"83 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0083"},"firstname":{"$":"David"},"lastname":{"$":"Ilvedson"},"street":{"$":"84 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0084"},"firstname":{"$":"Egon"},"lastname":{"$":"Ilvedson"},"street":{"$":"85 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0085"},"firstname":{"$":"Farbood"},"lastname":{"$":"Ilvedson"},"street":{"$":"86 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0086"},"firstname":{"$":"George"},"lastname":{"$":"Ilvedson"},"street":{"$":"87 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0087"},"firstname":{"$":"Hank"},"lastname":{"$":"Ilvedson"},"street":{"$":"88 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0088"},"firstname":{"$":"Inki"},"lastname":{"$":"Ilvedson"},"street":{"$":"89 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0089"},"firstname":{"$":"James"},"lastname":{"$":"Ilvedson"},"street":{"$":"90 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0090"},"firstname":{"$":"Al"},"lastname":{"$":"Jones"},"street":{"$":"91 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0091"},"firstname":{"$":"Bob"},"lastname":{"$":"Jones"},"street":{"$":"92 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0092"},"firstname":{"$":"Charles"},"lastname":{"$":"Jones"},"street":{"$":"93 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0093"},"firstname":{"$":"David"},"lastname":{"$":"Jones"},"street":{"$":"94 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0094"},"firstname":{"$":"Egon"},"lastname":{"$":"Jones"},"street":{"$":"95 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0095"},"firstname":{"$":"Farbood"},"lastname":{"$":"Jones"},"street":{"$":"96 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0096"},"firstname":{"$":"George"},"lastname":{"$":"Jones"},"street":{"$":"97 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0097"},"firstname":{"$":"Hank"},"lastname":{"$":"Jones"},"street":{"$":"98 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0098"},"firstname":{"$":"Inki"},"lastname":{"$":"Jones"},"street":{"$":"99 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}},{"id":{"$":"0099"},"firstname":{"$":"James"},"lastname":{"$":"Jones"},"street":{"$":"100 Any St."},"city":{"$":"Anytown"},"state":{"$":"AL"},"zip":{"$":"22000"}}]}}
diff --git a/1.9.10/samples/json-org-sample1-nows.jsn b/1.9.10/samples/json-org-sample1-nows.jsn new file mode 100644 index 0000000..0a109b9 --- /dev/null +++ b/1.9.10/samples/json-org-sample1-nows.jsn
@@ -0,0 +1,7 @@ +{"glossary": {"title": "example glossary", +"GlossDiv": {"title": "S", +"GlossList": {"GlossEntry": {"ID": "SGML","SortAs": "SGML", +"GlossTerm":"Standard Generalized Markup Language","Acronym":"SGML","Abbrev":"ISO 8879:1986", +"GlossDef":{"para": "A meta-markup language, used to create markup languages such as DocBook.","GlossSeeAlso": ["GML", "XML"]},"GlossSee": "markup" +}}}}} +
diff --git a/1.9.10/samples/json-org-sample1.jsn b/1.9.10/samples/json-org-sample1.jsn new file mode 100644 index 0000000..dd01f7d --- /dev/null +++ b/1.9.10/samples/json-org-sample1.jsn
@@ -0,0 +1,23 @@ +{ + "glossary": { + "title": "example glossary", + "GlossDiv": { + "title": "S", + "GlossList": { + "GlossEntry": { + "ID": "SGML", + "SortAs": "SGML", + "GlossTerm": "Standard Generalized Markup Language", + "Acronym": "SGML", + "Abbrev": "ISO 8879:1986", + "GlossDef": { + "para": "A meta-markup language, used to create markup languages such as DocBook.", + "GlossSeeAlso": ["GML", "XML"] + }, + "GlossSee": "markup" + } + } + } + } +} +
diff --git a/1.9.10/samples/json-org-sample2.jsn b/1.9.10/samples/json-org-sample2.jsn new file mode 100644 index 0000000..5600991 --- /dev/null +++ b/1.9.10/samples/json-org-sample2.jsn
@@ -0,0 +1,11 @@ +{"menu": { + "id": "file", + "value": "File", + "popup": { + "menuitem": [ + {"value": "New", "onclick": "CreateNewDoc()"}, + {"value": "Open", "onclick": "OpenDoc()"}, + {"value": "Close", "onclick": "CloseDoc()"} + ] + } +}}
diff --git a/1.9.10/samples/json-org-sample3.jsn b/1.9.10/samples/json-org-sample3.jsn new file mode 100644 index 0000000..64832a6 --- /dev/null +++ b/1.9.10/samples/json-org-sample3.jsn
@@ -0,0 +1,26 @@ +{"widget": { + "debug": "on", + "window": { + "title": "Sample Konfabulator Widget", + "name": "main_window", + "width": 500, + "height": 500 + }, + "image": { + "src": "Images/Sun.png", + "name": "sun1", + "hOffset": 250, + "vOffset": 250, + "alignment": "center" + }, + "text": { + "data": "Click Here", + "size": 36, + "style": "bold", + "name": "text1", + "hOffset": 250, + "vOffset": 100, + "alignment": "center", + "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;" + } +}}
diff --git a/1.9.10/samples/json-org-sample4-nows.jsn b/1.9.10/samples/json-org-sample4-nows.jsn new file mode 100644 index 0000000..3392be9 --- /dev/null +++ b/1.9.10/samples/json-org-sample4-nows.jsn
@@ -0,0 +1,88 @@ +{"web-app":{ +"servlet":[ +{ +"servlet-name": "cofaxCDS", +"servlet-class": "org.cofax.cds.CDSServlet", +"init-param": { +"configGlossary:installationAt": "Philadelphia, PA", +"configGlossary:adminEmail": "ksm@pobox.com", +"configGlossary:poweredBy": "Cofax", +"configGlossary:poweredByIcon": "/images/cofax.gif", +"configGlossary:staticPath": "/content/static", +"templateProcessorClass": "org.cofax.WysiwygTemplate", +"templateLoaderClass": "org.cofax.FilesTemplateLoader", +"templatePath": "templates", +"templateOverridePath": "", +"defaultListTemplate": "listTemplate.htm", +"defaultFileTemplate": "articleTemplate.htm", +"useJSP": false, +"jspListTemplate": "listTemplate.jsp", +"jspFileTemplate": "articleTemplate.jsp", +"cachePackageTagsTrack": 200, +"cachePackageTagsStore": 200, +"cachePackageTagsRefresh": 60, +"cacheTemplatesTrack": 100, +"cacheTemplatesStore": 50, +"cacheTemplatesRefresh": 15, +"cachePagesTrack": 200, +"cachePagesStore": 100, +"cachePagesRefresh": 10, +"cachePagesDirtyRead": 10, +"searchEngineListTemplate": "forSearchEnginesList.htm", +"searchEngineFileTemplate": "forSearchEngines.htm", +"searchEngineRobotsDb": "WEB-INF/robots.db", +"useDataStore": true, +"dataStoreClass": "org.cofax.SqlDataStore", +"redirectionClass": "org.cofax.SqlRedirection", +"dataStoreName": "cofax", +"dataStoreDriver": "com.microsoft.jdbc.sqlserver.SQLServerDriver", +"dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon", +"dataStoreUser": "sa", +"dataStorePassword": "dataStoreTestQuery", +"dataStoreTestQuery": "SET NOCOUNT ON;select test='test';", +"dataStoreLogFile": "/usr/local/tomcat/logs/datastore.log", +"dataStoreInitConns": 10, +"dataStoreMaxConns": 100, +"dataStoreConnUsageLimit": 100, +"dataStoreLogLevel": "debug", +"maxUrlLength": 500}}, +{ +"servlet-name": "cofaxEmail", +"servlet-class": "org.cofax.cds.EmailServlet", +"init-param": { +"mailHost": "mail1", +"mailHostOverride": "mail2"}}, +{ +"servlet-name": "cofaxAdmin", +"servlet-class": "org.cofax.cds.AdminServlet"}, + +{ +"servlet-name": "fileServlet", +"servlet-class": "org.cofax.cds.FileServlet"}, +{ +"servlet-name": "cofaxTools", +"servlet-class": "org.cofax.cms.CofaxToolsServlet", +"init-param": { +"templatePath": "toolstemplates/", +"log": 1, +"logLocation": "/usr/local/tomcat/logs/CofaxTools.log", +"logMaxSize": "", +"dataLog": 1, +"dataLogLocation": "/usr/local/tomcat/logs/dataLog.log", +"dataLogMaxSize": "", +"removePageCache": "/content/admin/remove?cache=pages&id=", +"removeTemplateCache": "/content/admin/remove?cache=templates&id=", +"fileTransferFolder": "/usr/local/tomcat/webapps/content/fileTransferFolder", +"lookInContext": 1, +"adminGroupID": 4, +"betaServer": true}}], +"servlet-mapping": { +"cofaxCDS": "/", +"cofaxEmail": "/cofaxutil/aemail/*", +"cofaxAdmin": "/admin/*", +"fileServlet": "/static/*", +"cofaxTools": "/tools/*"}, +"taglib": { +"taglib-uri": "cofax.tld", +"taglib-location": "/WEB-INF/tlds/cofax.tld"} +}}
diff --git a/1.9.10/samples/json-org-sample4.jsn b/1.9.10/samples/json-org-sample4.jsn new file mode 100644 index 0000000..d5a8b35 --- /dev/null +++ b/1.9.10/samples/json-org-sample4.jsn
@@ -0,0 +1,89 @@ +{"web-app": { + "servlet": [ + { + "servlet-name": "cofaxCDS", + "servlet-class": "org.cofax.cds.CDSServlet", + "init-param": { + "configGlossary:installationAt": "Philadelphia, PA", + "configGlossary:adminEmail": "ksm@pobox.com", + "configGlossary:poweredBy": "Cofax", + "configGlossary:poweredByIcon": "/images/cofax.gif", + "configGlossary:staticPath": "/content/static", + "templateProcessorClass": "org.cofax.WysiwygTemplate", + "templateLoaderClass": "org.cofax.FilesTemplateLoader", + "templatePath": "templates", + "templateOverridePath": "", + "defaultListTemplate": "listTemplate.htm", + "defaultFileTemplate": "articleTemplate.htm", + "useJSP": false, + "jspListTemplate": "listTemplate.jsp", + "jspFileTemplate": "articleTemplate.jsp", + "cachePackageTagsTrack": 200, + "cachePackageTagsStore": 200, + "cachePackageTagsRefresh": 60, + "cacheTemplatesTrack": 100, + "cacheTemplatesStore": 50, + "cacheTemplatesRefresh": 15, + "cachePagesTrack": 200, + "cachePagesStore": 100, + "cachePagesRefresh": 10, + "cachePagesDirtyRead": 10, + "searchEngineListTemplate": "forSearchEnginesList.htm", + "searchEngineFileTemplate": "forSearchEngines.htm", + "searchEngineRobotsDb": "WEB-INF/robots.db", + "useDataStore": true, + "dataStoreClass": "org.cofax.SqlDataStore", + "redirectionClass": "org.cofax.SqlRedirection", + "dataStoreName": "cofax", + "dataStoreDriver": "com.microsoft.jdbc.sqlserver.SQLServerDriver", + "dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon", + "dataStoreUser": "sa", + "dataStorePassword": "dataStoreTestQuery", + "dataStoreTestQuery": "SET NOCOUNT ON;select test='test';", + "dataStoreLogFile": "/usr/local/tomcat/logs/datastore.log", + "dataStoreInitConns": 10, + "dataStoreMaxConns": 100, + "dataStoreConnUsageLimit": 100, + "dataStoreLogLevel": "debug", + "maxUrlLength": 500}}, + { + "servlet-name": "cofaxEmail", + "servlet-class": "org.cofax.cds.EmailServlet", + "init-param": { + "mailHost": "mail1", + "mailHostOverride": "mail2"}}, + { + "servlet-name": "cofaxAdmin", + "servlet-class": "org.cofax.cds.AdminServlet"}, + + { + "servlet-name": "fileServlet", + "servlet-class": "org.cofax.cds.FileServlet"}, + { + "servlet-name": "cofaxTools", + "servlet-class": "org.cofax.cms.CofaxToolsServlet", + "init-param": { + "templatePath": "toolstemplates/", + "log": 1, + "logLocation": "/usr/local/tomcat/logs/CofaxTools.log", + "logMaxSize": "", + "dataLog": 1, + "dataLogLocation": "/usr/local/tomcat/logs/dataLog.log", + "dataLogMaxSize": "", + "removePageCache": "/content/admin/remove?cache=pages&id=", + "removeTemplateCache": "/content/admin/remove?cache=templates&id=", + "fileTransferFolder": "/usr/local/tomcat/webapps/content/fileTransferFolder", + "lookInContext": 1, + "adminGroupID": 4, + "betaServer": true}}], + "servlet-mapping": { + "cofaxCDS": "/", + "cofaxEmail": "/cofaxutil/aemail/*", + "cofaxAdmin": "/admin/*", + "fileServlet": "/static/*", + "cofaxTools": "/tools/*"}, + + "taglib": { + "taglib-uri": "cofax.tld", + "taglib-location": "/WEB-INF/tlds/cofax.tld"} +}}
diff --git a/1.9.10/samples/json-org-sample5-nows.jsn b/1.9.10/samples/json-org-sample5-nows.jsn new file mode 100644 index 0000000..a235a86 --- /dev/null +++ b/1.9.10/samples/json-org-sample5-nows.jsn
@@ -0,0 +1,27 @@ +{"menu": { +"header": "SVG Viewer", +"items": [ +{"id": "Open"}, +{"id": "OpenNew", "label": "Open New"}, +null, +{"id": "ZoomIn", "label": "Zoom In"}, +{"id": "ZoomOut", "label": "Zoom Out"}, +{"id": "OriginalView", "label": "Original View"}, +null, +{"id": "Quality"}, +{"id": "Pause"}, +{"id": "Mute"}, +null, +{"id": "Find", "label": "Find..."}, +{"id": "FindAgain", "label": "Find Again"}, +{"id": "Copy"}, +{"id": "CopyAgain", "label": "Copy Again"}, +{"id": "CopySVG", "label": "Copy SVG"}, +{"id": "ViewSVG", "label": "View SVG"}, +{"id": "ViewSource", "label": "View Source"}, +{"id": "SaveAs", "label": "Save As"}, +null, +{"id": "Help"}, +{"id": "About", "label": "About Adobe CVG Viewer..."} +] +}}
diff --git a/1.9.10/samples/json-org-sample5.jsn b/1.9.10/samples/json-org-sample5.jsn new file mode 100644 index 0000000..49980ca --- /dev/null +++ b/1.9.10/samples/json-org-sample5.jsn
@@ -0,0 +1,27 @@ +{"menu": { + "header": "SVG Viewer", + "items": [ + {"id": "Open"}, + {"id": "OpenNew", "label": "Open New"}, + null, + {"id": "ZoomIn", "label": "Zoom In"}, + {"id": "ZoomOut", "label": "Zoom Out"}, + {"id": "OriginalView", "label": "Original View"}, + null, + {"id": "Quality"}, + {"id": "Pause"}, + {"id": "Mute"}, + null, + {"id": "Find", "label": "Find..."}, + {"id": "FindAgain", "label": "Find Again"}, + {"id": "Copy"}, + {"id": "CopyAgain", "label": "Copy Again"}, + {"id": "CopySVG", "label": "Copy SVG"}, + {"id": "ViewSVG", "label": "View SVG"}, + {"id": "ViewSource", "label": "View Source"}, + {"id": "SaveAs", "label": "Save As"}, + null, + {"id": "Help"}, + {"id": "About", "label": "About Adobe CVG Viewer..."} + ] +}}
diff --git a/1.9.10/samples/jvm-ser1.json b/1.9.10/samples/jvm-ser1.json new file mode 100644 index 0000000..d97d4c0 --- /dev/null +++ b/1.9.10/samples/jvm-ser1.json
@@ -0,0 +1 @@ +{"content":{"size":256000000,"format":"mpeg","player":"FLASH","uri":"http://www.cowtowncoder.com","title":"CowTown Blog Rulez Ok","width":640,"height":480,"duration":360000,"bitrate":320,"persons":["Cowtowncoder","Billy-bob"],"copyright":"GPL"},"images":[{"size":"SMALL","uri":"http://images.r.us/foobar.jpeg","title":"Fabulous FUBAR incident","width":320,"height":256},{"size":"LARGE","uri":"http://images.r.us/total-cluster.jpeg","title":"More of the same -- add keywords for SEO","width":640,"height":480},{"size":"SMALL","uri":"http://images.r.us/barf.png","title":"One more angle, gotta see this","width":320,"height":256}]} \ No newline at end of file
diff --git a/1.9.10/samples/map-spain.xml.jsn b/1.9.10/samples/map-spain.xml.jsn new file mode 100644 index 0000000..faa1281 --- /dev/null +++ b/1.9.10/samples/map-spain.xml.jsn
@@ -0,0 +1 @@ +{"svg":{"svg":{"defs":{"font":[{"font-face":{"@id":"Symbol","@font-variant":"normal","@font-weight":"400","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"missing-glyph":{"@horiz-adv-x":"500","@d":"M63 0V800H438V0H63ZM125 63H375V738H125V63Z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"glyph":{"path":{"@d":"M51 3688l0 5 -40 20 40 19 0 5 -48 -23 0 -3 48 -23zm-48 55l48 0 0 5 -48 0 0 -5z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"163","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@id":"FontID5","@horiz-adv-x":"1000","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"font-face":{"@id":"Humnst777_Lt_BT","@font-variant":"normal","@font-style":"italic","@font-weight":"400","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"missing-glyph":{"@horiz-adv-x":"500","@d":"M63 0V800H438V0H63ZM125 63H375V738H125V63Z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"glyph":[{"path":{"@d":"M5 3698l41 0 -2 9 -41 0 2 -9z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"45","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M15 3632l54 0 0 10 -43 -1 0 42 41 0 0 10 -41 0 0 55 -11 0 0 -116z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"70","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M15 3632l17 0 39 95c0,2 1,3 1,5 1,2 1,4 1,6 1,-2 1,-4 1,-5 1,-2 1,-3 2,-5l41 -96 16 0 0 116 -10 0 0 -98c0,0 -1,0 -1,-1 0,-1 0,-1 0,-2 0,-1 0,-2 1,-3 0,-1 0,-2 0,-4 -1,3 -2,6 -3,8 0,1 0,1 0,1l-42 99 -10 0 -41 -99c0,-1 -1,-3 -2,-6 0,-1 0,-2 0,-3 0,2 0,4 0,7 0,2 0,3 0,3l0 98 -10 0 0 -116z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"77","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M101 3677c0,-12 -3,-21 -9,-28 -6,-6 -14,-10 -24,-10 -6,0 -12,2 -18,5 -6,2 -11,7 -15,12 -5,6 -9,13 -11,21 -3,8 -5,17 -5,25 0,12 3,21 9,28 6,7 14,10 24,10 7,0 13,-1 19,-4 6,-3 11,-8 16,-15 4,-5 8,-12 10,-20 3,-8 4,-16 4,-24zm-32 -47c13,0 24,4 32,13 8,8 11,19 11,33 0,8 -1,16 -3,24 -2,8 -5,15 -9,21 -6,9 -13,17 -21,22 -8,5 -17,7 -27,7 -14,0 -24,-4 -32,-13 -8,-9 -12,-20 -12,-35 0,-10 2,-20 5,-30 4,-10 10,-18 16,-25 5,-5 11,-9 18,-12 7,-3 14,-5 22,-5z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"79","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M68 3642l-39 65 50 0 -11 -65zm-4 -10l12 0 23 116 -11 0 -7 -31 -58 0 -19 31 -12 0 72 -116z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"65","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M26 3642l0 47 12 0c9,0 16,-2 21,-7 6,-4 8,-10 8,-17 0,-7 -2,-13 -7,-17 -5,-4 -11,-6 -19,-6l-15 0zm-11 -10l25 0c12,0 22,3 29,9 6,5 10,13 10,24 0,10 -4,19 -11,25 -7,5 -17,8 -30,8l-12 0 0 50 -11 0 0 -116z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"80","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M44 3672c-8,0 -13,3 -18,9 -4,6 -6,14 -6,24 0,11 2,19 6,25 5,6 11,9 18,9 8,0 14,-3 18,-9 5,-6 7,-14 7,-24 0,-11 -2,-19 -7,-25 -4,-6 -10,-9 -18,-9zm26 9l0 -16 10 0 0 74c0,15 -3,27 -10,34 -6,8 -15,12 -28,12 -4,0 -9,-1 -14,-2 -4,0 -8,-2 -12,-3l1 -11c4,2 8,4 12,5 4,1 9,1 13,1 9,0 16,-3 21,-9 5,-6 7,-14 7,-25l0 -11c-3,6 -7,11 -12,14 -4,3 -10,4 -16,4 -10,0 -18,-4 -24,-11 -6,-8 -9,-18 -9,-31 0,-13 3,-24 9,-31 6,-8 14,-12 25,-12 6,0 11,2 16,5 5,3 9,7 11,13z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"103","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M15 3624l10 0 0 73 37 -32 13 0 -40 35 45 48 -14 0 -41 -44 0 44 -10 0 0 -124z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"107","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M46 3672c-8,0 -14,3 -19,9 -5,7 -8,15 -8,25 0,11 3,19 8,25 5,7 11,10 19,10 9,0 15,-3 20,-10 5,-6 8,-14 8,-25 0,-10 -3,-18 -8,-25 -4,-6 -11,-9 -20,-9zm0 -9c12,0 22,4 29,12 6,8 10,18 10,31 0,14 -4,24 -10,32 -7,8 -17,12 -29,12 -11,0 -21,-4 -28,-12 -7,-8 -10,-18 -10,-31 0,-14 3,-24 10,-32 7,-8 17,-12 28,-12z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"111","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M67 3698c0,-8 -2,-14 -6,-18 -4,-5 -9,-8 -16,-8 -3,1 -6,1 -9,2 -3,2 -6,4 -8,6 -4,4 -7,10 -10,16 -2,7 -4,14 -4,21 0,7 2,13 6,18 4,4 9,6 15,6 5,0 9,-1 13,-4 4,-3 8,-7 11,-12 3,-3 4,-8 6,-12 1,-5 2,-10 2,-15zm17 -74l10 0 -26 124 -9 0 2 -14c-4,5 -8,9 -13,12 -5,3 -10,4 -15,4 -9,0 -17,-3 -22,-9 -5,-6 -8,-14 -8,-25 0,-5 1,-11 3,-17 1,-6 4,-11 7,-16 4,-7 8,-11 14,-15 5,-3 11,-5 17,-5 7,0 13,2 18,5 4,3 8,8 10,14l12 -58z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"100","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M77 3702l0 6 -59 0c0,11 3,19 8,25 6,5 13,8 22,8 4,0 8,-1 11,-2 4,-1 8,-2 11,-4l0 10c-3,2 -7,3 -11,4 -4,1 -8,1 -12,1 -12,0 -22,-4 -29,-12 -7,-7 -10,-18 -10,-32 0,-13 3,-23 10,-31 7,-8 16,-12 27,-12 9,0 17,4 23,11 6,7 9,16 9,28zm-10 -1c-1,-10 -3,-17 -7,-22 -4,-5 -10,-7 -17,-7 -6,0 -12,2 -17,8 -4,5 -7,12 -8,21l49 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"101","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M15 3624l10 0 0 55c3,-5 7,-9 11,-12 5,-2 10,-4 17,-4 9,0 15,3 20,9 5,6 7,14 7,25l0 51 -10 0 0 -48c0,-10 -2,-16 -5,-21 -3,-4 -8,-6 -15,-6 -8,0 -14,2 -18,8 -5,6 -7,14 -7,24l0 43 -10 0 0 -124z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"104","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M69 3668l-1 10c-2,-1 -5,-3 -8,-3 -3,-1 -7,-1 -10,-1 -9,0 -17,3 -22,9 -6,6 -9,14 -9,23 0,11 3,19 8,24 6,6 13,9 22,9 3,0 6,0 9,-1 4,-1 7,-2 11,-3l1 10c-4,1 -7,2 -11,3 -3,1 -7,1 -11,1 -12,0 -22,-4 -29,-12 -7,-7 -11,-18 -11,-31 0,-12 4,-22 12,-30 7,-8 18,-12 30,-12 4,0 7,1 10,1 3,1 6,1 9,3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"99","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M14 3665l10 0 0 83 -10 0 0 -83zm-1 -39l12 0 0 14 -12 0 0 -14z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"105","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M80 3697l0 51 -10 0 0 -48c0,-10 -2,-16 -5,-21 -3,-4 -8,-6 -15,-6 -8,0 -14,2 -18,8 -5,6 -7,14 -7,24l0 43 -10 0 0 -83 9 0 0 16c3,-6 7,-11 12,-13 5,-3 10,-5 17,-5 9,0 15,3 20,9 5,6 7,14 7,25z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"110","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M48 3706c-10,0 -17,1 -22,5 -6,3 -8,8 -8,14 0,4 1,8 4,11 3,3 8,5 13,5 7,0 13,-3 18,-8 5,-5 7,-11 7,-20l0 -7 -12 0zm22 -11l0 53 -9 0 0 -14c-3,5 -7,9 -12,11 -4,3 -10,4 -16,4 -8,0 -14,-2 -19,-6 -5,-5 -7,-10 -7,-18 0,-9 4,-15 11,-20 7,-5 18,-8 31,-8l11 0c0,0 0,0 0,-1 0,-1 0,-1 0,-1 0,-7 -2,-13 -5,-17 -4,-4 -8,-6 -14,-6 -5,0 -9,1 -13,2 -4,1 -7,3 -11,5l0 -10c4,-2 8,-3 12,-4 4,-1 9,-2 13,-2 9,0 16,3 21,8 5,5 7,13 7,24z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"97","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M14 3624l10 0 0 124 -10 0 0 -124z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"108","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M13 3665l10 0 0 48c0,9 2,16 5,20 3,5 8,7 15,7 8,0 14,-3 18,-9 5,-6 7,-15 7,-27l0 -39 10 0 0 83 -9 0 0 -16c-4,5 -7,10 -12,13 -5,3 -10,4 -17,4 -9,0 -16,-3 -20,-9 -5,-5 -7,-14 -7,-25l0 -50z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"117","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M14 3665l61 0 -2 9 -64 66 51 0 -2 8 -64 0 2 -10 65 -65 -48 0 1 -8z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"122","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M53 3664l0 11c-1,0 -2,0 -3,-1 -1,0 -2,0 -3,0 -7,0 -12,3 -16,8 -4,5 -6,13 -6,22l0 44 -10 0 0 -83 9 0 0 18c2,-6 5,-11 10,-14 4,-3 9,-5 14,-5 1,0 2,0 2,0 1,0 2,0 3,0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"114","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M61 3667l-3 10c-3,-2 -6,-3 -9,-4 -3,-1 -6,-1 -10,-1 -5,0 -10,1 -13,3 -4,2 -6,5 -6,9 0,4 5,9 14,15 3,2 5,4 6,5 5,3 8,6 10,10 2,3 3,7 3,11 0,8 -3,14 -9,18 -6,5 -14,7 -25,7 -4,0 -8,0 -12,-1 -4,-1 -8,-2 -12,-4l4 -10c3,2 7,3 10,4 4,1 8,2 12,2 6,0 11,-2 15,-4 4,-3 5,-7 5,-12 0,-3 0,-5 -2,-8 -2,-2 -5,-5 -11,-9 -1,-1 -1,-1 -1,-1 -12,-8 -17,-15 -17,-21 0,-7 3,-13 8,-17 5,-4 13,-6 22,-6 4,0 7,0 10,1 4,1 7,2 11,3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"115","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M32 3640l-1 25 20 0 0 9 -20 0 0 48c0,7 1,11 3,14 2,3 5,4 9,4 2,0 3,0 5,0 1,-1 2,-1 4,-2l0 10c-2,0 -4,1 -5,1 -2,0 -4,0 -6,0 -7,0 -12,-2 -15,-6 -3,-3 -5,-10 -5,-19l0 -50 -17 0 0 -9 17 0 0 -21 11 -4z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"116","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M58 3705c-1,0 -2,0 -3,0 -1,0 -3,0 -6,0 -13,0 -23,2 -29,5 -6,3 -9,9 -9,16 0,4 2,8 5,10 3,3 6,5 11,5 9,0 16,-4 21,-10 5,-6 9,-15 10,-26zm11 -5l-5 26c-1,7 -2,12 -3,14 0,3 -1,6 -1,8l-9 0 2 -13c-4,5 -8,8 -13,11 -4,2 -9,3 -15,3 -7,0 -13,-2 -18,-6 -5,-4 -7,-10 -7,-17 0,-9 4,-17 12,-22 8,-5 19,-8 33,-8 2,0 4,0 6,1 2,0 5,0 8,0 1,-2 1,-4 1,-5 0,-1 0,-2 0,-3 0,-5 -1,-10 -4,-13 -3,-3 -8,-4 -14,-4 -3,0 -6,0 -10,1 -5,1 -9,3 -15,5l1 -11c6,-1 10,-3 14,-3 4,-1 8,-1 11,-1 9,0 15,2 20,6 5,5 7,11 7,19 0,1 0,3 0,5 0,2 -1,4 -1,7zm-13 -66l12 0 -3 14 -12 0 3 -14zm-26 0l11 0 -2 14 -12 0 3 -14z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"228","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@id":"FontID1","@horiz-adv-x":"1000","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"font-face":{"@id":"Humnst777_BT","@font-variant":"normal","@font-style":"italic","@font-weight":"400,700","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"missing-glyph":{"@horiz-adv-x":"500","@d":"M63 0V800H438V0H63ZM125 63H375V738H125V63Z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"glyph":[{"path":{"@d":"M56 3723c-2,0 -4,1 -5,3 -1,1 -2,4 -2,7 0,4 1,6 2,8 1,2 3,3 5,3 2,0 4,-1 5,-3 2,-2 2,-4 2,-8 0,-3 0,-6 -2,-7 -1,-2 -3,-3 -5,-3zm0 -5c4,0 8,1 10,4 2,3 4,7 4,11 0,5 -2,9 -4,12 -2,3 -6,4 -10,4 -4,0 -7,-1 -10,-4 -2,-3 -3,-7 -3,-12 0,-4 1,-8 3,-11 3,-3 6,-4 10,-4zm-39 -24c-2,0 -4,1 -5,3 -2,2 -2,4 -2,8 0,3 0,6 2,7 1,2 3,3 5,3 2,0 3,-1 5,-3 1,-1 1,-4 1,-7 0,-4 0,-6 -1,-8 -2,-2 -3,-3 -5,-3zm32 -5l6 0 -31 60 -6 0 31 -60zm-32 0c4,0 7,1 9,4 3,3 4,7 4,12 0,4 -1,8 -4,11 -2,3 -5,4 -9,4 -4,0 -8,-1 -10,-4 -3,-3 -4,-6 -4,-11 0,-5 1,-9 4,-12 2,-3 6,-4 10,-4z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"37","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M16 3699l5 0 -20 55 -5 0 20 -55z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"47","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M4 3722l21 0 0 6 -21 0 0 -6z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"45","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M2 3685l6 0c5,7 8,13 10,19 2,6 3,12 3,18 0,6 -1,12 -3,18 -2,6 -5,13 -10,19l-6 0c4,-7 7,-13 9,-19 2,-6 3,-12 3,-18 0,-6 -1,-12 -3,-18 -2,-6 -5,-12 -9,-19z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"41","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M19 3685l6 0c-4,7 -7,13 -9,19 -2,6 -3,12 -3,18 0,6 1,12 3,18 2,6 5,12 9,19l-6 0c-5,-6 -8,-13 -10,-19 -2,-6 -3,-12 -3,-18 0,-6 1,-12 3,-18 2,-6 5,-13 10,-19z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"40","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M9 3739l9 0 -7 19 -7 0 5 -19z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"44","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M8 3739l8 0 0 9 -8 0 0 -9z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"46","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M8 3690l32 0 0 6 -24 0 -1 16c2,0 3,0 4,0 2,0 3,-1 4,-1 6,0 11,2 14,5 4,3 5,8 5,13 0,6 -2,11 -6,14 -4,4 -9,6 -16,6 -3,0 -5,-1 -7,-1 -2,0 -4,-1 -6,-2l0 -7c2,1 4,2 6,2 2,1 4,1 7,1 4,0 8,-1 10,-3 3,-3 4,-6 4,-10 0,-3 -1,-6 -4,-8 -2,-2 -5,-3 -10,-3 -1,0 -3,0 -5,0 -2,0 -5,1 -7,2l0 -30z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"53","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M5 3690l36 0 0 7 -22 51 -9 0 23 -51 -28 0 0 -7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"55","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M35 3708c0,-4 -1,-7 -3,-9 -2,-3 -5,-4 -8,-4 -3,0 -6,2 -8,4 -2,2 -3,6 -3,9 0,4 1,7 3,9 2,2 4,3 8,3 3,0 6,-1 8,-3 2,-2 3,-6 3,-9zm-28 39l1 -7c1,1 3,1 4,2 2,0 4,0 6,0 6,0 10,-2 13,-6 3,-3 5,-9 5,-17 -1,3 -3,5 -6,6 -2,1 -5,2 -8,2 -5,0 -9,-2 -12,-5 -4,-4 -5,-8 -5,-13 0,-6 2,-11 5,-14 4,-4 8,-6 14,-6 6,0 11,2 14,7 4,5 6,12 6,20 0,11 -3,19 -7,24 -4,6 -10,9 -18,9 -2,0 -4,0 -6,-1 -2,0 -4,-1 -6,-1z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"57","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M8 3739l8 0 0 9 -8 0 0 -9zm0 -33l8 0 0 9 -8 0 0 -9z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"58","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M28 3718c4,0 7,2 10,4 2,3 3,6 3,9 0,5 -2,10 -6,13 -4,3 -10,4 -17,4 -2,0 -5,0 -7,0 -3,0 -5,-1 -7,-2l1 -7c2,1 4,2 6,2 2,1 4,1 6,1 5,0 8,-1 11,-3 3,-2 4,-5 4,-8 0,-3 -1,-6 -3,-7 -2,-2 -6,-3 -10,-3l-6 0 0 -6 6 0c4,0 7,-1 10,-3 2,-2 3,-4 3,-7 0,-2 -1,-5 -3,-6 -3,-2 -6,-3 -9,-3 -2,0 -4,0 -6,1 -3,0 -5,1 -7,2l0 -7c2,-1 5,-1 7,-2 3,0 5,0 7,0 6,0 11,1 14,4 4,3 5,6 5,11 0,3 -1,6 -3,8 -2,2 -5,4 -9,5z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"51","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M12 3743l22 0 0 5 -30 0 0 -6c9,-8 15,-15 18,-19 3,-4 4,-8 4,-11 0,-2 -1,-4 -2,-5 -2,-1 -4,-2 -7,-2 -2,0 -3,0 -5,1 -2,0 -4,1 -6,2l0 -6c2,-1 4,-2 6,-2 3,-1 5,-1 7,-1 4,0 7,1 10,4 3,2 4,5 4,9 0,4 -2,8 -5,12 -3,5 -8,11 -16,19z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"50","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M30 3697l-21 32 21 0 0 -32zm-2 -7l9 0 0 39 9 0 0 6 -9 0 0 13 -7 0 0 -13 -28 0 0 -7 26 -38z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"52","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M25 3718c-3,0 -6,1 -8,3 -2,3 -3,6 -3,9 0,4 1,7 3,9 2,3 5,4 8,4 3,0 6,-1 8,-4 2,-2 3,-5 3,-9 0,-4 -1,-7 -3,-9 -2,-2 -5,-3 -8,-3zm17 -27l-1 7c-1,-1 -3,-1 -4,-2 -2,0 -4,0 -6,0 -6,0 -10,2 -13,6 -3,4 -5,9 -5,17 1,-3 3,-4 6,-6 2,-1 5,-2 8,-2 5,0 9,2 12,5 4,4 5,8 5,13 0,6 -2,11 -5,14 -4,4 -8,6 -14,6 -6,0 -11,-2 -15,-7 -3,-5 -5,-11 -5,-20 0,-11 2,-18 7,-24 4,-6 10,-9 18,-9 2,0 4,1 6,1 2,0 4,1 6,1z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"54","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M24 3715c4,-1 6,-3 8,-5 1,-2 2,-4 2,-7 0,-2 -1,-4 -2,-6 -2,-1 -5,-2 -7,-2 -4,0 -6,1 -8,2 -2,2 -3,4 -3,7 0,2 1,4 2,6 2,2 5,4 8,5zm-1 6c-4,1 -6,3 -8,5 -2,2 -3,4 -3,6 0,3 1,6 3,8 3,2 5,3 9,3 3,0 6,-1 8,-3 2,-2 4,-4 4,-7 0,-3 -1,-5 -3,-7 -2,-2 -6,-4 -10,-5zm8 -3c4,1 7,3 10,6 2,2 3,5 3,9 0,5 -2,9 -6,12 -3,3 -8,4 -14,4 -6,0 -11,-2 -15,-5 -3,-3 -5,-6 -5,-11 0,-4 1,-7 3,-9 3,-3 6,-5 10,-6 -3,-2 -6,-4 -8,-6 -2,-3 -3,-6 -3,-9 0,-4 2,-7 5,-10 4,-3 8,-4 14,-4 5,0 9,1 12,4 3,2 5,6 5,10 0,3 -1,6 -3,8 -2,3 -5,5 -8,7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"56","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M24 3695c-4,0 -7,2 -9,6 -2,4 -3,10 -3,18 0,8 1,14 3,18 2,4 5,6 9,6 4,0 7,-2 8,-6 2,-4 3,-10 3,-18 0,-8 -1,-14 -2,-18 -2,-4 -5,-6 -9,-6zm0 -6c6,0 11,3 15,8 3,5 5,12 5,22 0,10 -2,17 -5,22 -4,6 -9,8 -15,8 -6,0 -11,-2 -15,-8 -3,-5 -5,-12 -5,-22 0,-10 2,-17 5,-22 4,-5 9,-8 15,-8z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"48","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M23 3690l7 0 0 58 -8 0 0 -49 -9 8 -4 -5 14 -12z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"49","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M7 3690l8 0 0 25 27 0 0 -25 8 0 0 58 -8 0 0 -27 -27 0 0 27 -8 0 0 -58z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"72","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M6 3700l8 0 21 37c1,1 1,2 1,3 1,1 1,2 2,4 -1,-2 -1,-4 -1,-5 0,-1 0,-3 0,-4l0 -35 6 0 0 48 -8 0 -22 -38c0,0 0,-1 -1,-2 0,-1 0,-3 -1,-4 1,2 1,4 1,6 0,1 0,2 0,3l0 35 -6 0 0 -48z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"78","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M13 3705l0 37 5 0c6,0 11,-1 14,-5 4,-3 5,-7 5,-13 0,-6 -1,-11 -5,-14 -3,-3 -7,-5 -14,-5l-5 0zm-7 -5l11 0c9,0 16,2 21,6 4,4 6,10 6,18 0,8 -2,14 -7,18 -4,4 -11,6 -20,6l-11 0 0 -48z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"68","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M10 3671l41 0 0 8 -31 0 0 25 30 0 0 8 -30 0 0 27 32 0 0 9 -42 0 0 -77z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"69","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M28 3697l-11 30 22 0 -11 -30zm-5 -7l10 0 23 58 -9 0 -5 -15 -28 0 -5 15 -9 0 23 -58z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"65","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M41 3702l-1 5c-2,0 -3,-1 -5,-1 -2,-1 -4,-1 -6,-1 -5,0 -10,2 -13,5 -4,4 -5,8 -5,14 0,6 1,10 5,14 3,3 8,5 14,5 1,0 3,-1 5,-1 2,0 3,-1 5,-2l0 6c-1,1 -3,1 -5,2 -2,0 -4,0 -6,0 -8,0 -14,-2 -19,-6 -4,-5 -7,-10 -7,-18 0,-7 3,-13 7,-18 5,-4 11,-6 19,-6 2,0 4,0 6,0 2,0 4,1 6,2z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"67","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M6 3700l7 0 0 48 -7 0 0 -48z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"73","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M29 3705l0 29 11 0c6,0 11,-1 15,-4 3,-2 5,-6 5,-11 0,-4 -2,-8 -5,-10 -3,-3 -8,-4 -14,-4l-12 0zm0 -40l0 27 9 0c7,0 11,-1 15,-4 3,-2 5,-5 5,-9 0,-5 -2,-8 -5,-10 -3,-3 -8,-4 -13,-4l-11 0zm-18 -13l32 0c11,0 19,2 25,6 6,4 9,10 9,19 0,5 -2,9 -5,13 -3,4 -8,6 -13,8 6,1 11,4 15,8 3,4 5,9 5,15 0,9 -3,16 -9,20 -7,5 -16,7 -28,7l-31 0 0 -96z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"66","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M7 3690l8 0 0 51 23 0 0 7 -31 0 0 -58z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"76","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M6 3700l7 0 0 21 20 -21 8 0 -22 22 24 26 -9 0 -21 -24 0 24 -7 0 0 -48z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"75","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M7 3690l12 0 18 45c0,1 0,2 0,3 1,2 1,3 1,4 0,-1 0,-3 1,-4 0,-2 0,-2 0,-3l18 -45 12 0 0 58 -8 0 0 -45c0,-2 0,-3 0,-5 1,-1 1,-3 1,-4 0,1 -1,3 -1,4 -1,1 -1,2 -1,4l-19 46 -7 0 -18 -47c-1,-1 -1,-2 -1,-3 0,-1 -1,-3 -1,-4 0,2 0,4 0,6 0,1 0,2 0,3l0 45 -7 0 0 -58z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"77","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M51 3693l-1 7c-2,-2 -4,-2 -7,-3 -2,0 -5,-1 -7,-1 -7,0 -13,2 -17,7 -4,4 -6,9 -6,16 0,7 2,13 6,17 4,4 10,6 17,6 2,0 3,0 5,-1 1,0 3,0 4,-1l0 -17 -12 0 0 -7 20 0 0 29c-3,1 -5,2 -8,2 -3,1 -6,1 -10,1 -9,0 -17,-2 -22,-8 -6,-5 -9,-12 -9,-21 0,-9 3,-16 9,-21 5,-5 13,-8 22,-8 3,0 6,0 9,1 2,0 5,1 7,2z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"71","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M42 3747l12 12 -9 0 -11 -10c-1,0 -1,0 -2,0 0,0 -1,0 -1,0 -8,0 -15,-3 -20,-8 -4,-5 -7,-13 -7,-22 0,-9 3,-17 7,-22 5,-5 11,-8 20,-8 8,0 14,3 19,8 4,5 7,13 7,22 0,7 -2,13 -4,17 -3,5 -6,8 -11,11zm-11 -51c-6,0 -10,2 -13,6 -4,4 -5,10 -5,17 0,7 1,13 5,17 3,4 7,6 13,6 5,0 9,-2 12,-6 4,-4 5,-10 5,-17 0,-7 -1,-13 -5,-17 -3,-4 -7,-6 -12,-6z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"81","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M1 3700l7 0 9 38c0,1 1,1 1,2 0,1 0,3 0,4 0,-1 0,-2 0,-3 1,-1 1,-2 1,-2l10 -39 9 0 9 39c1,0 1,1 1,2 0,1 0,2 0,3 0,-1 0,-2 1,-3 0,-1 0,-2 0,-2l10 -39 6 0 -13 48 -8 0 -10 -39c-1,-1 -1,-2 -1,-3 0,-1 0,-2 0,-3 0,2 0,4 -1,4 0,1 0,2 0,2l-10 39 -8 0 -13 -48z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"87","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M6 3700l6 0 0 28c0,5 1,9 3,12 2,2 5,3 9,3 4,0 6,-1 8,-4 2,-2 3,-6 3,-11l0 -28 7 0 0 28c0,7 -2,12 -5,16 -3,3 -7,5 -14,5 -5,0 -10,-2 -13,-5 -3,-4 -4,-9 -4,-16l0 -28z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"85","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M13 3705l0 16 5 0c3,0 6,0 8,-2 2,-1 3,-3 3,-6 0,-3 -1,-5 -3,-6 -2,-1 -5,-2 -8,-2l-5 0zm-7 -5l13 0c5,0 10,1 12,3 3,2 5,5 5,9 0,3 -1,6 -3,8 -2,2 -5,3 -8,4 1,0 3,1 4,2 0,1 1,2 2,5l8 17 -8 0 -6 -16c-1,-2 -2,-3 -3,-4 -1,-1 -3,-1 -5,-1l-4 0 0 21 -7 0 0 -48z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"82","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M1 3690l40 0 0 7 -16 0 0 51 -8 0 0 -51 -16 0 0 -7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"84","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M15 3696l0 22 6 0c4,0 7,-1 9,-3 3,-2 4,-4 4,-8 0,-3 -1,-6 -3,-8 -2,-2 -5,-3 -9,-3l-7 0zm-8 -6l15 0c6,0 12,2 15,4 4,3 5,8 5,13 0,6 -2,10 -5,13 -4,3 -9,4 -16,4l-6 0 0 24 -8 0 0 -58z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"80","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M37 3692l-1 7c-2,-1 -3,-2 -5,-2 -2,-1 -4,-1 -6,-1 -4,0 -6,1 -8,2 -2,1 -3,3 -3,5 0,2 0,4 2,5 1,2 4,4 8,6 6,3 10,6 12,9 2,2 3,5 3,9 0,5 -2,9 -5,12 -4,3 -8,4 -14,4 -3,0 -5,0 -8,0 -2,-1 -5,-1 -7,-2l1 -8c2,1 5,2 7,3 2,0 4,1 6,1 4,0 7,-1 9,-3 2,-1 3,-3 3,-6 0,-3 -4,-8 -12,-12 -2,-1 -3,-2 -4,-2 -3,-2 -5,-4 -7,-7 -2,-2 -2,-5 -2,-8 0,-4 1,-8 5,-10 3,-3 8,-4 14,-4 2,0 4,0 6,0 2,1 4,1 6,2z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"83","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M1 3690l9 0 17 50 17 -50 8 0 -21 58 -9 0 -21 -58z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"86","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M4 3690l37 0 0 7 -30 44 31 0 0 7 -39 0 0 -8 30 -43 -29 0 0 -7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"90","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M27 3711c-4,0 -7,2 -9,4 -2,3 -3,7 -3,12 0,5 1,8 3,11 2,3 5,4 8,4 4,0 6,-1 8,-4 3,-2 4,-6 4,-11 0,-5 -1,-9 -3,-12 -2,-2 -5,-4 -8,-4zm-20 -25l8 0 0 27c1,-3 3,-5 5,-6 3,-1 5,-2 8,-2 6,0 10,2 13,6 3,4 5,9 5,15 0,7 -2,12 -5,16 -3,5 -7,7 -13,7 -3,0 -6,-1 -8,-3 -2,-1 -4,-3 -6,-7l0 9 -7 0 0 -62z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"98","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M40 3714c2,-3 4,-5 6,-6 3,-2 5,-3 8,-3 5,0 8,2 10,5 3,3 4,7 4,13l0 25 -8 0 0 -24c0,-4 -1,-7 -2,-9 -1,-2 -3,-3 -6,-3 -3,0 -6,1 -8,4 -2,3 -3,6 -3,11l0 21 -8 0 0 -24c0,-4 0,-7 -2,-9 -1,-2 -3,-3 -6,-3 -3,0 -6,1 -7,4 -2,3 -3,6 -3,11l0 21 -8 0 0 -42 7 0 0 8c2,-3 3,-5 6,-7 2,-1 5,-2 8,-2 3,0 5,1 7,3 3,1 4,3 5,6z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"109","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M26 3727c-5,0 -9,1 -11,3 -3,1 -4,3 -4,6 0,2 1,4 2,5 2,1 3,2 6,2 3,0 6,-1 8,-3 2,-3 3,-6 3,-10l0 -3 -4 0zm12 -4l0 25 -7 0 0 -7c-2,3 -4,4 -6,6 -2,1 -5,2 -8,2 -4,0 -8,-2 -10,-4 -2,-2 -4,-5 -4,-9 0,-4 2,-8 6,-10 4,-3 9,-4 16,-4l5 0 0 -1c0,-3 0,-5 -2,-7 -2,-2 -5,-3 -8,-3 -2,0 -4,0 -6,1 -2,0 -4,1 -6,3l0 -7c2,-1 5,-2 7,-2 2,-1 5,-1 7,-1 6,0 9,2 12,5 3,2 4,7 4,13z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"97","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M6 3696l6 0 0 31 14 -14 8 0 -16 15 17 20 -8 0 -15 -18 0 18 -6 0 0 -52z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"107","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M7 3706l7 0 0 44c0,6 -1,10 -3,12 -1,3 -4,4 -9,4 0,0 -1,0 -2,0 -1,0 -2,-1 -3,-1l1 -5c0,0 1,0 1,0 1,0 1,0 2,0 2,0 3,-1 4,-2 1,-2 2,-4 2,-8l0 -44zm0 -19l7 0 0 8 -7 0 0 -8z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"106","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M23 3711c-3,0 -6,2 -8,4 -2,3 -3,7 -3,12 0,4 1,8 3,11 2,2 5,4 8,4 4,0 7,-2 9,-4 2,-3 3,-7 3,-11 0,-5 -1,-9 -3,-12 -2,-2 -5,-4 -9,-4zm13 3l0 -8 7 0 0 37c0,8 -2,14 -5,18 -4,3 -9,5 -16,5 -2,0 -5,0 -7,0 -3,-1 -5,-1 -7,-2l1 -7c2,1 4,2 6,2 2,1 4,1 6,1 5,0 8,-1 11,-4 2,-3 3,-6 3,-11l0 -5c-1,2 -3,4 -6,6 -2,1 -5,2 -8,2 -5,0 -9,-2 -12,-6 -3,-4 -5,-9 -5,-15 0,-7 2,-12 5,-16 3,-4 7,-6 13,-6 3,0 6,1 8,2 2,2 4,4 6,7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"103","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M39 3665l0 8c-2,0 -3,0 -4,-1 0,0 -1,0 -2,0 -3,0 -5,1 -6,3 -2,2 -2,5 -2,9l0 8 13 0 0 8 -13 0 0 48 -11 0 0 -48 -11 0 0 -8 11 0 0 -9c0,-6 2,-11 5,-14 3,-3 7,-5 13,-5 1,0 2,0 3,0 1,0 3,1 4,1z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"102","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M23 3711c-3,0 -6,2 -8,4 -2,3 -3,7 -3,12 0,5 1,8 3,11 2,3 5,4 8,4 4,0 7,-1 9,-4 2,-3 3,-6 3,-11 0,-5 -1,-9 -3,-12 -2,-2 -5,-4 -9,-4zm12 -25l8 0 0 62 -7 0 0 -9c-2,4 -4,6 -6,7 -3,2 -6,3 -9,3 -5,0 -9,-2 -12,-7 -3,-4 -5,-9 -5,-16 0,-6 1,-11 5,-15 3,-4 7,-6 12,-6 3,0 6,1 8,2 3,1 4,3 6,6l0 -27z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"100","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M25 3711c-4,0 -7,2 -10,4 -2,3 -3,7 -3,12 0,5 1,9 3,11 3,3 6,5 10,5 3,0 6,-2 9,-4 2,-3 3,-7 3,-12 0,-5 -1,-9 -3,-12 -3,-2 -6,-4 -9,-4zm-1 -6c7,0 12,2 16,6 3,4 5,9 5,16 0,7 -2,12 -5,16 -4,4 -9,6 -16,6 -6,0 -11,-2 -15,-6 -3,-4 -5,-9 -5,-16 0,-7 2,-12 5,-16 4,-4 9,-6 15,-6z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"111","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M7 3686l8 0 0 27c1,-3 3,-5 5,-6 3,-1 5,-2 9,-2 4,0 8,2 10,5 3,3 4,7 4,13l0 25 -8 0 0 -24c0,-4 -1,-7 -2,-9 -2,-2 -4,-3 -7,-3 -4,0 -6,1 -8,4 -2,2 -3,6 -3,11l0 21 -8 0 0 -62z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"104","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M36 3708l-1 6c-1,0 -2,-1 -4,-1 -1,-1 -3,-1 -5,-1 -4,0 -7,1 -10,4 -3,3 -4,7 -4,11 0,5 1,8 4,11 2,3 6,4 10,4 2,0 3,0 5,-1 2,0 3,0 5,-1l0 7c-2,0 -3,1 -5,1 -2,0 -4,0 -6,0 -6,0 -12,-1 -15,-5 -4,-4 -6,-9 -6,-16 0,-6 2,-11 6,-15 4,-4 9,-6 16,-6 2,0 3,0 5,0 2,1 3,1 5,2z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"99","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M7 3706l7 0 0 42 -7 0 0 -42zm0 -19l7 0 0 8 -7 0 0 -8z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"105","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M43 3723l0 25 -8 0 0 -24c0,-4 -1,-7 -2,-9 -2,-2 -4,-3 -7,-3 -4,0 -6,1 -8,4 -2,2 -3,6 -3,11l0 21 -8 0 0 -42 7 0 0 8c2,-3 4,-5 6,-7 2,-1 5,-2 9,-2 4,0 8,2 10,5 3,3 4,7 4,13z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"110","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M7 3686l7 0 0 62 -7 0 0 -62z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"108","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M41 3726l0 3 -30 0c1,4 2,8 5,10 2,3 6,4 10,4 2,0 4,0 6,-1 2,0 4,-1 6,-2l0 7c-2,0 -4,1 -7,1 -2,1 -4,1 -7,1 -6,0 -11,-2 -15,-6 -3,-4 -5,-9 -5,-16 0,-7 2,-12 5,-16 4,-4 8,-6 14,-6 6,0 10,2 13,6 3,3 5,8 5,15zm-7 -2c-1,-4 -2,-8 -4,-10 -1,-2 -4,-3 -7,-3 -3,0 -6,1 -8,3 -2,3 -3,6 -4,10l23 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"101","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M1 3706l8 0 12 35 11 -35 8 0 -17 46c-2,5 -4,9 -6,11 -2,2 -5,3 -9,3 0,0 -1,0 -2,0 -1,0 -2,0 -3,0l1 -7c1,0 1,0 2,1 0,0 1,0 2,0 1,0 3,-1 5,-3 1,-1 2,-4 4,-7l-16 -44z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"121","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M2 3706l9 0 9 15 9 -15 9 0 -13 20 14 22 -9 0 -10 -17 -11 17 -8 0 14 -22 -13 -20z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"120","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M34 3723c0,-3 -1,-6 -2,-8 -2,-2 -5,-3 -8,-3 -3,0 -7,1 -10,5 -2,4 -4,9 -4,15 0,3 1,6 3,8 1,2 4,3 7,3 4,0 7,-2 10,-6 3,-4 4,-8 4,-14zm4 -17l8 0 -13 59 -7 0 5 -23c-2,3 -4,4 -6,5 -3,1 -5,2 -8,2 -5,0 -8,-2 -11,-5 -3,-3 -4,-7 -4,-13 0,-4 1,-7 2,-11 1,-3 3,-6 5,-9 2,-2 4,-3 7,-4 2,-1 4,-2 7,-2 4,0 6,1 9,3 2,1 4,4 4,7l2 -9z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"113","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M6 3706l8 0 0 23c0,5 0,8 2,10 1,2 4,3 7,3 4,0 6,-2 8,-4 2,-3 3,-7 3,-13l0 -19 8 0 0 42 -7 0 0 -8c-2,3 -4,5 -6,6 -2,2 -5,3 -9,3 -4,0 -8,-2 -10,-5 -3,-3 -4,-7 -4,-13l0 -25z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"117","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M15 3741l0 24 -8 0 0 -59 7 0 0 8c2,-3 4,-5 6,-7 3,-1 6,-2 9,-2 5,0 9,2 12,6 3,4 5,9 5,15 0,7 -2,13 -5,17 -3,4 -7,6 -13,6 -3,0 -5,-1 -8,-2 -2,-1 -4,-3 -5,-6zm23 -14c0,-5 -1,-9 -3,-12 -2,-2 -5,-4 -8,-4 -4,0 -7,2 -9,5 -2,2 -3,6 -3,11 0,5 1,9 3,11 2,3 5,5 8,5 4,0 7,-2 9,-5 2,-3 3,-6 3,-11z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"112","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M4 3706l31 0 0 7 -23 29 23 0 0 6 -32 0 0 -7 24 -29 -23 0 0 -6z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"122","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M29 3706l0 7c-1,0 -1,0 -2,0 0,0 -1,0 -1,0 -4,0 -7,1 -8,3 -2,3 -3,6 -3,11l0 21 -8 0 0 -42 7 0 0 9c1,-3 3,-6 5,-7 2,-2 4,-3 7,-3 0,0 1,0 2,0 0,1 1,1 1,1z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"114","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M1 3706l8 0 11 35 12 -35 7 0 -14 42 -9 0 -15 -42z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"118","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M18 3693l0 13 10 0 0 6 -10 0 0 22c0,3 0,5 1,7 1,1 3,2 5,2 1,0 1,0 2,0 1,-1 1,-1 2,-1l0 6c-1,0 -2,0 -3,1 -1,0 -2,0 -3,0 -4,0 -7,-1 -9,-4 -2,-2 -3,-5 -3,-11l0 -22 -8 0 0 -6 9 0 0 -10 7 -3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"116","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M30 3707l0 7c-2,-1 -4,-2 -5,-2 -2,-1 -4,-1 -6,-1 -2,0 -4,1 -5,1 -1,1 -2,2 -2,4 0,1 1,2 2,3 1,1 3,3 6,4 5,2 8,4 9,6 2,2 3,4 3,7 0,4 -2,7 -5,9 -3,2 -7,3 -12,3 -2,0 -4,0 -6,0 -2,0 -3,-1 -5,-2l0 -6c2,1 4,2 6,2 2,1 4,1 5,1 3,0 5,-1 6,-2 2,-1 3,-2 3,-4 0,-2 -1,-3 -2,-4 -1,-1 -3,-2 -6,-4 -4,-2 -7,-4 -9,-6 -2,-2 -2,-4 -2,-6 0,-4 1,-6 4,-8 2,-2 6,-3 11,-3 1,0 3,0 5,0 2,0 3,1 5,1z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"115","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M2 3692l11 0 12 43c0,0 0,1 0,2 0,2 1,3 1,5 0,-3 0,-4 1,-5 0,-1 0,-2 0,-2l12 -43 13 0 13 43c0,0 0,1 0,2 0,1 1,3 1,5 0,-2 0,-3 0,-5 1,-1 1,-2 1,-2l12 -43 11 0 -19 56 -11 0 -14 -44c0,-1 0,-2 0,-3 0,-1 0,-2 -1,-4 0,2 0,3 0,4 0,1 0,2 -1,3l-13 44 -12 0 -17 -56z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"119","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M18 3708c0,-1 -1,-3 -2,-4 -1,-2 -3,-2 -5,-2 -1,0 -3,0 -4,2 -2,1 -2,3 -2,4 0,2 0,4 2,5 1,1 3,2 4,2 2,0 4,-1 5,-2 1,-1 2,-3 2,-5zm-7 -9c3,0 5,1 7,2 2,2 3,5 3,7 0,3 -1,5 -3,7 -2,2 -4,3 -7,3 -2,0 -5,-1 -7,-3 -1,-2 -2,-4 -2,-7 0,-2 1,-5 3,-7 1,-1 4,-2 6,-2z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"176","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M34 3720c-6,0 -11,1 -14,3 -4,2 -5,5 -5,9 0,3 1,5 3,7 1,1 4,2 7,2 5,0 8,-1 11,-4 3,-3 5,-7 5,-12l0 -5 -7 0zm17 -6l0 34 -10 0 0 -9c-2,3 -5,6 -8,7 -3,2 -7,3 -11,3 -5,0 -9,-2 -13,-5 -3,-3 -5,-7 -5,-12 0,-6 3,-10 8,-14 5,-3 12,-4 21,-4l8 0 0 -2c0,-4 -2,-7 -4,-10 -3,-2 -6,-3 -10,-3 -3,0 -5,0 -8,1 -2,1 -5,2 -8,3l0 -8c3,-1 6,-2 9,-3 3,-1 6,-1 10,-1 7,0 12,2 15,6 4,4 6,9 6,17zm-17 -43l9 0 0 10 -9 0 0 -10zm-18 0l9 0 0 10 -9 0 0 -10z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"228","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M8 3692l10 0 0 31c0,6 1,10 3,13 2,3 5,4 10,4 4,0 8,-2 11,-6 2,-3 4,-9 4,-16l0 -26 10 0 0 56 -10 0 0 -11c-2,4 -4,7 -7,9 -4,2 -7,3 -12,3 -6,0 -11,-2 -14,-6 -3,-4 -5,-10 -5,-18l0 -33zm29 -21l9 0 0 10 -9 0 0 -10zm-18 0l9 0 0 10 -9 0 0 -10z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"252","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":{"@d":"M43 3689c-5,0 -10,2 -13,6 -4,5 -5,10 -5,18 0,7 1,12 5,17 3,4 8,6 13,6 6,0 10,-2 14,-6 3,-5 5,-10 5,-17 0,-8 -2,-13 -5,-18 -4,-4 -8,-6 -14,-6zm0 -13c12,0 21,3 28,10 6,6 10,15 10,27 0,11 -4,20 -10,27 -7,7 -16,10 -28,10 -11,0 -21,-3 -27,-10 -7,-7 -10,-16 -10,-27 0,-12 3,-21 10,-27 6,-7 16,-10 27,-10zm5 -27l14 0 0 15 -14 0 0 -15zm-24 0l14 0 0 15 -14 0 0 -15z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@unicode":"246","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@id":"FontID0","@horiz-adv-x":"1000","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"style":{"$":"\n .str18 {stroke:#1F1A17;stroke-width:3}\n .str7 {stroke:#0093DD;stroke-width:4;stroke-linejoin:round}\n .str2 {stroke:#0093DD;stroke-width:4;stroke-linejoin:round}\n .str11 {stroke:#1F1A17;stroke-width:4}\n .str15 {stroke:#1F1A17;stroke-width:4;stroke-linejoin:round}\n .str16 {stroke:#131516;stroke-width:4;stroke-linejoin:round}\n .str13 {stroke:#1F1A17;stroke-width:4;stroke-linejoin:round}\n .str6 {stroke:#0093DD;stroke-width:6;stroke-linejoin:round}\n .str17 {stroke:#1F1A17;stroke-width:6}\n .str9 {stroke:#131516;stroke-width:6;stroke-linejoin:round}\n .str0 {stroke:#4E4B4A;stroke-width:6;stroke-linejoin:round}\n .str5 {stroke:#0093DD;stroke-width:8;stroke-linejoin:round}\n .str12 {stroke:#1F1A17;stroke-width:8}\n .str14 {stroke:#131516;stroke-width:8;stroke-linejoin:round}\n .str8 {stroke:#449285;stroke-width:8;stroke-linejoin:round}\n .str4 {stroke:#0093DD;stroke-width:10;stroke-linejoin:round}\n .str3 {stroke:#0093DD;stroke-width:12;stroke-linejoin:round}\n .str10 {stroke:#131516;stroke-width:12;stroke-linejoin:round}\n .str1 {stroke:#4E4B4A;stroke-width:12;stroke-linejoin:round}\n .fil7 {fill:none}\n .fil19 {fill:#0093DD}\n .fil8 {fill:#1F1A17}\n .fil20 {fill:#FFFFFF}\n .fil9 {fill:#DA251D}\n .fil18 {fill:#F1A400}\n .fil16 {fill:#0096D4}\n .fil13 {fill:#96C7EB}\n .fil5 {fill:#C4E1F6}\n .fil15 {fill:#E1553F}\n .fil17 {fill:#E57A51}\n .fil10 {fill:#EDF5D4}\n .fil11 {fill:#EEA45C}\n .fil14 {fill:#EFB289}\n .fil12 {fill:#F5E0A0}\n .fil6 {fill:#C3C3C2;fill-opacity:0.501961}\n .fil4 {fill:#DA251D;fill-opacity:0.501961}\n .fil3 {fill:#EC914F;fill-opacity:0.501961}\n .fil1 {fill:#EECB97;fill-opacity:0.501961}\n .fil2 {fill:#F4B770;fill-opacity:0.501961}\n .fil0 {fill:#FFFEE3;fill-opacity:0.501961}\n .fnt0 {font-weight:normal;font-size:69;font-family:FontID0, 'Humnst777 BT'}\n .fnt42 {font-weight:normal;font-size:69;font-family:FontID34, 'Humnst777 BT'}\n .fnt8 {font-weight:normal;font-size:69;font-family:FontID4, 'Humnst777 BT'}\n .fnt41 {font-weight:normal;font-size:83;font-family:FontID34, 'Humnst777 BT'}\n .fnt5 {font-weight:normal;font-size:83;font-family:FontID4, 'Humnst777 BT'}\n .fnt17 {font-weight:normal;font-size:97;font-family:FontID10, 'Humnst777 BT'}\n .fnt19 {font-weight:normal;font-size:97;font-family:FontID12, 'Humnst777 BT'}\n .fnt21 {font-weight:normal;font-size:97;font-family:FontID14, 'Humnst777 BT'}\n .fnt23 {font-weight:normal;font-size:97;font-family:FontID16, 'Humnst777 BT'}\n .fnt25 {font-weight:normal;font-size:97;font-family:FontID18, 'Humnst777 BT'}\n .fnt27 {font-weight:normal;font-size:97;font-family:FontID20, 'Humnst777 BT'}\n .fnt29 {font-weight:normal;font-size:97;font-family:FontID22, 'Humnst777 BT'}\n .fnt31 {font-weight:normal;font-size:97;font-family:FontID24, 'Humnst777 BT'}\n .fnt33 {font-weight:normal;font-size:97;font-family:FontID26, 'Humnst777 BT'}\n .fnt35 {font-weight:normal;font-size:97;font-family:FontID28, 'Humnst777 BT'}\n .fnt37 {font-weight:normal;font-size:97;font-family:FontID30, 'Humnst777 BT'}\n .fnt39 {font-weight:normal;font-size:97;font-family:FontID32, 'Humnst777 BT'}\n .fnt13 {font-weight:normal;font-size:97;font-family:FontID6, 'Humnst777 BT'}\n .fnt15 {font-weight:normal;font-size:97;font-family:FontID8, 'Humnst777 BT'}\n .fnt18 {font-weight:normal;font-size:97;font-family:FontID11, Symbol}\n .fnt20 {font-weight:normal;font-size:97;font-family:FontID13, Symbol}\n .fnt22 {font-weight:normal;font-size:97;font-family:FontID15, Symbol}\n .fnt24 {font-weight:normal;font-size:97;font-family:FontID17, Symbol}\n .fnt26 {font-weight:normal;font-size:97;font-family:FontID19, Symbol}\n .fnt28 {font-weight:normal;font-size:97;font-family:FontID21, Symbol}\n .fnt30 {font-weight:normal;font-size:97;font-family:FontID23, Symbol}\n .fnt32 {font-weight:normal;font-size:97;font-family:FontID25, Symbol}\n .fnt34 {font-weight:normal;font-size:97;font-family:FontID27, Symbol}\n .fnt36 {font-weight:normal;font-size:97;font-family:FontID29, Symbol}\n .fnt38 {font-weight:normal;font-size:97;font-family:FontID31, Symbol}\n .fnt40 {font-weight:normal;font-size:97;font-family:FontID33, Symbol}\n .fnt12 {font-weight:normal;font-size:97;font-family:FontID5, Symbol}\n .fnt14 {font-weight:normal;font-size:97;font-family:FontID7, Symbol}\n .fnt16 {font-weight:normal;font-size:97;font-family:FontID9, Symbol}\n .fnt3 {font-weight:normal;font-size:111;font-family:FontID2, 'Humnst777 BT'}\n .fnt7 {font-weight:normal;font-size:111;font-family:FontID4, 'Humnst777 BT'}\n .fnt2 {font-weight:normal;font-size:130;font-family:FontID2, 'Humnst777 BT'}\n .fnt9 {font-weight:normal;font-size:130;font-family:FontID4, 'Humnst777 BT'}\n .fnt11 {font-weight:bold;font-size:130;font-family:FontID4, 'Humnst777 BT'}\n .fnt4 {font-weight:normal;font-size:167;font-family:FontID3, 'Humnst777 Lt BT'}\n .fnt10 {font-weight:bold;font-size:222;font-family:FontID4, 'Humnst777 BT'}\n .fnt6 {font-style:italic;font-weight:normal;font-size:83;font-family:FontID4, 'Humnst777 BT'}\n .fnt1 {font-style:italic;font-weight:normal;font-size:167;font-family:FontID1, 'Humnst777 Lt BT'}\n ","@type":"text\/css","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"g":[{"image":{"@transform":"matrix(0.555102 0 0 0.555268 -5368.74 5205.7)","@x":"0","@y":"-8696","@width":"15792","@height":"12444","@xlink:href":"tests\/resources\/images\/spainRelief.png","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@id":"relief","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil0","@d":"M-1948 1100l87 -3 57 -27 23 7 33 53 60 13 10 77 14 7 30 -17 3 20 -30 17 57 36 -10 20 -20 -13 -80 50 13 43 -17 47 24 50 -4 23 -33 7 -13 20 10 33 26 0 44 184 46 3 24 20 -17 17 7 26 46 0 7 10 -13 27 13 17 53 -17 -3 20 -43 23 -10 27 -50 17 -4 26 27 47 -30 -3 -17 -24 -60 -3 -36 27 -47 -14 -20 20 -23 0 -17 -13 10 -27 -13 -13 -37 13 -33 -46 -27 -4 -33 34 -30 -7 -40 -63 -60 10 -10 -20 53 -107 -13 -43 -50 -10 16 -90 20 -4 10 -23 0 -13 -16 3 3 -23 37 -14 -10 -33 16 -67 -13 -13 23 -117 -33 -26 23 -30 0 -57 20 -7 37 -83 33 -20z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil0","@d":"M199 1140l0 20 53 23 37 54 20 -7 10 -27 60 17 47 -37 60 40 23 -3 27 47 53 26 100 -40 43 10 24 30 33 -36 40 23 113 -10 17 -23 -20 -24 10 -63 23 -13 70 20 -73 103 7 47 36 16 -16 74 -20 10 30 60 6 63 -20 143 -30 97 -40 43 24 44 -144 153 20 53 44 4 10 33 -24 40 -30 10 0 50 -6 3 -50 -10 -7 14 -7 -4 -3 -3 -7 -3 -6 0 -4 0 -6 3 -7 0 -3 3 -7 4 -3 3 -4 7 -3 3 -7 3 -3 4 -3 6 -4 4 0 6 -3 7 0 7 -37 0 -6 -14 -7 0 0 14 -27 -10 -66 -164 -24 -3 -20 17 -63 -40 -10 -37 -73 -27 -7 -80 -77 -80 -60 0 -60 -30 30 -66 17 26 13 -10 -6 -130 16 -40 -6 -50 -7 -3 -10 10 0 17 -17 46 -33 -6 -13 26 -17 -6 53 -104 -46 -23 3 -60 -23 -3 16 -27 -16 -17 13 -20 -7 -36 17 -24 -17 -16 4 -27 30 -27 -4 -46 17 -47 50 -10z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil0","@d":"M-3064 1633l40 34 36 -7 84 30 93 -13 53 43 97 -3 43 23 37 -17 20 27 43 -20 24 17 33 -17 43 67 34 -37 13 30 13 30 -10 23 20 7 10 -30 37 -17 47 47 -27 27 17 20 -14 63 7 3 -3 20 -30 24 0 23 23 37 0 50 30 10 -10 26 17 14 -4 23 -40 23 -3 4 17 43 -17 37 23 83 -26 47 26 6 -3 34 -20 13 -33 -17 -10 -36 -30 6 -7 24 -43 -54 -24 7 -26 -27 -67 17 -70 -17 -30 57 -10 3 -3 -10 -17 7 -10 -7 0 -30 -43 -3 -7 -7 -3 -3 -4 0 -6 7 -4 3 -6 0 -4 -3 -3 -4 -3 -6 -4 -7 0 -3 -6 -7 -4 -3 -3 -4 -7 0 -6 0 -4 -3 -3 -3 0 -7 0 -7 0 -6 0 -7 0 -3 -7 -7 -3 -3 -7 0 -3 3 -3 7 -4 3 -3 7 -7 3 -3 3 -7 4 -3 0 -7 0 -3 -4 -7 -3 -6 0 -4 0 -6 0 -7 -3 -7 0 -3 0 -7 0 -6 0 -7 0 -10 0 7 -7 3 -3 7 -4 3 -3 7 -3 3 -4 7 -3 3 -3 3 -7 4 -3 3 -7 0 -3 3 -7 4 -3 3 -7 3 0 7 0 7 0 6 -3 4 -4 3 -3 0 -7 0 -6 3 -7 0 -3 4 -7 3 -3 3 -7 4 -3 3 -7 3 -3 0 -7 4 -3 3 -7 3 -3 4 -7 3 -3 3 -7 4 -3 3 -7 3 -3 4 -4 3 -6 7 -4 10 -16 -84 -67 -50 -7 -36 17 -24 -20 -6 -47 30 -86 -30 -14 10 -40 -17 -20 -20 20 -53 0 -30 -26 -10 -14 -27 30 -50 0 -30 -20 13 -46 -20 -17 0 -23 30 -27 10 -33 40 -34 34 10 10 -30m530 317l-4 7 -3 3 -3 7 -4 3 -6 0 -4 0 -3 7 -3 3 0 7 0 6 3 7 3 3 4 7 0 3 0 7 0 7 -4 6 -3 4 -3 3 -4 3 -6 4 -4 6 -3 4 -3 6 0 4 -7 3 -3 7 -7 0 -3 0 -4 3 -3 7 0 6 0 7 0 7 -3 3 -7 3 -3 0 -7 4 -7 3 -3 3 -7 0 -6 0 -4 0 0 7 0 7 7 3 3 3 0 7 0 7 4 3 0 7 3 6 3 -3 7 -3 3 -4 0 -6 -3 -4 0 -6 3 -7 0 -3 4 -7 6 -3 7 0 3 0 7 -4 3 -3 0 -7 0 -6 4 -4 0 -6 3 -7 3 -3 7 0 3 -4 7 4 7 0 6 -4 0 -3 -3 -7 -3 -6 -4 -4 4 -6 0 -7 6 0 7 0 3 0 7 0 7 -3 6 -4 0 -3 0 -7 -3 -6 0 -7 -3 -3 -4 -7 -3 -3 -3 -7 0 -7 0 -3 0 -7 3 -3 3 -7 4 -3 3 -7 0 -6 -3 -7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil0","@d":"M-964 1820l23 10 33 -23 7 -47 27 -13 16 23 -20 53 90 14 37 -50 0 -20 10 -14 7 4 33 -24 67 -3 20 40 40 -17 33 7 -13 37 26 23 4 47 76 23 57 -30 27 77 -24 43 40 57 -16 40 -24 0 -36 43 -20 -7 -17 10 13 30 -6 44 26 60 -50 23 -6 -37 -37 -6 -10 50 -23 36 16 100 50 24 -3 50 -7 0 -26 -20 -17 0 -13 20 -34 -4 -46 24 -20 -17 -30 20 -27 -17 -37 -56 -23 6 -7 -6 4 -14 -24 -10 14 -16 -4 -4 -13 4 -10 -20 -37 -4 -3 -13 -10 -3 -27 16 -30 -10 -26 -33 -20 0 -17 13 -57 14 -80 -20 -80 -64 7 -50 -47 -13 -16 -40 -20 10 -20 -13 -10 -30 3 -24 43 17 7 -20 20 -43 23 -14 4 -30 36 -23 0 -53 20 -10 50 40 30 -44 -3 -16 47 -7 10 -30 20 -3 3 -37 27 -30z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil0","@d":"M-1304 2147l10 30 20 13 20 -10 16 40 47 13 -7 50 80 64 -26 33 -77 -3 -17 13 4 27 -74 33 -43 13 -90 110 -63 24 -27 43 -17 87 -53 0 -47 70 -63 6 7 10 -10 10 -20 0 -24 4 -30 -10 -6 -54 -27 -30 -7 -43 -30 -3 0 -4 10 -16 -16 -14 -4 -50 -50 -66 -36 -14 0 -66 20 -24 20 7 6 -3 -6 -30 43 -37 -10 -27 7 -6 33 10 17 -24 -17 -50 90 -30 133 -23 64 -30 10 -43 43 20 43 53 17 -27 10 4 0 26 7 7 10 0 6 -40 27 -27 77 -16z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil0","@d":"M766 2463l6 24 27 10 13 36 -23 57 17 53 -24 37 -33 20 3 10 -73 33 -13 -30 -47 10 -63 -43 -20 27 -10 46 -37 20 -13 -13 -27 13 3 37 47 3 -3 70 23 24 -43 30 36 46 -60 57 -10 37 -50 16 -26 -10 0 40 -37 87 -30 23 -40 0 -10 30 -30 17 -3 43 26 30 -53 20 -23 -76 -44 -14 -80 10 -13 -30 47 -20 0 -20 -40 -36 -54 0 -16 -30 -14 -27 -13 0 -3 40 -67 -3 0 -37 -60 7 -73 -77 -4 3 -13 -13 3 -3 -3 -4 -7 -6 -3 -4 -3 -3 -7 -3 -3 -7 -4 -3 -3 -4 -3 -6 -4 -4 -3 -3 -7 -3 -3 -4 -7 -3 30 -47 30 -13 10 -80 47 17 27 -20 3 -64 -17 -36 14 -54 -47 -56 -3 -47 83 -7 13 -26 -10 -20 54 -54 16 24 24 3 23 -17 -7 -33 27 -17 33 7 27 -27 43 20 24 -6 -10 36 30 14 33 -50 17 26 30 0 23 -46 43 33 34 -60 -30 -23 20 -14 0 -43 23 -3 0 3 3 -3 4 -30 46 3 44 53 36 17 14 -13 50 46 120 47 33 53 17 -23 80 3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil0","@d":"M-1118 2347l80 20 57 -14 17 -13 20 0 26 33 30 10 27 -16 10 3 3 13 37 4 10 20 13 -4 4 4 -14 16 24 10 -4 14 7 6 23 -6 37 56 27 17 30 -20 20 17 46 -24 34 4 13 -20 17 0 26 20 7 0 3 -50 54 -20 16 23 70 37 104 103 3 47 47 56 -14 54 17 36 -3 64 -27 20 -47 -17 -10 80 -30 13 -30 47 -6 -3 -4 -4 -3 0 -3 -3 0 -3 -4 -7 -3 -3 -3 -7 -4 -3 -6 -4 0 -6 -4 -7 0 -3 0 -7 -3 -7 0 -3 -3 -7 0 -6 0 -7 -4 -3 -3 -7 0 -7 -3 -3 0 -7 -4 -6 0 -4 -3 -6 -3 -10 -20 -10 -7 16 -27 -3 -40 -37 -33 -10 -23 30 -54 -6 4 36 -17 10 -50 -30 -10 20 23 27 -10 17 -63 10 -10 16 17 30 -7 14 -7 0 -3 -4 -3 -3 -4 -7 0 -3 -3 -7 -7 0 -6 0 -4 0 -6 4 -7 0 -3 3 -7 0 -7 3 -3 0 -7 0 -6 0 -7 0 -3 0 -7 4 -3 3 -7 0 -7 3 -3 4 -7 3 -3 3 -3 4 -7 -7 -17 7 -13 46 13 67 -13 43 -47 34 -53 -34 -10 37 -30 0 0 -3 -17 -84 -40 27 -10 -7 34 -106 -14 -24 -26 -13 0 -50 -30 -20 -20 7 0 -24 -24 -23 10 -37 -26 4 -14 -34 -10 14 -33 -14 13 -50 -33 -26 57 -147 -24 -37 4 -23 -34 -10 -30 -50 74 -33 -4 -27 17 -13 77 3 26 -33m314 456l-7 0 -3 0 -7 0 -7 4 -6 0 -4 3 -3 7 -3 3 0 7 -4 6 -3 4 -3 6 0 4 -4 6 0 7 -3 3 -3 7 0 7 3 3 3 7 4 3 0 7 -4 3 0 7 -3 6 0 7 0 3 -3 7 6 7 4 0 3 -7 3 -3 4 -7 0 -3 0 -7 3 -7 3 -3 4 -3 3 -7 3 -3 -3 -7 -3 -3 -7 -4 -3 -3 0 -7 0 -6 0 -7 3 -3 0 -7 3 -3 4 -7 6 -3 4 -4 3 -3 7 0 6 -3 4 -4 0 -10z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil0","@d":"M-1954 2457l0 66 36 14 50 66 4 50 16 14 -10 16 0 4 30 3 7 43 27 30 6 54 30 10 24 -4 20 0 10 -10 -7 -10 63 -6 -6 50 -40 13 -17 -13 -7 6 4 24 -24 26 0 97 -56 7 -24 60 -30 -14 -10 7 4 27 -24 56 -50 10 -23 -63 -57 10 -3 33 -90 80 -20 0 -10 -36 -77 53 -93 -23 -20 -47 10 -40 -20 -13 -23 3 -24 30 -36 10 -107 -77 30 -30 -3 -56 33 -34 37 -10 -7 24 30 16 3 -30 27 0 17 -53 -10 -17 -37 10 3 -33 30 7 27 -14 27 -33 -7 -23 73 -40 50 -57 37 -127 -7 -26 -23 -17 13 -63 74 -17 80 47 26 -30 44 -10z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil0","@d":"M-731 2977l7 -14 -17 -30 10 -16 63 -10 10 -17 -23 -27 10 -20 50 30 17 -10 -4 -36 54 6 23 -30 33 10 40 37 27 3 7 -16 20 10 3 10 3 6 0 4 4 6 0 7 3 3 0 7 3 7 4 3 0 7 0 6 3 7 0 3 3 7 0 7 0 3 4 7 0 6 6 4 4 3 3 7 3 3 4 7 0 3 3 3 3 0 4 4 6 3 7 3 3 4 7 3 3 3 4 4 3 6 3 4 4 3 3 7 7 3 3 3 3 4 7 6 3 4 -3 3 13 13 4 -3 73 77 60 -7 0 37 40 96 43 7 37 7 40 -14 13 30 -36 17 3 17 3 46 -36 87 3 43 -27 14 -36 -10 -64 86 -13 87 13 20 -133 77 -27 30 -60 -17 -53 7 -20 -44 -37 -3 0 10 4 3 0 7 0 7 3 3 0 7 3 6 0 4 4 6 3 7 0 3 3 7 -70 -10 -56 40 -30 -40 -30 33 -74 -73 -80 10 -6 0 -7 3 -3 0 -7 0 -7 4 -6 0 -4 0 -10 0 -13 -37 -20 -7 -20 24 -3 3 -30 -7 13 -23 -33 -57 6 -130 -46 -50 -44 -100 -30 -16 17 -80 -33 -7 -7 -53 57 -17 -20 -40 13 -10 30 0 10 -37 53 34 47 -34 13 -43 -13 -67 13 -46 17 -7 7 7 -4 6 -6 4 -4 6 0 4 7 3 3 3 7 4 3 3 4 7 0 6 0 4 0 6 0 7 3 7 0 3 3 7 4 3 3 3 7 0 6 0 4 0 3 -6 0 -7 3 -7 0 -3 0 -7 -3 -6 -3 -4 -4 -3 -3 -7 -3 -3 -4 -7 0 -3 0 -7 0 -6 4 -4 3 -6 3 -4 4 -3 6 -3 7 0 3 -4 7 0 7 0 6 0 4 0 6 0 7 0 7 4 3 0 7 3 3 3 7 0 3 4 7 3 6 0 4 3 6 0 7 0 3 -6 0 -4 -3 -3 -7 -3 -6 0 -7 0m247 626l-4 -6 -3 -4 -3 -6 -4 -4 0 -6 0 -4 -3 -6 -7 -4 -6 0 -7 0 -3 0 -7 -3 -3 -3 -4 -7 -6 -3 -4 -4 -3 -6 0 -4 -3 -6 0 -7 3 -3 3 -7 0 -3 -6 -7 -4 0 -6 0 -7 0 -7 -3 -3 -4 -3 -6 0 -4 -4 -6 -3 -4 -7 -3 -3 -3 -3 -4 -4 7 0 7 0 6 4 4 0 6 3 7 0 3 7 4 3 3 3 3 4 7 3 7 3 3 4 3 3 7 7 3 3 4 3 3 4 7 3 3 0 7 0 6 3 4 7 3 3 3 7 0 7 0 6 0 4 4 3 3 3 7 4 3 6 3 4 4 6 0 4 -4z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil0","@d":"M-2521 3073l107 77 36 -10 24 -30 23 -3 20 13 -10 40 20 47 -23 16 3 60 -27 97 44 -7 23 14 -20 70 7 6 3 4 3 3 7 0 7 3 3 0 7 0 3 -3 3 -7 4 -3 6 -7 4 0 6 -3 4 -3 6 0 7 0 3 0 7 0 -3 30 16 26 -36 90 133 134 -7 0 -6 0 -4 3 -6 0 -4 3 -6 4 -4 6 -3 4 -3 10 -7 0 -27 -17 -13 40 -57 23 -43 -20 -23 14 -7 53 -23 47 -37 3 -30 -33 -33 0 -20 16 16 24 -10 30 -43 20 -77 -44 -13 24 -53 16 -14 -20 -33 34 -7 -34 -20 -3 -53 53 -50 -40 -40 -10 -10 -46 -20 -4 -13 7 -87 -17 -7 20 -40 -30 -43 10 -43 -10 -17 -40 33 -53 -26 -17 -4 -33 -46 -3 -90 -37 -10 17 26 20 -26 46 -17 7 -7 -33 17 -17 -30 -7 -27 24 -6 16 10 4 -24 36 -20 -3 -43 -50 13 -90 -46 -23 -4 -24 -66 -60 -10 -43 6 0 4 0 6 0 7 0 7 0 3 3 7 0 6 4 4 0 6 3 7 0 3 0 7 3 7 0 6 0 4 4 6 0 7 3 7 0 3 -3 7 0 3 -4 7 -3 6 -3 4 0 6 -4 7 0 3 0 7 0 7 4 6 0 4 0 6 0 7 3 3 0 7 0 7 0 6 0 4 0 6 3 7 0 7 -3 3 0 7 0 6 0 7 -3 10 0 7 0 3 -4 7 0 20 -96 43 -40 30 -107 -33 -67 -44 -20 -10 -46 17 -27 77 -27 20 20 36 7 24 -17 16 14 67 -20 10 -40 190 -107 83 60 -3 7 -10 3 -3 7 -4 3 -3 3 -3 7 -4 3 -3 4 -7 3 -3 3 -7 7 -3 0 -7 -3 -6 0 -4 -4 -6 4 -4 6 -3 7 0 3 7 0 6 -3 7 0 7 -3 3 3 7 0 3 3 3 7 0 7 0 3 0 7 -6 3 -4 7 -3 3 -3 3 -4 7 0 7 -3 3 0 7 3 3 7 3 3 4 7 0 7 -4 6 0 7 0 3 -3 7 -3 3 -4 4 -3 3 -3 0 -7 0 -7 0 -6 -7 -4 -3 0 -7 -3 -3 -3 -7 -4 0 -6 -3 -7 0 -3 0 -7 0 -7 3 -6 4 -4 3 -3 7 -3 40 13 20 27 43 16 13 -30 50 -20 0 44 37 -4m-150 324l7 3 6 0 4 -3 3 -4 7 -3 3 -3 7 -4 6 -3 0 -3 0 -7 4 -7 0 -3 3 -7 0 -6 -3 -4 -7 0 -3 4 -4 6 0 7 0 3 -3 7 -3 7 -4 3 -3 3 -7 0 -6 4 -4 3 -3 7m207 56l6 0 4 0 6 -3 4 -3 6 -4 4 -3 6 0 7 -3 3 0 7 0 7 0 6 0 4 0 6 0 7 3 3 7 7 0 3 -4 7 -3 3 0 7 -3 7 0 6 -4 4 4 6 3 4 3 3 4 10 0 -7 -4 -3 -3 -3 -7 0 -6 0 -7 3 -3 0 -7 3 -7 0 -3 0 -7 -3 -6 -7 0 -6 0 0 3 -4 7 0 6 -3 7 -3 3 -7 4 -3 3 -7 0 -7 0 -3 3 -7 -3 -6 3 -7 0 -3 0 -7 0 -7 0 -6 0 -4 0 -6 0 -7 4 -3 0 -7 0 -7 3 -3 3 -7 4 -3 3 -3 3 0 10m-204 -46l7 3 3 3 7 4 3 3 7 0 3 3 4 7 3 7 3 0 7 3 7 0 6 0 4 0 6 0 7 3 3 4 4 6 3 4 3 3 4 3 6 0 7 0 7 0 3 0 7 -3 6 0 4 -3 6 0 7 0 3 -4 7 -3 -3 -3 3 -7 3 -3 4 -4 6 -3 0 -7 -3 -3 -7 0 -3 3 -3 4 -4 6 -3 4 -3 3 -7 3 -7 4 -3 3 -3 3 -7 0 -7 0 -6 0 -4 -3 -6 0 -4 -3 -3 -7 -7 -3 -3 -4 -7 -3 -3 0 -7 0 -6 -3 -4 0 -3 -7 -3 -7 -4 -3 -3 -3 -7 3 -6 0 -7 -3 -3 0 -14 0m-510 60l4 3 6 0 7 0 3 -3 7 -4 3 -3 4 -3 6 -4 4 -3 6 0 7 0 7 -3 3 0 7 3 6 0 4 0 6 0 7 0 7 0 3 0 7 0 6 0 7 0 3 0 7 -3 3 0 7 0 7 3 3 0 7 7 3 3 7 3 3 4 7 3 3 3 7 0 3 4 7 3 3 3 7 4 0 6 0 4 -4 6 4 7 6 0 4 0 6 0 4 3 3 7 3 3 4 7 3 3 3 7 0 7 4 3 3 7 3 3 4 7 3 3 3 3 7 4 3 3 7 3 3 4 7 0 7 0 6 0 4 0 6 0 7 0 7 0 3 0 7 3 6 0 4 3 6 4 7 0 3 3 7 3 3 4 4 3 6 3 4 4 6 3 4 3 6 0 7 0 3 0 7 -3 0 -7 -3 -3 -7 -3 -3 0 -7 -4 -7 0 -3 -3 -7 -3 -3 -4 -7 -3 -3 -3 -7 -4 -3 -3 -7 -3 -3 -4 -3 -3 -7 -3 -7 0 -3 0 -7 0 -6 3 -7 0 -3 0 -7 0 -7 0 -6 -3 -4 -4 -6 0 -4 -6 -3 -4 -3 -3 -4 -7 -3 -3 -3 -3 -4 -7 -6 -3 -4 -7 -3 -3 -3 -4 0 -6 -4 -7 -3 -3 3 -7 4 -3 6 -4 7 0 3 -3 7 0 7 -3 3 0 7 0 6 -4 7 0 3 0 7 -3 7 0 3 -3 7 0 6 0 7 0 3 0 7 0 7 0 3 -4 7 0 6 -3 4 -3 6 0 7 -4 3 -3 7 -3 3 0 7 -4 7 -3 3 0 7 -3 6 0 4 0 6 0 4 -4 3 -6 7 -4 3 -3 3 -3 10 -7 -3 -7 0 -6 0 -7 -3 0 -7 7 0 3 0 7 -7 6 -3 4 -3 3 -7 3 -3 0 -7 0 -7 4 -3 3 -7 0 -6 3 -4 4 -6 0 -7 3 -3 0 -7 3 -3 4 -7 0 -7 3 -3 0 -7 3 -6 0 -7 0 -3 0 -7 4 -7 0 -6 0 -4 0 -6 0 -7 3 -3 0 -7 0 -7 3 -3 4 -7 3 -3 3 -7 0 -3 0 -7 -3 0 -7 0 -3 -6 -3 -7 0 -3 -4 -7 0 -7 4 -3 6 0 4 -7 3 -6 -3 -7 0 -3 -4 -4 -3 -6 -3 -4 -4 -6 -3 -4 -3 -3 -4 -3 -6 -4 -7 -3 -3 -3 -4 -7 4 -7 0 -6 0 -4 3 -3 3 -7 4 -6 0 -7 0 -3 -4 0 -6 6 -4 4 -3 -4 -7 -3 0 -7 4 -3 3 -3 3 -7 4 -3 0 -7 3 -7 0 -6 0 -4 3 -6 4 -7 0 -3 3 -7 3 -3 0 -7 4 -3 3 -7 3 -3 -3 -4 -3 7 -7 3 -3 4 -4 3 -6 3 -4 4 -6 3 -4 3 -6 4 -4 0 -6 3 -4 3 -6 0 -7 4 -3 3 -7 0 -3 3 -7 7 0 7 -3 6 0 4 -4 6 0 7 0 3 -3 4 -7 6 -3 4 -3 3 -4 7 -3 3 -3 7 -4 3 0 7 -3 6 0 4 0 6 -3 7 -4 3 -3 7 0 7 0 0 -3 -4 -7 -6 0 -7 0 -7 3 -3 0 -7 4 -3 3 -7 3 -3 0 -7 4 -6 3 -4 3 -3 4 -7 3 -3 3 -7 0 -3 -3 0 -7 3 -6 -3 -4 -7 -3 -3 7 0 6 0 4 0 6 0 7 -7 3 -3 0 -7 4 -3 3 -7 3 -3 4 -7 3 -3 3 -3 7 -4 3 0 7 -3 3 -3 7 -4 3 0 7 -3 3 -3 7 -4 7 0 3 -3 7 -3 3 -4 7 -3 3 -3 7 -4 3 -3 7 0 3 3 7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil0","@d":"M-901 3767l20 -24 20 7 13 37 14 40 -64 93 17 70 -43 73 63 34 23 73 57 40 -17 60 -33 27 -17 -7 0 70 -73 53 -17 -10 -63 17 -20 -23 -40 26 -113 -23 -20 7 -14 33 -40 20 -40 -7 -16 -30 -24 37 -110 -20 -53 43 -213 -23 -10 37 -104 -30 -46 -57 -44 -17 -56 -60 -84 -30 -6 -50 -54 0 -40 -33 30 -7 27 -90 23 -20 30 4 7 -30 -50 -27 -23 -63 46 13 27 -10 -23 -37 16 -50 20 -26 50 3 7 -13 -27 -70 27 -14 23 -60 -10 -26 37 -4 7 -26 60 -47 20 50 23 -30 107 33 26 -16 20 -50 60 -4 10 40 -16 7 -4 40 -23 0 -17 67 24 16 16 -16 54 10 6 43 60 27 44 -24 33 17 43 -20 64 -7 66 -70 60 4 10 -57 54 0 23 -17 83 37 44 -17 33 57 -13 23 30 7 3 -3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil0","@d":"M-2094 3723l13 -13 23 -73 24 -17 53 40 -3 60 -57 30 -3 0 6 -3 -3 -7 0 -7 -7 -3 -3 -3 -7 0 -6 -4 -4 -3 -6 0 -7 0 -3 3 -10 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil0","@d":"M-798 3780l80 -10 74 73 30 -33 30 40 56 -40 70 10 -3 -7 0 -3 -3 -7 -4 -6 0 -4 -3 -6 0 -7 -3 -3 0 -7 0 -7 -4 -3 0 -10 37 3 20 44 53 -7 60 17 27 -30 133 -77 34 40 26 -10 34 27 100 20 -10 76 0 4 -40 106 73 84 103 -10 24 43 0 67 -20 16 33 64 -67 23 -50 -37 -6 -26 -30 -10 -47 16 -47 40 -16 -13 -20 7 -27 26 -3 57 -27 30 17 113 -44 44 -53 10 -23 -40 -37 -7 -3 3 -87 64 -47 13 -33 -20 -30 47 -63 36 -67 124 -120 -40 60 -87 7 -53 -10 -7 -24 -13 0 -70 -50 -14 -13 -70 -53 10 -44 -23 0 -70 17 7 33 -27 17 -60 -57 -40 -23 -73 -63 -34 43 -73 -17 -70 64 -93 -14 -40 10 0 4 0 6 0 7 -4 7 0 3 0 7 -3 6 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil1","@d":"M-3514 537l36 -4 10 37 10 7 20 -34 44 4 -4 13 54 20 36 63 34 24 103 10 -3 50 -30 40 -37 0 -3 30 20 6 3 34 33 30 4 46 46 27 0 47 44 -24 26 20 -23 37 -40 10 -30 40 13 23 24 -13 40 20 10 50 -20 27 0 53 -30 37 -27 0 -43 36 16 44 -23 16 7 27 -20 57 -50 83 -7 -3 -7 0 -3 -4 -7 -3 -3 -3 -3 -7 -4 -7 0 -3 -3 -7 0 -6 -3 -4 -7 -3 -3 -3 -7 -4 -3 -3 -7 0 -7 0 -6 0 -4 0 -6 0 -7 0 -7 0 -3 0 -7 3 -6 0 -4 4 -6 0 -4 3 -6 7 -4 3 -3 3 -7 4 -3 3 -7 3 -3 0 -7 4 -6 0 -4 3 -6 0 -7 0 -7 0 -3 -3 -7 0 -6 0 -4 0 -6 0 -7 3 -3 0 -7 0 -7 -3 -6 0 -4 -4 -6 0 -4 -3 -6 -3 -4 -4 -6 -3 -4 -3 -6 -4 -4 -3 -3 -3 -10 -7 3 0 -20 -13 10 -10 -3 -7 -73 -10 10 -33 -17 -20 37 -100 -57 -47 7 -53 -14 -4 50 -80 -16 -66 16 -34 -23 -70 23 -46 -6 -20 30 -37 0 -47 33 0 30 -50 27 -110 20 -16 -10 -27 10 -33m-54 810l7 -7 3 -3 0 -7 0 -7 0 -6 0 -4 0 -6 4 -7 0 -3 6 -4 4 -3 6 -3 0 -7 0 -7 4 -3 3 -7 3 -3 0 -7 4 -3 3 -7 3 -3 4 -7 3 -3 0 -7 3 -3 7 -3 7 -4 3 -3 3 -3 4 -7 3 -3 3 -7 4 -3 -7 -4 -7 4 -6 0 -4 3 -3 7 -7 3 -3 3 -3 7 -4 3 0 7 -3 3 -3 7 -4 3 -3 4 -7 6 -3 4 -3 3 0 7 -4 6 0 4 -3 6 -3 4 -4 3 -6 3 -4 7 -3 3 0 7 -3 7 0 3 0 7 0 6 0 7 3 3 3 7 0 7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil1","@d":"M-2001 973l-3 57 36 20 20 50 -33 20 -37 83 -20 7 0 57 -23 30 33 26 -23 117 13 13 -16 67 10 33 -37 14 -3 23 16 -3 0 13 -10 23 -20 4 -23 -7 -3 13 -14 0 -6 -6 -14 -17 -36 33 -27 -6 -13 23 6 7 -6 6 -20 -3 -10 20 -20 -10 -20 20 0 33 3 70 -37 17 -10 30 -20 -7 10 -23 -13 -30 -13 -30 -34 37 -43 -67 -33 17 -24 -17 -43 20 -20 -27 -37 17 -43 -23 -97 3 -53 -43 -93 13 -84 -30 -36 7 -40 -34 30 -63 -57 -50 17 -50 -17 -10 -50 -23 -23 20 -50 -10 20 -57 -7 -27 23 -16 -16 -44 43 -36 27 0 30 -37 0 -53 20 -27 33 20 33 -27 77 10 63 -16 4 -17 -10 -7 6 -13 14 0 30 -47 73 37 10 -27 50 17 17 -30 33 10 20 -10 17 40 36 23 60 10 27 -36 43 -14 54 17 30 -3 10 -24 40 4 16 -30 80 6 37 -23 17 13 26 -56 37 0 47 -40 26 6 17 30z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil1","@d":"M-1251 1010l83 -47 67 27 -17 27 24 16 -4 47 -16 13 60 7 43 57 -67 23 -60 -33 -33 56 33 34 10 -27 24 0 10 -10 6 7 -10 66 10 10 10 -3 7 0 3 0 7 0 7 0 6 0 4 3 3 7 3 3 4 4 6 6 4 4 3 3 7 3 3 4 7 3 3 0 7 3 6 0 4 4 6 0 7 3 3 3 4 4 6 3 4 3 3 7 3 3 0 7 4 7 0 3 -27 13 -27 -13 -50 3 -6 14 3 20 -23 26 0 10 16 4 -6 36 23 27 -3 43 -7 4 -10 -24 -10 10 20 30 -30 14 17 60 -20 46 53 84 57 0 10 43 -27 30 -3 37 -20 3 -10 30 -47 7 3 16 -30 44 -50 -40 -20 10 0 53 -36 23 -4 30 -23 14 -20 43 -7 20 -43 -17 -3 24 -77 16 -27 27 -6 40 -10 0 -7 -7 0 -26 -10 -4 -17 27 -43 -53 -43 -20 -17 -27 0 -3 -17 6 7 -56 -30 -27 20 -30 -27 -47 4 -26 50 -17 10 -27 43 -23 3 -20 -53 17 -13 -17 13 -27 -7 -10 -46 0 -7 -26 17 -17 -24 -20 -46 -3 -44 -184 -26 0 -10 -33 13 -20 33 -7 4 -23 -24 -50 17 -47 -13 -43 80 -50 20 13 10 -20 76 4 27 -30 40 0 -3 -27 -4 -27 -33 20 -10 -23 43 -27 -10 -20 -53 30 -20 -16 17 -50 10 0 6 0 4 0 6 0 7 3 3 0 7 3 3 -6 4 -4 0 -6 0 -7 -4 -3 -3 -7 -3 -3 23 -14 7 -26 43 -7 50 -60 77 30 43 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil1","@d":"M1042 1167l50 23 14 -10 70 10 46 53 30 -13 67 3 53 80 -10 44 30 16 -26 20 20 37 53 0 23 -27 30 0 7 -26 30 -7 3 10 0 40 44 13 -4 34 0 3 30 -3 -3 43 -87 23 14 34 -7 26 27 7 6 17 -20 23 14 37 -24 26 14 20 -24 17 20 7 -3 6 -17 7 0 33 -36 37 30 10 -17 67 -27 16 -23 -20 -13 14 -4 -24 -26 7 3 50 -17 17 37 43 -43 20 20 27 -4 16 -93 -3 -27 27 7 36 -30 14 -27 -10 -10 6 10 20 -63 74 -43 10 -20 -14 -14 24 -30 0 -76 36 -20 -16 -74 10 -10 23 -23 0 -20 -37 13 -20 -33 -23 7 -17 6 -3 0 -50 30 -10 24 -40 -10 -33 -44 -4 -20 -53 144 -153 -24 -44 40 -43 30 -97 20 -143 -6 -63 -30 -60 20 -10 16 -74 -36 -16 -7 -47 73 -103z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil1","@d":"M-921 1257l123 20 7 16 -17 30 20 17 7 3 10 -6 10 0 3 16 -10 7 -53 0 -23 -20 -44 10 -53 -50 20 -43z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil1","@d":"M-2841 2347l3 3 7 7 3 3 4 3 3 7 -3 7 0 6 -4 4 -3 6 3 7 0 3 7 4 3 -4 7 -3 3 -7 4 -3 0 -7 3 -3 7 0 3 7 3 3 7 3 7 0 3 4 7 3 3 7 3 0 7 0 7 0 3 3 3 7 4 3 0 7 0 6 0 4 3 6 3 4 4 0 0 -7 3 -3 7 0 6 0 7 0 3 3 4 3 3 7 0 7 3 3 0 7 4 6 3 4 7 3 3 3 3 4 7 -7 0 -3 0 -7 -3 -7 0 -3 -4 -7 -3 -3 -3 -7 -4 -3 -3 -7 -3 -3 -7 -3 -3 -7 -4 -3 -3 -4 -3 -6 -4 -4 -6 -3 43 3 0 30 10 7 17 -7 3 10 10 -3 30 -57 70 17 67 -17 26 27 24 -7 43 54 7 -24 30 -6 10 36 33 17 20 -13 3 -34 7 -13 20 3 13 24 20 -4 30 24 -13 63 23 17 7 26 -37 127 -50 57 -73 40 7 23 -27 33 -27 14 -30 -7 -3 33 37 -10 10 17 -17 53 -27 0 -3 30 -30 -16 7 -24 -37 10 -33 34 3 56 -30 30 -37 4 0 -44 -50 20 -13 30 -43 -16 -20 -27 -40 -13 3 -4 3 -6 4 -4 3 -3 3 -7 -3 -6 3 -7 -83 -60 -190 107 -10 40 -67 20 -16 -14 -24 17 -36 -7 -20 -20 46 -60 -33 -66 33 -54 -26 -36 23 -64 -13 -73 6 -60 14 -10 -50 -93 6 -37 7 0 7 0 6 0 4 0 6 -3 7 -4 3 -3 7 -3 3 -4 4 -3 3 -7 3 -3 0 -7 4 -6 0 -4 3 -6 3 -4 0 -6 4 -7 3 -3 3 -7 4 -3 3 -7 3 -3 4 -7 0 -3 3 -7 3 -3 7 -4 3 -3 4 -7 3 -3 7 -3 3 -4 3 -6 7 -4 3 0 7 -3 7 0 3 0 7 0 6 -3 7 0 3 0 7 0 3 -4 7 -6 3 -4 4 -3 6 -3 7 0 3 -4 4 -3 3 -3 10 0 7 0 6 0 7 0 3 0 7 0 7 3 6 0 4 0 6 0 7 3 3 4 7 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil1","@d":"M-2301 3207l93 23 77 -53 10 36 20 0 90 -80 3 -33 57 -10 23 63 50 -10 27 14 47 -30 30 -44 16 4 7 26 30 27 30 -40 30 -13 30 36 43 -16 34 36 110 30 23 27 20 -7 57 20 6 24 -13 23 -7 0 -3 3 -7 4 -3 3 -3 3 -7 4 -3 6 -4 4 -6 3 -4 3 -3 4 -3 6 -4 4 0 6 -6 4 -4 0 -6 0 -7 0 -7 3 -3 3 -7 4 -3 0 -7 3 -3 3 -7 4 -3 3 -7 3 -3 4 -3 3 23 27 7 3 50 -47 50 -10 0 -20 60 -20 13 -20 27 0 6 0 7 0 7 0 3 0 7 0 6 0 10 0 7 0 7 0 6 0 4 0 6 0 7 0 3 -3 4 0 26 0 40 -30 7 17 7 53 33 7 -17 80 30 16 44 100 46 50 -6 130 -44 17 -83 -37 -23 17 -54 0 -10 57 -60 -4 -66 70 -64 7 -43 20 -33 -17 -44 24 -60 -27 -6 -43 -54 -10 -16 16 -24 -16 17 -67 23 0 4 -40 16 -7 -10 -40 -60 4 -20 50 -26 16 -107 -33 -23 30 -20 -50 -60 47 -7 26 -37 4 -36 23 3 -60 -53 -40 -24 17 -23 73 -13 13 -7 4 -133 -134 36 -90 -16 -26 3 -30 -7 0 -3 0 -7 0 -6 0 -4 3 -6 3 -4 0 -6 7 -4 3 -3 7 -3 3 -7 0 -3 0 -7 -3 -7 0 -3 -3 -3 -4 -7 -6 20 -70 -23 -14 -44 7 27 -97 -3 -60 23 -16z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil1","@d":"M-1984 3720l36 -23 10 26 -23 60 -27 14 27 70 -7 13 -50 -3 -20 26 -16 50 23 37 -27 10 -46 -13 23 63 50 27 -7 30 -30 -4 -23 20 -27 90 -30 7 -63 0 -13 10 6 23 -13 10 -43 24 -30 36 -40 0 -20 50 -90 57 -4 70 27 50 3 43 -10 34 -30 20 -26 -4 -50 40 -14 -30 30 -20 -10 -20 -26 -10 -47 10 -50 47 3 33 -20 40 -96 20 -44 30 -96 -46 -4 -24 -30 -20 -23 4 -13 33 -60 -13 -10 -44 -120 -23 10 -50 -80 -27 -90 24 -30 -74 -70 -110 -20 -13 3 -3 3 -7 4 -3 3 -7 3 -3 0 -7 -3 -7 0 -6 0 -4 0 -6 0 -7 0 -3 0 -7 3 -7 0 -6 4 -4 3 -6 3 -4 4 -3 3 -7 3 -3 4 -3 3 -7 3 -7 0 -3 4 -7 0 -6 -4 -4 0 -6 -3 -7 -7 -3 0 -7 0 -7 0 -6 0 -7 0 -3 0 -7 4 -7 3 -3 3 -3 7 -4 3 -6 4 -4 6 -3 4 -3 3 -4 7 -3 3 -3 7 -4 3 -3 7 -3 3 -4 3 -3 7 -3 3 -4 7 -3 3 -3 4 -4 6 -6 4 -4 3 -3 7 -3 3 -4 3 -3 7 -7 3 -3 -3 -30 53 -80 -6 -40 -27 -30 -73 0 6 -43 -56 -30 6 -47 20 3 24 -36 -10 -4 6 -16 27 -24 30 7 -17 17 7 33 17 -7 26 -46 -26 -20 10 -17 90 37 46 3 4 33 26 17 -33 53 17 40 43 10 43 -10 40 30 7 -20 87 17 13 -7 20 4 10 46 40 10 50 40 53 -53 20 3 7 34 33 -34 14 20 53 -16 13 -24 77 44 43 -20 10 -30 -16 -24 20 -16 33 0 30 33 37 -3 23 -47 7 -53 23 -14 43 20 57 -23 13 -40 27 17 7 0 0 3 -4 7 0 6 0 4 0 6 -3 7 0 7 0 3 -3 7 -4 6 -3 4 -3 6 -4 4 -3 3 -7 3 -3 4 -7 3 -3 3 -7 0 -3 -3 -3 -7 -4 -3 0 -7 -6 0 -4 4 0 3 0 7 0 6 0 7 0 3 -3 7 0 7 -3 3 0 7 -4 6 0 7 0 3 4 10 3 4 7 -4 -4 -6 0 -4 0 -6 0 -7 0 -7 4 -3 6 -3 4 -4 6 -3 4 -3 6 0 4 -4 6 -3 4 -3 6 -4 4 -3 6 -3 4 -4 3 -6 3 -4 4 -6 3 -4 3 -6 0 -4 4 -6 3 -7 0 -3 3 -7 0 -7 4 -3 3 -7 0 -3 7 -3 3 -4 7 -3 6 0 7 3 3 4 4 6 3 4 3 6 4 4 3 3 3 7 7 3 3 0 7 3 3 7 0 3 4 7 3 7 0 3 3 7 4 3 6 3 10 0 -3 -3 0 -7 -3 -6 -4 -4 -3 -6 -3 -4 3 -6 3 -7 -3 -3 -3 -4 -4 -3 -6 -3 -4 -4 -6 -3 -4 -3 -6 -4 -4 -3 0 -7 7 -3 3 3 7 0 7 -3 3 0 57 -30m-437 303l0 4 7 0 6 0 4 -4 6 -3 4 -3 6 -4 4 -3 6 0 7 -3 3 0 7 -4 7 -3 3 -3 7 -4 3 -3 3 -3 7 -4 3 -3 4 -3 3 -7 10 -7 -7 0 -6 0 -7 0 -3 4 -7 3 -3 3 -7 4 -3 3 0 7 -7 3 -3 3 -7 0 -7 4 -3 3 -7 0 -6 3 -4 0 -6 4 -7 0 -3 3 -4 7 -3 6m30 60l3 -3 7 0 7 0 6 3 4 0 6 0 7 4 3 0 7 3 7 0 6 0 4 0 6 -3 7 0 3 -7 7 0 3 0 7 -3 7 0 6 0 4 0 6 0 7 0 7 0 3 3 7 3 3 4 0 6 3 7 4 3 3 4 7 3 3 3 7 4 3 3 3 3 7 4 3 3 7 3 7 0 3 -6 0 -7 -3 -3 -4 -7 -3 -3 -7 0 -6 -4 -4 -3 -6 0 -4 -3 -6 -7 -4 -3 -3 -4 -3 -6 3 -7 0 -3 3 -7 0 -7 -3 -3 -7 0 -6 0 -4 3 -6 4 -4 3 -6 3 -7 0 -3 0 -7 0 -7 0 -6 0 -4 0 -6 0 -7 0 -3 4 -7 3 -3 3 -7 0 -7 4 -6 0 -4 0 -6 -4 -7 0 -3 -3 -7 -3 -3 -4 -7 0 -7 4 -3 3 0 7 0 6z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil1","@d":"M-2818 4783l4 17 26 7 -20 33 20 27 -36 20 -7 40 -17 3 -20 -20 -116 23 -44 60 7 17 80 10 0 33 47 90 -30 17 6 37 -23 13 27 37 -14 40 4 86 -27 30 17 64 -14 40 27 30 -17 50 -13 6 -20 -10 -23 -56 -57 -70 -217 -140 10 -27 -6 -3 -30 16 6 14 -10 6 -80 -33 -113 13 -27 14 -10 -7 -20 -37 -6 -13 -4 -7 0 -6 0 -7 0 -7 0 -3 0 -7 0 -6 0 -4 -3 -6 0 -7 0 -7 0 -3 0 -7 0 -6 0 -7 0 -3 -3 -7 0 -7 0 -6 0 -4 0 -6 0 -7 0 -7 0 -3 0 -7 0 -6 -4 -7 0 -7 0 -3 -3 -7 0 -3 -3 -7 -4 -3 -6 -7 -4 -3 -3 -3 -3 -7 -7 -7 47 -73 16 -73 77 -64 30 -106 70 -7 13 -30 57 13 47 -130 80 27 -10 50 120 23 10 44 60 13 13 -33 23 -4 30 20 4 24 96 46z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil2","@d":"M-348 880l47 -10 20 40 30 -30 83 17 7 50 -20 53 -27 27 27 33 43 7 4 -50 16 -10 10 6 -6 20 20 20 30 -6 146 70 60 3 44 -13 13 33 -50 10 -17 47 4 46 -30 27 -67 37 -7 40 -56 0 -27 70 -27 -7 -16 23 10 37 -37 37 -7 33 14 23 -30 37 -17 63 17 70 50 54 -50 86 -4 14 -46 -10 -30 13 -60 -40 -24 10 -40 -30 -43 -3 -27 -20 0 -34 44 -56 53 3 13 -20 -3 -13 -7 -4 -3 -3 -7 -3 -3 -4 -7 0 -3 -3 -7 -3 -6 -4 -4 -3 -6 0 -4 -3 -6 -4 -7 0 -3 -3 -7 0 -7 -3 -3 -4 -3 -3 0 -7 0 -6 -4 -7 -6 -7 -4 -3 -6 -7 -4 -3 -3 -3 -3 -4 -7 -3 -3 -7 -4 -3 -6 -3 -4 -4 -3 -3 -13 -3 -7 -4 -7 0 -3 0 -7 0 -6 0 -7 0 -3 0 -4 -3 -6 -7 -4 -3 -3 -7 -3 -3 -4 -3 -3 -4 -7 -3 -3 0 -7 0 -6 0 -7 0 -3 0 -7 -3 -7 0 -3 -4 -7 -3 -3 -3 -7 -4 -3 -3 -7 0 -3 -3 -7 -4 -6 0 -4 -3 -6 0 -7 0 -7 0 -3 -3 -7 0 -6 0 -7 -4 -3 0 -7 -3 -7 0 -3 0 -7 -3 -6 0 -4 -4 -6 0 -7 0 -7 -3 37 -7 13 -50 -13 -26 -23 20 -24 -30 47 -37 27 20 36 -17 -20 -56 27 -14 -3 -36 23 -34 -10 -36 23 -44 40 10 20 -26 27 -7 13 -60 60 -47 -6 -60 43 -10 23 -46 30 -7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil2","@d":"M-391 1827l43 3 40 30 24 -10 60 40 30 -13 46 10 4 -14 50 -86 -50 -54 -17 -70 17 -63 30 -37 -14 -23 7 -33 37 -37 -10 -37 16 -23 27 7 27 -70 56 0 7 -40 67 -37 -4 27 17 16 -17 24 7 36 -13 20 16 17 -16 27 23 3 -3 60 46 23 -53 104 17 6 13 -26 33 6 17 -46 0 -17 10 -10 7 3 6 50 -16 40 6 130 -13 10 -17 -26 -30 66 60 30 60 0 77 80 7 80 73 27 10 37 63 40 20 -17 24 3 66 164 27 10 0 -14 7 0 6 14 37 0 -3 6 -4 4 -3 3 -7 3 -6 0 -4 0 -6 0 -7 0 -3 4 -7 3 0 7 0 6 -3 4 0 6 0 7 -7 0 -7 0 -3 0 -7 -3 -6 -4 -4 0 -6 0 -7 0 -3 4 -7 3 0 10 3 3 7 0 7 0 6 4 4 0 6 0 7 3 3 3 7 0 7 0 3 0 7 -3 3 -7 3 -3 0 -7 4 -6 3 -4 3 -6 4 -4 6 0 4 -3 6 0 7 -3 3 -4 4 -3 3 -7 3 -3 4 -7 3 -3 3 -7 0 -6 4 -4 0 -6 0 -7 3 -3 3 -4 7 -3 7 -3 6 0 4 0 6 0 7 0 3 3 7 3 3 7 4 3 3 4 7 3 6 0 10 0 -3 -7 -3 -3 -4 -7 -3 -3 -3 -3 -7 -4 -3 -3 -7 -3 7 -14 50 10 -7 17 33 23 -13 20 20 37 -3 23 0 4 -34 23 -6 37 -47 26 7 40 -80 -3 -17 23 -33 -53 -120 -47 -50 -46 -14 13 -36 -17 -44 -53 -46 -3 -4 30 -3 3 0 -3 -23 3 0 43 -20 14 30 23 -34 60 -43 -33 -23 46 -30 0 -17 -26 -33 50 -30 -14 10 -36 -24 6 -43 -20 -27 27 -33 -7 -27 17 7 33 -23 17 -24 -3 -16 -24 -54 54 10 20 -13 26 -83 7 -104 -103 -70 -37 -16 -23 -54 20 -50 -24 -16 -100 23 -36 10 -50 37 6 6 37 50 -23 -26 -60 6 -44 -13 -30 17 -10 20 7 36 -43 24 0 16 -40 -40 -57 24 -43 -27 -77 0 -33z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil2","@d":"M-914 1427l33 -47 33 27 -10 53 10 3 7 0 3 4 4 3 3 7 3 3 7 0 7 3 6 0 4 0 6 0 7 -3 3 -3 7 0 7 0 3 -4 7 0 6 0 7 0 3 4 7 0 3 3 7 3 7 0 6 0 4 4 6 0 7 3 3 0 7 0 7 3 3 0 7 4 6 0 7 0 3 3 7 0 7 0 6 0 4 3 6 0 7 4 3 3 7 0 3 3 7 4 3 3 7 3 3 4 7 0 7 3 3 0 7 0 6 0 7 0 3 0 7 3 3 4 4 3 3 3 3 7 4 3 6 7 4 3 3 0 7 0 6 0 7 0 3 0 7 0 7 4 13 3 3 3 4 4 6 3 4 3 3 7 7 3 3 4 3 3 4 3 6 7 4 3 6 7 4 7 0 6 0 7 3 3 3 4 7 3 7 0 3 3 7 0 6 4 4 3 6 0 4 3 6 4 7 3 3 3 7 0 3 4 7 3 3 3 7 4 3 13 -13 20 -53 -3 -44 56 0 34 27 20 0 33 -57 30 -76 -23 -4 -47 -26 -23 13 -37 -33 -7 -40 17 -20 -40 -67 3 -33 24 -7 -4 -10 14 0 20 -37 50 -90 -14 20 -53 -16 -23 -27 13 -7 47 -33 23 -23 -10 -10 -43 -57 0 -53 -84 20 -46 -17 -60 30 -14 -20 -30 10 -10 10 24 7 -4 3 -43 -23 -27 6 -36 -16 -4 0 -10 23 -26 -3 -20 6 -14 50 -3 27 13 27 -13 3 10 0 7 3 3 4 7 3 3 3 7 4 3 3 7 3 3 4 7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil2","@d":"M-3671 1377l17 20 -10 33 73 10 3 7 -10 10 20 13 -3 0 10 7 3 3 4 3 6 4 4 3 6 3 4 4 6 3 4 3 6 0 4 4 6 0 7 3 7 0 3 0 7 -3 6 0 4 0 6 0 7 0 3 3 7 0 7 0 6 0 4 -3 6 0 7 -4 3 0 7 -3 3 -3 7 -4 3 -3 4 -3 6 -7 4 -3 6 0 4 -4 6 0 7 -3 3 0 7 0 7 0 6 0 4 0 6 0 7 0 7 0 3 3 7 4 3 3 7 3 3 4 0 6 3 7 0 3 4 7 3 7 3 3 7 3 3 4 7 0 7 3 50 -83 50 10 23 -20 50 23 17 10 -17 50 57 50 -30 63 -10 30 -34 -10 -40 34 -10 33 -30 27 0 23 20 17 -13 46 -30 17 -43 -33 -34 6 -10 70 -70 27 -26 -3 -27 23 -17 -37 -6 0 -17 -6 -13 23 -47 3 7 -33 -57 -23 -73 13 -20 17 -7 0 -3 -34 -14 0 -6 20 -27 0 -43 40 -44 7 -20 -10 4 -33 -24 -10 -6 -27 36 -50 40 -23 4 -27 -24 -20 -30 10 -6 -70 3 0 3 -7 4 -3 3 -7 0 -3 0 -7 0 -6 0 -7 -3 -3 3 -7 0 -7 -27 7 -16 -13 3 -40 -37 -37 -6 -100 93 -50 87 17 53 -20z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil2","@d":"M-2098 1627l-16 90 50 10 13 43 -53 107 10 20 60 -10 40 63 30 7 33 -34 27 4 33 46 37 -13 13 13 -10 27 17 13 23 0 20 -20 47 14 36 -27 60 3 17 24 30 3 -20 30 30 27 -7 56 17 -6 0 3 17 27 -10 43 -64 30 -133 23 -90 30 17 50 -17 24 -33 -10 -7 6 10 27 -43 37 6 30 -6 3 -20 -7 -20 24 -44 10 -26 30 -80 -47 -74 17 -30 -24 -20 4 -13 -24 -20 -3 -7 13 -26 -6 26 -47 -23 -83 17 -37 -17 -43 3 -4 40 -23 4 -23 -17 -14 10 -26 -30 -10 0 -50 -23 -37 0 -23 30 -24 3 -20 -7 -3 14 -63 -17 -20 27 -27 -47 -47 -3 -70 0 -33 20 -20 20 10 10 -20 20 3 6 -6 -6 -7 13 -23 27 6 36 -33 14 17 6 6 14 0 3 -13 23 7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil2","@d":"M752 2710l24 0 13 20 33 10 -6 37 70 20 23 36 43 17 -83 170 -90 103 -17 60 -56 40 -20 80 -57 70 -43 80 -47 -16 -17 -30 -36 -7 -24 40 -43 33 -23 -33 -67 3 -10 -63 -20 -7 -20 27 -37 -47 -26 -30 3 -43 30 -17 10 -30 40 0 30 -23 37 -87 0 -40 26 10 50 -16 10 -37 60 -57 -36 -46 43 -30 -23 -24 3 -70 -47 -3 -3 -37 27 -13 13 13 37 -20 10 -46 20 -27 63 43 47 -10 13 30 73 -33z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil2","@d":"M-2148 4220l40 33 54 0 6 50 84 30 56 60 44 17 46 57 104 30 20 6 16 34 -3 36 30 64 -60 113 -3 3 -7 147 43 13 -20 40 40 27 -26 47 30 10 60 76 -7 14 43 63 -53 -7 -37 44 -43 6 -13 80 -40 34 -34 -27 -10 -43 -36 6 -17 37 -27 10 -33 0 -10 -30 -23 -3 -27 -70 -50 16 -17 -16 -10 -60 -30 -7 -30 -50 4 -67 -4 -6 -16 3 -4 -3 10 -27 -30 -47 -43 7 0 17 -7 0 -10 -14 -3 17 -10 3 -33 -6 -97 66 -30 -33 0 -33 3 -4 7 0 7 -3 3 -3 7 0 3 -4 7 -3 3 -3 7 0 6 -4 7 -3 -7 -47 -16 -13 -4 -40 -36 -23 0 -54 -37 -30 0 -33 -57 -73 30 -20 10 -34 -3 -43 -27 -50 4 -70 90 -57 20 -50 40 0 30 -36 43 -24 13 -10 -6 -23 13 -10 63 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil2","@d":"M-1714 4497l10 -37 213 23 53 -43 110 20 24 -37 16 30 40 7 40 -20 14 -33 20 -7 113 23 40 -26 20 23 63 -17 17 10 73 -53 44 23 53 -10 13 70 50 14 0 70 24 13 10 7 -7 53 -60 87 -27 13 -10 57 -26 16 -27 -6 -47 40 -63 123 7 53 -47 30 -10 27 -33 -10 -30 13 -50 -33 -27 0 -40 40 -47 20 -80 -40 -60 63 -80 37 -23 -3 -27 70 -56 10 -34 -17 -43 -63 7 -14 -60 -76 -30 -10 26 -47 -40 -27 20 -40 -43 -13 7 -147 3 -3 60 -113 -30 -64 3 -36 -16 -34 -20 -6m846 186l7 -3 7 -3 3 -4 3 -6 4 -4 0 -6 -4 -4 -3 -6 -3 -7 0 -3 0 -7 3 -3 3 -7 7 -3 3 -4 4 -6 3 -4 3 -3 0 -7 0 -3 -6 0 -4 7 -3 3 -3 7 -4 3 -3 3 -3 7 -7 3 3 4 0 6 0 7 -3 7 0 3 0 7 -3 6 -4 4 0 6 -3 7 3 3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil2","@d":"M-721 4687l120 40 77 76 -47 37 -3 50 13 20 -27 67 7 40 -33 -4 -4 14 10 50 -10 16 -40 10 -3 14 -50 23 -53 47 -14 120 -13 10 -47 -14 -13 -20 -37 -10 -56 130 -30 -3 -10 10 26 90 -53 47 27 50 -67 40 3 26 -120 7 -23 23 -40 14 -93 -40 -74 16 -30 -10 7 -43 -33 -40 -127 -37 -33 -33 -64 -27 -6 -23 -30 -3 -10 -77 -20 -43 40 -34 13 -80 43 -6 37 -44 53 7 34 17 56 -10 27 -70 23 3 80 -37 60 -63 80 40 47 -20 40 -40 27 0 50 33 30 -13 33 10 10 -27 47 -30 -7 -53 63 -123 47 -40 27 6 26 -16 10 -57 27 -13z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil2","@d":"M-524 4803l23 20 23 -10 24 17 43 0 17 23 -10 40 3 104 103 146 54 0 63 47 -77 97 -16 -7 0 3 10 7 -64 220 -56 40 0 33 -34 24 -3 26 -37 30 -36 14 -57 -74 -43 -13 -37 20 -33 -10 -47 10 -43 80 -50 23 -34 -3 -23 -17 -27 7 -40 -40 -120 3 -3 -26 67 -40 -27 -50 53 -47 -26 -90 10 -10 30 3 56 -130 37 10 13 20 47 14 13 -10 14 -120 53 -47 50 -23 3 -14 40 -10 10 -16 -10 -50 4 -14 33 4 -7 -40 27 -67 -13 -20 3 -50 47 -37z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil3","@d":"M-3514 537l-10 33 10 27 -20 16 -27 110 -30 50 -33 0 0 47 -30 37 6 20 -23 46 23 70 -16 34 16 66 -50 80 -33 7 -17 -13 -53 -7 -17 7 4 16 -27 -6 -10 13 -20 -17 -10 10 -7 24 -30 0 -10 26 -73 -10 -97 40 -10 34 -23 10 -37 -20 -3 26 -7 4 -6 -14 -17 4 -10 33 -47 37 -10 -7 0 -27 -16 -3 -4 -17 30 -73 40 -27 -13 -23 -43 -7 -14 34 -30 -44 24 -20 -20 -30 6 -33 -3 -3 -23 -10 0 6 -24 -13 -16 27 -20 -27 20 -30 -7 -50 20 -37 47 -16 0 -14 -20 10 0 -26 40 -27 36 13 30 -33 20 3 7 -13 -10 -27 73 -36 70 40 57 -20 33 6 60 -43 30 17 14 -4 0 -23 16 -10 30 33 30 -6 7 -30 -27 0 -46 -34 10 -43 16 -7 -6 -10 16 -13 17 0 37 -47 13 10 30 -26 20 3 7 -43 40 0 46 -37 20 0 0 33 -3 7 7 10 13 3 7 -23 66 -37 14 7 -20 27z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil3","@d":"M-3174 727l20 -27 -4 -27 40 -10 80 20 20 -10 17 17 47 -13 70 16 90 -6 56 -17 64 20 46 -23 30 10 34 -34 36 -13 70 57 7 20 150 -4 67 20 36 37 47 -10 30 17 290 56 -17 30 14 30 -7 24 -40 -17 -13 20 -47 7 -7 53 -53 3 -17 -30 -26 -6 -47 40 -37 0 -26 56 -17 -13 -37 23 -80 -6 -16 30 -40 -4 -10 24 -30 3 -54 -17 -43 14 -27 36 -60 -10 -36 -23 -17 -40 -20 10 -33 -10 -17 30 -50 -17 -10 27 -73 -37 -30 47 -14 0 -6 13 10 7 -4 17 -63 16 -77 -10 -33 27 -33 -20 -10 -50 -40 -20 -24 13 -13 -23 30 -40 40 -10 23 -37 -26 -20 -44 24 0 -47 -46 -27 -4 -46 -33 -30 -3 -34 -20 -6 3 -30 37 0 30 -40z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil3","@d":"M-1831 823l157 0 220 -73 20 20 -34 17 4 16 13 4 40 -37 80 -30 77 33 0 14 -14 3 17 20 50 -3 7 10 46 3 44 33 0 27 -17 13 -77 -3 -63 47 10 73 -43 0 -77 -30 -50 60 -43 7 -7 26 -23 14 -7 0 -7 -4 -6 0 -4 0 -6 -3 -7 0 -3 3 -7 4 -3 3 -4 7 -3 3 -3 3 -7 4 -3 3 -7 0 -7 -3 -3 0 -7 -4 -6 0 -7 0 -3 4 -7 0 -3 3 -4 7 4 6 3 4 3 3 7 3 7 -3 6 0 7 0 7 -3 6 0 7 0 3 0 7 -4 7 -3 3 0 7 -3 -17 50 20 16 53 -30 10 20 -43 27 10 23 33 -20 4 27 3 27 -40 0 -27 30 -76 -4 -57 -36 30 -17 -3 -20 -30 17 -14 -7 -10 -77 -60 -13 -33 -53 -23 -7 -57 27 -87 3 -20 -50 -36 -20 3 -57 53 -3 7 -53 47 -7 13 -20 40 17 7 -24 -14 -30 17 -30z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil3","@d":"M-778 1040l10 30 -40 27 4 23 26 13 77 0 80 44 10 36 -23 34 3 36 -27 14 20 56 -36 17 -27 -20 -47 37 24 30 23 -20 13 26 -13 50 -37 7 -3 -3 -7 0 -3 -4 -7 0 -6 0 -7 0 -3 4 -7 0 -7 0 -3 3 -7 3 -6 0 -4 0 -6 0 -7 -3 -7 0 -3 -3 -3 -7 -4 -3 -3 -4 -7 0 -10 -3 10 -53 -33 -27 -33 47 -4 -7 -3 -3 -3 -7 -4 -3 -3 -7 -3 -3 -4 -7 -3 -3 0 -7 -3 -10 0 -3 -4 -7 0 -7 -3 -3 -3 -7 -4 -3 -6 -3 -4 -4 -3 -3 -7 -3 -6 0 -4 -4 -6 0 -7 -3 -3 0 -7 -3 -3 -4 -7 -3 -3 -3 -4 -4 -6 -6 -4 -4 -3 -3 -3 -7 -4 -3 -6 0 -7 0 -7 0 -3 0 -7 0 -10 3 -10 -10 10 -66 -6 -7 -10 10 -24 0 -10 27 -33 -34 33 -56 60 33 67 -23 -43 -57 -60 -7 16 -13 4 -47 -24 -16 17 -27 57 3 3 -36 30 3 20 40 -13 40 93 43 83 7 -10 -40 60 -10m-143 217l-20 43 53 50 44 -10 23 20 53 0 10 -7 -3 -16 -10 0 -10 6 -7 -3 -20 -17 17 -30 -7 -16 -123 -20z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil3","@d":"M1532 1380l114 27 3 6 20 47 23 13 40 -10 27 -43 67 -17 93 27 20 30 30 10 23 -23 40 6 20 -43 57 -10 80 -53 50 0 30 30 43 -10 0 56 20 14 37 -7 20 20 -10 40 -37 23 -26 -20 -24 37 10 63 34 14 20 30 -10 33 23 40 -10 50 -53 40 -24 43 -53 54 -60 23 -23 30 -14 -60 -56 -3 -60 26 -44 -46 -73 -14 -7 -43 4 -7 20 4 50 -30 -4 -17 -26 -20 26 -10 10 -37 -10 -30 -36 4 -34 -37 -33 10 -20 -27 -73 30 -64 -23 -16 -20 3 -13 23 0 0 -14 -10 -13 17 -47 -77 -13 -43 10 3 -43 -30 3 0 -3 4 -34 -44 -13 0 -40z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil3","@d":"M1396 2057l26 6 4 20 -27 20 47 30 3 54 57 26 -10 14 16 33 24 -3 -7 30 -20 3 3 7 30 10 0 23 -230 77 -23 40 -30 -10 -77 30 -140 176 24 27 33 -3 57 36 -4 4 -63 46 -50 64 -33 0 -7 -14 43 -10 -3 -30 -47 17 -40 70 -43 -17 -23 -36 -70 -20 6 -37 -33 -10 -13 -20 -24 0 -3 -10 33 -20 24 -37 -17 -53 23 -57 -13 -36 -27 -10 -6 -24 -7 -40 47 -26 6 -37 34 -23 0 -4 3 -23 23 0 10 -23 74 -10 20 16 76 -36 30 0 14 -24 20 14 43 -10 63 -74 -10 -20 10 -6 27 10 30 -14 -7 -36 27 -27 93 3 4 -16z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil3","@d":"M-601 4727l67 -124 63 -36 30 -47 33 20 47 -13 87 -64 3 -3 37 7 23 40 53 -10 44 -44 -17 -113 27 -30 3 -57 27 -26 20 -7 16 13 47 -40 47 -16 30 10 6 26 50 37 10 113 -43 60 7 50 50 14 16 33 -6 57 -30 56 6 34 7 10 67 103 43 40 43 13 7 27 -7 10 -10 -7 -13 7 -30 60 33 40 40 13 7 -3 -3 -17 3 0 20 24 -20 23 -113 40 -37 -23 -50 6 -27 17 4 10 -10 3 -54 -26 -20 16 -43 0 -70 54 -17 50 -23 0 -60 33 -63 -47 -54 0 -103 -146 -3 -104 10 -40 -17 -23 -43 0 -24 -17 -23 10 -23 -20 -77 -76z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil3","@d":"M-2468 4647l57 73 0 33 37 30 0 54 36 23 4 40 16 13 7 47 -7 3 -6 4 -7 0 -3 3 -7 3 -3 4 -7 0 -3 3 -7 3 -7 0 -3 4 0 33 30 33 97 -66 33 6 10 -3 3 -17 10 14 7 0 0 -17 43 -7 30 47 -10 27 4 3 16 -3 4 6 -4 67 30 50 30 7 10 60 17 16 50 -16 27 70 -44 3 7 37 -40 30 -23 -34 -30 30 -24 -6 -6 6 16 17 -6 20 -60 43 -70 17 -7 17 -43 36 -20 -3 -24 -37 -26 -3 -57 50 -10 -3 -10 -24 23 -20 0 -26 -33 -7 -17 10 17 30 -3 17 -30 33 -17 0 -13 -17 -24 -10 -33 4 -13 20 -84 13 -26 43 -100 -3 -64 -33 -43 -4 0 -3 -20 -13 -30 10 -27 -30 14 -40 -17 -64 27 -30 -4 -86 14 -40 -27 -37 23 -13 -6 -37 30 -17 -47 -90 0 -33 -80 -10 -7 -17 44 -60 116 -23 20 20 17 -3 7 -40 36 -20 -20 -27 20 -33 -26 -7 -4 -17 44 -30 96 -20 20 -40 -3 -33 50 -47 47 -10 26 10 10 20 -30 20 14 30 50 -40 26 4z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil3","@d":"M-2871 5540l0 3 43 4 64 33 100 3 26 -43 84 -13 13 -20 33 -4 24 10 13 17 17 0 30 -33 3 -17 -17 -30 17 -10 33 7 0 26 -23 20 10 24 10 3 57 -50 26 3 24 37 20 3 43 -36 23 30 7 40 -27 50 -33 10 -37 -30 -26 -4 -30 30 30 44 -24 66 -36 34 -37 10 -40 63 -47 -10 -6 3 3 20 43 10 20 -23 17 -3 30 3 43 80 10 60 10 7 17 -7 20 20 -43 60 -14 53 -6 0 -14 -13 -30 -3 -6 3 0 77 -90 43 -17 -3 -40 -37 -73 -17 -54 -66 -16 -7 -57 -3 -17 -14 -36 -63 -27 -17 -90 -170 17 0 26 47 7 3 20 -26 -3 -7 -17 3 -7 -13 0 -37 -36 -30 -44 -3 -33 -73 10 -24 53 -30 14 -60 13 -13 30 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M-1104 853l26 -10 37 20 -3 -30 46 -23 4 -20 73 3 23 -20 34 34 100 23 50 40 -10 23 10 17 -37 47 -3 63 -24 20 -60 10 10 40 -83 -7 -93 -43 13 -40 -20 -40 -30 -3 -3 36 -57 -3 -67 -27 -83 47 -10 -73 63 -47 77 3 17 -13 0 -27z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M-378 833l30 47 -30 7 -23 46 -43 10 6 60 -60 47 -13 60 -27 7 -20 26 -40 -10 -23 44 -80 -44 -77 0 -26 -13 -4 -23 40 -27 -10 -30 24 -20 3 -63 37 -47 -10 -17 10 -23 50 17 63 -14 40 17 127 -40 46 -37 10 20z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M-4108 1297l10 -34 97 -40 73 10 10 -26 30 0 7 -24 10 -10 20 17 10 -13 27 6 -4 -16 17 -7 53 7 17 13 33 -7 14 4 -7 53 57 47 -37 100 -53 20 -87 -17 -93 50 6 100 37 37 -3 40 16 13 27 -7 0 7 -3 7 3 3 0 7 0 6 0 7 0 3 -3 7 -4 3 -3 7 -3 0 -7 3 -3 4 -7 3 -7 0 -3 3 -7 0 -6 4 -4 3 -6 3 -4 4 -3 3 -7 3 -3 4 -7 3 -3 3 -7 0 -6 4 -4 0 -6 3 -7 0 -7 0 -3 0 -7 0 -6 0 -7 0 -3 0 -7 -3 -7 0 -3 0 -7 0 -6 0 -7 3 -3 3 -4 4 -6 3 -4 3 -6 4 -4 0 -6 0 -7 -4 -7 0 -3 4 -7 3 -3 0 -7 3 -3 4 -7 3 -3 3 -3 7 -4 3 -3 7 -3 3 -4 4 -3 6 -7 4 -3 3 -3 3 -4 4 -6 6 -4 4 -3 3 -73 40 0 -160 23 -13 7 3 6 -10 -6 -13 43 -47 83 -43 7 -40 -7 -7 -30 50 -70 13 0 -53 20 -3 54 -64 -7 -10 -40 30 -43 0 -17 -46 -27 -7 4 -10 26 -17 10 14 -3 10 10 10 13 -4 -3 -20 13 -3 -13 -53 33 -17 20 -43z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M1599 1510l43 -10 77 13 -17 47 10 13 0 14 -23 0 -3 13 16 20 64 23 73 -30 20 27 33 -10 34 37 36 -4 10 30 -10 37 -26 10 26 20 4 17 -50 30 -20 -4 -4 7 7 43 73 14 44 46 60 -26 56 3 14 60 -274 167 -70 126 -260 87 0 -23 -30 -10 -3 -7 20 -3 7 -30 -24 3 -16 -33 10 -14 -57 -26 -3 -54 -47 -30 27 -20 -4 -20 -26 -6 -20 -27 43 -20 -37 -43 17 -17 -3 -50 26 -7 4 24 13 -14 23 20 27 -16 17 -67 -30 -10 36 -37 0 -33 17 -7 3 -6 -20 -7 24 -17 -14 -20 24 -26 -14 -37 20 -23 -6 -17 -27 -7 7 -26 -14 -34 87 -23z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M-1308 2450l30 50 34 10 -4 23 24 37 -57 147 33 26 -13 50 33 14 10 -14 14 34 26 -4 -10 37 24 23 0 24 20 -7 30 20 0 50 26 13 14 24 -34 106 10 7 40 -27 17 84 0 3 -13 10 20 40 -57 17 -7 -17 -40 30 -26 0 -4 0 -3 3 -7 0 -6 0 -4 0 -6 0 -7 0 -7 0 -10 0 -6 0 -7 0 -3 0 -7 0 -7 0 -6 0 -27 0 -13 20 -60 20 0 20 -50 10 -50 47 -7 -3 -23 -27 3 -3 3 -4 7 -3 3 -3 7 -4 3 -3 7 -3 3 0 7 -4 3 -3 7 -3 7 0 6 0 4 0 6 -4 0 -6 4 -4 3 -6 3 -4 4 -3 6 -3 4 -4 3 -6 7 -4 3 -3 3 -3 7 -4 3 -3 7 0 13 -23 -6 -24 -57 -20 -20 7 -23 -27 -110 -30 -34 -36 -43 16 -30 -36 -30 13 -30 40 -30 -27 -7 -26 -16 -4 -30 44 -47 30 -27 -14 24 -56 -4 -27 10 -7 30 14 24 -60 56 -7 0 -97 24 -26 -4 -24 7 -6 17 13 40 -13 6 -50 47 -70 53 0 17 -87 27 -43 63 -24 90 -110 43 -13z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M3082 3223l-163 -76 -83 16 -10 -6 0 -47 -24 -17 20 -30 124 -10 16 -10 0 -10 14 24 16 -7 0 -3 4 -7 13 0 23 43 37 4 13 53 24 23 0 7 -20 -7 0 7 16 20 -20 33z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M-131 3167l67 3 3 -40 13 0 14 27 16 30 54 0 40 36 0 20 -47 20 -40 14 -37 -7 -43 -7 -40 -96z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M2509 3607l-7 10 -3 0 -60 53 -13 0 -54 -60 -73 10 -30 -10 -33 -70 13 -27 -47 -36 -73 30 -10 46 -7 0 -30 -43 -50 0 -13 -30 7 -27 113 -80 107 -113 36 -10 54 -47 66 -6 57 -37 17 3 3 4 -63 40 13 30 43 -20 7 3 -7 30 -33 7 10 36 70 34 53 -47 60 23 10 20 -13 64 -23 6 6 34 -53 60 -13 66 -7 14 -27 36 -3 4z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M242 3353l37 47 20 -27 20 7 10 63 67 -3 23 33 43 -33 24 -40 36 7 17 30 47 16 -7 47 -63 113 -7 57 0 7 27 83 46 83 -6 24 -4 6 37 84 90 103 0 23 -23 -23 -40 23 -14 -16 -30 23 -53 -20 -83 60 -67 3 0 24 40 3 7 13 -67 47 -17 -37 -50 -16 -46 23 -20 -27 -27 0 -13 -16 0 -67 -24 -43 -103 10 -73 -84 40 -106 0 -4 10 -76 -100 -20 -34 -27 -26 10 -34 -40 -13 -20 13 -87 64 -86 36 10 27 -14 -3 -43 36 -87 -3 -46 -3 -17 36 -17 80 -10 44 14 23 76 53 -20z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M2382 3780l-23 -20 3 -3 24 -4 3 7 -7 20z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M1499 4057l-13 -27 -7 0 -57 0 -10 -3 -6 -54 3 -6 40 -10 3 -10 -6 -34 36 -30 94 -43 43 17 -7 20 17 20 0 10 -40 33 -23 43 -40 20 -4 47 -23 7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M699 4060l130 50 0 17 27 33 -70 50 -14 30 -60 13 -33 67 -33 -3 -117 63 -23 30 -10 50 -20 -7 -30 20 0 94 -64 33 -3 33 -7 94 -26 13 -34 93 -43 -13 -43 -40 -67 -103 -7 -10 -6 -34 30 -56 6 -57 -16 -33 -50 -14 -7 -50 43 -60 -10 -113 67 -23 -33 -64 20 -16 13 16 27 0 20 27 46 -23 50 16 17 37 67 -47 -7 -13 -40 -3 0 -24 67 -3 83 -60 53 20 30 -23 14 16 40 -23 23 23 0 -23z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M1519 4193l-10 -56 27 -30 6 0 34 46 23 10 20 -10 3 0 4 7 -4 7 -23 13 -33 -17 -14 0 -33 30z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M-1934 5297l23 3 10 30 33 0 27 -10 17 -37 36 -6 10 43 34 27 20 43 10 77 30 3 6 23 64 27 33 33 127 37 33 40 -7 43 -33 -13 -77 23 -66 -20 -34 27 -156 -7 -64 94 -53 20 -20 43 -57 17 -126 -7 -134 57 -43 73 -20 -20 -17 7 -10 -7 -10 -60 -43 -80 -30 -3 -17 3 -20 23 -43 -10 -3 -20 6 -3 47 10 40 -63 37 -10 36 -34 24 -66 -30 -44 30 -30 26 4 37 30 33 -10 27 -50 -7 -40 -23 -30 7 -17 70 -17 60 -43 6 -20 -16 -17 6 -6 24 6 30 -30 23 34 40 -30 -7 -37 44 -3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-3514 537l20 -27 -14 -7 -66 37 -7 23 -13 -3 -7 -10 3 -7 0 -33 -20 0 -46 37 -40 0 -7 43 -20 -3 -30 26 -13 -10 -37 47 -17 0 -16 13 6 10 -16 7 -10 43 46 34 27 0 -7 30 -30 6 -30 -33 -16 10 0 23 -14 4 -30 -17 -60 43 -33 -6 -57 20 -70 -40 -73 36 10 27 -7 13 -20 -3 -30 33 -36 -13 -40 27 0 26 20 -10 0 14 -47 16 -20 37 7 50 -20 30 20 27 16 -27 24 13 0 -6 23 10 3 3 -6 33 20 30 -24 20 30 44 14 -34 43 7 13 23 -40 27 -30 73 4 17 16 3 0 27 10 7 47 -37 10 -33 17 -4 6 14 7 -4 3 -26 37 20 23 -10 -20 43 -33 17 13 53 -13 3 3 20 -13 4 -10 -10 3 -10 -10 -14 -26 17 -4 10 27 7 17 46 43 0 40 -30 7 10 -54 64 -20 3 0 53 70 -13 30 -50 7 7 -7 40 -83 43 -43 47 6 13 -6 10 -7 -3 -23 13 0 160 73 -40 3 -3 -73 60 -10 83 23 47 24 156 -10 40 23 64 10 103 20 33 7 7 6 87 -66 250 3 0 23 -34 20 -80 10 0 7 10 0 7 -20 20 -3 10 0 20 23 10 0 3 -17 4 -20 50 -33 0 -10 26 -60 214 -37 83 27 40 0 3 -123 287 -20 103 -94 117 -73 33 -7 30 10 24 0 43 -53 113 0 94 -57 120 14 26 -7 20 7 14 80 23 100 -17 20 -13 30 -83 36 -50 14 0 3 50 27 50 -4 13 -70 33 4 17 36 -3 0 3 -16 7 -4 13 -3 0 -17 -10 -20 7 7 30 0 3 -10 -13 -23 -4 -4 -3 7 -3 -10 -24 -13 0 -44 14 -6 13 33 83 -20 74 7 6 16 -10 57 0 110 -53 63 33 10 -36 10 0 10 6 4 10 -20 37 16 17 -3 6 -53 -16 0 10 -7 0 -17 -17 -3 0 30 50 10 127 -33 123 -37 57 43 30 -10 126 20 14 0 6 -10 7 -20 70 10 107 -53 103 7 37 -37 53 3 30 -50 97 24 16 70 -43 93 -10 33 -37 44 17 3 -13 7 3 3 17 27 16 56 -10 54 27 60 -13 113 66 110 -3 127 -87 60 -20 20 4 13 -10 -3 -47 6 13 20 37 10 7 27 -14 113 -13 80 33 10 -6 -6 -14 30 -16 6 3 -10 27 217 140 57 70 23 56 20 10 13 -6 17 -50 30 -10 20 13 -30 0 -13 13 -14 60 -53 30 -10 24 33 73 44 3 36 30 0 37 7 13 17 -3 3 7 -20 26 -7 -3 -26 -47 -17 0 90 170 27 17 36 63 17 14 57 3 16 7 54 66 73 17 40 37 17 3 90 -43 0 -77 6 -3 30 3 14 13 0 24 6 -24 14 -53 43 -60 43 -73 134 -57 126 7 57 -17 20 -43 53 -20 64 -94 156 7 34 -27 66 20 77 -23 33 13 30 10 74 -16 93 40 40 -14 23 -23 120 -7 120 -3 40 40 27 -7 23 17 34 3 50 -23 43 -80 47 -10 33 10 37 -20 43 13 57 74 36 -14 37 -30 3 -26 34 -24 0 -33 56 -40 64 -220 -10 -7 0 -3 16 7 77 -97 60 -33 23 0 17 -50 70 -54 43 0 20 -16 54 26 10 -3 -4 -10 27 -17 50 -6 37 23 113 -40 20 -23 -20 -24 -3 0 3 17 -7 3 -40 -13 -33 -40 30 -60 13 -7 10 7 7 -10 -7 -27 34 -93 26 -13 7 -94 3 -33 64 -33 0 -94 30 -20 20 7 10 -50 23 -30 117 -63 33 3 33 -67 60 -13 14 -30 70 -50 -27 -33 0 -17 -130 -50 -90 -103 -37 -84 4 -6 6 -24 -46 -83 -27 -83 0 -7 7 -57 63 -113 7 -47 43 -80 57 -70 20 -80 56 -40 17 -60 90 -103 83 -170 40 -70 47 -17 3 30 -43 10 7 14 33 0 50 -64 63 -46 4 -4 -57 -36 -33 3 -24 -27 140 -176 77 -30 30 10 23 -40 230 -77 260 -87 70 -126 274 -167 23 -30 60 -23 53 -54 24 -43 53 -40 10 -50 -23 -40 10 -33 -20 -30 -34 -14 -10 -63 24 -37 26 20 37 -23 10 -40 -20 -20 -37 7 -20 -14 0 -56 -26 -34 3 -23 -50 -23 -17 -220 -3 0 -10 43 -23 -3 -10 -24 20 -43 20 -7 0 -16 -20 -14 3 -6 13 0 17 -67 -17 -10 0 -7 17 4 23 -60 80 -90 64 -30 43 6 70 -90 190 -140 47 0 10 40 30 20 40 0 3 -6 -13 -10 20 -17 16 7 7 23 37 -3 60 -7 40 0 36 23 34 14 16 0 37 6 0 -3 3 -20 24 -3 23 23 17 20 43 3 33 -3 34 0 20 -17 -20 -10 13 -10 53 0 24 -3 16 -7 0 4750 -36 -6 -277 40 -37 -17 -86 30 -50 53 -90 44 -100 0 -50 -20 -10 43 -40 17 -30 -7 -40 -40 -70 13 -57 84 -123 80 -100 6 -10 -20 -34 -6 -183 66 -93 0 -220 47 -77 -10 -50 30 -50 0 -67 23 -66 30 -44 54 -66 36 -64 10 -106 80 -67 20 -23 44 -50 23 -47 47 -3 10 -40 120 -87 70 -110 -24 -3 -3 -7 -30 -40 -23 -67 20 -23 76 -30 10 -30 37 -37 0 -16 -20 -64 -17 -26 40 -37 -3 -60 33 -70 80 -20 0 -40 130 -27 37 -43 33 -53 4 -37 20 -140 120 -23 -4 -87 40 -57 4 -63 -20 -40 10 -67 -27 -50 -20 -53 40 -100 -3 -57 -24 -66 -66 20 36 53 44 -20 6 -67 -33 -10 -83 -20 -40 -13 -34 10 -40 -17 -6 -53 110 -33 0 -34 36 -83 34 -140 -17 -73 -50 -37 10 -13 40 -30 13 -50 -10 -20 -33 -34 20 -36 -7 -60 34 -67 6 -43 27 -220 -43 -217 -147 -67 -97 -43 -23 -17 -80 -26 -13 -14 -107 30 -30 -3 -13 -53 -10 -47 3 -70 60 -60 -7 -47 37 -70 -13 -26 10 -60 213 -170 433 -144 284 -2296 0 0 -6920 5206 0 -33 183 3 73 -43 80 -33 70 -44 40 -43 4 -17 16 -10 -20 -46 37 -127 40 -40 -17 -63 14 -50 -17 -50 -40 -100 -23 -34 -34 -23 20 -73 -3 -4 20 -46 23 3 30 -37 -20 -26 10 -44 -33 -46 -3 -7 -10 -50 3 -17 -20 14 -3 0 -14 -77 -33 -80 30 -40 37 -13 -4 -4 -16 34 -17 -20 -20 -220 73 -157 0 -290 -56 -30 -17 -47 10 -36 -37 -67 -20 -150 4 -7 -20 -70 -57 -36 13 -34 34 -30 -10 -46 23 -64 -20 -56 17 -90 6 -70 -16 -47 13 -17 -17 -20 10 -80 -20 -40 10 4 27 -20 27 3 -50 -103 -10 -34 -24 -36 -63 -54 -20 4 -13 -44 -4 -20 34 -10 -7 -10 -37 -36 4m6596 2686l20 -33 -16 -20 0 -7 20 7 0 -7 -24 -23 -13 -53 -37 -4 -23 -43 -13 0 -4 7 0 3 -16 7 -14 -24 0 10 -16 10 -124 10 -20 30 24 17 0 47 10 6 83 -16 163 76m-573 384l3 -4 27 -36 7 -14 13 -66 53 -60 -6 -34 23 -6 13 -64 -10 -20 -60 -23 -53 47 -70 -34 -10 -36 33 -7 7 -30 -7 -3 -43 20 -13 -30 63 -40 -3 -4 -17 -3 -57 37 -66 6 -54 47 -36 10 -107 113 -113 80 -7 27 13 30 50 0 30 43 7 0 10 -46 73 -30 47 36 -13 27 33 70 30 10 73 -10 54 60 13 0 60 -53 3 0 7 -10m-127 173l7 -20 -3 -7 -24 4 -3 3 23 20m-883 277l23 -7 4 -47 40 -20 23 -43 40 -33 0 -10 -17 -20 7 -20 -43 -17 -94 43 -36 30 6 34 -3 10 -40 10 -3 6 6 54 10 3 57 0 7 0 13 27m20 136l33 -30 14 0 33 17 23 -13 4 -7 -4 -7 -3 0 -20 10 -23 -10 -34 -46 -6 0 -27 30 10 56z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-1494 1087l3 3 3 7 4 3 0 7 0 6 -4 4 -3 6 -7 -3 -3 0 -7 -3 -6 0 -4 0 -6 0 -10 0 -7 3 -3 0 -7 3 -7 4 -3 0 -7 0 -6 0 -7 3 -7 0 -6 0 -7 3 -7 -3 -3 -3 -3 -4 -4 -6 4 -7 3 -3 7 0 3 -4 7 0 6 0 7 4 3 0 7 3 7 0 3 -3 7 -4 3 -3 3 -3 4 -7 3 -3 7 -4 3 -3 7 0 6 3 4 0 6 0 7 4 7 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-3568 1347l0 -7 -3 -7 -3 -3 0 -7 0 -6 0 -7 0 -3 3 -7 0 -7 3 -3 4 -7 6 -3 4 -3 3 -4 3 -6 0 -4 4 -6 0 -7 3 -3 3 -4 7 -6 3 -4 4 -3 3 -7 3 -3 0 -7 4 -3 3 -7 3 -3 7 -3 3 -7 4 -3 6 0 7 -4 7 4 -4 3 -3 7 -3 3 -4 7 -3 3 -3 3 -7 4 -7 3 -3 3 0 7 -3 3 -4 7 -3 3 -3 7 -4 3 0 7 -3 3 -3 7 -4 3 0 7 0 7 -6 3 -4 3 -6 4 0 3 -4 7 0 6 0 4 0 6 0 7 0 7 -3 3 -7 7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-2534 1950l3 7 0 6 -3 7 -4 3 -3 7 -3 3 0 7 0 3 0 7 3 7 3 3 4 7 3 3 0 7 3 6 0 7 0 3 -6 4 -7 3 -7 0 -3 0 -7 0 -6 0 0 7 -4 6 4 4 3 6 3 7 0 3 -6 4 -7 0 -7 -4 -3 4 -7 0 -3 3 -3 7 0 6 -4 4 0 6 0 7 -3 3 -7 4 -3 0 -7 0 -6 3 -4 7 0 3 -3 7 0 6 3 4 0 6 -3 4 -7 3 -3 3 -3 -6 0 -7 -4 -3 0 -7 0 -7 -3 -3 -7 -3 0 -7 0 -7 4 0 6 0 7 0 3 -3 7 -3 7 -4 3 0 7 -3 3 -3 0 -7 0 -7 0 -6 3 -7 4 -3 3 0 7 0 3 -7 7 -3 0 -4 3 -6 3 -4 4 -6 6 -4 4 -3 3 -3 3 -4 4 -6 0 -7 0 -7 0 -3 -4 -7 -3 -3 -3 -7 0 -6 0 -7 3 -3 3 -7 4 0 6 0 4 -3 3 -7 3 -3 4 -7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M759 2217l7 3 3 3 7 4 3 3 3 3 4 7 3 3 3 7 -10 0 -6 0 -7 -3 -3 -4 -4 -3 -3 -7 -7 -3 -3 -3 -7 0 -6 0 -4 0 -6 0 -7 3 -7 3 -3 4 -3 3 0 7 0 6 -4 4 0 6 -3 7 -3 3 -4 7 -3 3 -3 7 -4 3 -3 4 -7 3 -6 0 -4 3 -6 0 -4 4 -3 6 -3 4 -4 6 0 7 -3 3 -3 7 -7 3 -3 0 -7 0 -7 0 -3 -3 -7 -3 -6 0 -4 0 -6 -4 -7 0 -7 0 -3 -3 0 -10 7 -3 3 -4 7 0 6 0 4 0 6 4 7 3 3 0 7 0 7 0 0 -7 0 -6 3 -4 0 -6 0 -7 7 -3 3 -4 7 0 6 0 4 0 6 0 7 -3 3 -3 4 -4 3 -6 0 -7 3 -7 0 -6 4 -4 3 -6 3 -4 7 -3 3 -3 4 -7 3 -3 7 -4 3 -3 7 0 6 -3 4 0 6 0 7 3 3 3 7 4z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-2838 2350l-3 -3 3 0 7 -4 3 -3 7 -3 3 -7 4 -3 3 -7 3 -3 7 0 3 3 7 7 0 3 0 7 0 6 0 7 0 7 3 3 4 3 6 0 7 0 3 4 4 3 6 7 0 3 4 7 3 6 3 4 4 3 6 0 4 -3 6 -7 4 0 3 3 7 7 6 3 4 4 3 6 3 4 4 3 3 7 7 3 3 3 3 7 4 3 3 7 3 3 4 7 0 3 3 7 0 7 0 3 -7 7 -3 -4 -3 -3 -7 -3 -3 -4 -4 -6 0 -7 -3 -3 0 -7 -3 -7 -4 -3 -3 -3 -7 0 -6 0 -7 0 -3 3 0 7 -4 0 -3 -4 -3 -6 0 -4 0 -6 0 -7 -4 -3 -3 -7 -3 -3 -7 0 -7 0 -3 0 -3 -7 -7 -3 -3 -4 -7 0 -7 -3 -3 -3 -3 -7 -7 0 -3 3 0 7 -4 3 -3 7 -7 3 -3 4 -7 -4 0 -3 -3 -7 3 -6 4 -4 0 -6 3 -7 -3 -7 -4 -3 -3 -3 -7 -7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-804 2803l0 10 -4 4 -6 3 -7 0 -3 3 -4 4 -6 3 -4 7 -3 3 0 7 -3 3 0 7 0 6 0 7 3 3 7 4 3 3 3 7 -3 3 -3 7 -4 3 -3 3 -3 7 0 7 0 3 -4 7 -3 3 -3 7 -4 0 -6 -7 3 -7 0 -3 0 -7 3 -6 0 -7 4 -3 0 -7 -4 -3 -3 -7 -3 -3 0 -7 3 -7 3 -3 0 -7 4 -6 0 -4 3 -6 3 -4 4 -6 0 -7 3 -3 3 -7 4 -3 6 0 7 -4 7 0 3 0 7 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-731 2977l7 0 6 0 7 3 3 3 0 4 -3 6 -7 0 -6 0 -4 -3 -6 0 -7 -3 -3 -4 -7 0 -3 -3 -7 -3 -3 0 -7 -4 -7 0 -6 0 -4 0 -6 0 -7 0 -7 0 -3 4 -7 0 -6 3 -4 3 -3 4 -3 6 -4 4 0 6 0 7 0 3 4 7 3 3 3 7 4 3 3 4 3 6 0 7 0 3 -3 7 0 7 -3 6 -4 0 -6 0 -7 0 -3 -3 -4 -3 -3 -7 0 -3 -3 -7 0 -7 0 -6 0 -4 0 -6 -4 -7 -3 -3 -7 -4 -3 -3 -7 -3 0 -4 4 -6 6 -4 4 -6 3 -4 3 -3 7 -3 3 -4 7 -3 7 0 3 -3 7 -4 3 0 7 0 6 0 7 0 3 0 7 -3 7 0 3 -3 7 0 6 -4 4 0 6 0 7 0 3 7 0 3 4 7 3 3 3 4 7 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-2711 2997l3 6 -3 7 -3 3 -4 4 -3 6 -3 4 -7 3 -3 3 -4 4 -3 6 0 7 0 7 0 3 3 7 0 6 7 4 3 3 7 3 3 0 7 4 0 6 0 7 0 7 -3 3 -4 3 -3 4 -7 3 -3 3 -7 0 -6 0 -7 4 -7 0 -3 -4 -7 -3 -3 -3 0 -7 3 -3 0 -7 4 -7 3 -3 3 -3 4 -7 6 -3 0 -7 0 -3 0 -7 -3 -7 -3 -3 -7 0 -3 -3 -7 3 -7 0 -6 3 -7 0 0 -3 3 -7 4 -6 6 -4 4 4 6 0 7 3 3 0 7 -7 3 -3 7 -3 3 -4 4 -3 3 -7 3 -3 4 -3 3 -7 10 -3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-3178 3467l-3 -7 0 -3 3 -7 4 -3 3 -7 3 -3 4 -7 3 -3 3 -7 0 -3 4 -7 3 -7 3 -3 0 -7 4 -3 3 -7 3 -3 0 -7 4 -3 3 -7 3 -3 7 -3 3 -4 7 -3 3 -3 7 -4 3 0 7 -3 0 -7 0 -6 0 -4 0 -6 3 -7 7 3 3 4 -3 6 0 7 3 3 7 0 3 -3 7 -3 3 -4 4 -3 6 -3 7 -4 3 0 7 -3 3 -3 7 -4 3 0 7 -3 7 0 6 0 4 7 0 3 -7 0 -7 0 -3 3 -7 4 -6 3 -4 0 -6 0 -7 3 -3 0 -7 4 -3 3 -7 3 -3 4 -4 3 -6 3 -4 7 -3 3 -7 0 -6 0 -4 4 -6 0 -7 3 -7 0 -3 7 0 3 -3 7 -4 3 0 7 -3 6 -3 4 0 6 -4 4 -3 6 -3 4 -4 6 -3 4 -3 6 -4 4 -3 3 -7 7 4 3 3 3 7 -3 3 -3 7 -4 3 0 7 -3 3 -3 7 0 6 -4 4 -3 6 0 7 0 7 -3 3 0 7 -4 3 -3 3 -3 7 -4 3 0 4 7 -4 3 -6 4 0 6 3 4 7 0 6 0 7 -4 3 -3 4 -3 6 0 7 0 7 -4 3 4 3 3 4 7 3 6 3 4 4 3 6 3 4 4 6 3 4 3 3 4 7 0 6 3 7 -3 0 -4 3 -6 7 -4 7 0 3 4 7 0 6 3 0 3 0 7 7 3 3 0 7 0 3 -3 7 -3 3 -4 7 -3 7 0 3 0 7 -3 6 0 4 0 6 0 7 0 7 -4 3 0 7 0 6 0 7 -3 3 0 7 -3 7 0 3 -4 7 -3 3 0 7 -3 6 0 4 -4 6 -3 7 0 3 -3 7 -4 7 0 3 0 7 -3 3 -3 3 -4 7 -6 0 -7 0 -3 7 -7 3 0 0 7 0 6 3 7 -10 7 -3 3 -3 3 -7 4 -3 6 -4 4 -6 0 -4 0 -6 0 -7 3 -3 0 -7 3 -7 4 -3 0 -7 3 -3 3 -7 4 -6 0 -4 3 -6 3 -7 0 -3 4 -7 0 -7 0 -3 0 -7 0 -6 0 -7 0 -3 3 -7 0 -7 3 -3 0 -7 0 -6 4 -7 0 -3 0 -7 3 -7 0 -3 3 -7 0 -6 4 -4 3 -3 7 3 3 4 7 0 6 3 4 3 3 4 7 6 3 4 7 3 3 3 3 4 7 3 3 3 4 4 6 6 0 4 4 6 3 7 0 7 0 3 0 7 0 6 -3 7 0 3 0 7 0 7 3 3 3 3 4 7 3 3 3 7 4 3 3 7 3 3 4 7 3 3 3 7 0 7 4 3 0 7 3 3 3 0 7 -7 3 -3 0 -7 0 -6 0 -4 -3 -6 -3 -4 -4 -6 -3 -4 -3 -3 -4 -7 -3 -3 -3 -7 0 -6 -4 -4 -3 -6 0 -7 -3 -3 0 -7 0 -7 0 -6 0 -4 0 -6 0 -7 0 -7 0 -3 -4 -7 -3 -3 -3 -7 -4 -3 -3 -3 -3 -4 -7 -3 -3 -3 -7 -4 -3 0 -7 -3 -7 -3 -3 -4 -7 -3 -3 -3 -7 -4 -3 -6 0 -4 0 -6 0 -4 -7 4 -6 0 -4 0 -6 -7 -4 -3 -3 -7 -3 -3 -4 -7 0 -3 -3 -7 -3 -3 -4 -7 -3 -3 -3 -7 -7 -3 0 -7 -3 -7 0 -3 0 -7 3 -3 0 -7 0 -6 0 -7 0 -3 0 -7 0 -7 0 -6 0 -4 0 -6 0 -7 -3 -3 0 -7 3 -7 0 -6 0 -4 3 -6 4 -4 3 -3 3 -7 4 -3 3 -7 0 -6 0 -4 -3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-2671 3397l3 -7 4 -3 6 -4 7 0 3 -3 4 -3 3 -7 3 -7 0 -3 0 -7 4 -6 3 -4 7 0 3 4 0 6 -3 7 0 3 -4 7 0 7 0 3 -6 3 -7 4 -3 3 -7 3 -3 4 -4 3 -6 0 -7 -3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-2464 3453l0 -10 3 -3 3 -3 7 -4 3 -3 7 -3 7 0 3 0 7 -4 6 0 4 0 6 0 7 0 7 0 3 0 7 0 6 -3 7 3 3 -3 7 0 7 0 3 -3 7 -4 3 -3 3 -7 0 -6 4 -7 0 -3 6 0 7 0 3 6 0 7 0 3 -3 7 0 7 -3 3 0 7 0 6 3 7 3 3 7 4 -10 0 -3 -4 -4 -3 -6 -3 -4 -4 -6 4 -7 0 -7 3 -3 0 -7 3 -3 4 -7 0 -3 -7 -7 -3 -6 0 -4 0 -6 0 -7 0 -7 0 -3 0 -7 3 -6 0 -4 3 -6 4 -4 3 -6 3 -4 0 -6 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-3991 3567l0 -7 0 -7 3 -6 4 -4 6 0 7 4 3 -4 7 -3 3 -3 0 -7 -3 -3 -7 -4 0 -6 0 -7 4 -3 3 -7 3 -3 4 -7 3 -3 3 -4 4 -6 3 -4 0 -6 0 -7 0 -7 0 -3 0 -7 0 -6 0 -7 3 -3 0 -7 -3 -3 -3 -7 -4 -3 0 -7 4 0 6 0 7 3 7 0 3 4 3 6 -3 7 0 7 -3 3 0 7 -4 6 0 4 0 6 0 7 0 7 0 3 -3 7 0 6 0 7 0 3 7 4 6 0 4 3 3 3 -3 4 -7 0 -7 0 -3 0 -7 0 -3 6 0 4 3 6 0 7 0 7 -3 0 -3 3 -7 3 -3 7 -4 3 -3 7 -3 3 -4 4 -6 3 -7 0 -3 -3 -7 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-2668 3407l14 0 3 0 7 3 6 0 7 -3 3 3 4 3 3 7 3 7 4 0 6 3 7 0 3 0 7 3 3 4 7 3 3 7 4 3 6 0 4 3 6 0 7 0 7 0 3 -3 3 -3 7 -4 7 -3 3 -3 3 -4 4 -6 3 -4 3 -3 7 0 3 3 0 7 -6 3 -4 4 -3 3 -3 7 3 3 -7 3 -3 4 -7 0 -6 0 -4 3 -6 0 -7 3 -3 0 -7 0 -7 0 -6 0 -4 -3 -3 -3 -3 -4 -4 -6 -3 -4 -7 -3 -6 0 -4 0 -6 0 -7 0 -7 -3 -3 0 -3 -7 -4 -7 -3 -3 -7 0 -3 -3 -7 -4 -3 -3 -7 -3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-484 3603l-4 4 -6 0 -4 -4 -6 -3 -4 -3 -3 -7 -3 -3 -4 -4 -6 0 -7 0 -7 0 -3 -3 -7 -3 -3 -4 0 -6 0 -7 -3 -3 -4 -7 -3 -3 -3 -4 -7 -3 -3 -7 -4 -3 -3 -3 -3 -7 -4 -7 -3 -3 -3 -3 -7 -4 0 -3 -3 -7 0 -6 -4 -4 0 -6 0 -7 4 -7 3 4 3 3 7 3 3 4 4 6 0 4 3 6 3 4 7 3 7 0 6 0 4 0 6 7 0 3 -3 7 -3 3 0 7 3 6 0 4 3 6 4 4 6 3 4 7 3 3 7 3 3 0 7 0 6 0 7 4 3 6 0 4 0 6 4 4 3 6 3 4 4 6z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-2094 3723l10 0 3 -3 7 0 6 0 4 3 6 4 7 0 3 3 7 3 0 7 3 7 -6 3 -7 3 -7 0 -3 -3 -7 3 0 7 4 3 6 4 4 3 6 3 4 4 6 3 4 3 3 4 3 3 -3 7 -3 6 3 4 3 6 4 4 3 6 0 7 3 3 -10 0 -6 -3 -4 -3 -3 -7 0 -3 -3 -7 -4 -7 0 -3 -3 -7 -7 -3 -3 0 -7 -3 -3 -7 -3 -3 -4 -4 -3 -6 -3 -4 -4 -6 -3 -4 -7 -3 -6 0 -7 3 -3 4 -7 3 0 3 -3 7 -4 3 0 7 -3 7 0 3 -3 7 -4 6 0 4 -3 6 -3 4 -4 6 -3 4 -3 6 -4 4 -6 3 -4 3 -6 4 -4 3 -6 3 -4 4 -6 0 -4 3 -6 3 -4 4 -6 3 -4 3 0 7 0 7 0 6 0 4 4 6 -7 4 -3 -4 -4 -10 0 -3 0 -7 4 -6 0 -7 3 -3 0 -7 3 -7 0 -3 0 -7 0 -6 0 -7 0 -3 4 -4 6 0 0 7 4 3 3 7 3 3 7 0 3 -3 7 -3 3 -4 7 -3 3 -3 4 -4 3 -6 3 -4 4 -6 3 -7 0 -3 0 -7 3 -7 0 -6 0 -4 0 -6 4 -7 0 -3 3 -10 3 -4 4 -6 6 -4 4 -3 6 0 4 -3 6 0 7 0 7 -4z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-2421 4023l3 -6 4 -7 3 -3 7 0 6 -4 4 0 6 -3 7 0 3 -3 7 -4 7 0 3 -3 7 -3 0 -7 3 -3 7 -4 3 -3 7 -3 3 -4 7 0 6 0 7 0 -10 7 -3 7 -4 3 -3 3 -7 4 -3 3 -3 3 -7 4 -3 3 -7 3 -7 4 -3 0 -7 3 -6 0 -4 3 -6 4 -4 3 -6 3 -4 4 -6 0 -7 0 0 -4z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-2391 4083l0 -6 0 -7 3 -3 7 -4 7 0 3 4 7 3 3 3 7 0 6 4 4 0 6 0 7 -4 7 0 3 -3 7 -3 3 -4 7 0 6 0 4 0 6 0 7 0 7 0 3 0 7 0 6 -3 4 -3 6 -4 4 -3 6 0 7 0 3 3 0 7 -3 7 0 3 -3 7 3 6 3 4 4 3 6 7 4 3 6 0 4 3 6 4 7 0 3 3 4 7 3 3 0 7 -3 6 -7 0 -7 -3 -3 -3 -7 -4 -3 -3 -3 -3 -7 -4 -3 -3 -7 -3 -3 -4 -4 -3 -3 -7 0 -6 -3 -4 -7 -3 -3 -3 -7 0 -7 0 -6 0 -4 0 -6 0 -7 0 -7 3 -3 0 -7 0 -3 7 -7 0 -6 3 -4 0 -6 0 -7 0 -7 -3 -3 0 -7 -4 -6 0 -4 0 -6 -3 -7 0 -7 0 -3 3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-3454 4400l-7 7 -3 3 -4 3 -3 7 -3 3 -4 7 -3 3 -3 7 -4 3 -3 7 -3 3 -4 4 -3 6 -3 4 -4 6 -3 4 0 6 0 7 3 3 7 4 3 0 7 0 7 0 3 -4 7 0 6 -3 4 0 6 -3 7 0 3 -4 7 0 7 0 6 -3 4 0 6 0 7 3 7 0 3 4 7 0 3 6 0 7 0 7 -3 3 -4 0 -6 0 -7 0 -3 -3 -7 0 -7 0 -6 -4 -7 0 -3 0 -7 0 -7 0 -3 0 -7 0 -6 4 -4 3 -3 7 0 3 0 7 -3 6 -4 4 -3 6 -7 0 -3 4 -7 0 -6 0 -7 3 -3 0 -7 3 -3 4 -7 3 -3 3 -7 4 -3 3 0 7 -4 3 -3 7 -3 3 -7 3 -7 -6 0 -7 -3 -7 0 -3 0 -7 3 -6 0 -4 0 -6 0 -7 0 -7 -3 -3 0 -7 -3 -3 -7 -3 -3 -4 -7 -3 -7 0 -3 -7 3 -6 0 -4 -3 -6 0 -7 -3 -3 0 -7 0 -7 3 -3 7 -3 3 -4 3 4 4 6 0 7 0 7 3 3 3 7 4 3 3 7 3 3 4 3 3 7 3 3 4 7 3 3 0 7 3 7 4 0 3 -4 3 -6 4 -7 0 -3 3 -7 3 -7 0 -3 4 -7 0 -6 3 -4 0 -6 0 -7 0 -3 3 -7 4 -7 0 -6 -4 -4 -3 -6 -3 -4 0 -6 0 -4 3 -3 7 -3 6 0 7 0 7 3 6 0 4 -3 3 -4 3 -6 0 -7 4 -3 3 -7 0 -7 3 -3 4 -7 3 -3 3 -7 4 -3 0 -7 3 -3 0 -7 0 -6 0 -7 3 -3 0 -7 0 -7 -3 -6 -3 -4 -4 -3 -3 -7 0 -6 3 -4 7 4 7 3 6 0 4 0 6 -3 4 -7 0 -3 3 -7 0 -7 -3 -6 3 -4 0 -6 3 -4 7 -6 3 0 7 3 3 7 0 6 4 4 0 6 -4 7 0 3 -3 7 -3 7 -4 3 -3 3 -3 7 -4 3 -3 4 -3 6 -4 4 0 6 -3 7 0 7 0 3 0 7 0 6 0 4 0 6 3 7 0 7 -3 3 -3 7 -4 3 -3 7 -3 3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M-868 4683l-3 -3 3 -7 0 -6 4 -4 3 -6 0 -7 0 -3 3 -7 0 -7 0 -6 -3 -4 7 -3 3 -7 3 -3 4 -3 3 -7 3 -3 4 -7 6 0 0 3 0 7 -3 3 -3 4 -4 6 -3 4 -7 3 -3 7 -3 3 0 7 0 3 3 7 3 6 4 4 0 6 -4 4 -3 6 -3 4 -7 3 -7 3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M3402 6413l-6 -6 -4 0 -6 0 -7 0 -7 0 -3 -4 -7 -3 0 -7 0 -6 4 -4 0 -6 0 -7 0 -7 0 -6 0 -7 3 -3 3 0 7 3 7 0 6 3 7 0 3 4 0 56z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M366 6487l6 -4 7 0 3 -3 7 0 7 -3 3 -4 7 0 6 -3 4 0 6 -3 7 -4 3 0 7 -3 7 0 3 0 7 3 6 4 4 3 0 7 0 3 0 7 -4 6 -3 4 -3 6 -4 4 -3 3 -7 3 -6 4 -4 0 -6 0 -7 0 -7 3 -3 0 -7 0 -6 0 -7 0 -3 3 -7 0 -7 0 -3 4 -7 3 -3 0 -7 7 -3 3 -3 3 -7 4 -3 3 -7 3 -3 4 -7 0 -7 0 -3 -4 -7 0 -6 -3 -7 0 -3 0 -7 0 -7 3 -3 0 -7 0 -6 4 -7 0 -3 0 -7 0 -7 0 -3 -4 -3 -6 3 -7 3 -3 7 -4 7 -3 3 0 3 -7 7 -3 3 -3 4 -4 6 -3 4 -3 6 -4 4 0 6 -3 7 -3 7 0 3 0 7 -4 6 4 4 3 6 3 4 0 6 -3 4 -3 6 -4 7 -3 7 -3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M2859 6683l0 -3 3 -7 0 -6 4 -4 0 -6 3 -7 3 -3 0 -7 4 -3 3 -7 3 -3 4 -7 3 -3 3 -7 4 -3 3 -7 3 -3 4 -7 3 -3 0 -7 3 -3 4 -7 3 -7 3 -3 4 -3 3 -7 7 -3 3 0 7 -4 3 -3 7 0 6 0 7 -3 3 0 7 -4 7 -3 3 -3 3 -4 4 -3 6 -3 4 -4 6 -3 7 0 3 -3 7 -4 7 -3 3 0 7 -3 6 0 4 3 3 7 3 3 4 7 0 6 0 7 0 3 -4 7 -3 3 -7 4 -3 0 -7 3 -6 -3 -7 3 -3 0 -7 0 -7 3 -3 4 -7 3 0 7 -3 3 -3 7 -4 6 0 4 -6 3 -4 7 -3 3 -7 3 -3 4 -7 3 -3 0 -7 0 -6 3 -4 4 -3 3 -7 3 -3 4 -3 6 -7 4 -3 3 -4 3 -6 4 -4 6 -3 4 -3 3 -4 7 -3 3 -3 3 -7 7 -3 3 -7 0 -10 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M2599 6813l-3 7 -4 3 -3 7 0 3 -7 7 -3 3 -3 4 -7 0 -7 0 -6 0 -4 0 -6 3 -4 3 0 7 -6 3 -4 4 -6 3 -4 3 -6 0 -7 0 -7 0 -3 -3 -7 0 -6 0 -4 0 -6 0 -7 0 -7 0 -3 0 -7 0 -6 -3 -4 -4 -6 -3 -4 -3 -6 -4 -4 -3 0 -7 0 -6 7 -4 7 0 6 0 4 0 6 0 7 4 3 3 7 3 3 0 4 -6 3 -4 0 -6 3 -7 4 -3 3 -7 3 -3 7 -4 3 -3 7 0 7 3 3 0 7 -3 6 0 7 -3 3 0 7 -4 3 -3 4 -7 3 -3 3 -3 7 -4 7 0 6 0 4 -3 6 0 7 0 7 0 3 0 7 -3 6 0 7 3 3 3 0 7 -3 3 -3 7 -4 3 -6 4 -4 6 -3 4 -7 3 -3 3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil5","@d":"M1512 7287l-220 0 7 -4 7 -3 3 -3 7 0 3 -4 7 0 6 -3 4 -3 6 -4 4 -3 3 -7 7 0 3 -3 7 3 6 0 7 0 7 0 3 -6 3 -4 0 -6 4 -7 0 -3 -4 -7 -3 -3 -3 -7 -4 -3 -6 -7 0 -3 0 -7 0 -3 3 -7 3 -7 4 -3 3 -3 3 -7 7 -3 3 -4 7 -3 3 0 7 -3 3 3 4 7 -4 3 0 7 0 6 0 7 0 7 4 3 3 3 7 4 6 0 7 0 3 -4 7 0 7 0 6 -3 4 0 6 -3 7 0 3 -4 7 -3 3 0 7 -3 3 -4 7 -3 0 -7 3 -6 4 -4 3 -6 3 -4 4 -6 3 -4 3 -3 7 -7 3 -3 7 0 3 3 4 7 0 7 3 6 0 4 3 6 -3 7 0 3 -3 7 -4 3 -6 4 -4 3 -6 3 -4 7 -3 3 -3 4 -7 3 -3 7 -4 3 -3 7 -3 3 -4 3 -3 7 0 7 0 3 0 7 0 6 0 7 0 3 0 7 0 7 3 6 0 4z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil6","@d":"M2996 367l3 0 403 0 0 206 -16 7 -24 3 -53 0 -13 10 20 10 -20 17 -34 0 -33 3 -43 -3 -17 -20 -23 -23 -24 3 -3 20 0 3 -37 -6 -16 0 -34 -14 -36 -23 -40 0 -60 7 -37 3 -7 -23 -16 -7 -20 17 13 10 -3 6 -40 0 -30 -20 -10 -40 -47 0 -190 140 -70 90 -43 -6 -64 30 -80 90 -23 60 -17 -4 0 7 17 10 -17 67 -13 0 -3 6 20 14 0 16 -20 7 -20 43 10 24 23 3 10 -43 3 0 17 220 50 23 -3 23 26 34 -43 10 -30 -30 -50 0 -80 53 -57 10 -20 43 -40 -6 -23 23 -30 -10 -20 -30 -93 -27 -67 17 -27 43 -40 10 -23 -13 -20 -47 -3 -6 -114 -27 -3 -10 3 -37 24 -13 -27 -10 -3 -20 -130 -17 -7 37 -17 3 -53 -80 -67 -3 -30 13 -46 -53 -70 -10 -14 10 -50 -23 -70 -20 -23 13 -10 63 20 24 -17 23 -113 10 -40 -23 -33 36 -24 -30 -43 -10 -100 40 -53 -26 -27 -47 -23 3 -60 -40 -47 37 -60 -17 -10 27 -20 7 -37 -54 -53 -23 0 -20 -13 -33 -44 13 -60 -3 -146 -70 -30 6 -20 -20 6 -20 -10 -6 -16 10 -4 50 -43 -7 -27 -33 27 -27 20 -53 -7 -50 -83 -17 -30 30 -20 -40 -47 10 -30 -47 17 -16 43 -4 44 -40 33 -70 43 -80 -3 -73 33 -183 3164 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil6","@d":"M1372 1313l17 -3 7 -37 130 17 3 20 27 10 -24 13 -3 37 -30 7 -7 26 -30 0 -23 27 -53 0 -20 -37 26 -20 -30 -16 10 -44z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil6","@d":"M-3834 1670l6 70 30 -10 24 20 -4 27 -40 23 -36 50 6 27 24 10 -4 33 20 10 44 -7 43 -40 27 0 6 -20 14 0 3 34 7 0 20 -17 73 -13 57 23 -7 33 47 -3 13 -23 17 6 6 0 17 37 27 -23 26 3 70 -27 10 -70 34 -6 43 33 30 -17 30 20 50 0 27 -30 10 14 30 26 53 0 20 -20 17 20 -10 40 30 14 -30 86 6 47 24 20 36 -17 50 7 84 67 -10 16 -7 4 -3 6 -4 4 -3 3 -3 7 -4 3 -3 7 -3 3 -4 7 -3 3 -3 7 -4 3 0 7 -3 3 -3 7 -4 3 -3 7 -3 3 -4 7 0 3 -3 7 0 6 0 7 -3 3 -4 4 -6 3 -7 0 -7 0 -3 0 -3 7 -4 3 -3 7 0 3 -3 7 -4 3 -3 7 -3 3 -7 3 -3 4 -7 3 -3 3 -7 4 -3 3 -7 7 -3 3 -4 3 -3 4 -7 0 -6 3 -4 3 -3 4 -7 6 -3 4 -7 0 -3 0 -7 0 -6 3 -7 0 -3 0 -7 0 -7 3 -3 0 -7 4 -3 6 -3 4 -7 3 -3 3 -4 7 -3 3 -7 4 -3 3 -3 7 0 3 -4 7 -3 3 -3 7 -4 3 -3 7 -3 3 -4 7 0 6 -3 4 -3 6 0 4 -4 6 0 7 -3 3 -3 7 -4 3 -3 4 -7 3 -3 3 -7 4 -6 3 -4 0 -6 0 -7 0 -7 0 -6 37 50 93 -14 10 -6 60 13 73 -23 64 26 36 -33 54 33 66 -46 60 -77 27 -17 27 10 46 44 20 33 67 -30 107 -43 40 -20 96 -7 0 -3 4 -7 0 -10 0 -7 3 -6 0 -7 0 -3 0 -7 3 -7 0 -6 -3 -4 0 -6 0 -7 0 -7 0 -3 0 -7 -3 -6 0 -4 0 -6 0 -7 -4 -7 0 -3 0 -7 0 -6 4 -4 0 -6 3 -7 3 -3 4 -7 0 -3 3 -7 0 -7 -3 -6 0 -4 -4 -6 0 -7 0 -7 -3 -3 0 -7 0 -6 -3 -4 0 -6 -4 -7 0 -3 -3 -7 0 -7 0 -6 0 -4 0 -6 0 10 43 66 60 4 24 46 23 -13 90 43 50 -6 47 56 30 -6 43 73 0 27 30 6 40 -53 80 3 30 -3 3 -7 7 -3 3 -3 4 -7 3 -3 3 -4 4 -6 6 -4 4 -3 3 -7 3 -3 4 -7 3 -3 3 -3 4 -7 3 -3 3 -7 4 -3 3 -7 3 -3 4 -4 3 -6 3 -4 4 -3 6 -7 4 -3 3 -3 3 -4 7 0 7 0 3 0 7 0 6 0 7 0 7 -3 0 -7 6 -3 4 0 6 -3 4 3 6 0 7 -3 7 0 3 -4 7 -6 3 -4 0 -6 0 -7 -3 -7 -4 -3 4 0 6 3 7 4 3 3 4 3 6 0 7 0 7 -3 3 0 7 0 6 0 7 -3 3 0 7 -4 3 -3 7 -3 3 -4 7 -3 3 0 7 -3 7 -4 3 0 7 -3 6 -3 4 -4 3 -6 0 -7 -3 -7 0 -6 0 -7 3 -3 3 0 4 0 6 3 4 3 6 4 4 0 6 -4 7 -3 7 0 3 0 7 0 6 -3 4 0 6 -4 7 0 3 -3 7 -3 7 0 3 -4 7 -3 6 -3 4 -4 0 -3 -7 0 -7 -3 -3 -4 -7 -3 -3 -3 -7 -4 -3 -3 -3 -3 -7 -4 -3 -3 -7 -3 -3 0 -7 0 -7 -4 -6 -3 -4 -3 4 -7 3 -3 3 0 7 0 7 3 3 0 7 3 6 0 4 -3 6 3 7 7 0 7 3 3 4 7 3 3 3 0 7 3 3 0 7 0 7 0 6 0 4 -3 6 0 7 0 3 3 7 0 7 7 6 7 -3 3 -3 3 -7 4 -3 0 -7 3 -3 7 -4 3 -3 7 -3 3 -4 7 -3 3 0 7 -3 6 0 7 0 3 -4 7 0 3 -6 4 -4 3 -6 0 -7 0 -3 3 -7 4 -3 6 -4 7 0 3 0 7 0 7 0 3 0 7 0 6 4 7 0 7 0 3 3 7 0 6 0 4 0 3 -3 0 -7 0 -7 -3 -6 -7 0 -3 -4 -7 0 -7 -3 -6 0 -4 0 -6 3 -7 0 -7 0 -3 4 -7 0 -6 3 -4 0 -6 3 -7 0 -3 4 -7 0 -7 0 -3 0 -7 -4 -3 -3 0 -7 0 -6 3 -4 4 -6 3 -4 3 -6 4 -4 3 -3 3 -7 4 -3 3 -7 3 -3 4 -7 3 -3 3 -7 4 -3 3 -3 7 -7 20 13 70 110 30 74 90 -24 -47 130 -57 -13 -13 30 -70 7 -30 106 -77 64 -16 73 -47 73 7 7 3 7 3 3 4 3 6 7 4 3 3 7 0 3 3 7 0 3 0 7 4 7 0 6 0 7 0 3 0 7 0 7 0 6 0 4 0 6 0 7 3 7 0 3 0 7 0 6 0 7 0 3 0 7 0 7 3 6 0 4 0 6 0 7 0 3 0 7 0 7 0 6 4 7 3 47 -13 10 -20 -4 -60 20 -127 87 -110 3 -113 -66 -60 13 -54 -27 -56 10 -27 -16 -3 -17 -7 -3 -3 13 -44 -17 -33 37 -93 10 -70 43 -24 -16 50 -97 -3 -30 37 -53 -7 -37 53 -103 -10 -107 20 -70 10 -7 0 -6 -20 -14 10 -126 -43 -30 37 -57 33 -123 -10 -127 -30 -50 3 0 17 17 7 0 0 -10 53 16 3 -6 -16 -17 20 -37 -4 -10 -10 -6 -10 0 -10 36 -63 -33 -110 53 -57 0 -16 10 -7 -6 20 -74 -33 -83 6 -13 44 -14 13 0 10 24 -7 3 4 3 23 4 10 13 0 -3 -7 -30 20 -7 17 10 3 0 4 -13 16 -7 0 -3 -36 3 -4 -17 70 -33 4 -13 -27 -50 -3 -50 -14 0 -36 50 -30 83 -20 13 -100 17 -80 -23 -7 -14 7 -20 -14 -26 57 -120 0 -94 53 -113 0 -43 -10 -24 7 -30 73 -33 94 -117 20 -103 123 -287 0 -3 -27 -40 37 -83 60 -214 10 -26 33 0 20 -50 17 -4 0 -3 -23 -10 0 -20 3 -10 20 -20 0 -7 -7 -10 -10 0 -20 80 -23 34 -3 0 66 -250 -6 -87 -7 -7 -20 -33 -10 -103 -23 -64 10 -40 -24 -156 -23 -47 10 -83 73 -60 4 -4 6 -6 4 -4 3 -3 3 -3 7 -4 3 -6 4 -4 3 -3 3 -7 4 -3 3 -7 3 -3 7 -3 3 -4 7 -3 3 0 7 -3 3 -4 7 0 7 4 6 0 4 0 6 -4 4 -3 6 -3 4 -4 3 -3 7 -3 6 0 7 0 3 0 7 0 7 3 3 0 7 0 6 0 7 0 3 0 7 0 7 0 6 -3 4 0 6 -4 7 0 3 -3 7 -3 3 -4 7 -3 3 -3 4 -4 6 -3 4 -3 6 -4 7 0 3 -3 7 0 7 -3 3 -4 7 -3m-157 1897l7 0 3 3 7 0 6 -3 4 -4 3 -3 3 -7 4 -3 3 -7 7 -3 3 -3 3 0 0 -7 0 -7 -3 -6 0 -4 3 -6 7 0 3 0 7 0 7 0 3 -4 -3 -3 -4 -3 -6 0 -7 -4 0 -3 0 -7 0 -6 3 -7 0 -3 0 -7 0 -7 0 -6 0 -4 4 -6 0 -7 3 -3 0 -7 3 -7 -3 -6 -3 -4 -7 0 -7 -3 -6 0 -4 0 0 7 4 3 3 7 3 3 0 7 -3 3 0 7 0 6 0 7 0 3 0 7 0 7 0 6 -3 4 -4 6 -3 4 -3 3 -4 7 -3 3 -3 7 -4 3 0 7 0 6 7 4 3 3 0 7 -3 3 -7 3 -3 4 -7 -4 -6 0 -4 4 -3 6 0 7 0 7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil6","@d":"M3402 6357l-3 -4 -7 0 -6 -3 -7 0 -7 -3 -3 0 -3 3 0 7 0 6 0 7 0 7 0 6 -4 4 0 6 0 7 7 3 3 4 7 0 7 0 6 0 4 0 6 6 0 874 -1890 0 0 -4 -3 -6 0 -7 0 -7 0 -3 0 -7 0 -6 0 -7 0 -3 0 -7 3 -7 4 -3 3 -3 3 -7 4 -3 3 -7 7 -3 3 -4 3 -3 4 -7 6 -3 4 -3 6 -4 4 -3 3 -7 0 -3 3 -7 -3 -6 0 -4 -3 -6 0 -7 -4 -7 -3 -3 -7 0 -3 3 -7 7 -3 3 -3 4 -4 6 -3 4 -3 6 -4 4 -3 6 0 7 -7 3 -3 4 -7 3 -3 0 -7 3 -3 4 -7 0 -6 3 -4 0 -6 3 -7 0 -7 0 -3 4 -7 0 -6 0 -7 -4 -3 -3 -4 -3 0 -7 0 -7 0 -6 0 -7 4 -3 -4 -7 -3 -3 -7 3 -3 0 -7 3 -3 4 -7 3 -3 7 -3 3 -4 3 -3 7 -3 7 0 3 0 7 0 3 6 7 4 3 3 7 3 3 4 7 0 3 -4 7 0 6 -3 4 -3 6 -7 0 -7 0 -6 0 -7 -3 -3 3 -7 0 -3 7 -4 3 -6 4 -4 3 -6 3 -7 0 -3 4 -7 0 -3 3 -7 3 -7 4 -1633 0 -57 -94 0 -46 34 -57 -34 -63 -40 -84 -30 -23 -23 -53 40 -10 63 20 57 -4 87 -40 23 4 140 -120 37 -20 53 -4 43 -33 27 -37 40 -130 20 0 70 -80 60 -33 37 3 26 -40 64 17 16 20 37 0 30 -37 30 -10 23 -76 67 -20 40 23 7 30 3 3 110 24 87 -70 40 -120 3 -10 47 -47 50 -23 23 -44 67 -20 106 -80 64 -10 66 -36 44 -54 66 -30 67 -23 50 0 50 -30 77 10 220 -47 93 0 183 -66 34 6 10 20 100 -6 123 -80 57 -84 70 -13 40 40 30 7 40 -17 10 -43 50 20 100 0 90 -44 50 -53 86 -30 37 17 277 -40 36 6 0 1034m-3036 130l-7 3 -7 3 -6 4 -4 3 -6 3 -4 0 -6 -3 -4 -3 -6 -4 -7 4 -3 0 -7 0 -7 3 -6 3 -4 0 -6 4 -4 3 -6 3 -4 4 -3 3 -7 3 -3 7 -3 0 -7 3 -7 4 -3 3 -3 7 3 6 3 4 7 0 7 0 3 0 7 0 6 -4 7 0 3 0 7 -3 7 0 3 0 7 0 6 3 7 0 3 4 7 0 7 0 3 -4 7 -3 3 -3 7 -4 3 -3 3 -3 7 -7 3 0 7 -3 3 -4 7 0 7 0 3 -3 7 0 6 0 7 0 3 0 7 -3 7 0 6 0 4 0 6 -4 7 -3 3 -3 4 -4 3 -6 3 -4 4 -6 0 -7 0 -3 0 -7 -4 -3 -6 -4 -7 -3 -3 0 -7 0 -7 3 -3 0 -7 4 -6 3 -4 0 -6 3 -7 0 -3 4 -7 3 -7 0 -3 3 -7 0 -6 4m2493 196l10 0 7 0 3 -3 7 -7 3 -3 3 -3 4 -7 3 -3 3 -4 4 -6 6 -4 4 -3 3 -3 7 -4 3 -6 3 -4 7 -3 3 -3 4 -4 6 -3 7 0 3 0 7 -3 3 -4 7 -3 3 -3 4 -7 6 -3 0 -4 4 -6 3 -7 3 -3 0 -7 7 -3 3 -4 7 -3 7 0 3 0 7 -3 6 3 7 -3 3 0 7 -4 3 -3 4 -7 0 -3 0 -7 0 -6 -4 -7 -3 -3 -3 -7 -4 -3 -6 0 -7 3 -3 0 -7 3 -7 4 -3 3 -7 0 -6 3 -4 4 -6 3 -4 3 -3 4 -3 3 -7 3 -7 4 -3 0 -7 3 -6 0 -7 0 -3 3 -7 4 -3 0 -7 3 -3 7 -4 3 -3 3 -3 7 -4 7 -3 3 0 7 -3 3 -4 7 -3 3 -3 7 -4 3 -3 7 -3 3 -4 7 -3 3 -3 7 -4 3 0 7 -3 3 -3 7 0 6 -4 4 0 6 -3 7 0 3m-260 130l3 -3 7 -3 3 -4 4 -6 6 -4 4 -3 3 -7 3 -3 0 -7 -3 -3 -7 -3 -6 0 -7 3 -3 0 -7 0 -7 0 -6 0 -4 3 -6 0 -7 0 -7 4 -3 3 -3 3 -4 7 -3 3 -7 4 -3 0 -7 3 -6 0 -7 3 -3 0 -7 -3 -7 0 -3 3 -7 4 -3 3 -3 7 -4 3 -3 7 0 6 -3 4 -4 6 -3 0 -7 -3 -3 -3 -7 -4 -6 0 -4 0 -6 0 -7 0 -7 4 0 6 0 7 4 3 6 4 4 3 6 3 4 4 6 3 7 0 3 0 7 0 7 0 6 0 4 0 6 0 7 0 3 3 7 0 7 0 6 0 4 -3 6 -3 4 -4 6 -3 0 -7 4 -3 6 -3 4 0 6 0 7 0 7 0 3 -4 3 -3 7 -7 0 -3 3 -7 4 -3 3 -7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil6","@d":"M-2354 6093l6 0 -6 24 0 -24z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil6","@d":"M-2358 6320l14 107 26 13 17 80 43 23 67 97 217 147 220 43 43 -27 67 -6 60 -34 36 7 34 -20 20 33 50 10 30 -13 13 -40 37 -10 73 50 140 17 83 -34 34 -36 33 0 53 -110 17 6 -10 40 13 34 -10 36 30 4 10 83 67 33 20 -6 -53 -44 -20 -36 66 66 57 24 100 3 53 -40 50 20 67 27 23 53 30 23 40 84 34 63 -34 57 0 46 57 94 -2737 0 144 -284 170 -433 60 -213 26 -10 70 13 47 -37 60 7 70 -60 47 -3 26 53z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil6","@d":"M-2358 6320l-26 -53 53 10 3 13 -30 30z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil6","@d":"M-928 6697l0 0 -10 36 30 4 -20 -40z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@id":"areas_density","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"g":[{"path":[{"@class":"fil7 str0","@d":"M3001 367l-3 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1830 821l-15 32 14 28 -8 26 -41 -18 -13 22 -47 6 -6 51 -54 3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1248 1007l83 -46 67 27","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1104 851l2 29 -16 12 -78 -4 -63 48 11 71","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-712 867l-11 25 10 16 -37 47 -2 65 -25 18","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1493 1087l24 -16 6 -26 43 -7 52 -59 76 29 44 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-777 1038l-60 13 11 38 -83 -7 -94 -45 14 -37 -20 -40 -29 -5 -5 36 -55 -3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2000 971l-1 57 34 20 22 50","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-3173 725l-30 42 -37 0 -4 28 21 8 3 33 33 28 5 49 45 27 2 46 43 -23 27 19 -25 35 -41 10 -27 41 12 23 23 -12 39 20 12 50","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2000 971l-15 -29 -28 -7 -47 41 -35 -2 -27 59 -18 -13 -37 21 -77 -6 -17 30 -43 -1 -8 20 -30 6 -53 -18 -45 12 -25 38 -61 -8 -37 -26 -15 -38 -20 10 -34 -12 -17 32 -50 -16 -8 24 -74 -36 -31 45 -12 1 -7 14 9 8 -3 16 -64 18 -76 -11 -36 26 -31 -20","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-3511 537l-13 33 10 24 -19 18 -25 110 -31 51 -32 -2 -3 48 -30 36 10 20 -24 48 21 71 -17 31 18 66 -50 80","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-346 877l-29 9 -25 46 -43 12 7 59 -60 46 -12 59 -28 8 -21 26 -40 -11 -22 44","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-777 1038l11 32 -39 25 3 23 28 13 77 0 78 44","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M200 1138l-48 12 -19 45 3 46 -28 29","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1098 988l-19 28 23 16 -2 46 -16 13 58 9 46 57 -67 20 -62 -33 -34 59 36 32 11 -25 23 -2 7 -9 8 7 -10 65 12 10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1945 1098l88 -3 54 -25 24 7 35 52 58 13 10 77 14 7 31 -16 2 19 -28 17 55 38","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1602 1284l75 1 27 -28 42 -3 -3 -24 -5 -29 -32 21 -12 -25 44 -24 -10 -22 -53 31 -20 -15 17 -50","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-4107 1294l13 -32 95 -41 72 10 12 -25 28 0 8 -25 12 -8 18 17 11 -15 25 7 -4 -15 18 -7 54 5 15 15 34 -9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-920 1257l123 19 9 17 -17 28 18 19 7 1 10 -7 10 2 3 17 -10 7 -52 -3 -22 -17 -46 9 -53 -51 20 -41","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-3696 1171l14 4 -8 53 58 46 -36 101","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-3212 1444l19 -54 -6 -27 24 -16 -16 -45 42 -37 25 1 30 -36 1 -54 21 -27","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-914 1424l34 -44 34 27 -10 51","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-3668 1375l16 22 -10 31 71 12 6 6 -9 11 17 12","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-619 1175l10 37 -22 33 3 38 -28 12 21 56 -37 19 -26 -21 -46 37 22 30 23 -22 12 28 -13 50 -34 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M1535 1379l-1 39 45 14 -3 34 0 2 30 -3 -4 44","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-3264 1528l52 -84","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-3668 1375l-54 21 -87 -19 -93 53 6 99 35 35 -2 40 18 15 27 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1945 1098l-33 21 -38 85 -20 6 0 55 -23 30 32 29 -23 114 15 14 -16 66 7 35 -35 13 -4 23 18 -2 1 13 -13 24 -20 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-3212 1444l49 11 25 -19 48 24 18 8 -17 51 57 49 -31 64","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2097 1625l-21 -7 -4 13 -15 2 -5 -7 -13 -17 -38 34 -25 -8 -13 22 4 8 -6 7 -20 -4 -10 21 -19 -9 -21 18 1 35 2 69","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-941 1370l-28 13 -27 -15 -48 3 -9 14 5 20 -24 26 1 11 16 2 -8 38 23 27 -3 44 -5 2 -12 -23 -10 9 20 30 -28 14 17 62 -21 45 55 83 53 1 10 43","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-310 1686l4 13 -14 20 -54 -3 -41 55 0 35 26 19","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-3063 1632l-10 31 -32 -12 -41 35 -11 32 -30 28 0 24 21 14 -12 48","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-3063 1632l41 34 35 -5 83 29 95 -14 53 42 97 -1 42 23 38 -17 21 26 44 -19 21 17 35 -18 43 65 33 -34 14 30 12 28 -11 23 20 9 11 -31 36 -17","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-389 1825l-2 34","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M108 1270l-68 34 -6 40 -55 0 -29 71 -25 -5 -16 24 8 35 -36 37 -6 35 13 22 -31 35 -15 65 15 69 50 52 -48 90 -6 11 -45 -8 -31 11 -58 -39 -26 10 -40 -30 -42 -4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-964 1819l24 9 35 -21 6 -47 26 -14 17 24 -21 53 93 14 34 -52 2 -19 11 -12 6 2 32 -25 68 -3 20 40 38 -17 35 7 -13 36 25 26 3 44 78 25 54 -30","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M1602 1509l42 -11 78 15 -18 46 11 15 -1 13 -22 -1 -5 13 17 20 64 22 74 -28 18 27 36 -11 33 38 35 -6 12 30 -10 38 -28 10 28 20 1 18 -48 29 -20 -5 -6 8 10 44 70 14 43 47 60 -27 58 3 13 60","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1602 1284l-11 19 -21 -13 -78 49 13 42 -18 48 24 50 -4 24 -31 6 -13 19 9 33 27 1 43 183 45 5 24 19 -17 16 9 28 45 0 8 9 -14 28 13 15 52 -16 0 21 -45 21 -9 30 -52 14 -3 27 26 47","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2097 1625l-15 92 50 8 14 43 -55 107 11 22 61 -11 39 64 28 5 35 -32 25 3 35 45 36 -11 13 11 -8 28 14 13 25 0 18 -19 48 14 36 -29 62 6 17 22 28 3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M1602 1509l-88 24 15 33 -7 25 26 7 5 17 -18 23 14 39 -24 24 14 20 -25 19 19 4 -1 9 -16 5 -2 35 -37 34 31 13 -17 66 -28 18 -23 -22 -12 13 -2 -22 -29 5 4 50 -16 17 37 45 -43 18 17 28","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1580 2009l-18 28 30 30 -6 56 15 -6 1 1 15 27","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-964 1819l-26 30 -3 37 -21 4 -10 29 -46 7 4 16 -31 45 -48 -43 -20 11 0 55 -39 22 -1 31 -23 12 -20 44 -8 19 -43 -16 -4 24","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M1043 1166l-73 104 9 47 35 14 -16 75 -20 9 30 61 5 64 -18 142 -30 97 -40 43 24 45 -144 151 18 55 44 2 9 35 -22 38 -29 10 -2 50","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M760 2215l8 -11 49 10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1303 2146l-76 17 -26 27 -6 37 -12 2 -7 -6 0 -28 -8 -3 -18 27 -44 -54 -43 -20","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M108 1270l-4 27 19 15 -20 25 8 34 -15 23 20 15 -17 28 20 2 0 61 44 24 -51 101 15 7 13 -28 33 9 20 -46 -4 -18 12 -11 8 4 4 49 -14 42 5 131 -14 7 -17 -26 -29 66 61 33 59 -1 78 79 6 80 73 28 11 35 61 41 21 -17 25 4 64 164 29 9 -2 -13 8 -1 7 12 35 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M1396 2056l-3 17 -91 -3 -29 26 7 35 -30 14 -26 -10 -10 9 10 17 -63 75 -43 11 -22 -14 -12 24 -30 -1 -77 36 -19 -15 -75 10 -7 22 -27 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M812 2230l31 21 -12 21 18 37","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M1396 2056l30 6 1 19 -27 20 49 30 3 55 55 25 -9 14 15 35 24 -5 -7 31 -18 3 3 5 30 10 -1 25","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1303 2146l11 31 20 12 19 -9 18 39 45 14 -5 51 79 63","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2300 1802l49 48 -26 27 15 18 -15 63 8 4 -3 20 -31 23 -1 25 25 35 1 50 28 10 -8 26 16 15 -2 21 -42 26 -3 2 17 45 -17 36 22 82 -26 47 28 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-391 1859l27 75 -20 46 38 56 -15 39 -25 1 -35 43 -21 -8 -16 12 12 28 -6 46 25 59 -49 21 -7 -34 -37 -9 -7 52 -26 35 16 101 53 25","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1116 2347l-28 32 -74 -5 -17 16 4 26 -75 34","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1543 2145l-9 43 -65 32 -133 21 -88 30 14 50 -14 25 -35 -9 -7 6 11 25 -44 39 7 27 -6 6 -20 -7 -21 24","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M849 2309l-2 24 -1 3 -31 22 -6 38 -48 26 6 40","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2265 2431l4 -13 22 3 12 23 21 -1 29 24","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2265 2431l-4 34 -19 13 -33 -16 -12 -35 -30 4 -6 23 -44 -53 -22 8 -29 -27 -66 16 -69 -15 -29 57 -10 3 -6 -11 -15 6 -9 -7 -1 -28 -43 -3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1953 2457l-43 10 -26 29 -82 -47 -73 18","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-484 2447l-4 48 -8 2 -25 -21 -16 0 -17 19 -32 -3 -46 24 -20 -18 -29 19 -29 -15 -36 -58 -23 9 -6 -6 4 -15 -23 -10 13 -17 -3 -4 -14 4 -12 -19 -35 -4 -6 -14 -9 -2 -24 15 -33 -8 -24 -33 -22 -2 -16 15 -56 13 -81 -19","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M767 2462l-78 -4 -19 24 -32 -52 -121 -48 -49 -45 -12 13 -38 -18 -44 -52 -45 -6 -3 32 -6 2 -1 -2 -22 1 2 46 -21 12 31 24 -36 59 -43 -33 -22 47 -29 0 -18 -27 -34 50 -29 -14 9 -37 -24 9 -41 -21 -26 28 -34 -9 -28 19 6 32 -22 18 -25 -3 -14 -24 -55 52 12 21 -14 26 -85 8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-484 2447l52 -20 17 24 70 34 102 105","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M767 2462l8 23 28 9 12 39 -25 56 19 52 -24 38 -36 20 6 11","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1306 2450l-42 14 -91 109 -63 23 -28 43 -16 85 -52 2 -47 70","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1645 2796l-64 6 6 11 -9 9 -21 2 -22 3 -32 -10 -4 -55 -27 -31 -6 -43 -30 -3 -3 -4 10 -15 -15 -15 -4 -49 -50 -65 -35 -14 -2 -66","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M755 2710l23 -1 12 21 33 10 -7 36 71 19 23 36 44 17","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-728 2977l5 -16 -15 -29 8 -18 63 -7 12 -19 -23 -25 9 -21 51 29 14 -10 -2 -34 53 7 24 -33 35 12 37 36 28 4 5 -16 22 9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-243 2590l3 46 48 56 -13 53 17 37 -6 64 -26 20 -46 -17 -9 81 -29 11 -32 48","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2177 2467l-13 62 26 17 4 28 -36 124 -51 57 -72 41 7 22 -28 35 -26 14 -29 -7 -4 32 36 -9 12 15 -17 53 -29 1 -2 30 -30 -15 6 -26 -36 11 -32 34 3 55 -31 32","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2519 3073l-37 2 0 -42 -49 20 -14 30 -43 -17 -19 -27 -42 -13","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2710 2997l5 -9 -86 -59 -187 105 -12 43 -65 17 -19 -12 -22 16 -37 -5 -19 -20","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1645 2796l-7 50 -40 13 -18 -12 -7 5 3 24 -22 26 2 96 -59 7 -22 61 -32 -14 -8 6 4 27 -24 56","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-276 3045l-1 3 12 14 3 -2 74 75 58 -5 -1 37","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1306 2450l31 49 32 10 -4 23 24 37 -56 147 32 25 -12 52 33 13 11 -15 13 34 28 -3 -11 37 24 23 -2 25 21 -9 29 20 0 51 29 12 11 24 -32 106 11 8 38 -27 17 83 1 4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1038 3179l28 2 12 -39 54 35 46 -33 13 -44 -13 -69 14 -44 14 -9 7 9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2519 3073l107 75 35 -8 26 -32 24 -3 17 15 -9 39 21 48","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2298 3207l91 22 76 -53 11 35 22 0 87 -80 5 -30 55 -11 24 61 52 -10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1088 3246l55 -19 -18 -38 13 -10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1164 3258l0 1 28 1 41 -30 7 16","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1875 3141l25 14 48 -28 30 -44 15 3 8 25 29 27 31 -39 31 -14 28 36 45 -16 33 37 108 32 26 26 18 -7 58 21 5 22 -12 24","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-131 3167l70 3 1 -40 15 -2 14 27 16 31 51 0 43 36 -2 19 -45 22","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-131 3167l42 97 44 6 35 6 42 -13","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M32 3263l11 28","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M755 2710l-75 32 -12 -28 -46 7 -63 -41 -23 24 -9 50 -35 20 -15 -14 -26 13 4 36 48 4 -4 70 20 21 -41 32 37 47 -61 55 -9 39 -51 14 -25 -8 0 39 -37 87 -33 22 -40 2 -6 30 -34 16 0 44 25 30","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M244 3353l-53 21 -22 -79 -43 -13 -83 9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1483 3350l23 27 8 1 50 -46 49 -10 -1 -20 61 -20 15 -21","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2298 3207l-23 15 3 60 -26 96 42 -7 22 15 -19 70","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M588 3454l-46 -18 -18 -32 -36 -7 -23 43 -45 31 -22 -31 -67 4 -11 -65 -18 -7 -23 27 -35 -46","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1088 3246l7 54 30 6 -16 81 32 15 44 99 46 52 -8 129","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M43 3291l-36 17 3 17 6 46 -39 90 5 41 -26 13 -40 -8 -63 85 -11 87 13 19","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1981 3718l34 -22","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2092 3722l15 -13 22 -73 23 -16 53 40 -2 58","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2208 3444l-6 32 18 25 -36 91 132 132","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1981 3718l-58 31 -2 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-953 3682l35 56 -14 24 28 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-901 3767l24 -24 17 6 13 36","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-477 3749l37 5 20 43 53 -9 63 19 25 -31 134 -78","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1947 3696l40 -4 4 -25 61 -47 20 49 22 -29 108 31 25 -15 21 -51 59 -2 11 38 -15 7 -5 42 -24 0 -17 66 24 17 18 -17 54 9 6 43 59 29 42 -24 34 17 45 -22 61 -5 67 -70 61 1 12 -54 50 -2 24 -16 85 38 42 -18","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-797 3779l82 -10 74 74 29 -35 31 42 55 -40 69 9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2142 3754l-7 3 -26 -19 -16 40 -56 23 -44 -18 -21 11 -7 55 -24 47 -36 4 -31 -33 -34 -2 -20 18 19 21 -10 32 -43 21 -79 -46 -13 24 -53 17 -12 -19 -33 33 -7 -34 -20 -2 -54 53 -49 -39 -41 -12 -9 -46 -21 -5 -12 7 -89 -15 -5 18 -42 -29 -41 10 -44 -11 -18 -37 34 -54 -25 -18 -6 -35 -47 0 -87 -39 -12 17 26 22 -26 47 -17 3 -7 -33 17 -15 -30 -7 -25 23 -7 17 11 5 -25 34 -20 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-145 3698l34 41 24 -11 33 26 103 22 -10 78 -1 2 -42 105 74 85 104 -9 24 42 0 67","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M701 4059l0 23 -22 -22 -42 22 -12 -16 -32 22 -51 -19 -85 60 -66 2 1 24 38 5 7 13 -67 45 -15 -35 -51 -19 -47 23 -19 -25 -28 0 -12 -16","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2147 4219l30 -7 28 -91 25 -18 27 3 9 -31 -51 -25 -22 -64 47 14 27 -11 -24 -37 14 -51 21 -24 49 2 10 -12 -1 -1 -29 -72 29 -13 22 -57 -11 -28","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M198 4146l-20 17 34 63 -68 22","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-844 4360l-1 -70 16 4 35 -24 15 -61 -57 -41 -22 -71 -63 -35 43 -75 -19 -67 64 -96 -14 -39 0 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1714 4497l10 -39 214 23 55 -41 111 20 23 -39 17 30 39 7 40 -19 12 -35 19 -6 114 26 42 -28 19 23 64 -17 16 10 75 -52","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2147 4219l41 32 54 0 7 51 81 30 60 61 43 17 45 55 102 32","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2147 4219l-61 1 -15 8 6 23 -10 12 -46 22 -28 38 -40 -1 -22 49 -89 56 -4 73 28 48 3 43 -12 34 -28 21","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-844 4360l41 23 55 -10 12 70 50 11 2 71 21 15 9 7 -6 53 -60 87","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-599 4725l66 -122 65 -39 29 -44 35 17 45 -10 87 -65 3 -3 35 6 25 42 55 -10 42 -46 -16 -112 26 -30 3 -56 26 -28 21 -7 18 15 47 -42 45 -15 31 11 7 26 48 35","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-720 4687l121 38","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2465 4646l-28 -4 -49 40 -15 -28 31 -23 -11 -20 -27 -10 -45 11 -51 48 5 33 -21 41 -95 17 -44 31","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2815 4782l-97 -45 -5 -23 -29 -22 -22 4 -15 31 -58 -10 -11 -46 -119 -23 8 -49 -78 -26","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-599 4725l76 79","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M144 4248l9 116 -41 59 6 50 50 13 17 34 -7 56 -30 57 6 31 8 12 66 102 44 42 42 11","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2465 4646l55 73 0 34 37 29 0 54 38 23 3 38 18 17 4 45","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-523 4804l25 18 21 -11 25 18 43 1 17 23 -10 40 4 102 103 147 53 1 62 45","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1554 5190l-45 -64 5 -15 -60 -75 -29 -9 29 -48 -41 -27 20 -40 -45 -14 9 -145 3 -5 60 -111 -30 -65 2 -36 -17 -34 -21 -5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-720 4687l-26 11 -11 58 -26 15 -24 -6 -49 40 -64 125 8 53 -46 29 -12 27 -31 -9 -33 12 -48 -32 -28 0 -38 40 -49 20 -80 -40 -57 62 -81 38 -23 -4 -26 71 -57 8 -33 -15","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2370 4984l0 33 32 34 96 -67 34 9 10 -4 1 -17 2 -1 9 15 7 -2 0 -14 42 -6 32 46 -10 26 3 4 15 -4 5 7 -3 68 30 47 28 8 10 59 19 17 48 -16 28 69","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1554 5190l-55 -6 -37 43 -42 5 -15 79 -40 34","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1932 5295l23 3 10 32 34 0 25 -10 19 -39 37 -4 9 41 32 27","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2219 5475l7 -15 68 -19 62 -42 5 -19 -15 -19 5 -6 24 8 29 -31 24 34 42 -31 -7 -37 43 -3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2920 5534l-26 -28 15 -41 -16 -62 24 -31 -4 -87 15 -40 -26 -36 21 -12 -5 -36 30 -19 -48 -89 0 -36 -80 -9 -4 -15 40 -60 118 -26 21 23 17 -5 6 -40 37 -19 -21 -26 22 -33 -28 -8 -3 -17","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2870 5540l1 1 45 4 62 35 100 4 25 -46 86 -11 13 -23 33 -1 21 9 14 16 16 -1 32 -32 3 -16 -16 -30 17 -10 32 8 -1 25 -23 19 12 26 11 1 55 -50 26 4 23 36 20 3 44 -36","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-523 4804l-47 34 -3 51 14 21 -26 64 6 42 -35 -3 -3 13 12 49 -11 19 -38 7 -4 16 -52 21 -53 47 -11 119 -16 10 -47 -10 -13 -22 -37 -9 -56 130 -29 -5 -11 12 26 90 -52 46 26 50 -66 38 3 29","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-1743 5345l22 43 10 79 28 1 7 23 62 27 35 35 128 37 32 38 -8 43","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str0","@d":"M-2219 5475l25 31 4 41 -26 50 -33 10 -36 -32 -28 -3 -28 32 28 41 -24 69 -35 33 -39 7 -39 65 -45 -10 -7 4 2 18 43 10 22 -22 15 -4 29 6 44 77 12 62 10 4 17 -4 18 18","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil7 str1","@d":"M-374 834l28 43","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M-346 877l49 -8 18 40 31 -29 81 17 9 48 -20 54 -27 28 27 34 42 3 2 -49 17 -8 10 6 -7 18 22 21 28 -5 149 70 61 3 40 -16 14 34","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M200 1138l0 21 54 25 38 51 18 -5 11 -26 61 16 46 -39 60 42 24 -6 25 48 55 28 97 -41 45 9 24 31 32 -37 39 25 116 -10 15 -23 -18 -24 9 -64 25 -12 67 19","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M1043 1166l50 24 14 -10 72 10 45 52 30 -14 66 3 56 81","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M1376 1312l15 -5 7 -34 128 14 4 22 29 10 -24 13 -6 37","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M1529 1369l6 10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M1376 1312l-11 44 28 18 -24 19 19 35 52 -1 25 -24 29 -1 8 -27 27 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M1535 1379l114 25 3 7 20 47 22 14 39 -9 29 -45 67 -16 91 27 21 29 31 11 22 -22 42 6 17 -45 57 -9 81 -55 50 0 29 30 46 -8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M-3834 1670l7 69 31 -9 25 18 -5 27 -41 23 -34 51 6 27 22 11 -1 31 17 10 46 -7 42 -38 27 -2 8 -18 10 0 5 31 8 2 20 -17 72 -12 58 22 -9 34 46 -6 15 -22 18 6 4 2 17 37 27 -26 26 5 70 -27 11 -68 33 -9 44 33 31 -16","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M-3178 1832l30 20 49 2 25 -32 13 12 29 30 54 -2 19 -18 18 20 -13 38 32 14 -31 87 6 47 25 20 35 -19 50 9 84 66 -10 17","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M-3146 2517l-8 38 50 93 -13 10 -5 61 14 74 -24 62 26 37 -34 55 36 64 -48 62","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M-3152 3073l-77 25 -16 28 8 47 44 21 34 64 -30 108 -43 41 -20 95","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M-3544 3500l13 43 64 58 3 24 50 24 -14 90 42 51","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M-3386 3790l-6 46 56 30 -6 42 73 3 27 29 8 40 -56 79 4 32","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M-3453 4399l21 15 70 108 30 72 91 -21","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M-3241 4573l-47 129 -57 -14 -14 31 -71 8 -30 107 -76 62 -17 72 -46 73 7 9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M-2352 6093l7 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M-2355 6320l-29 -55","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M-906 6736l-31 -4 11 -36","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str1","@d":"M-489 6865l22 54 30 23 40 83 33 65 -33 57 2 44 56 96","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@id":"borders","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"g":[{"path":[{"@class":"fil7 str2","@d":"M-1532 1117l-6 2 -5 1 -6 2 -6 2 -5 1 -6 1 -6 1 -6 1 -9 2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-1587 1130l-6 1 -6 0 -5 -1 -6 -3 -3 -5 -1 -6 1 -6 4 -3 5 -3 6 -1 6 0 6 1 6 1 5 1 6 1 6 1 5 -2 6 -3 4 -3 4 -5 2 -5 4 -5 4 -4 6 -1 5 0 6 1 6 1 6 1 6 2 6 2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-3565 1344l-2 -5 -2 -6 -2 -5 -1 -6 0 -6 0 -6 1 -6 1 -5 2 -6 2 -5 4 -5 5 -3 4 -3 4 -5 3 -5 2 -5 1 -6 2 -6 3 -4 4 -5 4 -4 4 -4 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 4 -5 4 -4 4 -4 5 -3 5 -2 7 -1 5 1 -1 4 -4 6 -3 5 -4 5 -3 4 -5 4 -5 2 -6 3 -3 4 -2 6 -1 5 -3 5 -4 5 -4 4 -2 6 -3 5 -3 5 -4 4 0 6 -1 6 -2 6 -4 4 -5 2 -5 3 -3 5 -1 6 -1 6 0 6 0 6 0 6 0 6 -3 4 -6 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2635 2170l6 -3 2 -4 0 -6 -1 -6 -1 -6 2 -6 3 -5 3 -5 4 -4 6 0 7 0 5 -1 3 -5 1 -6 1 -6 0 -6 1 -6 3 -5 4 -3 6 -3 6 -1 6 1 6 1 5 -2 1 -5 -2 -7 -4 -4 -3 -5 1 -6 3 -5 5 -3 6 1 6 0 6 -1 6 -3 5 -3 1 -4 0 -6 -2 -6 -2 -6 -2 -6 -3 -5 -4 -4 -2 -5 -1 -6 0 -6 0 -6 3 -5 4 -4 3 -5 2 -6 2 -5 -4 -8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2532 1949l-3 6 -3 5 -3 5 -4 3 -6 1 -5 1 -4 5 -1 6 -1 5 1 6 1 6 3 5 3 5 2 6 0 6 0 5 -2 6 -4 5 -4 3 -5 4 -4 4 -4 4 -4 4 -2 6 -3 5 -4 4 -4 4 -6 1 -5 1 -3 4 -2 6 -2 6 1 6 0 6 -4 4 -5 3 -6 2 -5 3 -5 3 -5 2 -6 1 -7 0 -5 2 0 6 3 4 5 4 3 5 1 5 1 6 1 6 2 6 1 5 5 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M680 2265l-2 6 -3 5 -5 3 -5 2 -6 2 -6 0 -5 -2 -6 2 -5 3 -4 4 -3 5 -1 6 0 6 0 7 -2 4 -5 2 -7 0 -6 -1 -5 -3 -5 -3 -6 -2 -5 0 -6 2 -6 3 -3 3 -1 9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2723 3026l-5 3 -5 4 -4 4 -2 6 -1 5 0 6 2 6 2 6 2 5 3 4 5 3 6 3 5 2 5 3 1 6 -1 6 1 6 -2 5 -4 4 -5 4 -5 3 -5 2 -6 1 -6 1 -6 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2668 3397l6 1 5 0 5 -3 5 -4 4 -3 6 -3 5 -2 5 -3 2 -5 1 -6 0 -6 3 -5 2 -5 0 -6 -5 -4 -5 -1 -3 4 -3 6 -1 6 -1 6 -1 5 -3 5 -5 4 -4 3 -6 3 -6 1 -3 4 -3 8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2311 3446l-4 -4 -3 -5 -3 -5 -1 -6 0 -5 2 -6 2 -6 1 -5 1 -6 -1 -6 -3 -5 -5 -2 -6 1 -3 5 0 6 -2 6 -3 5 -4 4 -4 3 -6 3 -6 1 -5 2 -6 0 -6 -1 -6 1 -5 1 -6 1 -6 0 -6 0 -6 0 -6 0 -5 1 -6 0 -6 1 -6 2 -5 1 -5 3 -5 3 -4 5 -3 5 -1 8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2463 3452l6 1 5 -1 6 -3 5 -2 5 -3 5 -3 5 -3 6 -2 5 0 6 0 6 1 6 0 6 0 6 0 5 3 4 4 5 1 6 -2 5 -3 6 -2 5 -2 6 -1 6 -1 6 0 4 5 4 4 5 2 7 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2509 3450l-3 -5 2 -5 4 -4 5 -4 4 -4 2 -6 -4 -3 -6 0 -4 3 -4 5 -3 5 -3 5 -5 3 -5 3 -5 2 -5 4 -4 3 -6 1 -6 0 -6 -1 -6 -1 -5 -3 -4 -4 -4 -4 -4 -4 -5 -4 -5 -2 -6 -1 -6 -1 -6 -1 -5 -3 -3 -5 -2 -5 -3 -5 -5 -3 -6 2 -6 -1 -6 -1 -5 -1 -12 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2665 3406l5 4 5 3 4 3 6 3 6 1 3 4 3 5 3 5 5 3 6 1 6 1 6 -1 6 1 5 0 5 3 5 4 4 5 2 5 3 4 6 1 6 1 6 1 5 0 6 0 6 -3 5 -2 5 -3 6 -1 6 0 5 -2 6 -2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2994 3305l-3 -5 -5 0 -6 0 -6 1 -6 2 -4 4 -5 2 -6 2 -5 2 -6 3 -5 3 -5 2 -4 4 -5 4 -5 3 -6 0 -3 -4 0 -6 2 -6 -3 -4 -6 -2 -3 5 -1 6 1 6 1 6 -1 5 -5 3 -6 2 -5 3 -6 2 -5 3 -5 3 -4 4 -4 4 -3 5 -2 6 -2 5 -2 6 -4 4 -3 5 -2 6 -3 5 -2 5 -2 6 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -2 5 -4 5 -2 5 4 7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2707 3409l-1 -6 -1 -6 -1 -6 -3 -1 -5 5 -2 6 -1 5 -3 5 -5 4 -4 4 -5 3 -5 1 -6 1 -6 2 -5 2 -6 2 -5 2 -5 2 -6 2 -5 2 -6 2 -5 2 -6 2 -5 2 -6 2 -5 2 -6 1 -6 1 -6 1 -5 0 -6 1 -6 1 -6 -1 -6 0 -5 1 -6 2 -6 2 -5 1 -6 2 -5 2 -5 4 -4 4 -6 1 -6 0 -3 -5 -1 -6 -1 -4 -5 -2 -6 -2 -6 0 -7 0 -4 2 -4 6 -3 5 -5 1 -6 -1 -5 -3 -5 -2 -5 -4 -5 -3 -5 -3 -5 -3 -4 -4 -5 -4 -2 -5 -1 -6 -4 -4 -6 -3 -5 2 -6 1 -6 1 -5 2 -4 4 -6 3 -6 0 -6 -1 -3 -3 0 -7 5 -3 3 -5 -1 -6 -5 0 -6 3 -4 4 -4 4 -6 3 -5 2 -6 2 -5 0 -6 1 -6 2 -5 2 -5 2 -6 3 -5 2 -6 2 -5 3 -5 4 -5 2 -5 -2 0 -5 4 -5 3 -5 5 -4 3 -4 4 -5 3 -5 3 -5 3 -5 3 -5 2 -5 2 -6 2 -5 2 -6 2 -5 2 -6 3 -5 4 -4 5 -2 6 -2 6 -1 5 -1 6 -1 6 -2 5 -3 4 -4 4 -4 4 -4 5 -4 4 -3 5 -4 5 -2 6 -2 6 -1 6 0 5 -2 5 -3 6 -2 5 -3 6 -1 6 0 -1 -4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-3947 3399l2 5 2 6 3 5 4 4 1 6 -3 5 -1 6 0 6 -1 6 0 5 1 6 0 6 0 6 -2 5 -3 5 -4 5 -4 4 -3 5 -4 5 -3 5 -2 5 -2 6 1 6 5 4 4 4 -1 5 -3 5 -5 4 -5 0 -6 -2 -6 1 -5 3 -2 6 0 6 0 7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-3989 3565l5 2 6 2 6 -1 5 -2 5 -3 4 -5 2 -5 4 -5 4 -4 4 -4 6 -3 4 -3 -1 -5 -2 -6 -1 -6 0 -6 3 -5 5 -1 6 2 6 0 7 -1 3 -2 -3 -6 -6 -3 -6 -1 -5 -1 -2 -5 2 -6 0 -6 1 -6 0 -6 0 -6 0 -6 0 -5 2 -6 2 -6 1 -5 2 -6 2 -5 1 -6 -2 -6 -5 -4 -5 -1 -6 -2 -6 0 -6 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-604 3461l5 3 5 4 4 4 4 4 3 5 2 6 3 5 4 4 5 3 6 2 6 -2 5 1 5 4 0 5 -4 5 -1 6 0 6 1 5 3 6 3 5 4 4 4 5 4 3 5 4 5 3 6 1 6 0 5 2 5 3 5 4 1 5 -1 6 3 5 3 4 4 5 5 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-481 3602l-5 3 -6 0 -4 -2 -5 -5 -4 -4 -4 -5 -3 -5 -4 -2 -6 0 -7 0 -5 0 -6 -2 -5 -3 -2 -5 -2 -6 -2 -6 -1 -6 -3 -5 -4 -4 -4 -4 -5 -3 -4 -5 -4 -4 -3 -5 -2 -5 -3 -5 -5 -4 -5 -3 -4 -4 -2 -5 -2 -6 -1 -6 -1 -5 -1 -6 0 -6 1 -8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-3176 3467l4 3 6 0 6 -1 5 -2 5 -3 4 -4 4 -5 5 -2 6 -3 5 -1 6 -2 6 0 6 0 5 2 6 1 6 0 6 0 5 0 6 0 6 0 6 0 6 0 6 0 5 -2 5 -3 6 0 6 1 6 2 5 2 4 4 5 4 5 3 4 3 5 4 5 3 5 3 5 3 5 3 5 3 5 3 3 5 -1 6 -2 6 1 4 6 3 6 0 6 -1 4 4 3 5 3 5 3 6 2 5 3 5 2 5 3 5 3 5 3 6 3 4 4 5 4 4 5 3 5 3 5 3 6 2 5 1 6 0 6 0 6 1 6 0 6 0 6 0 5 0 6 2 6 2 5 2 5 2 6 3 5 2 5 4 4 3 5 4 4 4 5 3 5 3 5 2 6 2 6 0 6 -1 4 -5 1 -6 -4 -4 -5 -3 -6 -1 -6 0 -5 -3 -5 -2 -5 -4 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -4 -4 -5 -3 -5 -4 -5 -3 -6 0 -5 0 -6 1 -6 1 -6 1 -6 1 -5 -1 -6 -1 -6 -2 -5 -2 -5 -3 -5 -4 -4 -4 -4 -4 -3 -5 -3 -5 -4 -5 -3 -4 -4 -5 -3 -5 -4 -4 -3 -5 -3 -5 -2 -6 -1 -6 1 -5 5 -4 5 -2 6 -2 6 -1 5 -1 6 -2 5 -2 6 -1 6 -1 5 -1 6 -1 6 -2 5 -1 6 -1 6 0 6 0 6 0 5 -1 6 -1 6 -1 6 -1 5 -2 6 -2 5 -2 5 -2 6 -3 5 -2 5 -3 5 -3 6 -2 5 -3 5 -2 6 -1 6 0 6 1 5 -2 5 -3 3 -5 4 -4 5 -4 4 -4 8 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2017 3833l-1 -6 -2 -5 -3 -5 -3 -5 -3 -5 -2 -5 1 -6 3 -6 -1 -5 -4 -4 -5 -4 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -4 -4 1 -6 5 -2 6 1 6 1 7 -4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2142 3754l-1 6 -1 6 -1 5 -1 6 -1 6 -1 6 -1 5 -2 6 -2 5 -2 6 -3 5 -3 5 -4 4 -5 4 -5 3 -5 3 -5 4 -5 3 -5 0 -5 -3 -4 -5 -2 -6 -1 -6 -4 -1 -6 4 0 5 2 6 -1 6 0 6 -1 6 -1 5 -2 6 -2 5 -1 6 -2 6 -1 5 -1 6 3 10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2224 3903l5 2 5 -3 0 -5 -1 -6 -2 -6 0 -6 2 -5 3 -5 5 -4 4 -4 6 -2 5 -2 6 -3 5 -3 5 -3 5 -3 4 -3 5 -3 5 -4 4 -4 4 -5 3 -4 3 -5 3 -5 3 -6 2 -5 3 -5 2 -6 2 -5 2 -6 2 -5 2 -6 2 -5 2 -5 5 -4 5 -2 6 -2 6 1 6 1 4 4 3 5 3 5 3 5 4 5 3 5 5 3 5 3 5 3 4 4 4 4 3 5 2 6 2 5 2 6 3 5 4 5 5 2 9 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2310 3962l-6 1 -6 0 -6 1 -5 1 -6 2 -5 4 -4 4 -3 5 -3 5 -4 4 -5 3 -6 2 -5 2 -6 2 -5 1 -6 2 -6 1 -5 2 -5 3 -5 3 -3 5 -5 7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2420 4022l2 3 6 1 6 -1 5 -3 5 -3 5 -3 5 -3 5 -3 6 -2 5 -2 6 -2 5 -2 5 -3 5 -3 5 -3 5 -3 5 -4 4 -3 5 -4 4 -4 4 -5 7 -8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2391 4081l1 -7 1 -5 4 -3 6 -2 6 -1 6 1 4 5 5 3 5 2 6 1 6 0 6 0 6 -1 5 -2 6 -3 4 -3 5 -3 6 0 6 0 6 0 6 0 6 0 5 0 6 -1 6 -1 5 -2 6 -2 5 -4 4 -3 6 -2 6 2 4 3 0 5 -3 6 -1 6 -1 6 2 5 4 5 4 4 4 4 5 4 5 2 6 3 5 1 6 2 4 4 4 5 3 6 0 5 -5 5 -5 0 -5 -2 -5 -3 -6 -3 -4 -3 -5 -5 -4 -4 -5 -2 -6 -2 -3 -5 -3 -5 -3 -5 -2 -5 -4 -5 -4 -4 -6 -2 -5 -1 -6 0 -6 1 -6 0 -6 1 -6 0 -5 1 -6 1 -6 1 -4 4 -5 3 -6 1 -6 0 -6 0 -6 0 -5 -1 -6 -2 -6 -2 -5 -1 -6 -1 -6 -1 -6 0 -5 1 -7 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-858 4621l4 -3 5 -4 4 -4 4 -5 3 -5 3 -5 3 -5 5 -3 3 5 -1 6 -4 4 -4 4 -4 5 -4 4 -4 4 -3 5 -3 5 -1 6 1 5 3 6 2 5 3 6 0 5 -3 5 -4 5 -4 4 -4 4 -9 3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-867 4683l-1 -5 1 -6 2 -6 2 -5 2 -5 2 -6 1 -5 1 -6 1 -6 -1 -6 -1 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M3405 6355l-6 -2 -5 -2 -6 -1 -5 -2 -7 -2 -5 0 -2 4 0 6 0 7 0 6 -1 6 -2 6 -1 6 -1 5 2 6 4 5 5 2 6 0 6 -1 6 1 5 2 7 4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M369 6486l6 -2 5 -2 6 -2 5 -2 6 -2 5 -2 6 -2 5 -2 6 -2 5 -2 6 -3 5 -2 6 -1 5 -1 6 0 6 2 5 4 4 4 2 5 -1 6 -2 6 -2 6 -3 5 -3 5 -4 5 -4 3 -5 2 -6 2 -6 1 -6 1 -5 1 -6 0 -6 0 -6 1 -6 1 -5 1 -6 1 -6 1 -6 2 -5 1 -6 3 -5 2 -4 4 -4 4 -4 5 -5 4 -4 3 -6 2 -5 2 -6 1 -6 0 -5 -1 -6 -2 -6 -2 -6 -1 -5 0 -6 1 -6 1 -6 1 -5 1 -6 1 -6 1 -6 0 -6 0 -6 0 -4 -3 -1 -6 2 -6 5 -3 5 -3 5 -3 5 -4 5 -3 4 -4 5 -4 4 -4 5 -3 5 -3 5 -3 5 -2 6 -2 6 -2 5 -2 6 -1 6 0 5 1 5 4 5 3 5 -1 5 -3 6 -4 5 -2 5 -2 10 -4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M2860 6683l2 -5 2 -6 1 -6 2 -5 2 -6 2 -5 2 -5 3 -6 2 -5 3 -5 3 -5 3 -5 3 -5 4 -5 3 -5 3 -5 3 -4 3 -5 4 -5 2 -5 3 -6 3 -5 3 -5 4 -5 3 -5 4 -4 4 -3 5 -3 6 -2 5 -1 6 -2 6 -1 6 -2 6 -1 5 -2 5 -3 5 -3 4 -5 4 -4 5 -3 5 -2 6 -3 5 -2 6 -2 5 -3 6 -3 6 -2 5 -1 5 0 5 3 4 5 3 5 2 6 1 6 0 6 -1 6 -2 5 -5 4 -5 3 -6 1 -5 0 -6 0 -6 0 -6 1 -6 2 -5 3 -5 3 -4 4 -3 5 -1 6 -3 5 -3 5 -3 5 -4 4 -4 4 -4 4 -5 4 -5 3 -5 2 -6 2 -6 1 -5 3 -5 3 -4 4 -5 3 -5 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 4 -4 4 -4 5 -4 4 -3 5 -4 5 -4 4 -5 3 -5 1 -12 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-3569 4591l5 -3 5 -3 4 -5 1 -5 2 -6 4 -4 5 -3 5 -3 5 -3 5 -3 5 -3 6 -2 5 -2 6 -1 6 0 6 -1 5 -3 4 -4 3 -5 2 -5 0 -7 1 -5 3 -5 5 -4 5 -3 5 -2 6 0 6 0 6 1 5 1 6 1 6 1 6 1 6 0 6 1 7 2 6 1 4 -1 3 -4 0 -7 -1 -6 -4 -5 -5 -3 -6 -2 -5 -1 -6 -1 -6 0 -6 0 -6 1 -5 1 -6 1 -6 1 -5 2 -6 1 -6 2 -6 2 -5 2 -6 2 -6 1 -5 1 -5 0 -6 -3 -3 -6 0 -5 1 -6 3 -6 2 -5 4 -5 3 -4 5 -4 3 -5 4 -4 3 -5 3 -5 3 -5 3 -6 2 -5 3 -5 4 -4 4 -4 6 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-3415 4234l-6 3 -4 4 -3 5 -2 5 -2 6 2 6 0 5 -2 6 -1 6 -3 5 -5 4 -5 1 -6 -3 -6 -2 -6 -2 -3 2 -1 7 2 6 4 4 4 5 1 5 0 6 0 6 -1 6 0 6 -1 6 0 6 -2 5 -3 5 -3 5 -3 5 -4 5 -2 5 -2 5 -2 6 -2 5 -3 6 -2 5 -3 6 -3 5 -4 2 -6 0 -7 -1 -6 0 -6 0 -5 1 -5 3 -2 6 1 5 4 5 4 5 2 5 -1 6 -2 5 -1 6 -1 6 -1 6 -1 6 -1 5 -2 6 -2 5 -2 6 -2 5 -2 6 -2 5 -3 6 -2 6 -3 4 -4 -1 -3 -6 -3 -5 -2 -6 -2 -5 -4 -5 -3 -5 -4 -4 -4 -5 -4 -4 -3 -5 -2 -5 -2 -5 -1 -6 -1 -7 -2 -6 -3 -3 -6 1 -6 4 -2 4 0 6 1 6 1 6 2 6 1 5 0 6 -1 6 3 5 5 2 6 2 5 3 5 4 4 4 2 5 2 6 1 6 0 6 0 6 -1 5 -3 5 -1 6 1 5 2 6 3 5 5 7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2748 3125l-6 -1 -6 -1 -5 -2 -3 -5 1 -6 1 -6 1 -6 2 -4 5 -5 3 -4 4 -5 4 -4 2 -5 1 -6 -1 -6 -3 -5 -5 -4 -5 -2 -6 -1 -6 1 -5 1 -7 2 -6 0 -1 -3 3 -7 4 -5 5 -2 6 0 6 1 5 2 6 0 4 -3 5 -4 4 -4 5 -4 4 -4 4 -4 4 -5 3 -5 4 -4 7 -3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-856 2935l4 -1 4 -4 4 -4 1 -6 0 -6 0 -5 3 -6 3 -5 5 -3 3 -5 2 -6 -1 -5 -4 -3 -6 -3 -3 -5 -2 -6 0 -6 1 -6 2 -5 2 -6 3 -5 4 -4 4 -5 4 -3 5 -3 7 -1 5 -2 2 -5 2 -9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-802 2802l-6 0 -6 0 -6 1 -6 2 -5 2 -4 3 -4 5 -3 5 -2 6 -2 5 -3 5 -2 6 -2 5 -2 6 -1 5 -3 6 -2 5 0 6 2 5 4 5 3 5 -1 5 -3 6 -1 5 0 6 -1 6 -3 5 0 6 5 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M572 2328l4 3 5 2 6 1 6 1 6 1 5 1 6 2 5 3 6 2 5 -1 6 -2 5 -3 4 -5 2 -5 2 -6 2 -5 3 -5 3 -5 5 -4 5 -1 6 -1 6 -3 5 -3 4 -3 5 -4 3 -4 4 -5 3 -5 2 -6 2 -5 2 -6 1 -6 1 -6 2 -5 2 -5 5 -4 5 -2 6 -2 6 -2 6 0 6 1 5 1 5 3 5 4 4 4 4 5 4 3 5 2 6 0 11 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M794 2248l-2 -5 -3 -6 -3 -4 -5 -4 -5 -3 -4 -4 -5 -3 -7 -4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M1514 7287l-1 -6 -1 -6 0 -6 -1 -6 -1 -5 0 -6 -1 -6 0 -6 1 -6 1 -5 3 -5 4 -5 3 -5 4 -5 3 -4 4 -4 4 -5 4 -4 5 -4 4 -4 5 -4 4 -4 5 -4 4 -4 3 -5 2 -4 1 -6 -1 -6 -1 -6 -2 -6 -2 -6 -4 -6 -3 -3 -5 0 -6 4 -4 4 -4 4 -4 5 -3 5 -4 5 -3 4 -3 6 -2 5 -3 5 -4 4 -4 4 -5 3 -6 2 -5 2 -6 3 -5 2 -6 1 -5 2 -6 2 -6 1 -5 1 -6 1 -7 0 -6 -1 -5 -1 -4 -3 -3 -5 -1 -6 0 -7 0 -6 2 -6 1 -5 -1 -5 -6 -3 -5 1 -5 2 -6 4 -4 3 -5 3 -5 4 -3 5 -4 5 -3 5 -2 6 -2 5 0 5 3 5 4 5 5 4 3 5 4 5 2 5 -1 6 -1 6 -2 6 -3 5 -4 4 -6 0 -6 0 -6 0 -6 -1 -6 1 -4 3 -5 3 -4 5 -5 4 -5 3 -5 2 -5 2 -6 2 -5 2 -6 2 -5 3 -8 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M2600 6812l5 -4 5 -3 4 -4 5 -4 4 -5 4 -4 4 -4 2 -5 0 -7 -3 -4 -6 -1 -6 0 -6 1 -6 0 -6 1 -6 1 -5 0 -6 2 -6 1 -6 0 -6 2 -4 3 -4 4 -3 5 -4 5 -5 3 -5 2 -6 2 -6 1 -6 1 -6 0 -6 -1 -6 0 -5 2 -4 3 -5 4 -3 5 -3 5 -2 6 -1 6 -2 5 -4 5 -5 1 -5 -3 -5 -4 -6 -2 -5 -1 -6 0 -6 0 -6 1 -5 3 -2 5 1 7 3 4 5 4 5 3 5 3 6 3 5 2 5 2 6 0 6 0 6 0 6 0 6 0 5 0 6 2 6 1 6 1 5 0 6 -2 6 -2 5 -2 5 -3 4 -5 3 -5 3 -5 4 -3 6 -1 6 1 6 1 6 -1 5 -4 4 -4 4 -5 3 -4 2 -6 3 -5 2 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2710 2997l3 5 -1 6 -4 5 -3 4 -4 4 -4 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2041 3748l4 -3 -1 -6 -3 -5 -4 -4 -5 -3 -5 -3 -6 -2 -5 -1 -6 -1 -6 0 -6 1 -8 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2100 3724l-5 1 -6 1 -6 2 -5 2 -5 3 -5 4 -4 4 -4 4 -2 9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2092 3722l-8 2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-728 2977l-6 0 -5 -3 -4 -5 -1 -6 -2 -5 -4 -5 -5 -2 -6 0 -6 1 -5 2 -6 2 -5 2 -6 2 -5 1 -6 1 -6 1 -6 0 -6 0 -5 0 -6 2 -5 3 -5 2 -5 3 -6 2 -5 3 -4 4 -4 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-863 2987l-4 5 -4 4 -4 5 0 5 5 4 5 3 6 3 4 4 2 5 1 6 1 6 0 5 0 6 0 6 2 6 2 6 3 4 6 2 6 1 6 0 5 -2 2 -5 1 -6 1 -6 1 -6 -1 -6 -3 -5 -2 -5 -4 -4 -4 -5 -4 -5 -2 -5 -1 -6 0 -6 1 -5 3 -5 4 -4 3 -5 5 -3 5 -3 6 -2 6 0 5 -1 6 -1 6 0 6 0 6 1 5 0 6 1 6 1 5 3 5 3 5 3 6 2 5 2 5 2 6 1 6 1 6 -1 5 -5 -1 -4 -5 -4 -5 -3 -6 1 -7 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M760 2215l-5 -3 -5 -3 -5 -2 -6 -1 -6 0 -6 1 -6 2 -4 3 -5 4 -4 4 -4 4 -5 4 -4 5 -3 4 -4 5 -2 5 -3 5 -1 6 -2 7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2840 2347l5 -3 5 -3 5 -3 4 -4 5 -4 4 -5 3 -5 4 -4 5 1 6 3 4 5 1 5 -1 6 0 6 1 6 1 7 2 5 4 2 6 0 7 0 4 3 4 4 4 5 3 6 3 6 3 5 3 5 3 3 5 0 5 -4 6 -5 5 -1 3 4 6 7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-2712 2400l5 3 4 4 4 4 4 5 4 4 4 4 3 5 4 4 4 5 3 5 4 4 3 5 2 6 3 5 2 6 1 6 -1 5 -5 4 -5 -1 -5 -4 -5 -4 -4 -4 -3 -5 -1 -6 -2 -6 -1 -6 -2 -5 -3 -4 -5 -3 -6 -2 -6 0 -6 1 -5 3 0 8 -2 1 -4 -4 -3 -7 -1 -5 2 -6 0 -6 -3 -5 -5 -5 -4 -3 -6 0 -6 1 -5 -3 -4 -5 -4 -3 -6 -2 -5 -2 -5 -3 -5 -5 -5 -4 -4 -1 -3 3 -3 6 -3 6 -3 5 -5 5 -5 2 -4 -2 -3 -6 -1 -6 2 -5 2 -6 2 -6 1 -6 0 -5 -4 -5 -4 -4 -6 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-3453 4399l5 -4 3 -5 4 -5 3 -5 1 -5 0 -6 -1 -6 -1 -6 0 -6 -1 -5 0 -6 0 -6 2 -6 1 -5 2 -6 2 -5 3 -5 4 -4 4 -5 4 -4 4 -5 3 -4 3 -6 2 -5 1 -6 1 -6 0 -5 -1 -6 -2 -6 -3 -4 -5 -7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str2","@d":"M-1493 1087l4 3 4 5 3 5 1 5 -1 7 -2 5 -4 4 -6 -1 -6 -2 -6 -1 -5 -2 -6 0 -6 0 -9 2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil7 str3","@d":"M-3176 3467l-5 3 -4 3 -5 4 -5 3 -5 4 -4 3 -5 3 -5 3 -5 3 -6 2 -6 1 -5 1 -6 1 -10 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str3","@d":"M-3544 3500l-6 0 -6 1 -6 0 -5 2 -5 2 -5 3 -5 4 -5 3 -5 3 -6 2 -5 0 -6 -2 -6 -1 -5 -2 -6 -2 -6 1 -5 2 -5 4 -4 4 -4 4 -4 4 -4 4 -4 4 -5 4 -4 4 -4 4 -5 4 -4 3 -5 4 -5 4 -4 3 -5 4 -4 3 -5 4 -4 4 -4 4 -4 4 -4 5 -3 4 -4 5 -4 5 -4 4 -4 4 -5 2 -6 1 -6 0 -6 -2 -5 -2 -6 -1 -6 -1 -6 -1 -5 1 -6 2 -5 2 -6 2 -6 1 -6 1 -5 1 -6 1 -6 0 -6 -1 -6 -1 -5 -1 -5 -3 -6 -2 -5 -2 -6 -1 -6 -1 -5 1 -6 2 -5 3 -5 4 -4 4 -5 3 -6 2 -6 1 -5 0 -5 -3 -5 -3 -5 -4 -5 -3 -5 -2 -6 -1 -6 0 -6 1 -5 -1 -6 0 -7 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str3","@d":"M-3997 3618l-4 4 -5 3 -5 2 -6 1 -6 0 -6 0 -5 0 -6 0 -6 0 -6 1 -6 1 -5 2 -4 4 -3 5 -2 6 -2 5 -2 6 -2 5 -4 5 -4 4 -4 4 -4 4 -4 5 -4 4 -4 4 -4 4 -4 5 -4 3 -5 4 -5 3 -5 4 -4 3 -5 3 -5 3 -5 4 -5 3 -4 4 -4 4 -3 5 -3 5 -1 6 -1 6 -3 4 -5 4 -5 3 -4 4 -3 5 -4 5 -4 4 -3 5 -2 5 -2 6 -1 6 0 6 0 5 -2 6 -2 6 -2 5 -2 5 -3 5 -4 5 -3 5 -4 4 -3 5 -4 5 -3 4 -4 5 -4 4 -4 4 -4 4 -5 4 -5 3 -4 4 -5 3 -5 4 -5 3 -5 3 -5 2 -5 1 -6 0 -6 0 -6 0 -6 0 -6 0 -6 1 -5 1 -6 2 -5 3 -5 3 -4 5 -3 4 -1 6 -2 6 -2 5 -2 6 -2 5 -3 5 -2 5 -3 6 -3 5 -3 5 -3 5 -3 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str3","@d":"M-3252 3502l-6 1 -5 1 -6 1 -11 2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str3","@d":"M-3280 3507l-6 0 -6 1 -6 1 -5 1 -6 1 -6 0 -6 -1 -6 0 -5 -1 -6 0 -6 -1 -6 0 -6 -1 -5 -1 -6 0 -6 -2 -6 -1 -5 -1 -6 0 -6 2 -5 2 -6 1 -5 2 -6 2 -5 3 -5 2 -6 2 -6 -1 -5 -1 -6 -2 -6 -1 -6 -1 -5 -1 -6 -1 -6 0 -6 -1 -5 -2 -6 -2 -5 -1 -6 -2 -6 -2 -5 0 -6 -1 -6 0 -6 1 -7 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str3","@d":"M-2869 5541l6 -3 5 -2 5 -4 4 -4 4 -5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str3","@d":"M1155 2704l-6 1 -6 1 -5 1 -6 1 -6 1 -6 1 -5 1 -6 1 -6 1 -6 0 -5 0 -6 -2 -6 -2 -5 -1 -6 -1 -6 -1 -6 -1 -6 0 -5 -1 -6 0 -6 0 -6 0 -6 0 -6 0 -5 1 -6 2 -5 3 -6 1 -5 -1 -5 -3 -5 -4 -4 -3 -5 -4 -5 -3 -5 -4 -4 -3 -5 -3 -6 -3 -5 -3 -4 -4 -3 -4 -3 -6 -1 -6 0 -5 2 -6 1 -6 2 -6 0 -5 0 -6 0 -6 0 -6 -1 -6 0 -5 -2 -6 -1 -6 -2 -5 -2 -6 -1 -6 -2 -5 -1 -6 -1 -6 -1 -6 0 -5 0 -6 1 -6 2 -5 2 -6 3 -5 4 -4 4 -4 5 -3 5 -3 6 -3 5 -2 6 -2 5 -2 6 -3 4 -3 3 -5 3 -5 2 -5 3 -6 2 -5 3 -6 2 -5 2 -6 1 -5 1 -6 1 -6 1 -6 0 -5 -1 -6 -1 -6 -2 -6 -3 -5 -4 -4 -5 -3 -4 -4 -5 -3 -4 -4 -5 -4 -4 -5 -2 -5 -2 -5 -1 -6 0 -6 -1 -6 -3 -5 -5 -3 -6 -3 -5 -2 -6 -1 -6 -1 -5 -1 -6 1 -6 2 -5 2 -6 1 -6 2 -5 2 -6 1 -6 1 -5 1 -6 0 -6 0 -6 0 -6 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str3","@d":"M-3921 2460l-6 2 -5 2 -4 4 -5 4 -4 3 -6 2 -6 1 -5 -1 -6 -2 -5 -3 -6 -1 -5 1 -6 1 -6 -1 -6 -2 -5 -2 -3 -5 -3 -5 -5 -2 -6 -2 -6 -1 -5 -2 -5 -3 -5 -4 -3 -5 -3 -5 -3 -5 -4 -4 -3 -5 -4 -4 -5 -5 -4 -3 -5 -3 -5 -2 -6 -2 -6 -2 -5 -2 -6 -1 -5 -2 -6 -1 -11 -2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str3","@d":"M847 2333l-6 -1 -7 -1 -4 -3 -3 -5 -2 -5 -1 -6 -1 -6 0 -6 2 -6 1 -5 1 -6 1 -6 1 -6 0 -6 -3 -4 -6 -4 -5 -2 -8 -3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str3","@d":"M794 2248l4 0 9 4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str3","@d":"M3001 367l0 6 0 6 0 6 0 5 1 6 0 6 1 6 2 5 2 6 2 5 3 5 2 6 2 5 3 5 2 6 2 5 3 5 2 6 3 5 3 5 2 5 3 6 3 5 3 5 2 5 3 5 3 5 3 5 3 5 3 5 3 5 3 5 4 5 3 4 4 5 3 4 4 5 4 4 4 5 4 4 4 4 4 5 4 4 4 4 4 5 3 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil7 str4","@d":"M1184 367l2 5 3 5 3 5 3 5 4 5 3 5 3 5 3 5 2 5 3 5 2 6 3 5 3 5 4 4 4 4 4 5 4 4 4 4 2 6 2 5 1 6 2 5 3 5 3 5 4 5 4 4 4 5 3 4 4 5 4 4 3 5 4 5 3 5 2 5 3 5 2 5 3 6 2 5 3 5 3 5 4 4 5 4 7 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-2665 3406l-5 -2 -6 -2 -10 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-2686 3401l-6 2 -5 2 -10 4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-2463 3452l-5 2 -6 2 -5 0 -6 -1 -6 -1 -5 -2 -6 -1 -7 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-3569 4591l-6 1 -5 1 -6 1 -6 -1 -6 -1 -5 -1 -6 0 -6 0 -6 2 -4 3 -4 5 -3 5 -3 5 -4 4 -4 4 -4 5 -3 5 -3 5 -2 5 -1 6 -1 6 -1 6 0 5 0 6 0 6 1 6 1 6 1 6 2 5 1 6 0 6 -1 5 -3 5 -3 5 -3 5 -3 5 -4 5 -3 5 -1 6 -1 6 1 6 1 5 3 6 2 5 2 5 0 6 1 6 0 6 0 6 0 6 0 5 1 6 2 6 1 6 1 5 2 6 0 6 0 5 -1 6 -2 6 -1 5 -1 6 0 6 1 6 2 6 -1 5 -1 6 -3 5 -2 6 -2 5 -2 6 -2 5 -2 6 -1 5 -1 6 -1 6 0 6 0 6 1 5 2 6 2 6 3 5 3 5 4 4 5 3 5 3 4 4 5 4 4 4 4 4 4 4 5 4 4 4 5 3 5 1 6 1 6 2 8 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-3592 5050l3 5 4 4 4 5 4 4 4 5 3 5 2 5 2 5 1 6 1 6 0 5 0 6 0 6 0 6 1 6 0 6 0 6 1 6 0 6 1 5 0 6 1 6 0 6 1 6 0 5 1 6 0 6 0 6 1 6 0 5 1 6 0 6 0 6 1 6 0 6 1 5 0 7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-2224 3903l-4 4 -5 4 -4 3 -5 3 -6 3 -5 2 -6 2 -5 2 -5 2 -6 3 -5 3 -4 3 -5 4 -4 4 -4 4 -4 4 -5 5 -4 4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-2420 4022l-6 2 -6 1 -5 0 -6 -2 -6 -2 -5 -2 -5 -3 -5 -3 -5 -3 -5 -3 -6 -1 -6 -1 -5 1 -6 0 -6 0 -6 0 -6 0 -6 0 -6 0 -5 -1 -6 0 -6 -1 -6 0 -6 -1 -5 -1 -10 -2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-2571 4000l-6 0 -6 -1 -6 -1 -6 0 -6 0 -5 2 -6 1 -5 2 -6 3 -5 2 -5 3 -6 2 -5 3 -4 3 -5 4 -5 4 -4 4 -4 4 -4 5 -4 4 -4 4 -4 4 -5 3 -6 1 -6 -1 -6 0 -6 0 -5 0 -6 -2 -5 -3 -5 -3 -5 -3 -6 -2 -5 -1 -6 1 -6 0 -6 2 -6 1 -5 2 -6 2 -4 3 -4 5 -3 5 -3 5 -2 5 -2 6 -1 6 -1 5 -1 6 -1 6 -2 6 -3 4 -5 4 -5 3 -5 3 -6 2 -5 2 -6 2 -6 0 -5 -1 -6 -1 -6 -3 -5 -3 -5 -3 -4 -4 -3 -5 -1 -6 -2 -6 0 -5 0 -6 0 -6 -2 -6 -3 -5 -4 -4 -5 -3 -5 -2 -6 -2 -6 -1 -6 0 -6 1 -5 1 -6 2 -5 3 -6 2 -4 4 -5 3 -4 4 -4 5 -4 4 -5 2 -6 2 -6 2 -6 1 -5 0 -6 0 -6 1 -6 0 -6 0 -6 0 -5 0 -6 0 -6 0 -6 0 -6 0 -6 -1 -5 0 -6 -1 -6 0 -6 -1 -5 -2 -6 -1 -6 -2 -5 -2 -5 -3 -5 -3 -4 -4 -5 -4 -5 -3 -5 -3 -5 -3 -5 -3 -5 -2 -6 -1 -6 -1 -6 0 -6 1 -5 1 -6 1 -6 1 -6 1 -5 2 -6 1 -6 2 -5 1 -6 2 -5 3 -5 2 -6 2 -5 2 -6 2 -5 3 -5 2 -6 3 -5 2 -10 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-3286 4091l-5 3 -4 4 -4 3 -5 4 -4 4 -4 4 -5 4 -4 4 -5 3 -4 4 -5 4 -5 3 -4 3 -5 4 -5 3 -5 3 -5 4 -4 3 -5 3 -5 3 -5 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 4 -4 4 -3 5 1 6 -1 6 0 6 0 6 0 6 0 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-2310 4959l5 -3 5 -3 5 -3 5 -1 6 -2 6 -1 6 -1 4 -3 4 -5 3 -5 3 -5 3 -5 4 -5 4 -3 6 -2 6 -1 5 -1 6 -1 6 -2 5 -3 5 -2 6 -2 5 -2 6 -1 6 -1 6 -1 5 0 6 0 6 1 6 1 5 1 6 0 6 -1 6 -1 6 -1 5 -1 6 -2 5 -1 6 -2 6 -2 5 -2 6 -2 5 -2 6 -1 5 -2 6 -2 5 -2 6 -2 5 -1 6 -2 5 -3 6 -2 5 -3 5 -3 5 -3 5 -3 5 -2 5 -2 6 -2 6 -2 5 -3 6 -2 5 -2 5 -3 5 -2 3 -5 3 -5 4 -5 4 -4 5 -3 5 -3 5 -4 5 -2 5 -1 6 1 6 1 6 1 6 1 5 -1 6 -1 6 -1 6 -1 5 -2 6 -1 6 -2 5 -2 6 -1 5 -3 5 -2 6 -3 5 -3 4 -3 5 -4 3 -5 3 -5 3 -5 2 -6 2 -5 3 -5 5 -3 5 -3 6 -2 6 -1 5 -1 6 0 6 1 6 1 5 1 6 2 6 1 5 2 6 2 4 4 6 1 6 0 8 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-2481 5030l5 0 6 -1 6 -1 5 -2 5 -3 6 -3 5 -3 5 -3 5 -3 4 -3 5 -3 6 -3 5 -1 6 -1 6 -2 5 -1 6 -2 5 -3 5 -2 10 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-2845 5523l2 -6 3 -5 2 -5 2 -5 2 -6 2 -6 1 -5 2 -6 2 -5 3 -6 2 -5 3 -5 3 -5 3 -5 4 -4 6 -2 6 -2 5 -3 4 -3 5 -4 4 -4 3 -5 3 -5 1 -6 1 -6 0 -6 -1 -6 0 -5 -2 -6 -1 -6 -1 -6 -2 -5 -1 -6 -1 -6 -1 -5 0 -6 1 -6 2 -6 1 -5 3 -5 3 -5 3 -5 3 -5 3 -6 2 -5 1 -6 1 -6 1 -5 2 -6 3 -5 2 -5 3 -5 3 -5 3 -5 4 -5 4 -4 4 -5 3 -4 3 -5 2 -6 1 -6 1 -5 1 -6 1 -6 1 -6 2 -5 1 -6 1 -6 1 -6 0 -5 -1 -6 -1 -6 -2 -6 -1 -5 0 -6 1 -6 1 -6 2 -5 2 -6 3 -5 4 -4 4 -4 5 -4 5 -3 5 -2 6 -2 5 -2 5 -3 5 -4 4 -3 5 -4 4 -4 4 -4 5 -4 4 -4 4 -4 5 -3 5 -2 6 -2 6 -2 5 -2 6 -1 5 -3 5 -2 6 -3 5 -2 6 -1 6 -1 5 0 6 0 6 0 6 1 5 2 6 3 5 2 6 2 5 0 6 0 6 -1 6 0 6 -1 5 0 7 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-2845 5523l5 0 6 1 6 1 6 2 5 2 5 3 4 5 3 5 4 3 6 -1 4 -5 1 -6 2 -5 2 -5 4 -5 4 -4 5 -4 4 -3 5 -4 5 -3 4 -4 5 -3 5 -3 5 -3 5 -4 4 -3 5 -3 5 -4 5 -2 5 -3 6 -3 5 -2 6 -1 6 -1 6 0 5 3 5 3 5 -1 5 -4 5 -3 4 -4 4 -5 3 -5 2 -6 2 -5 0 -6 0 -6 0 -6 0 -6 2 -5 3 -5 3 -5 2 -6 0 -5 0 -6 0 -6 -1 -6 -2 -6 -2 -5 -3 -5 -4 -5 -4 -4 -5 -2 -5 -3 -6 -2 -5 -2 -6 -2 -5 -2 -5 -3 -5 -4 -5 -3 -3 -4 -3 -6 -2 -5 -2 -6 -1 -6 -1 -5 1 -6 0 -6 2 -6 1 -5 1 -6 1 -6 2 -6 1 -5 2 -6 3 -5 3 -5 3 -4 5 -4 5 -3 5 -3 5 -2 3 -5 2 -6 2 -5 2 -6 2 -5 2 -6 1 -6 1 -5 2 -6 1 -6 1 -6 0 -5 -1 -6 0 -6 0 -6 0 -6 1 -5 2 -6 3 -5 3 -5 3 -5 3 -5 4 -4 5 -4 5 -3 5 -3 5 -3 5 -3 5 -3 5 -2 6 -2 5 -2 6 -2 5 -2 6 -1 6 -1 6 0 6 0 5 0 6 0 6 0 6 1 6 0 5 -1 6 -2 5 -2 6 -3 5 -2 5 -3 7 -9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-2370 4984l5 -2 6 -1 5 -2 6 -2 5 -3 5 -2 5 -3 6 -2 5 -3 5 -2 7 -3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-141 1874l-3 -5 -4 -5 -5 -3 -4 -3 -5 -3 -5 -4 -5 -3 -4 -4 -5 -4 -4 -4 -4 -4 -5 -3 -5 -4 -5 -2 -5 -3 -5 -3 -5 -3 -4 -5 -2 -5 0 -6 1 -6 -1 -5 -4 -3 -6 -2 -6 -3 -4 -3 -4 -5 -3 -5 -2 -6 1 -5 2 -6 1 -6 -1 -6 -1 -5 -3 -6 -3 -5 -4 -4 -4 -4 -5 -4 -5 -3 -5 -3 -4 -4 -5 -3 -6 -2 -5 -3 -9 -5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M572 2328l-5 -3 -5 -2 -5 -3 -6 -3 -5 -2 -5 -2 -6 -2 -6 -1 -6 -1 -5 0 -6 0 -6 0 -5 2 -6 3 -5 2 -6 2 -5 1 -6 1 -6 1 -6 1 -6 1 -6 1 -6 1 -5 0 -5 -4 -3 -5 1 -4 5 -4 6 -4 3 -4 4 -5 2 -6 1 -5 -3 -6 -5 -2 -6 0 -5 3 -5 4 -5 3 -5 0 -5 -3 -6 -2 -6 -2 -5 -3 -3 -4 -3 -5 -2 -6 -2 -6 -4 -5 -3 -4 -3 -5 -4 -5 -4 -4 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -3 -5 -4 -5 -3 -4 -3 -5 -3 -5 -3 -6 -2 -5 -1 -6 -3 -6 -3 -4 -4 -3 -6 -1 -7 -1 -5 0 -6 0 -6 1 -6 -1 -6 -1 -5 -2 -5 -2 -5 -3 -6 -3 -5 -3 -5 -3 -5 -3 -5 -3 -4 -3 -5 -3 -5 -4 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -2 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -4 -5 -3 -5 -3 -5 -3 -5 -4 -4 -3 -5 -3 -5 -4 -5 -3 -5 -2 -5 -3 -6 -2 -5 -2 -6 -3 -5 -2 -4 -4 -5 -3 -5 -3 -5 -4 -4 -3 -5 -4 -4 -4 -5 -3 -5 -4 -4 -3 -5 -4 -4 -4 -5 -3 -5 -4 -4 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -4 -4 -4 -4 -4 -4 -4 -4 -5 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -3 -5 -3 -5 -3 -5 -4 -4 -4 -4 -3 -6 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-473 1564l-5 -1 -6 0 -6 0 -6 0 -6 0 -6 1 -5 -2 -4 -4 -4 -5 -3 -5 -4 -4 -3 -5 -3 -5 -5 -3 -5 -1 -6 -2 -6 0 -6 1 -6 0 -5 -1 -6 -1 -5 -3 -5 -3 -5 -3 -6 -3 -5 -2 -5 -3 -5 -2 -6 -2 -5 -3 -6 -2 -5 -1 -6 -1 -6 -1 -5 -1 -6 0 -6 -1 -6 -1 -5 -2 -6 -1 -6 -1 -5 -2 -6 -1 -6 -2 -5 -1 -6 -1 -6 -2 -5 -1 -6 -3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-3298 2439l-6 1 -5 1 -6 0 -6 -1 -6 -1 -5 -2 -6 -1 -6 -1 -5 -1 -6 -1 -6 -1 -6 0 -6 -1 -5 -1 -6 -2 -5 -2 -5 -4 -4 -4 -5 -4 -4 -4 -4 -4 -3 -5 -3 -5 -4 -4 -5 -4 -4 -4 -5 -3 -5 -2 -6 -1 -6 0 -6 1 -6 1 -6 1 -5 2 -6 2 -5 2 -5 2 -6 3 -5 3 -5 3 -5 3 -5 2 -6 2 -5 1 -6 0 -6 0 -6 -1 -6 0 -5 -1 -6 1 -6 1 -6 2 -5 2 -6 1 -5 3 -5 4 -5 0 -5 -2 -6 -4 -5 -2 -6 -2 -5 -1 -6 -1 -6 -1 -6 0 -6 0 -5 -1 -6 0 -6 0 -6 0 -6 0 -6 1 -5 1 -6 2 -5 2 -6 2 -5 3 -5 2 -5 3 -5 3 -5 3 -5 4 -4 4 -5 2 -6 3 -5 1 -6 2 -6 1 -6 1 -5 1 -6 0 -6 0 -6 0 -6 0 -5 0 -6 0 -6 0 -6 1 -6 1 -5 1 -6 1 -6 -1 -6 -1 -5 0 -6 0 -6 1 -6 1 -6 1 -5 2 -6 1 -6 1 -5 2 -6 2 -6 2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-3146 2517l-6 -1 -6 -2 -5 0 -6 1 -5 2 -6 2 -6 2 -5 2 -6 2 -5 1 -6 -1 -6 -2 -5 -3 -4 -4 -4 -4 -4 -4 -3 -6 -3 -4 -6 -3 -4 -3 -5 -4 -5 -4 -4 -4 -2 -4 1 -6 2 -5 2 -6 0 -7 0 -6 -4 -3 -5 -3 -6 -1 -6 -1 -6 -1 -6 1 -7 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-2917 2335l-4 5 -4 4 -6 2 -6 0 -5 2 -4 4 -4 5 -4 4 -5 3 -5 2 -6 1 -6 0 -6 0 -6 1 -6 1 -5 1 -6 1 -5 2 -5 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 5 -4 4 -4 4 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -2 5 -3 6 -2 5 -2 6 -2 5 -2 5 -2 6 -3 5 -2 5 -4 5 -4 4 -5 3 -4 4 -6 2 -6 1 -5 2 -6 0 -6 -1 -8 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str4","@d":"M-310 1686l-5 -3 -5 -3 -5 -4 -5 -2 -5 -3 -5 -3 -6 -2 -5 -3 -5 -2 -5 -3 -5 -3 -6 -2 -5 -2 -6 -2 -6 -1 -6 -2 -4 -3 -3 -5 -1 -6 0 -6 -3 -6 -7 -8 -4 -4 -4 -4 -4 -5 -4 -4 -5 -4 -4 -4 -4 -3 -5 -4 -4 -4 -5 -4 -5 -2 -10 -5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil7 str5","@d":"M2998 367l0 6 -3 5 -5 2 -6 -1 -6 -1 -6 -1 -5 -1 -6 0 -6 1 -6 2 -5 2 -6 2 -4 3 -5 4 -4 4 -4 5 -2 5 -2 5 -2 6 -1 6 -1 5 -1 6 0 6 0 7 2 5 6 1 6 0 2 6 -2 5 -4 4 -5 4 -5 4 -4 3 -4 5 -4 4 -5 3 -4 4 -5 4 -4 4 -2 6 -1 5 1 6 1 6 1 6 1 5 2 6 2 5 3 6 2 5 4 9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M1321 577l6 1 4 4 5 3 3 5 3 5 3 5 3 5 2 6 3 5 3 5 3 5 3 5 2 5 3 6 3 5 4 4 3 5 4 4 4 4 5 4 4 3 5 4 5 3 5 3 5 3 5 4 5 3 4 3 5 3 5 3 5 4 5 3 4 4 5 4 4 3 5 3 5 3 5 3 5 3 5 3 6 3 5 2 5 3 6 2 5 2 5 2 6 2 5 2 6 2 5 2 6 1 6 2 5 2 6 2 5 2 6 1 5 2 6 3 5 2 6 1 5 2 6 0 6 0 6 1 5 2 6 2 5 3 5 2 6 2 5 3 5 2 6 2 5 2 6 3 5 2 6 1 5 2 6 2 5 1 6 2 5 2 6 2 6 2 5 1 6 2 5 1 6 1 6 0 6 1 6 0 5 0 6 0 6 0 6 0 6 2 5 2 6 3 5 2 5 2 6 0 5 -2 5 -3 6 -2 6 -2 5 -1 6 1 6 1 6 1 5 1 6 -1 6 -1 6 0 5 1 6 3 5 2 6 2 5 1 6 0 6 -2 5 -2 5 -4 4 -4 4 -4 4 -4 4 -5 3 -5 4 -4 4 -4 5 -4 5 -3 5 -3 5 -3 5 -3 5 -2 5 -3 6 -2 5 -2 6 -2 6 -1 6 0 5 2 5 3 5 4 5 3 5 3 5 2 6 1 6 0 5 0 6 -1 6 -1 6 -1 6 -1 5 -1 5 -3 4 -4 4 -5 3 -5 3 -5 3 -5 3 -5 3 -5 4 -4 4 -5 5 -3 5 -3 5 -2 6 -2 6 -2 5 -1 6 -2 6 -1 5 -1 6 -1 6 0 6 1 5 2 6 2 5 2 6 -2 5 -2 6 -2 5 -1 6 -1 6 0 6 -1 6 -1 5 -1 6 -1 6 -1 6 1 5 2 6 1 5 2 6 2 6 1 5 0 6 0 6 0 6 1 5 2 6 2 6 1 6 1 6 1 5 1 6 0 6 0 5 0 5 -4 4 -4 3 -5 2 -6 2 -6 3 -5 4 -4 6 -1 5 0 6 1 6 0 6 -2 4 -3 5 -5 3 -4 3 -5 2 -6 2 -6 1 -5 3 -5 3 -6 3 -4 3 -5 4 -5 4 -4 4 -4 4 -4 4 -4 4 -5 5 -4 5 -3 5 2 5 3 6 1 6 0 6 -1 5 -1 6 -2 6 -1 5 -2 6 -2 5 -3 4 -3 5 -4 4 -4 5 -4 4 -4 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 5 -4 4 -4 5 -4 4 -3 5 -3 5 -3 6 -2 5 -3 5 -2 6 -1 6 -2 5 -2 6 -1 5 -2 6 -2 6 -1 5 -2 6 -2 5 -4 4 -4 5 -3 5 -1 6 1 6 2 5 2 6 2 6 1 5 -1 6 -3 4 -3 4 -5 4 -4 3 -5 4 -4 4 -5 4 -4 4 -4 4 -5 4 -4 5 -3 4 -4 5 -4 5 -3 5 -2 5 -2 6 1 6 0 6 1 6 1 6 1 6 -1 6 -1 5 -3 2 -4 2 -6 1 -6 1 -6 1 -6 2 -5 4 -5 3 -4 3 -5 3 -11","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M1321 367l3 5 3 5 2 5 3 5 4 5 3 5 4 4 4 4 5 4 4 4 5 3 5 4 5 3 5 3 5 3 5 2 5 2 6 2 6 1 6 1 5 1 6 0 6 0 6 -1 6 -1 5 -1 6 -3 5 -2 5 -3 4 -4 5 -3 5 -4 5 -3 5 -3 5 -2 6 -2 5 -2 5 -3 5 -4 3 -4 4 -5 3 -5 4 -5 4 -4 4 -3 6 -2 10 -2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M770 1225l-1 -5 -1 -6 -1 -6 0 -6 -1 -6 -1 -5 0 -6 -1 -6 -1 -6 0 -6 1 -5 2 -6 1 -6 2 -5 1 -6 0 -6 1 -6 1 -5 1 -6 0 -6 1 -6 0 -6 1 -5 0 -6 0 -6 -1 -6 0 -6 -1 -6 0 -5 -1 -6 0 -6 0 -6 0 -6 0 -6 1 -6 1 -5 2 -6 4 -4 4 -5 5 -3 5 -1 6 0 6 1 6 1 6 0 6 -1 6 0 6 -1 5 0 6 -1 6 -1 6 -1 5 -1 6 -1 6 -2 5 -1 6 -2 6 -1 5 -2 5 -2 6 -3 5 -3 5 -2 6 -2 5 -1 6 0 6 0 6 0 6 0 6 0 5 1 6 0 6 0 6 -1 6 0 6 0 5 -1 6 -1 6 0 6 -1 5 -1 6 -2 6 -1 5 -2 6 -2 5 -3 5 -3 4 -4 5 -4 4 -4 4 -4 3 -5 2 -6 3 -5 3 -5 4 -4 4 -4 4 -5 4 -3 5 -4 4 -4 5 -3 5 -3 5 -3 5 -3 6 -2 5 -2 6 -2 5 -1 6 -2 6 -2 4 -3 5 -3 4 -4 4 -5 4 -4 4 -4 4 -5 4 -4 3 -5 4 -4 5 -4 4 -4 4 -4 4 -4 4 -4 4 -5 3 -5 4 -4 3 -5 3 -5 3 -5 3 -5 3 -5 1 -6 2 -5 0 -6 1 -6 1 -6 1 -6 2 -5 1 -6 2 -6 1 -5 2 -6 1 -6 2 -5 2 -5 3 -6 2 -5 3 -5 3 -5 3 -5 4 -4 4 -5 4 -4 5 -4 4 -4 4 -4 5 -4 2 -5 3 -5 2 -5 1 -6 2 -6 0 -6 1 -6 -1 -5 -1 -6 -1 -10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M706 1099l1 -5 1 -6 -2 -6 -3 -5 -4 -4 -5 -4 -4 -3 -5 -3 -5 -4 -5 -3 -3 -5 -4 -5 -3 -5 -2 -5 -2 -5 0 -6 0 -6 -1 -6 -2 -5 -2 -6 -2 -5 -3 -5 -3 -6 -2 -5 -3 -5 -2 -5 -3 -6 -3 -5 -3 -5 -2 -5 -2 -6 -2 -5 -1 -6 -2 -6 -1 -5 -1 -6 -2 -6 -1 -5 -1 -6 -1 -6 -1 -6 -1 -5 0 -6 -1 -6 0 -6 0 -6 1 -5 0 -6 0 -6 1 -6 0 -6 1 -6 0 -5 0 -6 1 -6 0 -6 0 -6 0 -6 0 -5 0 -6 -1 -6 0 -6 -1 -6 -1 -5 -2 -6 -2 -5 -3 -5 -3 -5 -3 -5 -4 -5 -3 -5 -2 -5 -1 -6 -1 -6 -1 -6 0 -5 0 -6 -1 -6 -1 -6 -1 -6 -1 -5 -2 -6 -2 -5 -2 -6 -3 -5 -2 -5 -3 -6 -2 -5 -3 -5 -2 -5 -3 -6 -3 -5 -2 -5 -3 -5 -4 -5 -4 -4 -5 -2 -6 -2 -6 0 -6 -1 -6 1 -5 0 -6 1 -6 1 -6 1 -6 0 -5 0 -6 -1 -6 -2 -5 -2 -5 -3 -5 -3 -5 -3 -5 -3 -5 -4 -4 -3 -5 -4 -4 -4 -4 -5 -4 -4 -3 -5 -4 -4 -4 -4 -4 -5 -4 -4 -4 -4 -5 -4 -5 -2 -5 -2 -6 -2 -6 -1 -6 0 -6 -1 -5 1 -6 0 -6 1 -6 0 -6 -1 -5 0 -6 0 -6 0 -6 0 -6 -1 -6 0 -5 -1 -6 0 -6 -1 -6 0 -6 0 -5 1 -6 1 -6 2 -5 2 -6 1 -5 3 -5 3 -5 3 -6 2 -5 1 -6 0 -6 0 -6 0 -6 0 -6 1 -6 0 -5 -1 -6 0 -6 -2 -5 -1 -6 -2 -5 -2 -6 -2 -5 -3 -5 -3 -5 -4 -5 -3 -5 -2 -6 -2 -5 -2 -6 0 -6 2 -4 3 -4 5 -4 4 -5 3 -5 4 -3 5 -2 6 -2 5 -3 5 -4 3 -6 3 -5 2 -5 2 -6 3 -5 2 -5 3 -5 3 -5 2 -6 2 -6 2 -5 2 -5 2 -5 4 -3 5 -4 4 -4 5 -3 5 -3 5 -4 4 -4 4 -5 3 -6 2 -5 2 -6 1 -5 2 -5 4 -3 5 -4 4 -3 6 -2 5 -1 6 2 5 2 6 3 5 2 5 1 6 1 6 0 6 -1 5 -1 6 -2 6 -3 5 -4 4 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -6 1 -6 0 -6 -1 -6 0 -5 0 -6 0 -6 0 -6 1 -6 0 -5 1 -6 0 -6 2 -5 3 -6 1 -5 -2 -6 -2 -4 -4 -3 -5 -4 -5 -4 -4 -4 -5 -4 -5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M3405 5687l-5 2 -6 3 -5 2 -5 3 -4 5 -3 5 -3 5 -3 4 -4 6 -3 4 -4 4 -5 3 -6 2 -6 2 -5 1 -6 0 -6 1 -6 0 -6 -1 -5 0 -6 0 -6 0 -6 0 -6 -1 -6 1 -5 1 -6 2 -5 2 -6 2 -6 1 -5 0 -6 0 -6 -1 -6 -1 -6 -1 -5 -1 -6 -1 -6 0 -6 -1 -5 0 -6 1 -6 1 -6 1 -6 1 -5 0 -6 0 -6 1 -6 0 -6 -1 -5 0 -6 0 -6 0 -6 -1 -6 0 -6 -1 -5 0 -6 -1 -7 -1 -6 -1 -5 0 -6 1 -4 2 -4 5 -3 6 -2 5 0 6 0 6 0 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M2442 6139l2 -6 2 -6 1 -5 1 -6 2 -6 2 -6 1 -6 1 -5 -1 -6 -2 -4 -5 -4 -5 -4 -5 -3 -6 -1 -6 -2 -5 -1 -6 -1 -6 -2 -5 -2 -6 -2 -6 -2 -6 -2 -5 -3 -4 -3 -2 -5 0 -6 0 -6 1 -6 -1 -6 -1 -6 -2 -6 -2 -5 -2 -6 -2 -5 -2 -6 -2 -5 -2 -6 -3 -4 -4 -5 -3 -4 -4 -5 -4 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -4 -4 -4 -4 -5 -4 -4 -4 -4 -4 -5 -4 -4 -3 -5 -3 -6 -3 -5 -1 -6 -1 -6 0 -6 0 -6 2 -5 2 -5 3 -5 3 -5 3 -5 2 -6 2 -6 1 -6 0 -5 0 -6 0 -6 -1 -6 0 -6 -1 -6 0 -5 -1 -6 -1 -6 -1 -6 -1 -5 -1 -6 -2 -6 -1 -5 -1 -6 -2 -6 -2 -5 -1 -6 -2 -5 -1 -6 -2 -6 -1 -5 -2 -6 -1 -6 -2 -5 -1 -6 -2 -6 -1 -5 -1 -6 -1 -6 -1 -6 0 -5 0 -6 -1 -6 0 -6 0 -6 -1 -6 0 -5 -1 -6 -1 -6 0 -6 -1 -6 0 -5 0 -6 0 -6 1 -6 1 -5 1 -6 2 -6 1 -5 2 -6 2 -5 2 -6 2 -5 2 -6 2 -5 3 -5 3 -5 2 -6 2 -5 1 -6 1 -6 1 -6 1 -5 1 -6 2 -6 1 -5 2 -6 1 -6 2 -5 0 -6 1 -6 0 -6 0 -6 1 -5 0 -6 1 -6 1 -6 1 -5 1 -6 1 -6 1 -6 1 -5 1 -6 1 -6 1 -6 1 -6 1 -5 1 -6 1 -5 2 -6 2 -5 3 -5 2 -6 2 -5 2 -6 2 -5 2 -6 2 -5 2 -6 2 -5 2 -6 2 -5 3 -5 3 -5 3 -4 4 -5 3 -5 3 -5 3 -5 3 -6 2 -5 2 -5 3 -6 2 -5 3 -5 2 -5 4 -5 3 -5 2 -6 2 -6 0 -6 -1 -5 0 -6 1 -6 2 -5 2 -6 3 -5 2 -5 3 -5 3 -2 5 -1 6 -2 6 -3 5 -5 3 -5 2 -6 2 -6 1 -5 1 -6 1 -6 1 -6 1 -5 2 -6 2 -5 3 -4 3 -4 5 -4 4 -3 5 -4 5 -4 4 -4 4 -4 4 -4 4 -5 4 -4 4 -4 4 -5 4 -5 2 -6 2 -5 1 -6 2 -6 1 -5 2 -4 4 -4 5 -5 4 -5 2 -5 1 -6 2 -6 1 -6 1 -6 1 -5 1 -6 0 -6 0 -6 0 -5 -1 -6 -1 -6 -1 -6 -1 -5 -2 -6 -1 -6 -1 -6 0 -5 1 -6 1 -6 0 -6 1 -6 0 -5 0 -6 0 -6 1 -6 1 -6 1 -5 1 -6 1 -6 0 -6 0 -6 -2 -4 -4 -3 -5 -2 -6 -4 -4 -5 -3 -5 -3 -5 -2 -6 -2 -5 -2 -6 -1 -6 -2 -6 -1 -5 0 -6 1 -6 1 -6 1 -6 2 -5 1 -6 2 -5 1 -6 2 -6 0 -6 1 -5 0 -6 0 -6 0 -6 0 -6 1 -6 0 -6 0 -5 0 -6 0 -6 0 -6 0 -6 0 -5 -1 -6 -1 -6 -1 -6 -1 -5 0 -6 -1 -6 0 -6 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-556 6840l-5 2 -5 3 -6 3 -5 2 -5 3 -5 4 -4 3 -4 5 -4 5 -2 5 -2 5 -1 6 0 6 -1 6 0 6 -1 5 -2 6 -2 5 -2 6 -2 5 -3 6 -3 5 -3 4 -4 5 -4 4 -5 3 -5 3 -6 2 -5 2 -6 1 -6 1 -5 1 -6 1 -6 1 -6 2 -5 1 -6 3 -5 2 -5 3 -5 3 -5 2 -5 3 -6 3 -5 3 -5 3 -5 3 -4 4 -3 5 -4 4 -4 5 -4 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 4 -4 4 -4 5 -4 4 -4 4 -4 5 -4 4 -3 5 -3 5 -2 5 -2 6 -2 5 -2 6 -2 5 -3 6 -3 5 -3 5 -3 4 -4 5 -4 4 -4 4 -5 4 -5 3 -5 3 -5 2 -6 2 -5 0 -6 1 -6 2 -6 2 -5 2 -5 3 -4 4 -3 5 -2 6 -1 5 2 6 2 6 0 5 0 6 -2 6 -2 5 -2 6 -3 5 -4 5 -4 4 -4 3 -6 3 -5 2 -6 2 -5 3 -5 3 -4 4 -4 4 -3 5 -4 4 -4 5 -5 8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M648 6287l0 6 0 6 0 6 1 6 2 5 1 6 2 6 2 5 3 5 1 6 0 5 -2 6 -3 5 -2 6 -4 5 -3 4 -4 5 -4 4 -3 5 -4 4 -4 5 -4 4 -5 3 -4 4 -5 3 -5 4 -4 4 -3 5 -2 5 -1 6 -4 5 -4 4 -4 4 -4 4 -5 4 -4 4 -3 4 -2 6 0 6 2 5 2 6 3 5 4 4 4 5 3 5 2 5 3 5 2 6 2 5 3 6 2 5 1 6 -1 5 -1 6 -1 6 -1 6 -1 5 -1 6 0 6 -1 6 -1 6 -1 5 -2 6 -1 6 -2 5 -2 6 -2 5 -2 6 -3 5 -3 5 -3 4 -4 5 -4 4 -5 4 -4 4 -5 3 -4 4 -5 4 -5 3 -5 3 -5 3 -4 3 -5 4 -4 4 -3 5 -4 4 -4 5 -3 5 -4 4 -3 5 -4 4 -3 5 -4 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 4 -4 5 -4 4 -4 5 -3 4 -4 5 -3 5 -4 4 -4 5 -4 5 -3 4 -3 5 -3 5 -2 5 -2 6 -1 6 0 6 0 6 -1 5 0 6 0 6 0 6 1 6 0 6 0 5 1 6 0 6 1 6 0 6 1 5 0 6 1 6 0 6 1 6 0 6 1 5 0 6 -1 6 -1 6 -1 5 -1 6 -1 6 0 6 -1 5 0 6 -1 6 -1 6 -2 5 -1 6 -1 6 -1 5 -2 6 -1 6 -1 6 0 5 0 6 0 6 1 6 1 6 2 5 0 6 1 6 0 6 -1 6 0 6 -1 5 -2 6 -2 5 -3 5 -3 5 -4 5 -4 4 -4 5 -3 5 -2 5 -2 5 -2 6 -2 5 -2 6 -1 6 -2 5 -2 5 -3 6 -2 5 -4 5 -3 5 -3 4 -4 5 -4 4 -4 5 -3 4 -4 5 -3 5 -2 5 -5 10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2705 7287l-4 -5 -3 -5 -3 -5 0 -6 -1 -6 0 -6 1 -6 0 -5 -2 -6 -3 -5 -5 -2 -6 -1 -6 -1 -6 -1 -6 0 -5 -1 -6 0 -6 -1 -6 -1 -5 -2 -6 -2 -5 -2 -6 -2 -5 -2 -6 -1 -5 -2 -6 -1 -6 -1 -6 -1 -6 -1 -5 -1 -6 0 -6 2 -5 2 -5 2 -5 3 -5 4 -4 4 -4 4 -4 5 -4 4 -5 4 -4 4 -4 4 -5 3 -4 4 -5 3 -5 2 -6 3 -5 3 -4 4 -5 3 -6 1 -6 0 -6 -1 -4 -4 -2 -6 -5 -2 -6 0 -6 1 -5 3 -3 5 -2 6 -1 11","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-3947 3399l-5 -4 -4 -3 -2 -6 0 -6 0 -6 1 -5 2 -6 2 -6 3 -5 4 -3 6 -2 5 -1 6 -1 6 -1 5 -2 5 -3 5 -3 5 -4 5 -3 4 -3 5 -4 4 -4 4 -5 4 -4 3 -5 3 -5 3 -5 3 -5 3 -5 4 -4 4 -4 5 -4 5 -3 5 -3 5 -2 5 -3 5 -3 6 -3 5 -2 6 -1 5 -1 6 -1 6 0 6 0 6 -1 6 -1 5 -1 6 -1 6 -2 5 -1 6 -2 4 -4 5 -4 5 -2 6 0 6 1 6 0 6 1 5 -1 4 -3 4 -6 3 -4 3 -5 3 -6 1 -5 1 -6 3 -5 3 -5 5 -4 5 -3 5 -3 4 -3 5 -4 5 -4 4 -3 5 -4 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 4 -3 5 -4 5 -3 5 -2 6 -2 6 -1 5 0 6 -2 6 -1 6 -1 5 -2 6 -1 5 -2 6 -3 5 -3 4 -3 5 -4 4 -4 4 -5 3 -4 3 -5 4 -5 3 -4 4 -5 4 -4 5 -4 4 -4 5 -3 5 -4 4 -3 4 -4 4 -5 2 -5 2 -6 3 -5 3 -5 3 -5 4 -4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-4270 3123l5 2 6 2 5 1 6 2 6 2 5 0 6 -1 6 -2 5 -2 6 -2 5 -2 5 -3 4 -4 5 -4 5 -2 6 -2 5 -2 6 -1 6 -2 5 -1 6 -2 5 -2 6 -1 6 -2 5 -2 6 -2 5 -1 6 -2 5 -2 6 -2 5 -2 6 -2 5 -1 6 -2 6 -1 6 -1 5 -1 6 0 6 -1 6 1 6 1 5 2 5 4 3 5 3 5 4 4 5 4 5 3 5 2 5 -2 5 -4 5 -4 4 -4 5 -3 4 -4 5 -4 4 -4 5 -3 4 -4 4 -4 5 -4 4 -4 4 -5 3 -4 3 -5 3 -6 2 -5 2 -6 3 -5 3 -5 3 -4 5 -4 4 -4 5 -3 6 -3 5 -3 5 -2 6 -1 6 -1 5 0 6 0 6 0 6 1 6 0 6 0 6 -1 5 -1 5 -3 4 -4 5 -4 4 -4 5 -3 5 -3 6 -3 5 -2 5 -2 5 -3 6 -2 5 -2 6 -2 5 -3 6 -2 5 -2 5 -4 4 -3 4 -5 3 -4 4 -5 4 -4 4 -4 5 -4 4 -4 4 -4 5 -4 5 -3 4 -4 5 -2 6 -3 5 -1 6 -2 6 0 6 -1 6 -1 5 -2 5 -3 5 -3 5 -3 5 -2 6 -3 5 -2 5 -3 5 -2 6 -2 5 -2 6 -2 5 -1 6 -1 6 -1 6 -1 5 -2 6 -2 5 -2 5 -3 6 -3 5 -2 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -4 4 -3 5 -3 5 -4 4 -3 5 -3 5 -3 6 -3 5 -3 5 -2 6 -1 6 0 6 0 6 0 6 1 6 1 5 1 5 3 4 4 3 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-3997 3618l-1 -6 0 -6 -1 -6 -1 -5 -2 -6 -1 -5 1 -6 4 -5 4 -4 5 -4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2994 3305l6 -3 4 -3 5 -5 5 -2 6 -1 5 0 6 -1 6 0 6 2 4 3 5 4 5 4 5 3 5 1 6 1 6 1 6 1 5 2 6 1 5 3 6 2 5 1 6 -1 5 -3 6 -1 6 0 6 0 5 -1 5 -4 1 -5 -3 -6 -3 -5 -3 -5 -4 -4 -2 -6 -1 -5 -1 -6 0 -6 0 -6 -1 -6 1 -6 3 -4 5 -4 4 -4 4 -4 5 -4 4 -4 4 -5 4 -4 3 -4 4 -5 4 -4 4 -5 3 -5 3 -5 3 -5 4 -4 4 -3 5 -4 5 -3 5 -3 5 -3 5 -4 4 -4 4 -4 3 -5 2 -6 2 -9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-3280 3507l4 3 4 4 4 5 3 5 3 5 3 5 2 5 2 6 1 5 2 6 2 6 2 5 2 6 2 5 2 5 3 6 2 5 3 5 4 5 3 4 4 5 4 4 4 4 4 4 5 4 4 4 4 4 5 4 5 3 4 4 5 3 5 3 5 3 5 3 5 3 5 3 6 2 5 3 5 2 6 2 6 1 5 0 6 -1 5 -3 6 -2 5 -2 6 -2 6 -2 5 0 6 1 6 2 4 4 4 4 4 4 4 5 4 4 2 6 4 5 4 3 5 3 5 2 6 2 6 1 5 2 6 1 6 0 6 1 5 1 6 0 6 1 6 0 6 0 6 1 5 0 6 0 6 1 6 1 5 2 6 1 6 2 5 1 6 2 6 1 5 2 6 1 5 2 6 2 5 2 6 1 6 2 5 2 6 1 5 2 6 2 6 1 5 2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2668 3397l-6 0 -6 1 -6 3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-1483 3350l-4 4 -6 3 -5 2 -5 3 -5 4 -4 3 -5 3 -5 4 -5 3 -4 4 -5 3 -5 2 -6 1 -6 -1 -6 0 -6 0 -6 0 -5 0 -6 0 -6 0 -6 0 -6 0 -6 0 -5 -1 -6 -2 -5 -2 -6 -2 -5 -2 -6 -1 -6 -1 -6 0 -6 1 -5 1 -6 2 -5 2 -5 3 -6 3 -4 3 -5 3 -6 3 -5 2 -5 3 -4 4 -4 5 -3 5 -3 4 -4 5 -5 4 -5 1 -6 -1 -6 -2 -4 -4 -4 -4 -4 -4 -6 -2 -5 -2 -6 -1 -6 -2 -5 -1 -6 -2 -6 -1 -5 -2 -5 -3 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -4 -4 -4 -5 -3 -5 -3 -6 -2 -5 -3 -5 -2 -6 -3 -5 -2 -5 -2 -6 -3 -5 -2 -5 -2 -5 -3 -6 -3 -5 -3 -5 -2 -5 -3 -5 -3 -5 -2 -6 -3 -5 -2 -6 -2 -5 -1 -6 -1 -6 -1 -6 0 -5 -1 -6 0 -6 -1 -6 0 -6 0 -5 1 -6 2 -6 2 -5 3 -4 3 -5 4 -4 4 -4 5 -4 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 4 -4 4 -3 5 -3 5 -3 5 -3 5 -3 5 -2 6 -3 5 -3 5 -2 5 -3 5 -3 6 -3 5 -3 5 -3 5 -4 4 -4 4 -5 3 -5 2 -6 1 -6 0 -6 0 -6 0 -6 -1 -5 -1 -6 -1 -6 -2 -5 -2 -6 -1 -5 -2 -6 -1 -6 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2299 3456l-4 -5 -8 -5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2208 3444l-6 0 -6 0 -6 1 -5 1 -6 2 -5 3 -5 3 -4 4 -3 5 -4 5 -4 3 -6 0 -5 1 -6 -2 -6 -2 -5 -2 -4 -4 -5 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-856 2935l-6 2 -6 1 -5 1 -4 5 -3 5 -4 4 -3 5 -3 5 -2 5 -2 6 -2 5 -2 6 -2 5 -2 6 -3 5 -3 5 -3 5 -3 5 -4 4 -4 4 -5 4 -4 4 -5 3 -5 3 -5 3 -5 3 -3 5 -1 6 -1 6 -3 5 -4 4 -4 5 -4 4 -4 4 -4 4 -3 5 -3 5 -3 5 -3 5 -2 6 -2 5 -2 5 -3 6 -3 5 -3 5 -3 5 -3 5 -3 4 -4 5 -4 4 -4 4 -5 4 -7 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-1039 3175l-4 4 -5 3 -5 3 -5 4 -5 3 -4 3 -5 4 -5 3 -4 4 -5 3 -5 4 -4 4 -5 3 -4 4 -5 3 -5 4 -4 3 -5 3 -5 3 -5 3 -6 3 -5 2 -5 3 -5 3 -10 4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-1278 3261l-6 0 -5 0 -6 0 -6 -1 -6 0 -6 0 -6 -1 -5 0 -6 0 -6 0 -6 0 -7 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-1349 3260l-6 0 -5 3 -5 3 -4 4 -5 3 -4 4 -5 4 -4 4 -5 3 -4 4 -4 5 -4 4 -1 6 -2 6 -4 2 -6 0 -6 1 -6 1 -5 2 -5 3 -6 2 -5 3 -5 2 -5 3 -5 3 -5 3 -4 4 -5 4 -4 4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2391 4081l-6 0 -6 0 -6 0 -5 -1 -6 -2 -5 -2 -6 -2 -5 -3 -4 -4 -5 -4 -3 -4 -3 -5 -4 -5 -4 -4 -4 -4 -5 -3 -5 -3 -5 -3 -5 -3 -6 -2 -5 -2 -6 -1 -6 -1 -6 1 -6 0 -6 1 -6 0 -5 -1 -5 -2 -5 -3 -5 -3 -5 -4 -5 -3 -5 -4 -6 -5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-1958 3866l-4 -3 -5 -3 -6 -2 -5 -3 -5 -2 -6 -2 -5 -3 -5 -3 -5 -3 -5 -3 -8 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-904 3767l-6 1 -5 1 -6 1 -6 1 -6 1 -5 0 -6 0 -6 0 -6 -1 -6 0 -6 0 -5 0 -6 -1 -6 0 -6 0 -6 0 -6 -1 -6 0 -5 0 -6 1 -6 0 -5 3 -5 3 -5 3 -6 2 -5 3 -5 3 -5 2 -6 2 -5 2 -6 2 -6 0 -5 1 -6 0 -6 0 -6 1 -6 0 -6 0 -5 1 -6 0 -6 0 -6 0 -6 0 -6 1 -5 0 -6 0 -6 1 -6 0 -6 1 -5 1 -6 2 -5 2 -6 3 -5 3 -4 4 -3 5 -2 5 -2 6 -3 5 -3 4 -5 5 -4 3 -5 4 -5 3 -5 3 -6 2 -5 2 -6 2 -5 1 -6 1 -6 2 -5 1 -6 2 -6 1 -5 2 -6 1 -5 2 -6 3 -5 2 -5 2 -5 3 -5 3 -5 3 -5 4 -5 3 -5 3 -5 3 -5 4 -4 3 -5 4 -4 4 -4 4 -4 4 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -6 2 -5 3 -5 3 -5 3 -5 3 -4 4 -5 3 -5 4 -5 2 -5 3 -6 2 -5 1 -6 1 -6 1 -6 0 -6 1 -6 -2 -5 -1 -6 -2 -6 0 -6 0 -6 1 -5 2 -5 2 -5 4 -4 4 -4 4 -4 5 -4 4 -3 5 -1 6 1 6 3 5 3 5 2 5 3 6 2 5 1 6 1 6 1 6 0 6 0 6 -1 5 -3 5 -5 3 -6 3 -5 3 -5 3 -6 2 -5 1 -5 0 -6 -3 -5 -3 -5 -3 -5 -3 -5 -4 -5 -3 -5 -1 -6 -1 -6 -1 -6 -1 -6 -1 -5 -2 -5 -3 -4 -4 -5 -4 -4 -4 -6 -2 -5 -2 -5 -3 -5 -4 -5 -3 -4 -4 -5 -3 -5 -3 -5 -2 -6 0 -6 1 -6 0 -6 0 -6 0 -6 1 -6 0 -5 0 -6 -1 -6 -1 -5 -2 -6 -2 -5 -3 -5 -3 -5 -3 -5 -3 -4 -4 -5 -3 -4 -4 -4 -5 -3 -5 -3 -5 -4 -4 -5 -3 -5 -3 -6 -2 -5 -2 -6 -2 -5 -3 -4 -3 -5 -4 -5 -3 -4 -4 -5 -4 -4 -4 -4 -4 -4 -4 -4 -4 -3 -5 -3 -6 -2 -5 0 -6 1 -6 1 -6 -1 -5 -2 -6 -1 -6 -3 -5 -3 -5 -5 -3 -5 -4 -5 -3 -6 -4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-847 3785l-6 0 -5 -2 -5 -3 -5 -4 -5 -4 -4 -3 -5 -3 -6 -1 -6 1 -7 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-721 3304l-1 6 -1 6 0 6 -1 6 0 6 0 5 -1 6 -2 6 -3 5 -4 4 -5 3 -6 1 -5 2 -5 4 -3 5 -2 6 -2 5 -1 6 0 6 0 6 1 6 0 5 -2 6 -4 5 -3 4 -3 5 -3 5 -3 5 -2 6 -3 5 -2 6 -1 5 0 6 0 6 1 6 0 6 1 5 1 6 2 6 1 5 2 6 2 5 2 6 3 5 3 5 4 4 3 5 3 5 4 5 3 5 2 5 1 6 1 6 0 5 0 6 -1 6 -2 5 -2 6 -3 5 -1 6 -1 6 -1 6 0 5 0 6 1 6 1 6 1 5 2 6 0 6 1 6 0 6 0 5 1 6 0 6 1 6 0 6 1 6 0 5 0 6 0 6 0 6 -1 6 -1 5 -3 6 -3 5 -4 5 -4 3 -5 2 -6 1 -6 2 -6 1 -7 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-45 3270l-1 -5 -2 -6 -1 -6 -1 -5 0 -6 0 -6 1 -6 0 -6 1 -5 1 -6 1 -6 1 -6 1 -5 2 -6 1 -6 2 -5 1 -6 2 -6 2 -5 3 -7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M10 3325l-4 -4 -5 -4 -4 -4 -4 -4 -4 -4 -4 -4 -5 -4 -4 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M512 3668l-5 -1 -6 -1 -6 -1 -5 -2 -6 -1 -6 -2 -5 -2 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -4 -4 -5 -3 -4 -4 -5 -4 -4 -3 -5 -3 -5 -4 -5 -3 -5 -3 -5 -4 -4 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -6 -2 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -4 -4 -5 -4 -4 -3 -6 -1 -6 0 -6 1 -6 0 -6 0 -5 -1 -6 0 -6 1 -6 1 -5 1 -6 1 -6 1 -6 1 -6 1 -5 1 -6 1 -6 0 -6 -1 -5 -1 -6 -2 -5 -3 -5 -4 -4 -4 -3 -5 -2 -5 -2 -6 -2 -5 -1 -6 -2 -6 -1 -6 -1 -5 -2 -6 -2 -5 -2 -6 -3 -4 -4 -5 -4 -5 -4 -4 -4 -3 -6 -1 -6 -1 -6 0 -6 0 -6 0 -5 1 -6 1 -6 1 -6 0 -6 1 -5 0 -7 0 -5 -2 -4 -3 -4 -5 -3 -5 -4 -5 -3 -4 -3 -6 -3 -5 -4 -4 -4 -5 -4 -4 -4 -4 -3 -5 -3 -5 0 -5 1 -6 1 -6 -1 -6 -1 -6 -1 -6 -2 -5 -1 -6 -2 -6 -2 -5 -3 -5 -3 -5 -4 -4 -8 -8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-477 3749l-1 -6 0 -6 -1 -5 0 -6 0 -6 0 -6 0 -6 0 -6 1 -5 0 -6 1 -6 1 -6 1 -5 2 -6 3 -5 2 -6 2 -5 1 -6 1 -6 -1 -6 -1 -5 -1 -6 -3 -5 -3 -5 -3 -5 -5 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M39 3854l-6 -2 -6 -1 -6 -1 -5 0 -6 0 -6 -1 -6 0 -6 0 -5 1 -6 0 -6 0 -6 0 -6 0 -6 0 -5 1 -6 0 -6 1 -6 0 -6 1 -6 0 -5 1 -6 1 -6 2 -5 1 -6 2 -6 1 -5 2 -6 2 -5 3 -5 3 -5 3 -4 4 -5 3 -6 2 -5 2 -6 1 -6 2 -5 1 -6 1 -6 1 -5 2 -6 1 -6 1 -6 1 -5 1 -6 0 -6 0 -6 0 -6 0 -6 0 -5 0 -6 0 -6 0 -6 0 -6 0 -6 0 -5 0 -6 -1 -6 0 -6 -2 -5 -1 -6 -1 -6 -2 -5 -1 -6 -1 -6 -2 -5 -1 -6 -1 -6 -1 -6 0 -6 0 -6 1 -5 0 -6 0 -6 0 -6 -2 -5 -1 -6 -2 -5 -3 -5 -3 -5 -3 -4 -4 -4 -4 -4 -5 -4 -4 -3 -5 -4 -5 -3 -4 -3 -5 -3 -5 -4 -10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M577 3867l-5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -4 -5 -3 -5 -3 -5 -2 -5 -3 -6 -1 -6 1 -6 0 -6 2 -5 1 -6 3 -5 3 -4 3 -5 4 -4 4 -4 4 -4 5 -3 4 -4 5 -3 5 -4 4 -3 5 -4 5 -4 4 -3 5 -3 5 -4 4 -2 6 -2 6 -3 5 -3 4 -5 3 -5 2 -6 2 -6 0 -6 0 -6 -1 -5 -3 -4 -4 -3 -5 -3 -5 -2 -6 -2 -5 -1 -6 -1 -6 -2 -5 -4 -5 -3 -4 -4 -5 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -4 -4 -3 -5 -4 -4 -4 -4 -4 -4 -5 -3 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -4 -5 -3 -5 -3 -6 -2 -5 -2 -6 -2 -5 -2 -6 -1 -6 -1 -5 -2 -6 0 -6 -1 -6 0 -5 1 -6 1 -6 2 -5 1 -6 2 -5 3 -5 2 -6 3 -5 2 -6 2 -5 1 -6 1 -6 1 -6 1 -5 1 -6 1 -6 2 -5 2 -4 5 -2 5 -3 5 -3 5 -4 5 -4 4 -5 3 -5 3 -5 3 -6 1 -5 0 -6 1 -6 0 -9 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-353 3088l-3 5 -3 5 -4 4 -3 5 -4 5 -4 4 -3 4 -5 5 -4 4 -5 3 -5 1 -6 0 -6 -1 -5 -2 -5 -3 -5 -3 -5 -4 -4 -4 -4 -4 -5 -4 -5 -3 -5 -1 -6 -1 -6 0 -6 0 -6 0 -6 0 -5 1 -6 2 -5 2 -5 3 -5 4 -4 4 -4 5 -3 5 -2 5 -2 6 -1 5 -2 6 -1 6 -1 6 0 5 -1 6 0 6 -1 6 -1 6 -2 5 -2 6 -2 5 -3 5 -3 5 -4 4 -5 3 -5 4 -3 4 -4 5 -3 5 -4 5 -3 5 -3 5 -2 5 -2 5 -2 6 -2 6 -2 5 -1 6 -1 5 -1 6 0 6 0 6 0 6 0 6 0 5 0 6 -1 6 -2 6 -2 5 -4 5 -4 4 -3 5 -2 5 -2 6 -1 6 -1 5 1 6 1 6 1 6 2 5 1 6 1 6 1 6 0 5 0 6 0 6 0 6 -1 7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-31 3155l2 -5 3 -6 3 -5 3 -5 3 -4 3 -5 3 -5 4 -5 3 -5 3 -5 4 -4 3 -5 4 -4 4 -4 4 -4 4 -5 4 -4 3 -5 3 -5 3 -5 3 -5 3 -6 2 -5 2 -5 1 -6 1 -6 -1 -6 -4 -3 -5 -3 -6 -2 -5 -2 -6 -1 -6 -1 -6 -1 -5 -1 -6 -2 -6 -1 -5 -2 -6 -1 -6 -2 -5 -1 -6 -2 -5 -2 -6 -3 -4 -3 -5 -3 -5 -4 -4 -4 -5 -3 -6 -2 -5 -2 -6 -1 -5 -2 -6 -1 -6 -2 -5 -1 -6 -1 -6 -1 -6 1 -5 2 -6 2 -5 3 -5 3 -6 1 -5 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-797 3779l-6 1 -5 2 -6 1 -6 1 -5 1 -6 0 -6 0 -10 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-457 3819l-2 -6 -2 -5 -2 -5 -2 -6 -1 -5 -2 -6 -2 -6 -1 -5 -1 -6 -1 -6 -2 -5 -2 -9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-272 4462l-6 -1 -6 -1 -6 0 -5 0 -6 0 -6 -1 -5 -2 -6 -2 -5 -2 -6 -1 -6 -2 -5 -2 -6 -1 -6 0 -6 0 -6 0 -5 0 -6 1 -6 2 -5 1 -6 0 -5 -3 -6 -2 -5 -2 -6 -2 -5 -1 -6 -1 -6 -1 -6 -1 -6 0 -5 -1 -6 0 -6 0 -6 0 -6 0 -6 1 -5 0 -6 0 -6 1 -6 1 -6 1 -5 1 -6 1 -5 2 -6 2 -5 3 -6 2 -5 3 -5 3 -5 3 -4 4 -5 3 -4 4 -5 3 -5 4 -5 3 -4 3 -5 4 -5 3 -5 4 -5 3 -4 3 -5 3 -6 2 -6 1 -6 0 -5 2 -5 3 -4 4 -4 4 -4 5 -3 5 -4 9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M380 4634l-4 3 -5 4 -5 3 -5 3 -5 2 -6 2 -6 2 -5 1 -6 2 -6 1 -5 1 -6 1 -6 1 -6 1 -5 0 -6 0 -6 0 -6 -2 -5 -1 -6 -1 -6 0 -6 0 -6 0 -5 0 -6 0 -6 0 -6 0 -6 1 -6 0 -5 1 -6 0 -6 1 -6 2 -5 1 -6 2 -5 2 -6 3 -5 2 -5 4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M162 4676l-5 3 -4 5 -4 4 -4 4 -4 4 -5 4 -5 3 -4 4 -5 3 -4 4 -4 4 -5 4 -5 3 -4 4 -5 3 -5 3 -5 3 -5 3 -6 2 -5 0 -6 0 -6 -1 -6 -1 -5 -3 -3 -5 -2 -6 -1 -6 -1 -6 0 -5 0 -6 -1 -6 0 -6 -2 -6 -1 -5 -1 -6 -1 -6 -2 -5 -1 -6 -2 -6 -1 -5 -2 -6 -1 -5 -2 -6 -2 -5 -3 -6 -2 -5 -2 -6 -4 -5 -3 -4 -4 -4 -4 -4 -5 -4 -4 -4 -5 -3 -5 -4 -5 -3 -5 -3 -5 -3 -5 -2 -6 -2 -5 -2 -6 -2 -5 -2 -6 -1 -6 -1 -5 -1 -6 -1 -6 0 -6 -1 -6 0 -6 -1 -5 0 -6 0 -6 -1 -6 0 -6 0 -5 -1 -6 -1 -6 0 -6 -1 -6 -1 -5 0 -6 -1 -6 0 -6 0 -6 0 -6 0 -5 -1 -6 0 -6 -1 -6 -1 -6 -2 -5 -2 -4 -3 -2 -6 0 -6 0 -6 1 -6 2 -5 2 -6 2 -5 1 -6 1 -6 0 -6 -2 -5 -5 -4 -5 -3 -6 -1 -5 -1 -6 -1 -9 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-1708 4748l5 -1 6 -1 6 -2 5 -2 5 -3 5 -4 4 -4 3 -5 3 -5 4 -4 5 -3 6 -2 6 0 6 0 5 2 6 2 5 2 6 2 5 1 6 2 6 1 5 1 6 2 6 1 5 2 6 2 5 2 5 3 6 2 5 2 6 1 6 0 6 0 6 1 5 0 6 0 6 -2 5 -2 4 -4 3 -6 3 -4 6 -1 6 1 5 1 6 2 5 2 6 3 5 2 5 3 4 4 3 5 3 5 3 5 5 3 5 3 5 3 5 3 6 3 5 2 5 3 5 2 6 2 5 3 6 2 5 2 6 2 5 1 6 1 6 0 6 -1 6 0 5 -2 6 -1 6 -1 5 -1 6 -1 6 -1 6 1 5 1 6 1 6 1 6 1 5 1 6 2 6 2 5 2 5 2 6 2 5 2 6 3 5 2 5 3 6 1 5 1 6 0 6 -1 6 -1 6 -1 5 -2 6 -1 6 -2 5 -1 6 -2 5 -2 6 -1 6 -2 5 -1 6 -1 6 0 6 0 6 1 5 -2 5 -3 5 -3 5 -3 5 -4 4 -4 5 -4 4 -4 3 -5 3 -5 2 -5 2 -6 2 -5 3 -5 2 -6 4 -4 4 -5 4 -3 6 -2 5 -2 6 -2 5 -2 5 -3 4 -4 5 -4 5 -3 5 -3 5 -3 4 -4 4 -4 4 -5 3 -4 4 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 4 -4 5 -4 4 -4 5 -2 6 -2 6 -2 5 -1 6 0 6 0 6 1 6 1 5 0 6 1 6 2 6 1 5 2 8 3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M1576 1466l-6 2 -5 1 -6 1 -6 1 -6 1 -5 1 -6 2 -6 1 -5 1 -6 0 -6 0 -6 0 -6 0 -5 0 -6 0 -6 0 -6 0 -6 0 -6 0 -5 0 -6 0 -6 0 -6 1 -6 0 -6 1 -5 1 -6 1 -6 1 -6 0 -5 2 -6 1 -6 2 -5 2 -6 2 -5 2 -6 2 -5 3 -4 3 -4 5 -4 4 -3 5 -3 5 -4 5 -3 5 -3 5 -2 5 -1 6 -1 6 -1 6 0 5 0 6 1 6 -1 6 -2 5 -3 6 -2 5 -2 5 -2 6 -2 6 -1 5 -2 6 -2 5 -1 6 -2 6 -1 5 0 6 0 6 0 6 0 6 1 5 0 6 1 6 1 6 1 6 1 5 0 6 -1 6 0 6 -2 5 -1 6 -3 5 -3 5 -3 5 -4 5 -4 4 -4 4 -5 3 -5 4 -4 3 -5 3 -5 3 -5 4 -5 3 -5 3 -5 3 -4 4 -5 3 -5 4 -4 4 -3 4 -5 4 -5 4 -5 3 -5 3 -5 3 -5 2 -6 1 -6 1 -5 -1 -6 -1 -6 -2 -5 -1 -6 -1 -6 0 -6 -1 -6 -1 -6 1 -6 0 -5 3 -3 3 -4 6 -3 5 -3 5 -4 4 -4 5 -4 4 -4 4 -4 5 -3 5 -2 5 -3 5 -2 6 -2 5 -2 5 -2 6 -2 6 -1 5 -1 6 -2 6 -2 5 -2 5 -3 6 -2 5 -3 5 -2 5 -3 6 -3 5 -3 4 -4 5 -3 5 -4 5 -3 4 -4 4 -4 5 -4 4 -4 5 -4 4 -4 4 -4 5 -3 4 -4 4 -4 5 -4 4 -4 4 -4 4 -5 4 -4 5 -4 4 -4 4 -4 4 -4 4 -4 4 -4 4 -5 4 -4 4 -4 4 -4 4 -4 5 -4 4 -5 4 -4 4 -3 4 -4 5 -4 4 -3 5 -3 5 -4 5 -4 4 -3 5 -4 4 -4 4 -4 5 -4 4 -4 4 -4 5 -4 4 -4 4 -4 4 -5 4 -4 3 -5 4 -8 7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M812 2230l-2 5 -1 6 -2 11","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M823 2208l-6 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M817 2214l-5 16","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-1461 1230l-6 -2 -6 -1 -6 -1 -5 0 -6 0 -6 0 -6 2 -5 1 -5 3 -5 4 -4 4 -4 4 -5 4 -4 4 -5 4 -5 2 -6 1 -6 0 -6 -2 -5 -2 -3 -5 -3 -5 -3 -6 -2 -5 -1 -6 -1 -5 -2 -6 -1 -6 -1 -6 -1 -5 -1 -6 -1 -6 -1 -6 -1 -5 0 -6 0 -6 0 -6 0 -6 1 -6 0 -5 1 -12","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-1084 1281l-6 1 -6 1 -6 -1 -5 -1 -6 -2 -5 -2 -6 -3 -5 -2 -6 -2 -5 -2 -6 -2 -5 0 -4 5 -4 3 -6 1 -6 -1 -6 -1 -6 -1 -5 0 -6 -1 -6 -1 -6 -2 -5 -3 -4 -5 -5 -4 -4 -1 -5 2 -5 4 -5 4 -4 5 -4 5 -4 1 -6 0 -6 -1 -6 -1 -6 -1 -6 0 -6 -2 -5 -1 -5 -3 -5 -3 -5 -4 -4 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -4 -4 -4 -5 -3 -4 -3 -5 -1 -6 1 -6 1 -6 -2 -6 -3 -5 -4 -3 -6 -2 -5 -2 -6 -1 -6 -1 -6 0 -6 0 -5 2 -6 3 -6 1 -6 1 -4 4 -3 5 -2 6 -1 5 1 6 1 6 -3 5 -4 4 -5 4 -6 2 -5 0 -6 0 -6 -1 -6 -2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-856 1458l-6 -2 -4 -4 -5 -3 -5 -3 -6 -1 -5 -1 -5 -3 -5 -4 -5 -3 -4 -4 -8 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-941 1370l-1 -6 -3 -5 -2 -5 -3 -5 -3 -5 -4 -4 -4 -4 -5 -4 -4 -4 -6 -1 -5 -2 -6 -2 -6 -1 -5 -2 -6 -2 -5 -2 -5 -3 -4 -4 -5 -4 -4 -4 -4 -4 -4 -5 -4 -4 -4 -5 -4 -3 -5 -2 -6 0 -6 0 -6 0 -6 2 -8 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-914 1424l-3 -4 -4 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -2 -5 -1 -6 -2 -9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-734 1478l-6 -2 -5 -2 -6 -2 -5 -1 -6 1 -6 1 -5 1 -6 1 -6 2 -5 3 -5 1 -6 0 -6 0 -6 0 -6 -1 -5 -1 -4 -4 -4 -5 -4 -4 -4 -3 -6 -2 -10 -3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2142 1626l-4 4 -5 4 -4 3 -5 3 -5 4 -5 3 -5 3 -5 3 -5 3 -5 2 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 4 -5 3 -5 3 -5 3 -4 4 -5 3 -5 4 -4 3 -5 4 -4 4 -5 4 -4 3 -5 3 -5 3 -6 3 -5 3 -5 3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2302 1733l-5 2 -5 3 -5 3 -5 4 -4 4 -4 4 -4 4 -4 4 -4 4 -4 4 -5 5 -4 4 -4 4 -4 4 -5 4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2368 1790l-5 4 -4 4 -4 4 -5 4 -5 3 -4 3 -5 3 -6 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 3 -5 2 -5 3 -6 2 -6 1 -5 2 -5 3 -4 4 -3 5 -4 5 -3 5 -3 5 -4 5 -3 4 -3 5 -3 5 -2 6 -2 6 -2 5 -2 5 -4 5 -4 4 -4 4 -4 4 -3 5 -3 5 -4 8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-1248 2119l-5 -3 -5 -3 -5 -2 -5 -3 -6 -2 -5 -2 -6 -1 -5 -1 -6 -1 -6 -1 -6 -2 -5 -1 -6 -1 -6 -1 -5 -2 -6 -1 -6 -1 -5 -2 -6 -1 -6 -2 -5 -1 -6 -2 -5 -2 -6 -2 -5 -2 -6 -2 -6 -1 -5 0 -6 1 -6 1 -6 0 -6 0 -5 -1 -6 -2 -5 -2 -6 -2 -6 -2 -5 -2 -5 -2 -6 -3 -5 -2 -6 -1 -5 -1 -6 0 -6 0 -6 1 -6 2 -5 2 -4 4 -4 5 -2 5 -3 5 -3 6 -3 4 -4 5 -3 5 -4 4 -4 5 -3 4 -5 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2635 2170l-1 5 -2 6 -2 6 -2 5 -4 4 -5 2 -6 2 -6 1 -6 0 -5 3 -7 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2286 2213l-3 -5 -3 -6 -3 -5 -5 -2 -5 -2 -6 0 -6 -1 -6 0 -6 -1 -6 0 -6 -1 -5 0 -6 1 -6 0 -6 1 -6 0 -6 0 -6 0 -5 -1 -5 -4 -4 -4 -4 -4 -6 -1 -5 3 -5 3 -5 4 -4 3 -6 2 -6 1 -6 -1 -5 -2 -5 -3 -6 -1 -6 -1 -6 0 -5 1 -6 1 -6 1 -5 2 -6 1 -6 1 -5 2 -6 1 -6 1 -6 1 -5 1 -6 1 -6 1 -6 1 -5 -1 -3 -6 -4 -4 -5 -3 -6 -1 -5 3 -4 4 -4 4 -3 5 -2 6 0 6 -2 6 -2 5 -3 5 -5 4 -5 1 -6 -1 -6 -2 -5 -2 -6 -2 -5 -2 -5 -2 -6 -3 -5 -2 -5 -3 -6 -2 -5 -2 -6 -2 -6 -2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-1558 2118l-5 3 -6 3 -5 1 -6 -1 -6 0 -6 -1 -5 -1 -6 -2 -6 -1 -5 -2 -6 -3 -5 -3 -5 -3 -5 -2 -5 0 -6 3 -5 2 -6 0 -6 -1 -6 0 -6 -1 -5 0 -6 0 -6 0 -6 0 -6 -1 -5 -1 -6 -1 -6 -1 -6 0 -6 0 -5 0 -6 1 -6 1 -5 2 -6 2 -5 3 -6 2 -5 3 -5 3 -5 2 -6 1 -6 0 -6 0 -5 -1 -6 0 -6 0 -6 0 -6 0 -6 1 -5 0 -6 2 -6 1 -5 2 -6 2 -5 1 -6 2 -5 2 -6 2 -5 3 -6 2 -5 3 -5 2 -5 3 -6 2 -5 2 -6 2 -5 2 -6 1 -6 1 -5 1 -6 0 -6 0 -6 0 -6 0 -5 -1 -6 -1 -6 -1 -6 -1 -6 0 -5 1 -6 1 -5 3 -5 4 -4 3 -5 4 -4 4 -5 4 -4 4 -4 4 -5 3 -5 4 -4 3 -6 2 -5 1 -6 0 -6 1 -6 1 -6 1 -5 1 -6 1 -6 1 -6 1 -6 1 -5 1 -6 1 -5 2 -6 3 -5 3 -5 2 -5 3 -6 1 -6 1 -5 1 -6 0 -6 1 -6 2 -5 2 -5 3 -4 4 -4 4 -4 5 -4 5 -4 4 -4 1 -6 -2 -5 -4 -4 -4 -3 -5 -4 -4 -4 -5 -4 -4 -4 -4 -4 -4 -4 -5 -5 -7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2114 1350l-1 6 -1 5 -1 6 -1 6 -1 5 -2 6 -2 5 -3 6 -2 5 -2 6 -2 5 -1 6 -1 6 -1 5 1 6 2 6 1 6 2 5 1 6 2 6 1 5 1 6 1 6 0 5 0 6 1 6 0 6 0 6 0 6 0 5 0 6 0 6 0 6 0 6 0 6 0 5 0 6 -1 6 0 6 -1 6 0 6 -1 6 -1 5 -1 6 -1 6 -2 5 -3 5 -5 4 -4 4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-872 1910l5 2 5 3 5 3 6 1 5 2 6 2 6 1 5 1 6 0 6 0 6 -1 6 -2 6 -1 5 1 3 5 2 6 4 4 4 4 5 3 6 2 5 2 6 2 5 2 6 2 5 2 6 2 5 3 5 2 6 3 4 4 3 5 1 5 1 6 1 6 0 6 0 6 0 6 -2 6 -2 5 -2 5 -1 6 0 6 2 6 3 5 3 4 4 5 4 4 4 5 4 4 4 4 3 5 2 5 1 6 1 6 0 6 -1 6 -1 5 -2 6 -2 5 -4 5 -4 4 -5 3 -6 2 -5 2 -6 1 -6 2 -4 4 -3 4 -2 6 -3 5 -2 6 -2 6 -2 5 -1 6 -3 5 -3 5 -4 4 -5 2 -6 2 -5 2 -6 2 -6 2 -5 1 -6 1 -6 0 -6 0 -6 -1 -5 0 -6 0 -6 1 -6 -1 -5 -3 -5 -3 -6 -1 -5 0 -6 0 -6 0 -6 0 -6 0 -6 -1 -5 -2 -6 -2 -5 -3 -5 -3 -6 -2 -5 -3 -5 -1 -6 0 -5 2 -6 3 -5 2 -6 3 -5 3 -5 2 -5 3 -6 2 -5 1 -6 0 -6 1 -6 -1 -6 0 -6 0 -6 -1 -6 -1 -3 -4 0 -7 -3 -4 -6 -3 -5 -1 -6 2 -5 3 -6 0 -5 -2 -6 -3 -5 -2 -6 -2 -5 -2 -5 -3 -4 -5 -3 -5 -4 -2 -6 2 -6 2 -4 -3 -3 -6 -3 -5 -4 -3 -6 -2 -6 -1 -5 -2 -6 -2 -5 -2 -6 -2 -6 0 -5 0 -6 1 -6 1 -6 0 -6 -1 -5 -2 -6 -2 -5 -2 -6 -2 -5 -2 -6 -2 -5 -2 -6 -2 -5 -3 -9 -5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-3441 1901l1 6 0 6 0 6 0 6 0 6 -1 5 0 6 -1 6 -1 6 -1 6 -2 5 -2 6 -2 5 -3 5 -3 5 -3 5 -4 4 -4 5 -4 4 -4 4 -5 4 -4 4 -5 3 -4 4 -5 4 -5 3 -4 3 -5 3 -5 4 -5 3 -4 4 -4 4 -4 5 -4 4 -4 4 -4 4 -5 4 -4 3 -5 4 -5 3 -6 2 -5 2 -5 2 -6 2 -6 1 -5 2 -6 2 -5 2 -6 2 -5 3 -4 3 -5 4 -5 3 -5 4 -4 3 -5 4 -4 4 -5 3 -4 4 -4 4 -5 4 -5 3 -5 3 -5 2 -6 2 -5 3 -5 2 -6 3 -5 3 -5 3 -4 4 -5 4 -3 4 -2 5 -2 6 -2 6 -1 5 -2 6 -1 6 0 6 -2 5 -1 6 -3 5 -2 6 -2 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -4 5 -4 4 -4 4 -4 4 -4 4 -4 4 -4 5 -4 4 -3 5 -2 6 -3 5 -4 4 -4 4 -4 5 -4 4 -4 4 -5 4 -4 4 -4 4 -4 4 -4 4 -4 5 -4 4 -4 4 -4 4 -4 5 -4 4 -3 5 -4 4 -4 4 -4 5 -3 4 -4 5 -3 5 -3 5 -4 4 -3 5 -3 5 -3 5 -4 5 -4 7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-3720 1802l5 -4 4 -3 5 -4 5 -3 5 -3 5 -3 5 -2 6 -2 5 -2 6 -1 6 -2 5 -1 6 -1 6 -2 5 -2 5 -3 5 -3 5 -4 5 -3 5 -3 5 -1 6 -1 6 1 6 1 5 1 6 0 6 0 6 0 6 0 6 0 5 -1 6 0 6 0 6 -1 6 -1 5 -1 6 -2 5 -3 5 -4 4 -3 5 -3 5 -3 5 -4 5 -3 5 -2 6 -1 6 1 5 3 4 4 3 5 3 5 3 5 3 5 3 5 3 5 3 6 2 5 2 5 1 6 1 6 1 6 1 5 1 6 0 6 0 6 -1 6 -2 5 -2 6 -2 5 -1 6 -1 5 -1 6 -1 6 -1 6 -1 6 0 5 -1 6 0 6 1 6 0 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-3032 1971l3 5 3 5 2 5 3 6 2 5 3 5 1 6 2 5 2 6 1 6 1 6 1 5 1 6 1 6 0 6 0 5 0 6 0 6 -1 6 0 6 -1 6 -1 5 -1 6 -1 6 -1 5 -2 6 -1 6 -2 5 -1 6 -1 6 -1 6 0 5 -1 6 0 6 -1 6 -1 6 -1 5 -2 6 -2 6 -2 5 -3 5 -4 4 -5 3 -5 4 -6 2 -5 2 -6 1 -5 2 -6 1 -6 2 -5 2 -6 2 -6 3 -5 2 -5 3 -4 4 -3 5 -2 5 0 5 0 7 -1 6 0 6 -1 6 -2 5 -2 5 -3 5 -3 5 -4 5 -3 5 -2 6 -3 5 -2 5 -3 6 -2 5 -3 5 -4 4 -5 3 -5 3 -6 2 -5 3 -5 2 -6 2 -5 2 -6 3 -5 2 -5 4 -5 3 -4 3 -6 3 -5 2 -5 1 -6 1 -6 0 -6 0 -6 2 -4 3 -5 4 -4 4 -4 5 -4 4 -3 5 -3 5 -4 5 -3 5 -2 5 -5 8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2763 2143l-5 4 -4 4 -4 5 -3 4 -3 5 -4 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -1 6 -2 5 -1 6 0 6 -3 4 -5 3 -5 3 -6 0 -6 1 -6 1 -3 4 -4 5 -1 6 -2 5 -3 5 -3 5 -4 5 -4 4 -5 3 -4 3 -5 4 -5 3 -5 4 -4 3 -5 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2840 2347l-5 -2 -6 -2 -5 -2 -6 -2 -5 -1 -6 -1 -6 0 -6 0 -6 0 -5 0 -6 -1 -6 0 -9 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-3565 1344l0 6 0 6 -1 5 0 6 0 6 0 6 1 6 3 5 2 6 -1 5 0 6 -1 6 0 6 -1 6 0 6 0 5 0 6 -1 6 0 6 -1 6 -3 4 -9 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-3264 1528l-5 -1 -5 -3 -6 -3 -4 -3 -4 -4 -4 -5 -2 -5 -3 -6 -2 -5 -2 -6 -3 -4 -4 -5 -5 -3 -5 -3 -5 -2 -6 -1 -6 0 -6 0 -6 0 -6 0 -5 0 -6 0 -6 1 -6 1 -5 1 -6 2 -5 3 -5 3 -4 4 -4 4 -5 4 -5 3 -5 3 -5 3 -5 3 -6 2 -5 1 -6 2 -6 0 -6 1 -5 -1 -6 -2 -6 -1 -6 -2 -5 0 -6 2 -5 3 -6 0 -6 -1 -5 -1 -6 -2 -5 -2 -6 -2 -5 -3 -5 -3 -5 -3 -4 -4 -5 -3 -5 -4 -5 -3 -4 -4 -7 -5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-3090 1460l1 5 1 6 0 6 -1 6 -3 5 -3 5 -3 5 -4 5 -4 4 -4 3 -6 2 -6 -1 -6 -1 -5 -1 -6 -2 -6 -2 -5 -1 -6 0 -6 1 -5 1 -6 2 -6 2 -5 2 -6 2 -5 3 -5 2 -6 2 -5 2 -6 2 -5 1 -6 2 -6 1 -6 1 -5 1 -6 0 -6 -1 -7 -2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-3577 1469l-5 3 -5 3 -6 3 -5 3 -5 2 -4 4 -3 5 -3 5 -3 5 -4 5 -4 4 -4 4 -3 5 -4 5 -3 4 -4 5 -5 4 -5 1 -6 0 -6 0 -5 2 -6 3 -5 2 -6 3 -5 -1 -5 -4 -5 -1 -6 -1 -6 0 -6 0 -6 1 -6 1 -6 0 -5 1 -5 3 -5 4 -5 2 -6 1 -6 2 -5 1 -6 1 -6 1 -6 0 -5 3 -4 4 -3 5 -3 5 -3 5 -1 6 -2 6 -1 5 -2 6 -2 8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-3818 1613l-2 5 -1 6 1 6 0 6 1 6 1 5 -1 6 -2 5 -3 5 -4 4 -6 3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-2681 2209l-4 -4 -5 -4 -3 -4 -3 -5 -3 -5 -3 -6 -2 -5 -1 -6 1 -6 1 -6 -1 -5 -2 -5 -4 -5 -4 -4 -5 -3 -6 -2 -6 -1 -5 -1 -6 -1 -6 0 -6 2 -4 4 -5 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-3834 1670l-5 3 -5 3 -5 3 -6 1 -6 1 -5 2 -5 2 -5 3 -5 4 -5 3 -5 3 -5 4 -4 3 -5 3 -5 3 -6 2 -5 2 -6 2 -6 1 -5 0 -6 0 -6 0 -6 1 -6 0 -6 0 -5 -1 -6 -1 -6 -1 -6 -1 -5 0 -6 2 -6 1 -4 4 -5 3 -4 4 -5 3 -6 2 -5 2 -6 -2 -6 -1 -5 -1 -5 3 -6 3 -5 3 -5 2 -5 3 -5 4 -4 3 -4 5 -3 5 -3 5 -3 5 -4 4 -5 4 -4 4 -4 4 -4 4 -4 4 -4 4 -5 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-1164 3258l-6 3 -5 1 -6 0 -6 0 -6 0 -6 0 -5 0 -12 -1 -6 0 -5 0 -6 0 -6 0 -6 0 -6 0 -6 0 -5 0 -6 0 -10 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-402 2846l-3 -5 -3 -5 -4 -5 -3 -5 -3 -4 -4 -5 -4 -4 -5 -3 -5 -3 -5 -3 -5 -3 -5 -3 -5 -2 -5 -4 -5 -3 -4 -4 -5 -3 -5 -4 -5 -3 -5 -3 -4 -4 -4 -4 -4 -5 -2 -5 -2 -5 -2 -6 -2 -6 -1 -6 -1 -5 -2 -5 -4 -4 -5 -4 -5 -3 -5 -3 -6 -2 -6 -1 -5 -1 -6 -1 -6 0 -6 1 -6 1 -6 0 -5 1 -6 1 -6 1 -6 1 -5 0 -6 0 -6 0 -6 0 -6 -1 -6 0 -5 0 -6 1 -6 2 -5 3 -5 3 -4 4 -3 5 -2 6 -2 5 -3 5 -2 6 -3 5 -4 5 -4 3 -5 2 -6 2 -6 1 -6 1 -5 1 -6 1 -6 1 -6 2 -5 1 -6 1 -6 1 -5 1 -6 0 -6 1 -6 0 -6 1 -5 2 -5 3 -3 5 -3 6 -2 9","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str5","@d":"M-336 2989l-5 -3 -5 -3 -1 -1 -4 -2 -3 -5 -3 -5 -4 -5 -3 -5 -3 -4 -4 -5 -3 -5 -1 -6 -1 -6 -1 -5 -1 -6 -2 -6 -1 -5 -1 -6 -2 -6 -2 -5 -1 -6 -2 -5 -2 -6 -2 -5 -2 -6 -2 -5 -2 -6 -3 -10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil7 str6","@d":"M774 1248l0 -6 -1 -6 -2 -5 -1 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M692 1118l5 -4 3 -5 4 -4 2 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M3058 5776l-3 5 -3 5 -3 5 -3 5 -2 6 -3 5 -2 5 -2 6 -2 5 0 6 1 6 1 6 1 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M2501 6261l-3 -6 -2 -5 -3 -5 -2 -6 -3 -5 -3 -5 -3 -4 -4 -5 -3 -5 -4 -4 -4 -5 -3 -4 -3 -5 -4 -5 -3 -5 -4 -5 -3 -5 -3 -5 -3 -5 -1 -6 -1 -5 0 -5 1 -6 2 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-2298 7095l-6 -3 -5 -3 -5 -3 -5 -2 -5 -3 -6 -2 -5 -2 -6 -1 -6 0 -6 1 -5 1 -6 1 -6 1 -6 1 -6 2 -4 3 -4 5 -2 5 -2 6 -2 5 -3 6 -2 5 -3 5 -4 5 -3 4 -5 4 -4 4 -5 3 -6 3 -5 2 -6 1 -5 1 -6 1 -6 2 -5 2 -5 4 -3 5 -2 5 -1 6 0 6 0 6 0 6 0 6 0 6 0 5 -2 6 -2 6 -3 5 -4 4 -4 4 -5 4 -5 2 -6 2 -6 1 -6 0 -5 -1 -5 -3 -5 -4 -5 -3 -6 -1 -6 0 -5 1 -6 1 -6 2 -5 1 -6 0 -7 0 -5 1 -5 2 -4 4 -3 6 -3 4 -4 4 -5 4 -4 4 -4 4 -4 5 -4 4 -5 8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-3441 3011l4 -4 5 -4 4 -5 2 -5 2 -6 1 -5 -2 -6 -4 -4 -6 -2 -5 -3 -6 -1 -5 -1 -6 -1 -6 -1 -6 -1 -6 0 -5 0 -6 0 -6 0 -6 0 -6 0 -6 0 -5 2 -5 3 -4 4 -4 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-3398 2795l3 5 3 6 2 5 1 6 1 6 -1 6 -1 6 -1 5 -1 6 -2 6 -2 5 -3 6 -2 5 -4 4 -3 5 -4 5 -4 4 -4 4 -4 4 -5 4 -4 4 -5 3 -5 3 -5 3 -5 3 -5 3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-2710 2997l5 -4 4 -4 4 -4 4 -5 3 -4 4 -5 3 -5 4 -4 4 -5 3 -5 4 -4 3 -5 4 -4 4 -4 5 -4 5 -3 5 -3 5 -2 6 -2 5 -2 5 -3 6 -2 6 -2 4 -3 4 -4 3 -5 2 -6 2 -5 0 -6 1 -6 1 -6 2 -6 1 -5 2 -6 3 -5 3 -5 5 -4 5 -3 5 -1 6 -2 6 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-2831 3750l6 1 6 1 6 1 5 0 6 1 6 1 6 1 5 2 5 3 5 4 3 5 3 5 2 6 0 6 0 6 0 5 -1 6 -1 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-285 3037l-4 -4 -4 -4 -4 -4 -4 -5 -3 -4 -4 -5 -3 -5 -4 -4 -4 -4 -5 -3 -5 -3 -7 -3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-654 3268l-6 0 -6 0 -6 1 -6 0 -6 1 -6 1 -5 3 -5 3 -4 3 -4 5 -4 4 -4 5 -3 5 -2 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-160 2973l-6 0 -6 0 -6 -1 -6 -1 -5 -2 -6 -1 -6 -1 -5 2 -6 2 -5 2 -6 1 -6 2 -5 1 -6 1 -6 1 -6 1 -5 1 -6 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-358 3029l1 6 3 5 3 5 3 5 2 5 2 6 1 5 -2 6 -3 5 -2 5 -3 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-867 4683l-3 5 -3 5 -4 5 -3 5 -4 4 -3 5 -3 5 -4 4 -3 5 -4 5 -3 4 -4 5 -3 5 -4 4 -4 5 -4 4 -4 4 -3 5 -3 5 -3 5 -3 5 -3 5 -3 5 -2 5 -3 6 -3 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-663 4540l-3 5 -3 5 -3 5 -3 5 -4 5 -4 4 -5 3 -5 3 -5 3 -5 3 -5 3 -4 4 -5 3 -5 3 -5 4 -5 3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M1652 1411l-4 4 -5 3 -4 4 -5 3 -5 3 -5 3 -5 4 -4 4 -3 5 -4 4 -4 4 -5 4 -5 3 -5 3 -5 2 -8 2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-2080 1229l0 6 0 5 -1 6 -1 6 -2 5 -3 6 -3 5 -3 4 -4 5 -3 5 -2 5 -3 6 -2 5 -2 6 -1 5 -1 6 -1 6 -1 5 0 6 -1 6 0 6 0 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-971 1874l3 5 3 5 4 5 4 4 5 3 5 3 5 2 6 2 5 1 6 2 6 1 6 1 6 1 5 1 6 0 6 0 6 -1 6 0 6 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-3798 1862l5 -3 5 -3 5 -3 5 -3 4 -4 4 -4 4 -4 4 -4 5 -4 4 -4 5 -4 4 -3 5 -3 5 -4 5 -3 5 -3 4 -4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-3066 1874l2 5 4 6 2 5 3 5 2 5 2 6 1 6 0 5 0 6 0 6 1 6 1 6 1 6 2 5 2 5 3 5 4 5 4 4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str6","@d":"M-2970 1415l-5 3 -5 3 -5 3 -6 2 -5 2 -6 1 -6 0 -6 1 -5 -1 -6 0 -6 -1 -6 -1 -6 0 -5 0 -6 1 -6 2 -5 2 -5 3 -5 3 -5 3 -4 4 -3 5 -3 10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil7 str7","@d":"M775 1260l-1 -6 0 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M688 1122l4 -4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M3038 5846l0 6 1 6 0 6 1 8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M2513 6287l-2 -5 -3 -6 -2 -5 -3 -5 -2 -5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-3528 2976l-3 5 -3 5 -2 5 -2 6 -3 5 -4 4 -5 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-3458 2917l-5 3 -5 3 -5 2 -6 3 -5 2 -5 2 -9 3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-2769 3810l-1 6 -1 5 -4 7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-2554 2833l5 -1 6 -1 6 -2 4 -3 4 -5 2 -5 2 -7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-276 3045l-5 -4 -4 -4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-637 3268l-6 0 -6 0 -5 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-263 2982l-6 2 -5 1 -6 1 -8 2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-358 3017l-1 6 1 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-953 4808l-2 5 -2 6 -1 5 -2 6 -1 6 -1 5 -1 10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-732 4601l-4 3 -5 4 -5 3 -5 3 -4 4 -5 3 -8 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M1680 1389l-5 3 -4 4 -5 3 -5 4 -4 4 -5 4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-2084 1171l-1 6 -1 6 0 5 0 6 0 6 1 6 1 6 1 5 2 6 1 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-963 1840l-2 6 -2 5 -2 6 -2 5 0 6 0 6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-3827 1868l6 0 6 -1 6 -1 5 -2 6 -2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-3061 1834l-1 6 -2 6 -1 6 -1 5 -1 6 0 6 1 5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str7","@d":"M-2935 1394l-5 3 -6 2 -5 3 -5 3 -5 3 -5 3 -4 4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@id":"rivers_lakes","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil7 str8","@d":"M-3511 537l35 -6 9 37 12 6 19 -31 45 2 -4 15 51 19 39 63 33 24 103 11 -4 48","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-3173 725l20 -27 -4 -27 40 -8 80 20 23 -9 14 14 48 -14 70 17 89 -4 56 -19 66 20 45 -21 32 10 30 -34 38 -13 70 54 6 21 150 -4 69 21 34 36 47 -8 30 17 290 54","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-374 834l16 -17 43 -4 42 -41 35 -69 42 -81 -2 -73 33 -182","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-1830 821l157 3 222 -74 18 18 -31 18 2 16 13 4 39 -38 81 -31 77 36 1 13 -16 1 18 23 51 -6 4 12 50 3 40 32","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-1104 851l27 -9 39 21 -3 -30 46 -26 2 -17 75 3 21 -19 34 33 102 23 49 37","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-712 867l50 18 63 -12 39 16 127 -40 48 -38 11 23","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M2316 1366l-27 -35 2 -24 -51 -23 -16 -218 -5 -2 -9 44 -21 -2 -13 -22 20 -44 20 -9 0 -14 -18 -15 2 -8 13 1 17 -67 -16 -10 1 -6 15 2 26 -57 80 -92 61 -29 42 7 72 -90 191 -142 47 2 7 40 32 20 39 0 5 -7 -15 -12 21 -15 16 7 7 24 35 -4 60 -8 42 2 35 22 36 13 17 2 35 5 0 -2 2 -22 25 -1 23 23 18 20 41 4 35 -7 33 3 19 -19 -18 -10 12 -10 53 2 25 -5 16 -6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-4107 1294l-22 11 -37 -18 -4 26 -7 3 -6 -13 -16 3 -9 34 -48 35 -10 -5 1 -29 -19 -1 -3 -17 33 -73 37 -26 1 -2 -14 -23 -41 -8 -15 36 -28 -45 21 -20 -20 -30 6 -33 -3 -4 -22 -11 0 8 -24 -12 -17 25 -18 -26 20 -29 -8 -51 19 -37 49 -15 -1 -16 -19 10 -3 -26 41 -27 39 13 28 -32 20 2 7 -14 -10 -26 74 -34 68 38 58 -19 33 8 61 -46 29 19 13 -5 1 -21 17 -11 31 32 29 -6 5 -32 -25 0 -47 -33 8 -43 18 -7 -5 -10 16 -13 17 -1 35 -43 14 8 28 -27 22 5 6 -44 39 1 47 -39 21 2 1 33 -5 7 9 10 13 2 7 -22 67 -39 11 7 -18 29","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-4136 1806l-4 2 -71 39 -2 -158 25 -15 7 4 4 -9 -5 -14 42 -46 86 -43 6 -41 -9 -5 -29 48 -70 14 1 -52 20 -5 53 -62 -8 -9 -40 29 -42 0 -18 -48 -25 -6 3 -9 26 -18 12 13 -5 9 11 10 12 -1 -4 -20 13 -6 -12 -51 34 -17 18 -45","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M2316 1366l-1 55 19 13 39 -5 19 20 -10 41 -38 22 -27 -19 -23 37 12 63 31 12 20 31 -8 34 22 39 -10 50 -55 39 -21 45 -55 52 -59 25 -24 30","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M2147 1950l-274 164 -68 128 -261 87","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M1544 2329l-229 77 -24 40 -29 -12 -79 32 -139 177 24 26 32 -4 58 37 -3 2 -65 48 -50 64 -33 1 -5 -14 43 -12 -5 -28 -45 15 -41 70","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M3085 3222l-165 -75 -83 15 -8 -7 -1 -47 -24 -15 21 -31 123 -10 17 -10 -2 -11 2 0 12 24 17 -7 0 0 1 -2 1 -6 14 0 25 42 37 4 11 53 24 24 0 4 -18 -4 -2 6 18 21 -20 32","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M954 2848l-84 172 -88 101 -19 61 -56 40 -19 80 -58 69 -42 83","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M2511 3605l2 -3 27 -37 0 0 9 -12 12 -67 53 -61 -6 -33 22 -8 15 -60 -10 -22 -61 -24 -53 46 -71 -33 -8 -35 34 -8 6 -28 -8 -4 -42 21 -15 -30 62 -41 0 -5 -18 0 -57 34 -67 9 -53 45 -36 9 -106 115 -113 80 -9 27 14 30 52 -1 28 44 7 1 11 -47 72 -31 46 37 -13 26 33 70 30 11 76 -12 53 59 11 3 63 -53 0 0 8 -12","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M1501 4056l-14 -26 -6 -3 -58 2 -8 -4 -7 -52 3 -8 40 -9 4 -9 -6 -35 35 -31 94 -41 43 17 -5 20 14 18 1 10 -42 36 -20 42 -43 21 -3 45 -22 7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M588 3454l-9 46 -61 111 -6 57 0 8 24 81 50 86 -9 24 -3 7 37 82 90 103","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M1520 4191l-7 -55 24 -29 6 -1 35 47 22 9 20 -11 4 1 4 7 -2 8 -26 12 -33 -18 -14 0 -33 30","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M701 4059l131 50 -2 18 27 33 -68 49 -14 31 -61 12 -35 68 -32 -6 -115 65 -25 29 -8 51 -23 -5 -27 17 -1 94 -65 33 -3 36 -6 90 -25 16 -35 91","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M314 4831l6 29 -5 8 -12 -7 -13 9 -29 59 33 41 40 13 6 -4 -3 -17 4 -1 19 26 -19 22 -114 40 -38 -25 -49 8 -25 17 3 10 -10 2 -52 -24 -23 16 -41 -1 -72 55 -15 48 -25 -1 -60 34","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-3554 5258l6 48 -14 10 -20 -4 -59 20 -127 87 -111 4 -112 -66 -63 12 -50 -26 -58 8 -29 -15 -1 -18 -5 -1 -5 11 -45 -17 -31 38 -95 9 -70 45 -24 -19 52 -97 -6 -29 38 -52 -7 -38 55 -103 -11 -107 20 -69 11 -7 1 -7 -22 -11 12 -129 -46 -30 36 -57 36 -123 -11 -125 -31 -50 4 -3 19 20 5 -1 1 -11 51 17 6 -6 -17 -16 20 -38 -3 -11 -11 -6 -9 1 -11 37 -65 -35 -109 56 -57 -2 -18 10 -6 -5 22 -76 -34 -83 7 -13 42 -13 13 1 12 23 -7 4 3 3 23 2 9 13 3 -3 -10 -29 22 -8 15 11 6 0 2 -15 16 -5 -1 -3 -36 2 -3 -16 70 -33 3 -12 -28 -53 -2 -47 -1 0 -11 -3 -36 51 -30 85 -21 11 -100 18 -79 -24 -6 -14 5 -18 -13 -29 55 -120 2 -90 53 -115 1 -44 -13 -24 7 -27 73 -35 96 -116 20 -102 121 -288 1 -3 -27 -41 39 -82 58 -214 10 -26 35 -3 18 -49 17 -3 0 -5 -24 -9 -1 -18 5 -11 21 -19 0 -8 -9 -10 -8 2 -21 78 -24 34 -3 -2 66 -249 -7 -86 -5 -8 -20 -32 -9 -104 -25 -62 10 -42 -23 -155 -22 -47 10 -82 72 -61","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-2870 5540l-20 -14 -30 8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-2920 5534l-17 51 -11 7 -2 0 -18 -9 -23 -58 -59 -69 -215 -140 10 -27 -7 -5 -30 18 6 14 -9 5 -82 -32 -113 12 -25 14 -11 -5 -20 -37 -8 -15","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-1046 5663l-120 7 -22 23 -43 12 -90 -40 -73 16 -33 -10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-180 5188l-76 98 -15 -8 -2 3 11 9 -65 219 -56 39 1 36 -35 21 -3 28 -34 31 -38 13 -57 -74 -45 -15 -36 22 -34 -13 -45 12 -43 79 -49 23 -35 -1 -22 -18 -28 7 -38 -39 -122 3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-1427 5671l-31 -11 -77 21 -68 -18 -34 25 -154 -4 -65 91 -52 19 -22 43 -56 17 -128 -4 -133 55 -43 73","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-2290 5978l-42 60 -13 55","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-2345 6093l-6 24 -1 0 0 -24","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-2352 6093l-13 -15 -32 -2 -5 3 1 75 -90 44 -19 -3 -41 -37 -70 -14 -55 -69 -16 -7 -57 -3 -18 -12 -35 -65 -27 -14 -91 -171 16 -2 27 49 8 2 19 -27 -3 -6 -17 4 -7 -13 3 -38 -40 -31 -43 -2 -32 -72 10 -25 53 -29 14 -61 12 -13 30 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-2355 6320l30 -32 -3 -11 -56 -12","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-906 6736l-20 -40","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-926 6696l-13 -33 10 -41 -16 -7 -53 111 -33 0 -36 38 -82 33 -142 -19 -71 -49 -38 11 -14 39 -30 14 -49 -12 -18 -31 -36 19 -34 -5 -62 32 -66 5 -45 28 -219 -43 -217 -148 -66 -97 -43 -22 -16 -80 -26 -14 -14 -105","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-489 6865l-67 -25 -51 -21 -53 41 -98 -3 -56 -25 -68 -67 19 36 55 45 -19 6 -69 -33 -10 -83","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M3405 5323l-36 -9 -278 41 -37 -17 -87 30 -49 53 -90 45 -100 -1 -51 -19 -9 43 -41 15 -29 -5 -41 -40 -69 13 -56 83 -125 82 -99 5 -11 -20 -32 -7 -185 66 -91 0 -222 49 -75 -11 -50 29 -49 0 -69 24 -66 29 -44 55 -66 36 -64 10 -106 80 -68 20 -23 45 -49 22 -48 47 -3 10 -41 118 -83 71 -114 -23 -1 -5 -8 -28 -40 -23 -66 18 -23 79 -30 8 -30 39 -38 0 -16 -20 -63 -16 -26 38 -38 -2 -58 34 -71 78 -20 2 -41 128 -27 38 -43 32 -53 2 -36 23 -140 119 -24 -3 -88 40 -54 3 -64 -19 -39 9 -1 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M-2384 6265l-45 4 -69 61 -61 -7 -48 35 -70 -13 -25 11 -62 211 -168 436 -144 284","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M2383 3779l-21 -19 2 -4 22 -3 4 5 -7 21","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@id":"coastline","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil7 str9","@d":"M-5373 7287l0 -6920 8778 0 0 6920 -8778 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str10","@d":"M-5472 7385l0 -7117 8975 0 0 7117 -8975 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"text":[{"$":"10","@x":"-4756","@y":"344","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"10","@x":"-5234","@y":"7357","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"8","@x":"-3682","@y":"344","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"8","@x":"-3999","@y":"7357","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"6","@x":"-2627","@y":"344","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"6","@x":"-2784","@y":"7357","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"4","@x":"-1581","@y":"344","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"4","@x":"-1580","@y":"7357","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"2","@x":"1592","@y":"344","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"2","@x":"2060","@y":"7357","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"0","@x":"534","@y":"344","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"0","@x":"841","@y":"7357","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"2","@x":"-522","@y":"344","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"2","@x":"-365","@y":"7357","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"4","@x":"2648","@y":"344","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"4","@x":"3274","@y":"7357","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"36","@x":"3412","@y":"5999","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"36","@x":"-5457","@y":"6096","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"38","@x":"3412","@y":"4539","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"38","@x":"-5457","@y":"4636","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"40","@x":"3414","@y":"3065","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"40","@x":"-5457","@y":"3176","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"42","@x":"3415","@y":"1608","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"42","@x":"-5460","@y":"1720","@class":"fil8 fnt0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"switch":[{"text":[{"$":"westl. v. Greenwich","@x":"-146","@y":"344","@class":"fil8 fnt0","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"west of Greenwich","@x":"-146","@y":"344","@class":"fil8 fnt0","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"westl. v. Greenwich","@x":"161","@y":"7357","@class":"fil8 fnt0","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"west of Greenwich","@x":"161","@y":"7357","@class":"fil8 fnt0","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"\u00f6stl. v. Greenwich","@x":"664","@y":"344","@class":"fil8 fnt0","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"east of Greenwich","@x":"664","@y":"344","@class":"fil8 fnt0","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"\u00f6stl. v. Greenwich","@x":"950","@y":"7357","@class":"fil8 fnt0","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"east of Greenwich","@x":"950","@y":"7357","@class":"fil8 fnt0","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Modifizierte Kegelprojektion nach Lambert","@x":"3500","@y":"7501","@class":"fil8 fnt0","@style":"text-anchor:end;","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Modified conic projection after Lambert","@x":"3500","@y":"7501","@class":"fil8 fnt0","@style":"text-anchor:end;","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Ber\u00fchrungsbreitenkreise: 38\u00b0 und 42\u00b0 n\u00f6rdl. Breite, (Kanarische Inseln: 28\u00b0 n\u00f6rdl. Breite)","@x":"3500","@y":"7585","@class":"fil8 fnt0","@style":"text-anchor:end;","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Touching latitudes: 38\u00b0 and 42\u00b0 north latitude (Canary Islands: 28\u00b0 north latitude)","@x":"3500","@y":"7585","@class":"fil8 fnt0","@style":"text-anchor:end;","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Zentralmeridian: 4\u00b0 westl. L\u00e4nge, (Kanarische Inseln: 16\u00b0 westl. L\u00e4nge)","@x":"3500","@y":"7669","@class":"fil8 fnt0","@style":"text-anchor:end;","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Central meridian: 4\u00b0 west longitude, (Canary Islands: 16\u00b0 west longitude)","@x":"3500","@y":"7669","@class":"fil8 fnt0","@style":"text-anchor:end;","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@id":"gridline_lettering","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"g":[{"path":[{"@class":"fil9 str11","@d":"M-1010 3230l0 -663 -663 0 0 663 663 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil10 str11","@d":"M-1150 3230l0 -523 -523 0 0 523 523 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil11 str11","@d":"M1893 2362l0 -644 -647 0 0 644 647 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil10 str11","@d":"M1639 2362l0 -393 -393 0 0 393 393 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-791 977l0 -334 -334 0 0 334 334 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil10 str11","@d":"M-919 977l0 -210 -206 0 0 210 206 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-387 1045l0 -264 -264 0 0 264 264 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil10 str11","@d":"M-491 1045l0 -164 -160 0 0 164 160 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil11 str11","@d":"M450 4025l0 -440 -437 0 0 440 437 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil12 str11","@d":"M290 4025l0 -274 -277 0 0 274 277 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M0 3748l0 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil11 str11","@d":"M-2287 5402l0 -384 -383 0 0 384 383 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil12 str11","@d":"M-2407 5402l0 -260 -263 0 0 260 263 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-2519 1022l0 -327 -327 0 0 327 327 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil12 str11","@d":"M-2682 1022l0 -164 -164 0 0 164 164 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-1537 1059l0 -237 -240 0 0 237 240 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil12 str11","@d":"M-1610 1059l0 -163 -167 0 0 163 167 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-195 1467l0 -237 -237 0 0 237 237 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil12 str11","@d":"M-272 1467l0 -160 -160 0 0 160 160 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil13 str11","@d":"M-2737 2807l0 -207 -207 0 0 207 207 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil12 str11","@d":"M-2788 2807l0 -153 -156 0 0 153 156 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil11 str11","@d":"M-2488 6003l0 -320 -320 0 0 320 320 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil12 str11","@d":"M-2655 6003l0 -153 -153 0 0 153 153 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil13 str11","@d":"M-2811 4508l0 -260 -260 0 0 260 260 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil12 str11","@d":"M-2927 4508l0 -143 -144 0 0 143 144 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M1303 1629l0 -203 -203 0 0 203 203 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil12 str11","@d":"M1237 1629l0 -137 -137 0 0 137 137 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil13 str11","@d":"M-3308 1106l0 -213 -214 0 0 213 214 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil12 str11","@d":"M-3396 1106l0 -127 -126 0 0 127 126 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil13 str11","@d":"M-2695 2041l0 -174 -173 0 0 174 173 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil12 str11","@d":"M-2752 2041l0 -117 -116 0 0 117 116 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil13 str11","@d":"M-353 3592l0 -170 -170 0 0 170 170 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil12 str11","@d":"M-419 3592l0 -104 -104 0 0 104 104 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil13 str11","@d":"M534 1659l0 -170 -170 0 0 170 170 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil12 str11","@d":"M467 1659l0 -103 -103 0 0 103 103 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil11 str11","@d":"M-1904 2272l0 -233 -233 0 0 233 233 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-1937 2272l0 -200 -200 0 0 200 200 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil15 str11","@d":"M2541 3567l0 -273 -277 0 0 273 277 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M2461 3567l0 -196 -197 0 0 196 197 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil11 str11","@d":"M-14 4970l0 -320 -317 0 0 320 317 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-134 4970l0 -194 -197 0 0 194 197 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-1860 4895l0 -277 -273 0 0 277 273 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-1940 4895l0 -194 -193 0 0 194 193 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-1100 5523l0 -283 -284 0 0 283 284 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-1200 5523l0 -183 -184 0 0 183 184 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil15 str11","@d":"M599 4608l0 -344 -343 0 0 344 343 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M439 4608l0 -184 -183 0 0 184 183 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-3800 1072l0 -326 -327 0 0 326 327 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-3947 1072l0 -180 -180 0 0 180 180 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-1245 1681l0 -203 -207 0 0 203 207 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-1299 1681l0 -157 -153 0 0 157 153 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-663 1315l0 -204 -206 0 0 204 206 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-715 1315l0 -156 -154 0 0 156 154 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil11 str11","@d":"M-458 5475l0 -224 -227 0 0 224 227 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-532 5475l0 -156 -153 0 0 156 153 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil13 str11","@d":"M-2517 1522l0 -237 -237 0 0 237 237 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-2608 1522l0 -146 -146 0 0 146 146 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil11 str11","@d":"M640 3226l0 -223 -223 0 0 223 223 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M564 3226l0 -143 -147 0 0 143 147 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-312 4250l0 -200 -200 0 0 200 200 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-369 4250l0 -143 -143 0 0 143 143 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-723 1705l0 -183 -184 0 0 183 184 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-767 1705l0 -143 -140 0 0 143 140 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil11 str11","@d":"M1148 2597l0 -240 -240 0 0 240 240 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M1044 2597l0 -137 -136 0 0 137 136 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-1200 4922l0 -260 -257 0 0 260 257 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-1320 4922l0 -137 -137 0 0 137 137 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil13 str11","@d":"M-1802 1675l0 -163 -164 0 0 163 164 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-1842 1675l0 -123 -124 0 0 123 124 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil13 str11","@d":"M-2401 3769l0 -216 -216 0 0 216 216 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-2493 3769l0 -120 -124 0 0 120 124 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil11 str11","@d":"M2259 1720l0 -237 -233 0 0 237 233 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M2146 1720l0 -123 -120 0 0 123 120 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil11 str11","@d":"M-3825 1565l0 -297 -300 0 0 297 300 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-4005 1565l0 -120 -120 0 0 120 120 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-1662 3525l0 -230 -230 0 0 230 230 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-1775 3525l0 -117 -117 0 0 117 117 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil13 str11","@d":"M-1157 4308l0 -230 -230 0 0 230 230 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-1274 4308l0 -113 -113 0 0 113 113 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil13 str11","@d":"M-1612 2535l0 -150 -153 0 0 150 153 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-1652 2535l0 -113 -113 0 0 113 113 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil16 str11","@d":"M-803 2148l0 -130 -130 0 0 130 130 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M-837 2148l0 -96 -96 0 0 96 96 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil13 str11","@d":"M234 2837l0 -150 -150 0 0 150 150 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M177 2837l0 -93 -93 0 0 93 93 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil15 str11","@d":"M-1810 5814l0 -337 -337 0 0 337 337 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil17 str11","@d":"M-1904 5814l0 -243 -243 0 0 243 243 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil11 str11","@d":"M-933 1247l0 -186 -183 0 0 186 183 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil17 str11","@d":"M-946 1247l0 -166 -170 0 0 166 170 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-3130 5156l0 -223 -223 0 0 223 223 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil17 str11","@d":"M-3203 5156l0 -147 -150 0 0 147 150 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil10 str11","@d":"M-3291 1785l0 -220 -220 0 0 220 220 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil17 str11","@d":"M-3374 1785l0 -136 -137 0 0 136 137 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil13 str11","@d":"M-1987 2939l0 -160 -160 0 0 160 160 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil17 str11","@d":"M-2041 2939l0 -106 -106 0 0 106 106 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil15 str11","@d":"M25 2378l0 -303 -300 0 0 303 300 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M12 2378l0 -286 -287 0 0 286 287 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil18 str11","@d":"M-723 2722l0 -150 -154 0 0 150 154 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil9 str11","@d":"M-760 2722l0 -116 -117 0 0 116 117 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@id":"rects_for_legend","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@id":"textPathAtlantic","@style":"visibility:hidden;","@d":"M -4900,5300 C -4950,4300 -4950,1800 -4900,800","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@id":"textPathMiddle","@style":"visibility:hidden;","@d":"M -1900,6500 C -1400,6400 -600,6150 -100,6000","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@id":"textPathMiddleSea","@style":"visibility:hidden;","@d":"M 1200,5500 C 2200,5100 2400,4950 3400,4500","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@id":"textPathBalearic","@style":"visibility:hidden;","@d":"M 1500,3600 C 2000,3200 2100,3150 2600,2900","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@id":"textPathMorocco","@style":"visibility:hidden;","@d":"M -2700,7120 C -2200,7070 -1000,7070 -500,7120","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@id":"textPathPortugal","@style":"visibility:hidden;","@d":"M -3900,4600 C -3850,4000 -3700,2900 -3500,2300","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@id":"textPathFranceText","@style":"visibility:hidden;","@d":"M 50,650 C 500,850 1400,1020 1850,1050","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@id":"textPathEbro","@style":"visibility:hidden;","@d":"M 30,1960 C 50,1970 170,2050 200,2065","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@id":"textPathGuadalquivir","@style":"visibility:hidden;","@d":"M -2860,5500 C -2850,5350 -2800,5200 -2700,5000","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@id":"textPathGuadiana","@style":"visibility:hidden;","@d":"M -3725,4950 C -3710,4800 -3700,4720 -3670,4570","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"switch":[{"text":[{"textPath":{"$":"Atlantischer Ozean","@xlink:href":"#textPathAtlantic","@startOffset":"5%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@systemLanguage":"de","@class":"fil19 fnt1","@style":"letter-spacing:150px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"textPath":{"$":"Atlantic Ocean","@xlink:href":"#textPathAtlantic","@startOffset":"10%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@systemLanguage":"en","@class":"fil19 fnt1","@style":"letter-spacing:200px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"textPath":{"$":"Mittel-","@xlink:href":"#textPathMiddle","@startOffset":"25%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@systemLanguage":"de","@class":"fil19 fnt1","@style":"letter-spacing:70px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"textPath":{"$":"Mediter-","@xlink:href":"#textPathMiddle","@startOffset":"5%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@systemLanguage":"en","@class":"fil19 fnt1","@style":"letter-spacing:130px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"textPath":{"$":"l\u00e4ndisches Meer","@xlink:href":"#textPathMiddleSea","@startOffset":"0%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@systemLanguage":"de","@class":"fil19 fnt1","@style":"letter-spacing:70px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"textPath":{"$":"ranean Sea","@xlink:href":"#textPathMiddleSea","@startOffset":"5%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@systemLanguage":"en","@class":"fil19 fnt1","@style":"letter-spacing:130px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"textPath":{"$":"Balearen","@xlink:href":"#textPathBalearic","@startOffset":"5%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@systemLanguage":"de","@class":"fil8 fnt2","@style":"letter-spacing:85px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"textPath":{"$":"Balearics","@xlink:href":"#textPathBalearic","@startOffset":"5%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@systemLanguage":"en","@class":"fil8 fnt2","@style":"letter-spacing:80px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"textPath":{"$":"Marokko","@xlink:href":"#textPathMorocco","@startOffset":"5%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@systemLanguage":"de","@class":"fil8 fnt4","@style":"letter-spacing:220px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"textPath":{"$":"Morocco","@xlink:href":"#textPathMorocco","@startOffset":"5%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@systemLanguage":"en","@class":"fil8 fnt4","@style":"letter-spacing:220px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"textPath":{"$":"Frankreich","@xlink:href":"#textPathFranceText","@startOffset":"10%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@systemLanguage":"de","@class":"fil8 fnt4","@style":"letter-spacing:70px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"textPath":{"$":"France","@xlink:href":"#textPathFranceText","@startOffset":"5%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@systemLanguage":"en","@class":"fil8 fnt4","@style":"letter-spacing:190px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Sevilla","@x":"-2247","@y":"5318","@class":"fil8 fnt5","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Seville","@x":"-2247","@y":"5318","@class":"fil8 fnt5","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Lissabon","@x":"-4885","@y":"4076","@class":"fil8 fnt5","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Lisbon","@x":"-4806","@y":"4076","@class":"fil8 fnt5","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Algier","@x":"2298","@y":"5447","@class":"fil8 fnt5","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Algiers","@x":"2298","@y":"5447","@class":"fil8 fnt5","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"text":[{"$":"Mallorca","@x":"2488","@y":"3766","@class":"fil8 fnt3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Menorca","@x":"2928","@y":"3006","@class":"fil8 fnt3","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"textPath":{"$":"Portugal","@xlink:href":"#textPathPortugal","@startOffset":"5%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@class":"fil8 fnt4","@style":"letter-spacing:200px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Barcelona","@x":"1998","@y":"2171","@class":"fil8 fnt5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Valencia","@x":"619","@y":"3777","@class":"fil8 fnt5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Madrid","@x":"-966","@y":"3255","@class":"fil8 fnt5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Bilbao","@x":"-1400","@y":"715","@class":"fil8 fnt5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"La Coru\u00f1a","@x":"-4377","@y":"663","@class":"fil8 fnt5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Marseille","@x":"3035","@y":"484","@class":"fil8 fnt5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Montpellier","@x":"2125","@y":"485","@class":"fil8 fnt5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Perpignan","@x":"1710","@y":"1200","@class":"fil8 fnt5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Porto","@x":"-4225","@y":"3046","@class":"fil8 fnt5","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"textPath":{"$":"Ebro","@xlink:href":"#textPathEbro","@startOffset":"0%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@class":"fil19 fnt6","@style":"letter-spacing:5px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"textPath":{"$":"Guadalquivir","@xlink:href":"#textPathGuadalquivir","@startOffset":"0%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@class":"fil19 fnt6","@style":"letter-spacing:0px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"textPath":{"$":"Guadiana","@xlink:href":"#textPathGuadiana","@startOffset":"0%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@class":"fil19 fnt6","@style":"letter-spacing:0px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Ibiza","@x":"1598","@y":"4068","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"ellipse":[{"@class":"fil20 str12","@cx":"-4524","@cy":"4115","@rx":"20","@ry":"20","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil20 str12","@cx":"2539","@cy":"5508","@rx":"20","@ry":"20","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil20 str12","@cx":"-4248","@cy":"3087","@rx":"20","@ry":"20","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil20 str12","@cx":"3344","@cy":"541","@rx":"20","@ry":"20","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil20 str12","@cx":"2602","@cy":"516","@rx":"20","@ry":"20","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil20 str12","@cx":"2139","@cy":"1235","@rx":"20","@ry":"20","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"g":[{"text":{"$":"Tajo","@x":"0","@y":"3748","@class":"fil19 fnt6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@transform":"matrix(0.999514 -0.0311582 0.0311582 0.999514 -774.816 -1079.23)","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":{"$":"Tejo","@x":"0","@y":"3748","@class":"fil19 fnt6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@transform":"matrix(0.788941 -0.614468 0.614468 0.788941 -6525.95 784.685)","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":{"$":"Duero","@x":"0","@y":"3748","@class":"fil19 fnt6","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@transform":"matrix(0.974789 0.22313 -0.22313 0.974789 -642.438 -1622.51)","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@id":"lettering","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"g":{"path":[{"@class":"fil7 str13","@d":"M-5373 1689l93 8 103 7 103 8 103 7 103 8 53 3 50 4 104 6 103 7 103 6 103 6 103 6 104 6 103 5 103 5 104 5 103 5 3 0 100 5 103 4 104 4 103 4 103 3 104 4 103 3 104 3 103 3 103 2 56 2 48 1 103 2 103 2 104 1 103 2 104 1 103 1 103 1 104 0 103 1 104 0 5 0 98 0 103 -1 104 0 103 -1 104 -1 103 -1 103 -1 104 -2 103 -2 104 -2 58 -1 45 -1 103 -3 104 -3 103 -3 103 -3 104 -3 103 -4 104 -4 103 -4 103 -4 103 -5 9 0 95 -4 103 -5 103 -5 104 -6 103 -5 103 -6 103 -6 104 -7 103 -6 103 -7 61 -4 42 -3 103 -7 103 -7 104 -8 103 -8 103 -8 103 -8 103 -8 103 -9 103 -9 103 -9 11 -1 92 -9 103 -9 103 -10 103 -10 103 -10 103 -11 11 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str13","@d":"M-5373 3150l87 7 106 8 106 7 107 8 54 3 52 4 106 7 107 7 106 6 106 6 106 6 107 6 106 6 107 5 106 5 106 5 3 0 104 5 106 4 107 5 106 3 107 4 106 4 106 3 107 3 106 3 107 3 57 1 49 1 107 2 106 2 107 2 106 1 107 2 106 1 107 0 106 1 107 0 106 1 6 0 101 -1 107 0 106 0 107 -1 106 -1 107 -1 106 -2 107 -2 106 -2 107 -2 60 -1 46 -1 107 -3 106 -2 106 -4 107 -3 106 -3 107 -4 106 -4 107 -4 106 -5 107 -4 8 -1 98 -4 106 -5 107 -6 106 -5 106 -6 107 -6 106 -6 106 -7 107 -6 106 -7 63 -5 43 -2 107 -8 106 -7 106 -8 106 -8 107 -9 106 -8 106 -9 106 -9 106 -9 106 -9 12 -1 94 -9 106 -10 106 -10 106 -10 75 -8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str13","@d":"M-5373 4611l87 6 110 8 109 8 56 3 53 4 110 7 109 7 110 7 109 6 110 6 109 6 109 6 110 6 109 5 110 5 3 0 107 5 109 4 110 5 109 4 110 4 109 3 110 4 109 3 110 3 110 2 59 2 50 1 110 2 109 2 110 2 110 1 109 2 110 1 109 1 110 0 110 1 109 0 6 0 104 0 110 -1 109 0 110 -1 109 -1 110 -1 110 -2 109 -2 110 -2 109 -2 63 -1 47 -1 110 -3 109 -3 110 -3 109 -3 110 -4 110 -4 109 -4 110 -4 109 -5 110 -5 8 0 101 -5 110 -5 109 -5 110 -6 109 -6 110 -6 109 -7 109 -6 110 -7 109 -7 65 -5 45 -3 109 -7 109 -8 110 -8 109 -8 109 -9 110 -9 109 -9 109 -9 109 -9 109 -10 12 -1 98 -9 109 -10 109 -10 41 -4","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str13","@d":"M-5373 6072l94 7 112 8 58 3 55 4 112 7 113 8 112 6 113 7 113 6 112 7 113 6 112 5 113 6 113 5 3 0 109 5 113 4 112 5 113 4 113 4 112 4 113 3 113 4 112 3 113 2 61 2 52 1 113 2 112 2 113 2 113 2 112 1 113 1 113 1 113 1 112 0 113 0 6 0 107 0 113 0 112 -1 113 -1 113 -1 113 -1 112 -2 113 -1 113 -3 112 -2 64 -1 49 -1 113 -3 113 -3 112 -3 113 -4 113 -3 112 -4 113 -5 113 -4 112 -5 113 -5 9 0 103 -5 113 -5 113 -6 112 -6 113 -6 112 -6 113 -7 112 -7 113 -7 112 -7 67 -5 46 -3 112 -7 113 -8 112 -9 113 -8 112 -9 112 -9 113 -9 112 -10 112 -9 113 -10 12 -2 100 -9 112 -10 14 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str13","@d":"M-5189 7287l1 -17 9 -139 9 -138 10 -139 9 -138 9 -139 10 -139 9 -138 9 -138 5 -72 5 -67 9 -138 9 -139 10 -138 9 -138 9 -139 10 -138 9 -138 9 -138 10 -139 9 -138 0 -4 9 -134 10 -138 9 -139 9 -138 10 -138 9 -138 9 -138 10 -139 9 -138 9 -138 5 -75 4 -63 10 -138 9 -138 9 -139 10 -138 9 -138 9 -138 10 -139 9 -138 9 -138 10 -138 0 -8 9 -131 9 -138 10 -139 9 -138 9 -138 10 -139 9 -138 9 -139 10 -138 8 -125","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str13","@d":"M-3976 7287l4 -88 6 -139 6 -138 6 -139 7 -139 6 -139 6 -138 6 -139 4 -71 3 -68 6 -138 6 -139 6 -138 6 -139 7 -138 6 -139 6 -138 6 -139 7 -138 6 -138 0 -4 6 -135 6 -138 6 -138 7 -139 6 -138 6 -139 6 -138 6 -138 7 -139 6 -138 3 -75 3 -63 6 -139 7 -138 6 -138 6 -139 6 -138 6 -139 7 -138 6 -139 6 -138 6 -138 1 -8 5 -131 7 -139 6 -138 6 -139 6 -138 7 -139 6 -139 6 -138 6 -139 7 -139 2 -45","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str13","@d":"M-2765 7287l1 -47 3 -139 3 -139 3 -139 3 -139 3 -138 3 -139 3 -139 2 -71 2 -68 3 -138 3 -139 3 -139 3 -138 3 -139 3 -138 3 -139 3 -138 4 -139 3 -139 0 -3 3 -135 3 -139 3 -138 3 -138 3 -139 3 -138 3 -139 4 -138 3 -139 3 -138 1 -75 2 -64 3 -138 3 -139 3 -138 3 -139 3 -138 4 -139 3 -138 3 -139 3 -138 3 -139 0 -7 3 -132 3 -138 3 -139 3 -138 4 -139 3 -139 3 -139 3 -138 3 -139 3 -139 2 -79 0 -2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str13","@d":"M-1556 7287l0 -34 0 -139 0 -139 0 -138 0 -139 0 -139 0 -139 0 -139 0 -71 0 -67 0 -139 0 -139 0 -138 0 -139 0 -139 0 -138 0 -139 0 -138 0 -139 0 -139 0 -3 0 -135 0 -139 0 -138 0 -139 0 -138 0 -139 0 -138 0 -139 0 -138 0 -139 0 -74 0 -64 0 -139 0 -138 0 -139 0 -138 0 -139 0 -138 0 -139 0 -138 0 -139 0 -139 0 -7 0 -131 0 -139 0 -139 0 -138 0 -139 0 -139 0 -139 0 -139 0 -138 0 -139 0 -79 0 -14","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str13","@d":"M-346 7287l-1 -47 -3 -139 -4 -139 -3 -139 -3 -139 -3 -138 -3 -139 -3 -139 -2 -71 -1 -68 -3 -138 -3 -139 -4 -139 -3 -138 -3 -139 -3 -138 -3 -139 -3 -138 -3 -139 -3 -139 0 -3 -3 -135 -4 -139 -3 -138 -3 -138 -3 -139 -3 -138 -3 -139 -3 -138 -3 -139 -3 -138 -2 -75 -2 -64 -3 -138 -3 -139 -3 -138 -3 -139 -3 -138 -3 -139 -3 -138 -3 -139 -4 -138 -3 -139 0 -7 -3 -132 -3 -138 -3 -139 -3 -138 -3 -139 -3 -139 -3 -139 -4 -138 -3 -139 -3 -139 -2 -79 0 -2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str13","@d":"M865 7287l-4 -88 -7 -139 -6 -138 -6 -139 -6 -139 -7 -139 -6 -138 -6 -139 -3 -71 -3 -68 -6 -138 -7 -139 -6 -138 -6 -139 -6 -138 -7 -139 -6 -138 -6 -139 -6 -138 -6 -138 -1 -4 -6 -135 -6 -138 -6 -138 -6 -139 -6 -138 -7 -139 -6 -138 -6 -138 -6 -139 -7 -138 -3 -75 -3 -63 -6 -139 -6 -138 -6 -138 -7 -139 -6 -138 -6 -139 -6 -138 -6 -139 -7 -138 -6 -138 0 -8 -6 -131 -6 -139 -7 -138 -6 -139 -6 -138 -6 -139 -7 -139 -6 -138 -6 -139 -6 -139 -2 -45","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str13","@d":"M2078 7287l-1 -17 -10 -139 -9 -138 -9 -139 -10 -138 -9 -139 -9 -139 -10 -138 -9 -138 -5 -72 -4 -67 -10 -138 -9 -139 -9 -138 -10 -138 -9 -139 -9 -138 -10 -138 -9 -138 -9 -139 -10 -138 0 -4 -9 -134 -9 -138 -10 -139 -9 -138 -9 -138 -10 -138 -9 -138 -9 -139 -10 -138 -9 -138 -5 -75 -4 -63 -9 -138 -10 -138 -9 -139 -9 -138 -10 -138 -9 -138 -9 -139 -10 -138 -9 -138 -9 -138 -1 -8 -9 -131 -9 -138 -9 -139 -10 -138 -9 -138 -9 -139 -10 -138 -9 -139 -9 -138 -9 -125","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str13","@d":"M3295 7287l-10 -112 -13 -138 -12 -139 -13 -138 -12 -139 -13 -138 -12 -138 -12 -138 -13 -139 -6 -71 -6 -67 -13 -138 -12 -138 -13 -138 -12 -138 -13 -138 -12 -138 -12 -138 -13 -138 -12 -138 -13 -138 0 -4 -12 -134 -12 -138 -13 -138 -12 -138 -13 -138 -12 -138 -13 -138 -12 -138 -12 -138 -13 -138 -6 -74 -6 -64 -13 -138 -12 -138 -12 -138 -13 -138 -12 -138 -13 -138 -12 -138 -13 -138 -12 -138 -12 -138 -1 -7 -12 -131 -12 -138 -13 -138 -12 -138 -13 -138 -12 -139 -12 -138 -13 -138 -12 -138 -4 -42","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@id":"gridlines","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil20 str14","@d":"M-12 7218l0 0 0 -1637 3344 0 0 1637 -3344 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str15","@d":"M85 7122l0 -1444 3149 0 0 1444 -3149 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@id":"textPathCanary","@style":"visibility:hidden;","@d":"M 700,6300 C 1200,6125 2100,6000 2600,6000","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"image":{"@transform":"matrix(0.930151 0 0 0.929032 86.3544 3637.68)","@x":"0","@y":"2198","@width":"3383","@height":"1550","@xlink:href":"tests\/resources\/images\/canaryRelief.png","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"g":[{"g":[{"path":[{"@class":"fil4","@d":"M3152 5774l-14 0 0 -3 -3 -3 3 -4 4 -6 10 -7 6 0 4 3 0 7 0 3 -7 4 0 3 -3 3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M3138 5898l-3 0 -3 -4 0 -3 -4 -3 4 0 3 -4 7 -6 0 -4 0 -3 0 -3 6 -20 4 0 3 0 7 3 6 3 4 4 0 6 0 4 -4 0 -3 3 -7 10 0 3 -3 7 -7 0 -6 3 -4 4z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M2988 6178l-6 0 0 -4 -4 -3 0 -3 -6 0 -7 0 -3 -4 -4 0 -10 0 -13 0 -3 4 -4 0 -3 -7 0 -7 -3 -3 0 -3 0 -4 0 -6 3 0 7 -4 3 -6 7 -4 3 -3 0 -3 3 -4 0 -6 0 -10 4 -17 -4 -13 0 -4 4 -6 0 -4 6 -10 0 -3 7 -7 3 -3 4 -10 3 0 7 -3 6 -7 10 -10 17 0 7 -3 6 3 4 -3 3 -4 7 -3 3 -7 7 -3 3 -3 7 -10 6 0 4 0 3 0 3 0 7 -4 3 -3 7 -3 3 0 4 -4 3 4 3 0 4 3 3 3 3 4 4 0 3 0 3 0 7 -4 3 -3 4 -7 0 -3 3 -3 0 -4 0 -6 3 -4 0 -3 4 -7 0 -3 0 -3 3 -7 3 -13 14 -17 3 -3 3 3 7 3 7 4 10 10 3 6 3 4 -3 6 0 14 0 3 0 7 -3 3 -7 3 -10 7 -3 7 0 3 0 7 3 6 0 7 3 3 0 7 0 3 0 4 -3 6 -3 7 -4 33 0 4 -6 0 0 10 -4 3 -6 3 0 4 -4 0 -3 3 -3 3 -7 4 -3 0 -7 3 0 3 0 7 -3 0 -4 0 -10 0 -6 -3 -4 3 -6 3 0 4 -4 0 -6 10 0 3 -17 3 -13 7 -4 0 -10 -3 -6 0 -7 0 -10 6 -3 0 -4 4 -6 3 -4 10 -3 13 -3 0 -4 7 -3 3 -7 4 0 10z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M2638 6761l-10 -3 -13 0 -3 0 -10 0 -7 -7 -7 -3 -3 0 -10 -4 -10 0 -20 0 -7 0 -3 4 -3 0 -4 0 -3 0 -3 -4 6 -6 4 -7 0 -7 0 -3 6 0 4 0 3 3 10 0 10 4 17 -4 3 -3 10 -3 7 -4 3 -3 17 -7 20 -10 6 -3 4 -3 6 -10 4 0 6 -7 7 -3 3 -4 4 0 6 -6 10 -14 4 -6 10 -10 3 -4 3 -10 0 -10 -3 -20 3 -6 4 -10 3 -10 0 -4 7 -6 6 -7 4 -7 3 -6 0 -4 3 -13 0 -7 4 -3 0 -3 0 -4 0 -10 0 -3 6 -7 4 -3 3 -3 3 -7 4 -7 10 -10 3 -6 3 -10 4 -10 0 -4 3 -3 3 -3 4 -7 0 -7 3 -3 3 -7 4 -3 0 -3 6 -7 7 -10 3 -3 -3 -17 3 -3 0 -7 4 -3 3 -17 3 -3 0 -10 0 -14 0 -10 4 -3 0 -3 10 -4 3 0 3 -3 4 -3 6 0 7 -7 3 0 7 -3 3 -4 7 -3 3 0 7 0 3 0 7 -3 7 3 3 0 3 3 4 7 0 3 10 4 6 10 4 3 0 3 3 14 -3 13 3 17 0 6 3 7 0 3 0 14 4 10 0 10 -4 3 0 7 0 20 -3 3 -3 13 -4 7 -3 7 -3 3 -4 7 0 6 0 4 4 10 0 3 -4 7 0 6 4 7 3 7 3 3 0 3 -6 7 0 3 -4 7 -6 3 -4 17 -3 7 0 3 -3 10 0 3 -7 7 -3 3 0 7 0 3 0 10 -7 4 0 3 -3 10 -4 7 -3 6 -10 7 -3 3 -4 0 -3 -3 -3 0 -4 0 -10 7 -3 3 -13 0 -7 3 -7 0 -10 0 -13 4 -7 3 -13 3 -10 4 -7 3 -10 7 -10 6 -10 4 -16 0 -7 6 -7 10 -3 4 -10 16 -3 4 -7 6 -3 4 -4 3 -10 10 -3 7 -3 3 -4 0 -10 10 -3 3 -3 4 -4 3z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M1835 6994l-10 -3 -7 -7 -3 0 -10 -3 -27 0 -6 0 0 -3 -14 -14 -10 -3 -3 -3 0 -4 -13 -10 -4 -3 -3 -7 -7 -6 -10 -4 -3 -3 -3 0 0 -3 -7 -20 -7 -4 0 -6 -3 -10 -10 -17 0 -3 3 -10 0 -4 0 -6 0 -4 0 -3 0 -3 0 -14 0 -13 4 -7 3 0 3 -3 10 0 4 0 3 0 3 -7 7 -6 3 -7 7 0 3 0 4 -3 3 -4 3 -3 0 -3 0 -4 4 -3 3 0 3 -3 0 -4 4 -3 0 -7 -4 -6 4 -7 3 -3 -3 -4 3 -6 0 -7 3 -3 -3 -7 -3 -7 0 -6 13 3 10 0 3 0 10 0 4 0 3 7 10 3 7 0 3 3 3 0 17 0 10 0 7 0 3 4 3 -4 7 -3 3 0 4 3 6 4 4 -4 3 4 10 6 7 0 3 4 3 -4 7 -3 7 0 3 0 3 -3 0 -4 0 -3 0 -3 -6 -7 3 -7 10 0 3 -6 4 3 6 3 4 4 -4 3 -10 13 0 4 -3 6 0 7 3 3 7 7 0 3 0 7 0 7 -3 3 0 3 0 7 0 3 0 4 3 10 0 3 7 3 3 7 7 0 0 3 6 4 4 3 0 3 -4 7 -3 10 -3 3 0 7 3 3 3 7 0 3 0 7 7 3 0 7 -10 0 -3 3 0 4 -4 6 -3 7 3 7 0 3 4 3 6 7 4 3 -4 4 0 3 -10 7 -6 3 0 3 -4 4 -3 0 -3 6 -4 7 -3 3 -3 10 -10 7 -4 0 -16 7 -7 0 -7 3 -3 3 -3 0 -7 0 -7 4 -3 0 -3 3 -14 7 0 3 -3 3 -3 7 -4 3 -3 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil4","@d":"M415 6408l0 6 0 7 -3 3 -4 4 -3 3 -7 3 -3 4 0 6 -7 7 -3 10 -3 0 0 -3 -7 -4 -7 -6 -3 -4 0 -3 0 -7 0 -3 0 -3 -3 -4 -4 -3 0 -17 0 -6 0 -4 0 -3 0 -3 -3 -4 -13 -13 -7 -10 0 -3 0 -14 -3 -6 0 -7 -4 -3 -6 -7 0 -3 -4 -7 -6 -3 0 -7 0 -3 0 -4 -4 -6 0 -4 0 -3 -3 -7 -3 -3 -4 -3 -3 -10 -7 -4 -3 0 -7 -10 0 -3 0 -7 4 -6 0 -4 10 -10 3 -3 0 -7 0 -3 3 0 10 -3 7 -7 13 -7 7 -6 3 -4 4 -3 3 3 7 4 3 3 3 0 4 0 6 0 7 3 7 0 13 -3 7 -3 3 0 7 0 3 0 7 3 10 10 3 7 0 3 0 3 0 4 0 3 3 3 7 10 0 4 0 6 3 4 10 6 4 4 0 6 -4 7 0 3 -10 7 -6 13 -4 7 -3 10 0 10 0 3 3 7 4 13 3 10 0 7 -3 10 -4 3 0 4 -3 3 0 3 -3 7 -14 20 0 3 -3 4z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M1128 6811l-3 0 -3 -3 -7 -4 0 -3 -3 -3 3 -14 0 -6 -3 -4 -4 -3 -3 -3 -3 0 -4 -4 -3 -3 0 -7 0 -6 -3 0 -7 -10 -10 -14 -7 -6 -3 -7 -7 -3 0 -4 -3 -3 -3 -7 -4 -16 -3 -7 -7 -3 -3 -4 -3 0 0 -3 -7 -7 0 -3 -3 -7 0 -13 -4 -17 0 -3 -3 -7 -10 -16 0 -4 -7 -10 -3 -3 -7 -3 -3 -4 -3 -6 -4 -4 -3 -6 3 -4 0 -3 10 0 7 -3 3 0 4 -4 6 -3 4 0 6 -3 10 -4 4 0 3 4 3 0 10 6 20 0 10 0 4 0 13 -6 10 0 10 3 10 -10 3 -3 4 0 3 -4 7 0 13 0 3 4 20 0 4 -4 16 0 4 -3 3 -3 3 -4 7 -6 7 -4 3 0 10 4 3 0 4 0 3 -4 3 -6 7 -4 7 -3 0 -3 3 -4 3 -6 4 -4 0 -3 6 -3 4 -4 3 0 3 -3 4 -3 3 -7 3 -13 4 -7 3 -3 7 0 6 -7 0 -3 10 3 10 -3 7 -7 7 -3 3 0 0 -4 3 -6 7 0 7 3 3 0 7 -3 3 -4 7 4 3 0 7 0 3 0 13 6 7 0 3 0 7 -3 10 0 3 0 7 -7 7 0 3 -6 3 -4 10 4 4 0 0 3 3 10 3 3 0 4 0 13 0 3 -3 7 0 3 -3 4 -7 3 -10 3 -3 0 -14 7 -13 7 -3 3 -4 0 -6 3 -7 4 -3 6 -10 10 -4 4 -3 3 -7 7 -6 10 -7 10 -7 6 -10 4 -3 3 -7 3 -6 7 -4 3 -3 4 0 13 0 3 0 14 3 6 0 4 -3 6 -3 4 -4 3 0 3 -3 4 0 6 -7 10 0 4 -10 20 -3 6 -3 10 -4 10 0 4 -6 16 0 10 0 4 0 3 -17 10 -7 3 0 4 -6 13 -7 10 -7 7 -3 3 -3 10 -4 3 -3 0 -7 10 -6 4 0 3 -4 3 -10 0 -10 0 -6 0 -20 7 -7 7 -3 3 -4 0 -10 0 -6 0 -4 3 -3 0 -7 7z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M768 6788l-10 0 -10 -7 -13 -17 -7 0 -3 -3 -7 -7 -3 -10 -7 -6 -3 -4 0 -6 -3 -17 3 -3 0 -7 0 -10 7 -10 0 -3 0 -4 0 -3 3 -3 7 -4 3 -3 10 -7 17 -10 3 0 3 4 4 0 6 6 4 0 3 0 17 7 3 0 10 7 10 10 3 0 10 6 0 4 10 0 7 3 7 7 0 3 6 10 0 3 0 10 0 10 -3 4 0 3 -3 0 -7 10 -7 3 -3 7 -3 3 -4 0 -6 7 -7 7 -3 0 -7 3 -3 3 -4 0 -3 0 -13 -3 -4 3 -6 4 -4 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil4","@d":"M278 7051l-10 0 -3 0 -7 -7 -3 -3 -3 -3 -10 -20 -4 0 -3 -4 -3 0 -10 -3 -4 3 -6 -3 -10 0 -10 -3 -7 -4 -13 0 -4 -3 -3 0 -3 -10 -4 -10 0 -3 0 -4 0 -6 7 -7 10 -7 7 -3 3 3 7 7 3 0 7 0 6 0 7 0 7 3 3 0 7 0 6 -3 4 0 3 -3 7 -10 6 -7 4 0 10 -7 0 -3 -4 -3 -3 -4 3 -3 4 -3 3 0 10 0 3 0 4 -7 3 0 7 0 3 -3 3 -4 4 -3 3 -3 13 3 7 3 3 10 4 4 0 3 3 3 0 4 0 6 -3 4 -10 10 -4 3 -3 3 -3 7 0 3 0 4 -4 6 0 4 -3 16 -7 4 -3 3 -7 7 0 3 -3 3 -3 4 -4 3 0 7 0 6 0 4 -3 3 0 3 0 4 0 3 -7 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"path":{"@class":"fil5","@d":"M85 7121l0 -1443 3150 0 0 1443 -3150 0m3053 -1223l4 -4 6 -3 7 0 3 -7 0 -3 7 -10 3 -3 4 0 0 -4 0 -6 -4 -4 -6 -3 -7 -3 -3 0 -4 0 -6 20 0 3 0 3 0 4 -7 6 -3 4 -4 0 4 3 0 3 3 4 3 0m-150 280l0 -10 7 -4 3 -3 4 -7 3 0 3 -13 4 -10 6 -3 4 -4 3 0 10 -6 7 0 6 0 10 3 4 0 13 -7 17 -3 0 -3 6 -10 4 0 0 -4 6 -3 4 -3 6 3 10 0 4 0 3 0 0 -7 0 -3 7 -3 3 0 7 -4 3 -3 3 -3 4 0 0 -4 6 -3 4 -3 0 -10 6 0 0 -4 4 -33 3 -7 3 -6 0 -4 0 -3 0 -7 -3 -3 0 -7 -3 -6 0 -7 0 -3 3 -7 10 -7 7 -3 3 -3 0 -7 0 -3 0 -14 3 -6 -3 -4 -3 -6 -10 -10 -7 -4 -7 -3 -3 -3 -3 3 -14 17 -3 13 -3 7 0 3 0 3 -4 7 0 3 -3 4 0 6 0 4 -3 3 0 3 -4 7 -3 3 -7 4 -3 0 -3 0 -4 0 -3 -4 -3 -3 -4 -3 -3 0 -3 -4 -4 4 -3 0 -7 3 -3 3 -7 4 -3 0 -3 0 -4 0 -6 0 -7 10 -3 3 -7 3 -3 7 -7 3 -3 4 -4 3 -6 -3 -7 3 -17 0 -10 10 -6 7 -7 3 -3 0 -4 10 -3 3 -7 7 0 3 -6 10 0 4 -4 6 0 4 4 13 -4 17 0 10 0 6 -3 4 0 3 -3 3 -7 4 -3 6 -7 4 -3 0 0 6 0 4 0 3 3 3 0 7 3 7 4 0 3 -4 13 0 10 0 4 0 3 4 7 0 6 0 0 3 4 3 0 4 6 0m-2573 230l3 -4 0 -3 14 -20 3 -7 0 -3 3 -3 0 -4 4 -3 3 -10 0 -7 -3 -10 -4 -13 -3 -7 0 -3 0 -10 3 -10 4 -7 6 -13 10 -7 0 -3 4 -7 0 -6 -4 -4 -10 -6 -3 -4 0 -6 0 -4 -7 -10 -3 -3 0 -3 0 -4 0 -3 0 -3 -3 -7 -10 -10 -7 -3 -3 0 -7 0 -3 0 -7 3 -13 3 -7 0 -7 -3 -6 0 -4 0 -3 0 -3 -3 -7 -4 -3 -3 -4 3 -3 4 -7 6 -13 7 -7 7 -10 3 -3 0 0 3 0 7 -3 3 -10 10 0 4 -4 6 0 7 0 3 7 10 3 0 7 4 3 10 4 3 3 3 3 7 0 3 0 4 4 6 0 4 0 3 0 7 6 3 4 7 0 3 6 7 4 3 0 7 3 6 0 14 0 3 7 10 13 13 3 4 0 3 0 3 0 4 0 6 0 17 4 3 3 4 0 3 0 3 0 7 0 3 3 4 7 6 7 4 0 3 3 0 3 -10 7 -7 0 -6 3 -4 7 -3 3 -3 4 -4 3 -3 0 -7 0 -6m2223 353l4 -3 3 -4 3 -3 10 -10 4 0 3 -3 3 -7 10 -10 4 -3 3 -4 7 -6 3 -4 10 -16 3 -4 7 -10 7 -6 16 0 10 -4 10 -6 10 -7 7 -3 10 -4 13 -3 7 -3 13 -4 10 0 7 0 7 -3 13 0 3 -3 10 -7 4 0 3 0 3 3 4 0 3 -3 10 -7 3 -6 4 -7 3 -10 0 -3 7 -4 0 -10 0 -3 0 -7 3 -3 7 -7 0 -3 3 -10 0 -3 3 -7 4 -17 6 -3 4 -7 0 -3 6 -7 0 -3 -3 -3 -3 -7 -4 -7 0 -6 4 -7 0 -3 -4 -10 0 -4 0 -6 4 -7 3 -3 3 -7 4 -7 3 -13 3 -3 0 -20 0 -7 4 -3 0 -10 -4 -10 0 -14 0 -3 -3 -7 0 -6 -3 -17 3 -13 -3 -14 0 -3 -4 -3 -6 -10 -10 -4 0 -3 -4 -7 -3 -3 -3 0 -7 -3 -7 3 -3 0 -7 0 -3 0 -7 3 -3 4 -7 3 -3 0 -7 7 -6 0 -4 3 -3 3 -3 0 -10 4 0 3 -4 3 0 10 0 14 0 10 -3 3 -3 17 -4 3 0 7 -3 3 3 17 -3 3 -7 10 -6 7 0 3 -4 3 -3 7 -3 3 0 7 -4 7 -3 3 -3 3 0 4 -4 10 -3 10 -3 6 -10 10 -4 7 -3 7 -3 3 -4 3 -6 7 0 3 0 10 0 4 0 3 -4 3 0 7 -3 13 0 4 -3 6 -4 7 -6 7 -7 6 0 4 -3 10 -4 10 -3 6 3 20 0 10 -3 10 -3 4 -10 10 -4 6 -10 14 -6 6 -4 0 -3 4 -7 3 -6 7 -4 0 -6 10 -4 3 -6 3 -20 10 -17 7 -3 3 -7 4 -10 3 -3 3 -17 4 -10 -4 -10 0 -3 -3 -4 0 -6 0 0 3 0 7 -4 7 -6 6 3 4 3 0 4 0 3 0 3 -4 7 0 20 0 10 0 10 4 3 0 7 3 7 7 10 0 3 0 13 0 10 3m-1870 27l4 0 6 -4 4 -3 13 3 3 0 4 0 3 -3 7 -3 3 0 7 -7 6 -7 4 0 3 -3 3 -7 7 -3 7 -10 3 0 0 -3 3 -4 0 -10 0 -10 0 -3 -6 -10 0 -3 -7 -7 -7 -3 -10 0 0 -4 -10 -6 -3 0 -10 -10 -10 -7 -3 0 -17 -7 -3 0 -4 0 -6 -6 -4 0 -3 -4 -3 0 -17 10 -10 7 -3 3 -7 4 -3 3 0 3 0 4 0 3 -7 10 0 10 0 7 -3 3 3 17 0 6 3 4 7 6 3 10 7 7 3 3 7 0 13 17 10 7 10 0m360 23l7 -7 3 0 4 -3 6 0 10 0 4 0 3 -3 7 -7 20 -7 6 0 10 0 10 0 4 -3 0 -3 6 -4 7 -10 3 0 4 -3 3 -10 3 -3 7 -7 7 -10 6 -13 0 -4 7 -3 17 -10 0 -3 0 -4 0 -10 6 -16 0 -4 4 -10 3 -10 3 -6 10 -20 0 -4 7 -10 0 -6 3 -4 0 -3 4 -3 3 -4 3 -6 0 -4 -3 -6 0 -14 0 -3 0 -13 3 -4 4 -3 6 -7 7 -3 3 -3 10 -4 7 -6 7 -10 6 -10 7 -7 3 -3 4 -4 10 -10 3 -6 7 -4 6 -3 4 0 3 -3 13 -7 14 -7 3 0 10 -3 7 -3 3 -4 0 -3 3 -7 0 -3 0 -13 0 -4 -3 -3 -3 -10 0 -3 -4 0 -10 -4 -3 4 -3 6 -7 0 -7 7 -3 0 -10 0 -7 3 -3 0 -7 0 -13 -6 -3 0 -7 0 -3 0 -7 -4 -3 4 -7 3 -3 0 -7 -3 -7 0 -3 6 0 4 -3 0 -7 3 -7 7 -10 3 -10 -3 0 3 -6 7 -7 0 -3 3 -4 7 -3 13 -3 7 -4 3 -3 3 -3 0 -4 4 -6 3 0 3 -4 4 -3 6 -3 4 0 3 -7 3 -7 4 -3 6 -3 4 -4 0 -3 0 -10 -4 -3 0 -7 4 -7 6 -3 4 -3 3 -4 3 -16 0 -4 4 -20 0 -3 -4 -13 0 -7 0 -3 4 -4 0 -3 3 -10 10 -10 -3 -10 0 -13 6 -4 0 -10 0 -20 0 -10 -6 -3 0 -3 -4 -4 0 -10 4 -6 3 -4 0 -6 3 -4 4 -3 0 -7 3 -10 0 0 3 -3 4 3 6 4 4 3 6 3 4 7 3 3 3 7 10 0 4 10 16 3 7 0 3 4 17 0 13 3 7 0 3 7 7 0 3 3 0 3 4 7 3 3 7 4 16 3 7 3 3 0 4 7 3 3 7 7 6 10 14 7 10 3 0 0 6 0 7 3 3 4 4 3 0 3 3 4 3 3 4 0 6 -3 14 3 3 0 3 7 4 3 3 3 0m707 183l3 0 4 -3 3 -7 3 -3 0 -3 14 -7 3 -3 3 0 7 -4 7 0 3 0 3 -3 7 -3 7 0 16 -7 4 0 10 -7 3 -10 3 -3 4 -7 3 -6 3 0 4 -4 0 -3 6 -3 10 -7 0 -3 4 -4 -4 -3 -6 -7 -4 -3 0 -3 -3 -7 3 -7 4 -6 0 -4 3 -3 10 0 0 -7 -7 -3 0 -7 0 -3 -3 -7 -3 -3 0 -7 3 -3 3 -10 4 -7 0 -3 -4 -3 -6 -4 0 -3 -7 0 -3 -7 -7 -3 0 -3 -3 -10 0 -4 0 -3 0 -7 0 -3 3 -3 0 -7 0 -7 0 -3 -7 -7 -3 -3 0 -7 3 -6 0 -4 10 -13 4 -3 -4 -4 -6 -3 -4 -3 -3 6 -10 0 -3 7 6 7 0 3 0 3 0 4 -3 3 -3 0 -7 0 -7 3 -3 4 -3 -4 -7 0 -10 -6 -3 -4 -4 4 -6 -4 -4 -3 -3 0 -7 3 -3 4 -3 -4 -7 0 -10 0 -17 0 -3 0 -3 -3 -7 0 -10 -3 -3 -7 -4 0 -10 0 -3 0 -10 0 -13 -3 0 6 3 7 3 7 -3 3 0 7 -3 6 3 4 -3 3 -4 7 4 6 0 7 -4 3 0 4 -3 3 -3 0 -4 3 0 4 0 3 -3 3 -3 4 -4 3 -3 0 -7 0 -3 7 -7 6 -3 7 -3 0 -4 0 -10 0 -3 3 -3 0 -4 7 0 13 0 14 0 3 0 3 0 4 0 6 0 4 -3 10 0 3 10 17 3 10 0 6 7 4 7 20 0 3 3 0 3 3 10 4 7 6 3 7 4 3 13 10 0 4 3 3 10 3 14 14 0 3 6 0 27 0 10 3 3 0 7 7 10 3m-1557 57l7 0 0 -3 0 -4 0 -3 3 -3 0 -4 0 -6 0 -7 4 -3 3 -4 3 -3 0 -3 7 -7 3 -3 7 -4 3 -16 0 -4 4 -6 0 -4 0 -3 3 -7 3 -3 4 -3 10 -10 3 -4 0 -6 0 -4 -3 -3 0 -3 -4 -4 -3 -10 -7 -3 -13 -3 -3 3 -4 3 -3 4 -3 3 -7 0 -3 0 -4 7 -3 0 -10 0 -3 0 -4 3 -3 3 3 4 4 3 0 3 -10 7 -4 0 -6 7 -7 10 -3 3 -4 0 -6 3 -7 0 -3 0 -7 -3 -7 0 -6 0 -7 0 -3 0 -7 -7 -3 -3 -7 3 -10 7 -7 7 0 6 0 4 0 3 4 10 3 10 3 0 4 3 13 0 7 4 10 3 10 0 6 3 4 -3 10 3 3 0 3 4 4 0 10 20 3 3 3 3 7 7 3 0 10 0m2874 -1277l3 -3 0 -3 7 -4 0 -3 0 -7 -4 -3 -6 0 -10 7 -4 6 -3 4 3 3 0 3 14 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"18","@x":"242","@y":"5654","@class":"fil8 fnt8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"16","@x":"1525","@y":"5654","@class":"fil8 fnt8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"14","@x":"2797","@y":"5654","@class":"fil8 fnt8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"18","@x":"222","@y":"7192","@class":"fil8 fnt8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"16","@x":"1517","@y":"7192","@class":"fil8 fnt8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"14","@x":"2834","@y":"7192","@class":"fil8 fnt8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"28","@x":"3244","@y":"6808","@class":"fil8 fnt8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"28","@x":"-2","@y":"6812","@class":"fil8 fnt8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"switch":{"text":[{"$":"westl. v. Greenwich","@x":"377","@y":"5654","@class":"fil8 fnt8","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"west of Greenwich","@x":"377","@y":"5654","@class":"fil8 fnt8","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil7 str8","@d":"M3152 5776l2 -4 2 -3 5 -5 2 -3 0 -5 -4 -5 -6 0 -2 3 -11 3 -3 7 -1 5 1 4 2 1 13 2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M3140 5897l-4 0 -4 -2 -1 -2 -1 -3 2 -3 3 -2 5 -5 0 -4 1 -4 1 -3 6 -19 4 -2 3 1 8 3 5 2 5 6 -1 4 -2 3 -3 2 -2 3 -6 10 0 4 -6 5 -4 0 -6 5 -3 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M2987 6178l-5 -1 -2 -3 -1 -3 -2 -3 -4 -1 -9 1 -3 -2 -4 -1 -9 1 -12 0 -3 2 -4 -1 -3 -5 -2 -7 -2 -3 -2 -4 0 -4 2 -4 3 -2 8 -1 3 -8 5 -5 3 -2 2 -3 1 -3 0 -8 0 -10 3 -17 -3 -11 0 -5 3 -7 1 -4 6 -9 2 -3 5 -6 4 -6 3 -7 3 -2 6 -3 9 -7 10 -10 14 0 9 -1 4 0 4 -1 6 -4 5 -4 4 -7 6 -3 3 -3 6 -8 3 -3 4 0 3 2 5 1 4 -1 6 -4 3 -2 6 -4 4 -1 4 -1 3 0 3 2 4 5 3 1 2 3 4 2 4 0 4 -2 6 -3 2 -3 4 -6 1 -5 2 -3 1 -3 0 -5 2 -4 1 -4 4 -5 1 -5 0 -5 1 -3 2 -3 3 -13 12 -18 4 0 2 3 7 3 9 2 8 11 5 5 1 4 -2 8 -2 13 1 4 -1 5 -2 3 -5 5 -10 6 -3 7 -1 4 -1 5 3 7 2 8 2 4 1 4 0 3 -1 5 -5 6 -3 6 -1 35 -2 3 -4 1 -2 9 -2 2 -6 4 -3 2 -3 2 -2 3 -3 2 -7 3 -3 3 -6 3 -3 3 0 5 -2 2 -4 -1 -9 -2 -5 0 -4 1 -6 3 -3 3 -3 2 -4 11 -3 2 -15 2 -12 8 -5 0 -11 -4 -5 -1 -8 3 -10 4 -4 1 -3 2 -5 5 -5 10 -3 12 -3 3 -4 6 -2 3 -6 4 -2 8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M416 6407l2 -3 1 -4 13 -17 3 -7 0 -5 2 -4 1 -3 2 -3 5 -11 1 -4 -5 -11 -2 -12 -3 -7 -1 -4 0 -9 2 -12 4 -7 8 -12 8 -7 2 -3 2 -8 0 -4 -4 -4 -9 -7 -2 -2 0 -9 -2 -4 -7 -8 -2 -3 -1 -4 0 -5 2 -3 -1 -3 -4 -6 -10 -10 -7 -3 -4 -1 -5 0 -3 1 -7 4 -12 3 -8 -2 -8 -3 -5 0 -4 1 -4 -1 -4 -1 -5 -5 -3 -2 -3 2 -5 5 -7 4 -13 6 -7 9 -8 1 -3 3 -1 3 0 4 -2 4 -2 3 -8 7 -2 3 -3 7 -1 9 1 4 8 7 3 1 5 4 4 10 2 3 4 2 3 7 0 4 1 4 4 5 0 5 -1 5 2 3 3 6 6 5 1 4 4 6 4 6 2 3 1 8 2 14 0 4 7 8 12 14 2 3 0 3 1 4 1 4 0 5 1 19 2 2 2 3 1 4 -1 4 0 5 2 4 4 5 4 5 6 4 2 3 2 -1 4 -10 5 -5 3 -7 3 -3 6 -4 3 -2 4 -6 1 -3 2 -4 1 -10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M2637 6761l3 -2 6 -4 3 -3 10 -9 3 -2 2 -3 5 -6 8 -11 3 -3 6 -4 5 -4 4 -6 10 -17 2 -2 6 -9 8 -7 18 -2 8 -1 10 -6 2 -2 9 -6 8 -2 10 -5 12 -3 7 -3 12 -3 13 -1 3 -1 9 -1 12 -2 4 -2 9 -6 3 -1 3 0 6 4 2 0 2 -3 3 -2 8 -7 4 -6 4 -7 2 -8 1 -4 5 -5 1 -9 0 -4 1 -5 1 -3 8 -8 1 -4 2 -8 2 -3 2 -9 5 -14 4 -7 4 -6 1 -3 5 -5 0 -5 -2 -4 -2 -7 -4 -6 -1 -4 2 -8 1 -4 -2 -9 0 -5 0 -4 2 -7 5 -6 4 -6 0 -5 6 -14 1 -3 1 -19 1 -8 1 -4 1 -10 -2 -8 0 -15 -1 -4 -3 -7 0 -4 -3 -18 2 -14 -3 -12 -1 -3 -2 -3 -5 -11 -11 -4 -2 -2 -1 -8 -3 -3 -4 -1 -7 -2 -7 3 -4 1 -5 0 -4 0 -7 3 -4 1 -5 5 -5 0 -4 6 -9 1 -3 2 -2 3 -3 2 -11 4 -2 3 -2 3 -1 9 2 13 -1 10 -2 3 -4 16 -4 7 -1 3 -1 4 1 18 -1 4 -7 8 -7 9 -1 3 -3 3 -4 6 -1 4 0 4 -6 9 -2 4 -2 3 -2 3 -2 8 -2 3 -2 8 -3 7 -9 11 -5 5 -4 6 -2 4 -5 4 -4 6 -1 4 -2 9 1 5 -1 4 -1 4 -1 4 -2 13 -2 3 -4 7 -2 8 -8 7 -5 5 -1 4 -3 12 -3 7 -2 9 2 18 -1 10 -3 12 -2 3 -10 11 -4 6 -11 13 -6 5 -3 2 -2 3 -7 3 -9 6 -3 2 -6 9 -3 2 -7 3 -19 11 -17 7 -3 2 -8 3 -9 6 -3 1 -17 4 -11 -4 -9 0 -5 -1 -3 -1 -5 0 -2 3 1 8 -4 6 -5 6 2 3 3 2 4 -1 4 -1 2 -2 9 -2 19 0 9 0 12 4 3 2 7 3 6 4 9 1 4 -1 13 3 9 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M767 6789l4 -1 6 -4 4 -1 13 2 4 0 5 -1 3 -1 6 -5 4 1 4 -6 3 -3 6 -3 3 -3 1 -3 5 -6 7 -3 6 -8 3 -3 2 -3 1 -4 1 -9 1 -9 -2 -3 -4 -11 -2 -3 -8 -8 -6 -2 -8 -2 -2 -1 -7 -8 -5 -1 -11 -9 -9 -6 -3 -2 -17 -4 -5 0 -3 -2 -6 -4 -2 -2 -4 -2 -5 0 -16 11 -10 5 -3 2 -6 4 -2 2 -2 4 -1 4 0 5 -5 10 0 10 -1 4 -2 4 1 18 3 7 2 4 7 6 4 10 5 6 3 2 7 3 15 15 9 6 9 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M1128 6811l6 -4 3 -3 4 -1 8 -2 8 1 4 -2 2 -2 10 -6 17 -7 9 -1 9 1 10 -1 3 -1 2 -4 5 -5 6 -9 4 -1 2 -3 5 -10 2 -3 8 -7 6 -9 6 -14 3 -3 5 -5 15 -9 2 -3 0 -4 1 -9 5 -16 0 -4 2 -8 5 -10 2 -9 10 -20 1 -4 5 -10 1 -4 5 -6 1 -3 2 -3 2 -2 4 -7 1 -4 -4 -7 -1 -13 0 -4 2 -11 1 -4 5 -5 7 -7 7 -3 3 -2 10 -5 6 -4 5 -10 8 -12 5 -5 3 -2 3 -2 3 -3 8 -12 5 -4 6 -4 7 -3 3 -2 4 -1 12 -8 14 -7 3 -1 12 -3 6 -4 3 -2 1 -5 1 -4 2 -3 0 -14 -1 -4 -2 -2 -3 -12 -1 -3 -4 0 -11 -3 -2 4 -5 5 -4 1 -9 6 -3 1 -9 1 -8 3 -4 -1 -4 -1 -14 -4 -4 -1 -5 1 -4 -1 -7 -3 -3 1 -6 4 -5 0 -7 -3 -4 0 -3 2 -1 4 -2 3 -2 3 -8 2 -7 8 -9 1 -8 -2 -3 2 -5 6 -6 3 -4 2 -4 6 -3 13 -3 6 -5 5 -4 2 -3 2 -2 3 -5 4 -2 3 -2 4 -5 5 -2 3 -1 4 -7 2 -6 5 -2 7 -3 2 -5 1 -4 -1 -8 -2 -5 1 -7 2 -6 5 -4 6 -2 3 -3 2 -18 2 -3 1 -19 -1 -4 -1 -15 0 -4 1 -3 1 -5 1 -3 2 -10 9 -9 -1 -13 0 -10 5 -5 1 -9 -1 -20 0 -11 -4 -3 -2 -3 -2 -5 0 -9 1 -6 4 -3 2 -6 4 -4 1 -4 1 -7 3 -8 1 -3 2 -2 3 -1 2 4 6 2 3 4 6 3 2 7 3 2 3 1 3 6 10 2 3 9 16 3 7 2 3 4 16 -1 14 2 8 1 3 6 6 1 3 3 2 3 2 6 4 5 5 3 17 4 6 2 3 1 3 4 5 6 5 7 8 9 14 8 8 2 3 1 4 0 9 2 4 3 2 4 1 3 2 2 3 3 5 2 4 -2 13 1 4 2 3 5 5 3 2 4 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M1833 6995l4 -1 3 -2 6 -8 1 -4 3 -3 10 -4 6 -4 4 -1 4 -1 7 -3 4 0 3 -2 6 -3 9 -2 16 -3 4 -2 8 -7 5 -10 1 -4 3 -6 6 -5 3 -2 2 -3 2 -3 5 -5 9 -6 2 -3 1 -4 -2 -3 -5 -5 -5 -6 -1 -3 -1 -5 2 -7 3 -7 2 -3 2 -3 8 -1 1 -4 -5 -4 -1 -7 -1 -3 -3 -7 -1 -4 0 -5 2 -3 5 -11 1 -7 0 -4 -3 -2 -5 -5 -3 -2 -4 -2 -6 -4 -4 -6 -1 -3 -2 -8 -1 -5 1 -5 -1 -4 0 -4 2 -3 2 -8 0 -5 -1 -3 -8 -8 -1 -4 0 -5 2 -8 1 -4 10 -11 1 -4 -2 -3 -5 -5 -3 -2 -4 6 -10 0 -3 2 0 4 4 6 2 4 -1 5 -1 3 -2 3 -4 1 -5 0 -7 4 -4 0 -4 0 -7 -3 -9 -7 -4 -1 -4 1 -4 -1 -6 -4 -3 0 -6 5 -5 0 -3 -1 -4 -1 -13 2 -14 -1 -5 -1 -3 -2 -5 0 -10 -5 -6 -5 -3 -1 -9 1 -5 0 -8 -2 -14 -2 0 5 2 3 3 6 1 5 -1 4 -2 8 -1 5 1 4 -2 2 -4 7 2 8 0 5 -1 5 -1 3 -2 3 -4 1 -2 3 -1 4 -2 3 -2 3 -3 2 -3 2 -3 2 -9 1 -4 7 -4 5 -5 5 -3 2 -4 1 -10 1 -4 0 -2 3 -2 4 1 14 -3 13 0 4 1 4 0 4 1 5 0 3 -4 12 1 3 10 16 1 8 2 8 5 5 6 18 2 3 4 2 3 1 7 3 8 8 4 6 5 5 11 9 2 3 2 3 10 5 12 13 2 2 5 0 29 2 7 2 4 1 9 7 7 2","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str8","@d":"M277 7053l7 -2 2 -2 -1 -3 1 -4 2 -3 1 -4 0 -8 0 -4 2 -4 2 -2 2 -3 2 -3 2 -2 4 -6 6 -4 6 -2 1 -3 1 -15 1 -3 4 -6 1 -5 0 -4 1 -4 2 -3 3 -3 3 -2 11 -9 1 -3 1 -9 -1 -3 -1 -3 -3 -3 -1 -4 -5 -10 -5 -4 -14 -1 -4 1 -2 3 -4 6 -4 1 -5 0 -4 1 -5 5 -3 2 -9 0 -4 1 -3 2 -2 4 4 1 1 3 0 5 -9 5 -4 2 -8 7 -5 11 -2 2 -4 2 -9 2 -4 1 -5 -1 -6 -4 -5 0 -9 1 -5 -1 -3 -1 -9 -7 -4 -1 -7 3 -9 5 -5 6 -2 8 0 4 1 4 4 10 3 8 2 2 4 2 14 1 8 3 8 2 10 0 7 3 5 0 10 0 3 1 3 2 2 3 12 19 2 2 2 3 9 7 3 2 8 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil15 str11","@d":"M2977 6617l0 -283 -283 0 0 283 283 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@d":"M2901 6617l0 -206 -207 0 0 206 207 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil7 str16","@d":"M85 7121l0 -1443 3150 0 0 1443 -3150 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str16","@d":"M271 6790l0 -8 1 -37 0 -36 1 -37 0 -37 1 -36 1 -37 0 -36 1 -37 0 -36 1 -37 1 -36 0 -37 1 -37 0 -36 1 -37 1 -36 0 -37 1 -36 0 -37 1 -36 1 -37 0 -37 1 -36 0 -37 1 -36 1 -37 0 -36 1 -37 0 -37 1 -36 0 -7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str16","@d":"M85 6786l27 1 33 0 32 1 32 1 33 0 29 1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str16","@d":"M2852 6790l18 -1 32 0 33 -1 32 0 33 -1 32 -1 33 0 32 -1 32 0 33 -1 32 -1 33 0 8 -1","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str16","@d":"M2852 6790l0 -8 -1 -37 0 -36 -1 -37 0 -37 -1 -36 -1 -37 0 -36 -1 -37 0 -36 -1 -37 -1 -36 0 -37 -1 -37 0 -36 -1 -37 -1 -36 0 -37 -1 -36 0 -37 -1 -36 -1 -37 0 -37 -1 -36 0 -37 -1 -36 -1 -37 0 -36 -1 -37 0 -37 -1 -36 0 -7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str16","@d":"M1561 6800l11 0 33 0 32 0 32 0 33 0 32 0 33 0 32 0 33 0 32 0 33 0 32 -1 32 0 33 0 32 0 33 0 32 -1 33 0 32 0 33 0 32 -1 32 0 33 0 32 0 33 -1 32 0 33 0 32 -1 33 0 32 -1 32 0 33 0 32 -1 33 0 32 -1 33 0 32 -1 33 0 32 -1 32 0 15 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str16","@d":"M1561 6800l0 -8 0 -36 0 -37 0 -36 0 -37 0 -37 0 -36 0 -37 0 -36 0 -37 0 -36 0 -37 0 -36 0 -37 0 -37 0 -36 0 -37 0 -36 0 -37 0 -36 0 -37 0 -37 0 -36 0 -37 0 -36 0 -37 0 -36 0 -37 0 -37 0 -36 0 -37 0 -17","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str16","@d":"M271 6790l3 0 33 0 32 1 33 0 32 1 33 0 32 1 32 0 33 1 32 0 33 0 32 1 33 0 32 0 33 1 32 0 32 0 33 1 32 0 33 0 32 1 33 0 32 0 33 0 32 1 32 0 33 0 32 0 33 0 32 0 33 1 32 0 33 0 32 0 32 0 33 0 32 0 33 0 32 0 33 0 21 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str16","@d":"M1561 7121l0 -36 0 -37 0 -36 0 -37 0 -37 0 -36 0 -37 0 -36 0 -29","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str16","@d":"M2857 7121l0 -10 0 -37 -1 -37 0 -36 -1 -37 -1 -36 0 -37 -1 -36 0 -37 -1 -28","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str16","@d":"M265 7121l1 -10 0 -37 1 -37 0 -36 1 -37 1 -36 0 -37 1 -36 0 -37 1 -28","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil15 str11","@d":"M1248 6705l0 -273 -276 0 0 273 276 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil17 str11","@d":"M1145 6705l0 -173 -173 0 0 173 173 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"switch":{"text":[{"textPath":{"$":"Kanarische Inseln","@xlink:href":"#textPathCanary","@startOffset":"5%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@systemLanguage":"de","@class":"fil8 fnt9","@style":"letter-spacing:40px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"textPath":{"$":"Canary Islands","@xlink:href":"#textPathCanary","@startOffset":"5%","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@systemLanguage":"en","@class":"fil8 fnt9","@style":"letter-spacing:60px;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"text":[{"$":"Teneriffa","@x":"1221","@y":"6344","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Gran Canaria","@x":"1893","@y":"7067","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@id":"islands","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"switch":[{"g":[{"text":[{"$":"Spanien - Bev\u00f6lkerung","@x":"-5481","@y":"166","@class":"fil8 fnt10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"1970 - 1990","@x":"3500","@y":"157","@class":"fil8 fnt10","@style":"text-anchor:end;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Erstellt v. Andreas Neumann im Rahmen d. Kartenentwurfspraktikums, Sommersemester 1998,","@x":"-5483","@y":"7499","@class":"fil8 fnt8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"geleitet v. Prof. Ingrid Kretschmer, Institut f\u00fcr Geographie der Universit\u00e4t Wien.","@x":"-5483","@y":"7583","@class":"fil8 fnt8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Verwendete Software: Arc\/Info und Module, CorelDRAW und div. Perl-Scripts.","@x":"-5483","@y":"7666","@class":"fil8 fnt8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Bev\u00f6lkerungsdichte","@x":"3665","@y":"363","@class":"fil8 fnt11","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Bev\u00f6lkerungsver\u00e4nderung","@x":"3665","@y":"4063","@class":"fil8 fnt11","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Bev\u00f6lkerung absolut","@x":"3665","@y":"1815","@class":"fil8 fnt11","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Einwohner\/km\u00b2 auf Provinzebene","@x":"3665","@y":"510","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Prozentuelle Ver\u00e4nderung der","@x":"3665","@y":"4210","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Provinzen gegen\u00fcber Stand 1970","@x":"3665","@y":"4344","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Prozentuelle Ver\u00e4nderung der","@x":"3665","@y":"5750","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Hauptst\u00e4dte gegen\u00fcber Stand 1970","@x":"3665","@y":"5884","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Auf Provinzebene und in den","@x":"3665","@y":"1962","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Hauptst\u00e4dten (inneres Quadrat)","@x":"3665","@y":"2096","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Spain - Population","@x":"-5481","@y":"166","@class":"fil8 fnt10","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"1970 - 1990","@x":"3500","@y":"157","@class":"fil8 fnt10","@style":"text-anchor:end;","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Created by Andreas Neumann for the map design course, summer semester 1998,","@x":"-5483","@y":"7499","@class":"fil8 fnt8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"led by Prof. Ingrid Kretschmer, Geography Institute of Vienna University.","@x":"-5483","@y":"7583","@class":"fil8 fnt8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Used software: Arc\/Info and Modules, CorelDRAW and various Perl scripts.","@x":"-5483","@y":"7666","@class":"fil8 fnt8","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Population density","@x":"3665","@y":"363","@class":"fil8 fnt11","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Population change","@x":"3665","@y":"4063","@class":"fil8 fnt11","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Population absolute","@x":"3665","@y":"1815","@class":"fil8 fnt11","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Inhab. per km\u00b2 at province level","@x":"3665","@y":"510","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Percentual change of the","@x":"3665","@y":"4210","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"province vs situation 1970","@x":"3665","@y":"4344","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Percentual change of the","@x":"3665","@y":"5750","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"capitals vs situation 1970","@x":"3665","@y":"5884","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"At provincial level and in the","@x":"3665","@y":"1962","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"capitals (inner square)","@x":"3665","@y":"2096","@class":"fil8 fnt7","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Angaben in tausend","@x":"4151","@y":"3193","@class":"fil8 fnt41","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Indications in thousands","@x":"4151","@y":"3193","@class":"fil8 fnt41","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Massstab 1 : 6.000.000","@x":"-1325","@y":"7682","@class":"fil8 fnt41","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Scale 1 : 6.000.000","@x":"-1325","@y":"7682","@class":"fil8 fnt41","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Quelle: Spanisches Statistisches Zentralamt","@x":"3665","@y":"7280","@class":"fil8 fnt41","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Source: Spanish Central Office for Statistics","@x":"3665","@y":"7280","@class":"fil8 fnt41","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Minimum (Provinz): Soria - 97.268","@x":"3665","@y":"3331","@class":"fil8 fnt41","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Minimum (Province): Soria - 97.268","@x":"3665","@y":"3331","@class":"fil8 fnt41","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Maximum (Provinz): Madrid - 5.028.120","@x":"3665","@y":"3432","@class":"fil8 fnt41","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Maximum (Province): Madrid - 5.028.120","@x":"3665","@y":"3432","@class":"fil8 fnt41","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Minimum (Hauptstadt): Teruel - 28.488","@x":"3665","@y":"3532","@class":"fil8 fnt41","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Minimum (capital): Teruel - 28.488","@x":"3665","@y":"3532","@class":"fil8 fnt41","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Maximum (Hauptstadt): Madrid - 3.120.732","@x":"3665","@y":"3633","@class":"fil8 fnt41","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Maximum (capital): Madrid - 3.120.732","@x":"3665","@y":"3633","@class":"fil8 fnt41","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Stand 1990","@x":"4779","@y":"1362","@class":"fil8 fnt41","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Situation 1990","@x":"4779","@y":"1362","@class":"fil8 fnt41","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"text":[{"$":"Stand 1990","@x":"5063","@y":"3022","@class":"fil8 fnt41","@systemLanguage":"de","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Sit. 1990","@x":"5063","@y":"3022","@class":"fil8 fnt41","@systemLanguage":"en","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"g":[{"path":[{"@class":"fil0 str11","@d":"M3665 634l196 0 0 98 -196 0 0 -98z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M3665 634l196 0 0 98 -196 0 0 -98z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil1 str11","@d":"M3665 791l196 0 0 99 -196 0 0 -99z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M3665 791l196 0 0 99 -196 0 0 -99z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil2 str11","@d":"M3665 949l196 0 0 98 -196 0 0 -98z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M3665 949l196 0 0 98 -196 0 0 -98z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil3 str11","@d":"M3665 1106l196 0 0 99 -196 0 0 -99z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M3665 1106l196 0 0 99 -196 0 0 -99z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"path":[{"@class":"fil4 str11","@d":"M3665 1264l196 0 0 98 -196 0 0 -98z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M3665 1264l196 0 0 98 -196 0 0 -98z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"rect":{"@class":"fil7 str11","@x":"-2090","@y":"7529","@width":"2295","@height":"39","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"path":[{"@class":"fil7 str11","@d":"M-2090 7568l0 -48","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-2024 7568l0 -40","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-1959 7568l0 -40","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-1893 7568l0 -40","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-1827 7568l0 -40","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-1762 7568l0 -48","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-1434 7568l0 -40","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-1106 7568l0 -48","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-778 7568l0 -40","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-450 7568l0 -48","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-121 7568l0 -40","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M206 7567l0 -47","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-1434 7547l328 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-1828 7547l66 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-1959 7547l65 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-2090 7547l65 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-778 7547l328 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str11","@d":"M-122 7547l328 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"text":[{"$":"0","@x":"-1783","@y":"7500","@class":"fil8 fnt42","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"100","@x":"-1167","@y":"7500","@class":"fil8 fnt42","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"200","@x":"-511","@y":"7500","@class":"fil8 fnt42","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"300 km","@x":"146","@y":"7500","@class":"fil8 fnt42","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"50","@x":"-2131","@y":"7500","@class":"fil8 fnt42","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"rect":[{"@class":"fil16 str11","@x":"3665","@y":"4473","@width":"197","@height":"98","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil10 str11","@x":"3665","@y":"6014","@width":"197","@height":"98","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil13 str11","@x":"3665","@y":"4631","@width":"197","@height":"98","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil12 str11","@x":"3665","@y":"6172","@width":"197","@height":"98","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil10 str11","@x":"3665","@y":"4788","@width":"197","@height":"98","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil14 str11","@x":"3665","@y":"6329","@width":"197","@height":"98","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil11 str11","@x":"3665","@y":"4946","@width":"197","@height":"98","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil17 str11","@x":"3665","@y":"6487","@width":"197","@height":"98","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil15 str11","@x":"3665","@y":"5103","@width":"197","@height":"98","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil15 str11","@x":"3665","@y":"6644","@width":"197","@height":"98","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"text":[{"$":"<","@x":"4250","@y":"723","@class":"fil8 fnt12","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":" 25","@x":"4304","@y":"723","@class":"fil8 fnt13","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"<","@x":"4338","@y":"4563","@class":"fil8 fnt14","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":" 85 %","@x":"4392","@y":"4563","@class":"fil8 fnt15","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"<","@x":"4338","@y":"6104","@class":"fil8 fnt16","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":" 115 %","@x":"4392","@y":"6104","@class":"fil8 fnt17","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"25 ","@x":"4111","@y":"881","@class":"fil8 fnt17","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":" 45","@x":"4304","@y":"881","@class":"fil8 fnt17","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"<","@x":"4250","@y":"881","@class":"fil8 fnt18","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"85 % ","@x":"4086","@y":"4720","@class":"fil8 fnt19","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":" 100 %","@x":"4392","@y":"4720","@class":"fil8 fnt19","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"<","@x":"4338","@y":"4720","@class":"fil8 fnt20","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"115 % ","@x":"4030","@y":"6261","@class":"fil8 fnt21","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":" 130 %","@x":"4392","@y":"6261","@class":"fil8 fnt21","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"<","@x":"4338","@y":"6261","@class":"fil8 fnt22","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"45 ","@x":"4111","@y":"1038","@class":"fil8 fnt23","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":" 75","@x":"4304","@y":"1038","@class":"fil8 fnt23","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"<","@x":"4250","@y":"1038","@class":"fil8 fnt24","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"100 % ","@x":"4030","@y":"4878","@class":"fil8 fnt25","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":" 115 %","@x":"4392","@y":"4878","@class":"fil8 fnt25","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"<","@x":"4338","@y":"4878","@class":"fil8 fnt26","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"130 % ","@x":"4030","@y":"6417","@class":"fil8 fnt27","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":" 145 %","@x":"4391","@y":"6417","@class":"fil8 fnt27","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"<","@x":"4337","@y":"6417","@class":"fil8 fnt28","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"75 ","@x":"4111","@y":"1196","@class":"fil8 fnt29","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":" 150","@x":"4304","@y":"1196","@class":"fil8 fnt29","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"<","@x":"4251","@y":"1196","@class":"fil8 fnt30","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"115 % ","@x":"4030","@y":"5035","@class":"fil8 fnt31","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":" 130 %","@x":"4392","@y":"5035","@class":"fil8 fnt31","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"<","@x":"4338","@y":"5035","@class":"fil8 fnt32","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"145 % ","@x":"4030","@y":"6576","@class":"fil8 fnt33","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":" 160 %","@x":"4392","@y":"6576","@class":"fil8 fnt33","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"<","@x":"4338","@y":"6576","@class":"fil8 fnt34","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"150 ","@x":"4054","@y":"1353","@class":"fil8 fnt35","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"<","@x":"4249","@y":"1353","@class":"fil8 fnt36","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"130 % ","@x":"4035","@y":"5193","@class":"fil8 fnt37","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"<","@x":"4343","@y":"5193","@class":"fil8 fnt38","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"160 % ","@x":"4035","@y":"6734","@class":"fil8 fnt39","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"<","@x":"4343","@y":"6734","@class":"fil8 fnt40","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"5.000","@x":"4712","@y":"2359","@class":"fil8 fnt41","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"1.000","@x":"4709","@y":"2484","@class":"fil8 fnt41","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"500","@x":"4769","@y":"2608","@class":"fil8 fnt41","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"200","@x":"4770","@y":"2733","@class":"fil8 fnt41","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"100","@x":"4770","@y":"2857","@class":"fil8 fnt41","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"50","@x":"4809","@y":"2982","@class":"fil8 fnt41","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Min.: Soria - 9,46, Max.: Madrid - 628,91","@x":"3665","@y":"1543","@class":"fil8 fnt41","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Minimum: Soria - 84,61 %,","@x":"3665","@y":"5400","@class":"fil8 fnt41","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Maximum: Las Palmas - 141,24 %","@x":"3665","@y":"5500","@class":"fil8 fnt41","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Minimum: Vizcaya - 93,50 %,","@x":"3665","@y":"6939","@class":"fil8 fnt41","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"$":"Maximum: Guadalajara - 199,18 %","@x":"3665","@y":"7040","@class":"fil8 fnt41","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"path":[{"@class":"fil7 str17","@d":"M4451 3032l0 -783 -786 0 0 783 786 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str17","@d":"M4022 3032l0 -357 -357 0 0 357 357 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str17","@d":"M3928 3032l0 -263 -263 0 0 263 263 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str17","@d":"M3851 3032l0 -184 -186 0 0 184 186 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str17","@d":"M3812 3032l0 -143 -147 0 0 143 147 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str17","@d":"M3778 3032l0 -114 -113 0 0 114 113 0z","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str18","@d":"M4680 2334l-232 0","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str18","@d":"M4680 2460l-331 0 -327 277","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str18","@d":"M4738 2576l-389 0 -424 263","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str18","@d":"M4738 2706l-389 0 -498 209","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str18","@d":"M4738 2832l-389 0 -536 137","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},{"@class":"fil7 str18","@d":"M4779 2952l-430 0 -570 51","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@id":"text_legend","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}],"@xml:space":"preserve","@x":"25","@y":"25","@width":"550","@height":"382.36","@style":"shape-rendering:geometricPrecision; text-rendering:auto; image-rendering:optimizeSpeed","@viewBox":"-5483 0 11053 7684","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}},"@viewBox":"0 0 600 420","@width":"600","@height":"420","@xmlns":{"xlink":"http:\/\/www.w3.org\/1999\/xlink","$":"http:\/\/www.w3.org\/2000\/svg"}}}
diff --git a/1.9.10/samples/ns-invoice100.xml.jsn b/1.9.10/samples/ns-invoice100.xml.jsn new file mode 100644 index 0000000..0743265 --- /dev/null +++ b/1.9.10/samples/ns-invoice100.xml.jsn
@@ -0,0 +1 @@ +{"ns1:invoice":{"Header":{"IssueDateTime":{"$":"2003-03-13T13:13:32-08:00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Identifier":{"$":"15570720","@schemeAgencyName":"ISO","@schemeName":"Invoice","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"POIdentifier":{"$":"691","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"BuyerParty":{"PartyID":{"$":"1","@schemeName":"SpiderMarkExpress","@schemeAgencyName":"SUNW","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Name":{"$":"IDES Retail INC US","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Address":{"Street":{"$":"Hill St.","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"HouseID":{"$":"5555","@schemeName":"HouseID","@schemeAgencyName":"house","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"RoomID":{"$":"Suite 3","@schemeName":"RoomID","@schemeAgencyName":"room","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"CityName":{"$":"Boston","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PostalZoneID":{"$":"01234","@schemeName":"Zipcode","@schemeAgencyName":"USPS","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"StateName":{"$":"MA","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"CountryIdentificationCode":{"$":"US","@listAgencyId":"ISO","@listId":"3166","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Contact":{"Name":{"$":"Joe Buyer","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Communication":[{"Value":{"$":"313-555-1212","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ChannelID":{"$":"phone","@schemeName":"SpiderMarkExpress","@schemeAgencyName":"SUNW","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"Value":{"$":"313-555-1213","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ChannelID":{"$":"fax","@schemeName":"SpiderMarkExpress","@schemeAgencyName":"SUNW","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}}],"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"SellerParty":{"PartyID":{"$":"10","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Name":{"$":"1YvMdIkxZRXszgQfmoKqkit","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Address":{"Street":{"$":"ZNk","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"HouseID":{"$":"1234","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"RoomID":{"$":"Ste 301","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"CityName":{"$":"tzFMMtlE1lxdag","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PostalZoneID":{"$":"992292786","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"StateName":{"$":"FL","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"CountryIdentificationCode":{"$":"SY","@listAgencyId":"ISO","@listId":"3166","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Contact":{"Name":{"$":"jjzxxgwwqgwqjf","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Communication":[{"Value":{"$":"jjzxxgwwqgwqjf@1YvMdIkxZRXszgQfmoKqkit.com","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ChannelID":{"$":"email","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"Value":{"$":"9433593740064593","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ChannelID":{"$":"phone","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"Value":{"$":"38667976759785","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ChannelID":{"$":"fax","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}}],"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Shipment":{"ShipDate":{"$":"2003-03-13T13:13:32-08:00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TransportModeID":{"$":"sea","@schemeAgencyName":"ISO","@schemeName":"TransportMode","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"CarrierID":{"$":"UPS","@schemeAgencyName":"ISO","@schemeName":"Carrier","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PaymentMeans":{"PaymentDate":{"$":"2003-04-13","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PayeeFinancialAccount":{"Identifier":{"$":"312098283","@schemeAgencyName":"ISO","@schemeName":"Account","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"FinancialInstitution":{"Identifier":{"$":"33747420","@schemeAgencyName":"UN","@schemeName":"Financial Institution","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Name":{"$":"Caaco","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Address":{"Street":{"$":"H9LHLljO Street","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"HouseID":{"$":"15","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"CityName":{"$":"Yigmnvii","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PostalZoneID":{"$":"48839","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"StateName":{"$":"CT","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"CountryIdentificationCode":{"$":"US","@listAgencyId":"ISO","@listId":"3166","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TypeID":{"$":"vozbix","@schemeAgencyName":"ISO","@schemeName":"Account Type","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"AccountName":{"$":"Adrvgrri","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"LineItem":[{"LineID":{"$":"0","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"1","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"2","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"3","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"4","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"5","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"6","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"7","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"8","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"9","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"10","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"11","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"12","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"13","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"14","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"15","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"16","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"17","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"18","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"19","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"21","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"22","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"23","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"24","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"25","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"26","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"27","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"28","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"29","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"30","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"31","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"32","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"33","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"34","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"35","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"36","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"37","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"38","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"39","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"40","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"41","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"42","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"43","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"44","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"45","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"46","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"47","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"48","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"49","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"50","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"51","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"52","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"53","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"54","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"55","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"56","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"57","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"58","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"59","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"60","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"61","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"62","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"63","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"64","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"65","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"66","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"67","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"68","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"69","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"70","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"71","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"72","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"73","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"74","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"75","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"76","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"77","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"78","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"79","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"80","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"81","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"82","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"83","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"84","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"85","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"86","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"87","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"88","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"89","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"90","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"91","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"92","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"93","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"94","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"95","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"96","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"97","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"98","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},{"LineID":{"$":"99","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Item":{"StandardItemIdentifier":{"$":"20","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Description":{"$":"vZCwLwz1AGtbQT7t0diKccyB0rm0DXS5JFUWZyFcDFW7t","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Quantity":{"$":"10","@unitCode":"number","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"OrderStatus":{"$":"FULFILLED","@listId":"OrderStatus","@listAgencyId":"Sun","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Pricing":{"GrossUnitPriceAmount":{"$":"437.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"NetUnitPriceAmount":{"$":"367.08","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"discount","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"allowance","@schemeName":"Generic","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"Rate":{"$":"16.00","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"TotalAmount":{"$":"3670.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}}],"Summary":{"LineItemCountValue":{"$":"2","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"SubtotalAmount":{"$":"18215.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PricingVariation":{"ServiceID":{"$":"shipping and handling","@schemeName":"Variations","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"ConditionID":{"$":"charge","@schemeName":"Conditions","@schemeAgencyName":"ISO","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"LumpSumAmount":{"$":"7.00","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PriceAmount":{"$":"18222.80","@currencyId":"USD","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"PackingSlipIdentifier":{"$":"156263","@schemeAgencyName":"ISO","@schemeName":"Packing Slip","@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}},"@xmlns":{"ns1":"http:\/\/www.sun.com\/schema\/spidermarkexpress\/sm-inv"}}}
diff --git a/1.9.10/samples/ns-soap.xml.jsn b/1.9.10/samples/ns-soap.xml.jsn new file mode 100644 index 0000000..63973a2 --- /dev/null +++ b/1.9.10/samples/ns-soap.xml.jsn
@@ -0,0 +1 @@ +{"soapenv:Envelope":{"soapenv:Body":{"ns1:reverseResponse":{"reverseReturn":{"@href":"#id0","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns1":"urn:axis.sosnoski.com"}},"@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns1":"urn:axis.sosnoski.com"}},"multiRef":[{"routes":{"item":[{"@href":"#id1","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id2","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id3","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id4","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id5","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id6","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id7","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id8","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id9","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id10","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id11","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id12","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id13","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id14","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id15","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id16","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id17","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id18","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id19","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id20","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id21","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id22","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id23","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id24","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id25","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id26","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id27","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id28","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id29","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id30","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id31","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id32","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id33","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id34","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id35","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id36","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id37","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id38","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id39","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id40","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id41","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id42","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id43","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id44","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id45","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id46","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id47","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id48","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id49","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id50","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id51","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id52","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id53","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id54","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id55","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},{"@href":"#id56","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns2:RouteBean[56]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns3":"urn:axis.sosnoski.com"}},"airports":{"item":[{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns4":"urn:axis.sosnoski.com"}},{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns4":"urn:axis.sosnoski.com"}},{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns4":"urn:axis.sosnoski.com"}},{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns4":"urn:axis.sosnoski.com"}},{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns4":"urn:axis.sosnoski.com"}},{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns4":"urn:axis.sosnoski.com"}},{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns4":"urn:axis.sosnoski.com"}},{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns4":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns2:AirportBean[8]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns4":"urn:axis.sosnoski.com"}},"carriers":{"item":[{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns5":"urn:axis.sosnoski.com"}},{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns5":"urn:axis.sosnoski.com"}},{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns5":"urn:axis.sosnoski.com"}},{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns5":"urn:axis.sosnoski.com"}},{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns5":"urn:axis.sosnoski.com"}},{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns5":"urn:axis.sosnoski.com"}},{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns5":"urn:axis.sosnoski.com"}},{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns5":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns2:CarrierBean[8]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns5":"urn:axis.sosnoski.com"}},"@id":"id0","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns2:TimeTableBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","ns2":"http:\/\/flightsraw","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/"}},{"flights":{"item":[{"@href":"#id73","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns6":"http:\/\/flightsraw","ns7":"urn:axis.sosnoski.com"}},{"@href":"#id74","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns6":"http:\/\/flightsraw","ns7":"urn:axis.sosnoski.com"}},{"@href":"#id75","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns6":"http:\/\/flightsraw","ns7":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns6:FlightBean[3]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns6":"http:\/\/flightsraw","ns7":"urn:axis.sosnoski.com"}},"from":{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns6":"http:\/\/flightsraw"}},"to":{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns6":"http:\/\/flightsraw"}},"@id":"id49","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns6:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns6":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id76","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns8":"http:\/\/flightsraw","ns9":"urn:axis.sosnoski.com"}},{"@href":"#id77","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns8":"http:\/\/flightsraw","ns9":"urn:axis.sosnoski.com"}},{"@href":"#id78","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns8":"http:\/\/flightsraw","ns9":"urn:axis.sosnoski.com"}},{"@href":"#id79","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns8":"http:\/\/flightsraw","ns9":"urn:axis.sosnoski.com"}},{"@href":"#id80","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns8":"http:\/\/flightsraw","ns9":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns8:FlightBean[5]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns8":"http:\/\/flightsraw","ns9":"urn:axis.sosnoski.com"}},"from":{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns8":"http:\/\/flightsraw"}},"to":{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns8":"http:\/\/flightsraw"}},"@id":"id28","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns8:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns8":"http:\/\/flightsraw"}},{"location":{"$":"Chicago, IL","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns10":"http:\/\/flightsraw"}},"name":{"$":"O'Hare International Airport","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns10":"http:\/\/flightsraw"}},"ident":{"$":"ORD","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns10":"http:\/\/flightsraw"}},"@id":"id61","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns10:AirportBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns10":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id81","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns11":"http:\/\/flightsraw","ns12":"urn:axis.sosnoski.com"}},{"@href":"#id82","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns11":"http:\/\/flightsraw","ns12":"urn:axis.sosnoski.com"}},{"@href":"#id83","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns11":"http:\/\/flightsraw","ns12":"urn:axis.sosnoski.com"}},{"@href":"#id84","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns11":"http:\/\/flightsraw","ns12":"urn:axis.sosnoski.com"}},{"@href":"#id85","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns11":"http:\/\/flightsraw","ns12":"urn:axis.sosnoski.com"}},{"@href":"#id86","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns11":"http:\/\/flightsraw","ns12":"urn:axis.sosnoski.com"}},{"@href":"#id87","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns11":"http:\/\/flightsraw","ns12":"urn:axis.sosnoski.com"}},{"@href":"#id88","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns11":"http:\/\/flightsraw","ns12":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns11:FlightBean[8]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns11":"http:\/\/flightsraw","ns12":"urn:axis.sosnoski.com"}},"from":{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns11":"http:\/\/flightsraw"}},"to":{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns11":"http:\/\/flightsraw"}},"@id":"id37","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns11:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns11":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id89","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns13":"http:\/\/flightsraw","ns14":"urn:axis.sosnoski.com"}},{"@href":"#id90","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns13":"http:\/\/flightsraw","ns14":"urn:axis.sosnoski.com"}},{"@href":"#id91","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns13":"http:\/\/flightsraw","ns14":"urn:axis.sosnoski.com"}},{"@href":"#id92","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns13":"http:\/\/flightsraw","ns14":"urn:axis.sosnoski.com"}},{"@href":"#id93","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns13":"http:\/\/flightsraw","ns14":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns13:FlightBean[5]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns13":"http:\/\/flightsraw","ns14":"urn:axis.sosnoski.com"}},"from":{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns13":"http:\/\/flightsraw"}},"to":{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns13":"http:\/\/flightsraw"}},"@id":"id42","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns13:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns13":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id94","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns15":"http:\/\/flightsraw","ns16":"urn:axis.sosnoski.com"}},{"@href":"#id95","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns15":"http:\/\/flightsraw","ns16":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns15:FlightBean[2]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns15":"http:\/\/flightsraw","ns16":"urn:axis.sosnoski.com"}},"from":{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns15":"http:\/\/flightsraw"}},"to":{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns15":"http:\/\/flightsraw"}},"@id":"id30","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns15:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns15":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id96","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns17":"http:\/\/flightsraw","ns18":"urn:axis.sosnoski.com"}},{"@href":"#id97","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns17":"http:\/\/flightsraw","ns18":"urn:axis.sosnoski.com"}},{"@href":"#id98","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns17":"http:\/\/flightsraw","ns18":"urn:axis.sosnoski.com"}},{"@href":"#id99","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns17":"http:\/\/flightsraw","ns18":"urn:axis.sosnoski.com"}},{"@href":"#id100","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns17":"http:\/\/flightsraw","ns18":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns17:FlightBean[5]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns17":"http:\/\/flightsraw","ns18":"urn:axis.sosnoski.com"}},"from":{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns17":"http:\/\/flightsraw"}},"to":{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns17":"http:\/\/flightsraw"}},"@id":"id19","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns17:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns17":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id101","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns19":"http:\/\/flightsraw","ns20":"urn:axis.sosnoski.com"}},{"@href":"#id102","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns19":"http:\/\/flightsraw","ns20":"urn:axis.sosnoski.com"}},{"@href":"#id103","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns19":"http:\/\/flightsraw","ns20":"urn:axis.sosnoski.com"}},{"@href":"#id104","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns19":"http:\/\/flightsraw","ns20":"urn:axis.sosnoski.com"}},{"@href":"#id105","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns19":"http:\/\/flightsraw","ns20":"urn:axis.sosnoski.com"}},{"@href":"#id106","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns19":"http:\/\/flightsraw","ns20":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns19:FlightBean[6]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns19":"http:\/\/flightsraw","ns20":"urn:axis.sosnoski.com"}},"from":{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns19":"http:\/\/flightsraw"}},"to":{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns19":"http:\/\/flightsraw"}},"@id":"id54","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns19:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns19":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id107","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns21":"http:\/\/flightsraw","ns22":"urn:axis.sosnoski.com"}},{"@href":"#id108","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns21":"http:\/\/flightsraw","ns22":"urn:axis.sosnoski.com"}},{"@href":"#id109","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns21":"http:\/\/flightsraw","ns22":"urn:axis.sosnoski.com"}},{"@href":"#id110","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns21":"http:\/\/flightsraw","ns22":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns21:FlightBean[4]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns21":"http:\/\/flightsraw","ns22":"urn:axis.sosnoski.com"}},"from":{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns21":"http:\/\/flightsraw"}},"to":{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns21":"http:\/\/flightsraw"}},"@id":"id16","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns21:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns21":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id111","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns23":"http:\/\/flightsraw","ns24":"urn:axis.sosnoski.com"}},{"@href":"#id112","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns23":"http:\/\/flightsraw","ns24":"urn:axis.sosnoski.com"}},{"@href":"#id113","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns23":"http:\/\/flightsraw","ns24":"urn:axis.sosnoski.com"}},{"@href":"#id114","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns23":"http:\/\/flightsraw","ns24":"urn:axis.sosnoski.com"}},{"@href":"#id115","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns23":"http:\/\/flightsraw","ns24":"urn:axis.sosnoski.com"}},{"@href":"#id116","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns23":"http:\/\/flightsraw","ns24":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns23:FlightBean[6]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns23":"http:\/\/flightsraw","ns24":"urn:axis.sosnoski.com"}},"from":{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns23":"http:\/\/flightsraw"}},"to":{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns23":"http:\/\/flightsraw"}},"@id":"id26","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns23:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns23":"http:\/\/flightsraw"}},{"URL":{"$":"http:\/\/www.northleft.com","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns25":"http:\/\/flightsraw"}},"name":{"$":"Northleft Airlines","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns25":"http:\/\/flightsraw"}},"rating":{"$":"4","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns25":"http:\/\/flightsraw"}},"ident":{"$":"NL","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns25":"http:\/\/flightsraw"}},"@id":"id70","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns25:CarrierBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns25":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id117","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns26":"http:\/\/flightsraw","ns27":"urn:axis.sosnoski.com"}},{"@href":"#id118","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns26":"http:\/\/flightsraw","ns27":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns26:FlightBean[2]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns26":"http:\/\/flightsraw","ns27":"urn:axis.sosnoski.com"}},"from":{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns26":"http:\/\/flightsraw"}},"to":{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns26":"http:\/\/flightsraw"}},"@id":"id29","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns26:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns26":"http:\/\/flightsraw"}},{"flights":{"item":{"@href":"#id119","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns28":"http:\/\/flightsraw","ns29":"urn:axis.sosnoski.com"}},"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns28:FlightBean[1]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns28":"http:\/\/flightsraw","ns29":"urn:axis.sosnoski.com"}},"from":{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns28":"http:\/\/flightsraw"}},"to":{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns28":"http:\/\/flightsraw"}},"@id":"id11","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns28:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns28":"http:\/\/flightsraw"}},{"flights":{"item":{"@href":"#id120","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns30":"http:\/\/flightsraw","ns31":"urn:axis.sosnoski.com"}},"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns30:FlightBean[1]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns30":"http:\/\/flightsraw","ns31":"urn:axis.sosnoski.com"}},"from":{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns30":"http:\/\/flightsraw"}},"to":{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns30":"http:\/\/flightsraw"}},"@id":"id14","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns30:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns30":"http:\/\/flightsraw"}},{"location":{"$":"San Francisco, CA","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns32":"http:\/\/flightsraw"}},"name":{"$":"San Francisco International Airport","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns32":"http:\/\/flightsraw"}},"ident":{"$":"SFO","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns32":"http:\/\/flightsraw"}},"@id":"id63","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns32:AirportBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns32":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id121","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns33":"http:\/\/flightsraw","ns34":"urn:axis.sosnoski.com"}},{"@href":"#id122","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns33":"http:\/\/flightsraw","ns34":"urn:axis.sosnoski.com"}},{"@href":"#id123","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns33":"http:\/\/flightsraw","ns34":"urn:axis.sosnoski.com"}},{"@href":"#id124","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns33":"http:\/\/flightsraw","ns34":"urn:axis.sosnoski.com"}},{"@href":"#id125","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns33":"http:\/\/flightsraw","ns34":"urn:axis.sosnoski.com"}},{"@href":"#id126","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns33":"http:\/\/flightsraw","ns34":"urn:axis.sosnoski.com"}},{"@href":"#id127","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns33":"http:\/\/flightsraw","ns34":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns33:FlightBean[7]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns33":"http:\/\/flightsraw","ns34":"urn:axis.sosnoski.com"}},"from":{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns33":"http:\/\/flightsraw"}},"to":{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns33":"http:\/\/flightsraw"}},"@id":"id40","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns33:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns33":"http:\/\/flightsraw"}},{"flights":{"item":{"@href":"#id128","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns35":"http:\/\/flightsraw","ns36":"urn:axis.sosnoski.com"}},"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns35:FlightBean[1]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns35":"http:\/\/flightsraw","ns36":"urn:axis.sosnoski.com"}},"from":{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns35":"http:\/\/flightsraw"}},"to":{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns35":"http:\/\/flightsraw"}},"@id":"id13","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns35:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns35":"http:\/\/flightsraw"}},{"URL":{"$":"http:\/\/www.arcticairlines.com","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns37":"http:\/\/flightsraw"}},"name":{"$":"Arctic Airlines","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns37":"http:\/\/flightsraw"}},"rating":{"$":"9","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns37":"http:\/\/flightsraw"}},"ident":{"$":"AR","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns37":"http:\/\/flightsraw"}},"@id":"id65","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns37:CarrierBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns37":"http:\/\/flightsraw"}},{"URL":{"$":"http:\/\/www.classyskylines.com","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns38":"http:\/\/flightsraw"}},"name":{"$":"Classy Skylines","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns38":"http:\/\/flightsraw"}},"rating":{"$":"9","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns38":"http:\/\/flightsraw"}},"ident":{"$":"CL","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns38":"http:\/\/flightsraw"}},"@id":"id69","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns38:CarrierBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns38":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id129","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns39":"http:\/\/flightsraw","ns40":"urn:axis.sosnoski.com"}},{"@href":"#id130","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns39":"http:\/\/flightsraw","ns40":"urn:axis.sosnoski.com"}},{"@href":"#id131","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns39":"http:\/\/flightsraw","ns40":"urn:axis.sosnoski.com"}},{"@href":"#id132","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns39":"http:\/\/flightsraw","ns40":"urn:axis.sosnoski.com"}},{"@href":"#id133","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns39":"http:\/\/flightsraw","ns40":"urn:axis.sosnoski.com"}},{"@href":"#id134","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns39":"http:\/\/flightsraw","ns40":"urn:axis.sosnoski.com"}},{"@href":"#id135","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns39":"http:\/\/flightsraw","ns40":"urn:axis.sosnoski.com"}},{"@href":"#id136","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns39":"http:\/\/flightsraw","ns40":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns39:FlightBean[8]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns39":"http:\/\/flightsraw","ns40":"urn:axis.sosnoski.com"}},"from":{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns39":"http:\/\/flightsraw"}},"to":{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns39":"http:\/\/flightsraw"}},"@id":"id55","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns39:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns39":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id137","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns41":"http:\/\/flightsraw","ns42":"urn:axis.sosnoski.com"}},{"@href":"#id138","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns41":"http:\/\/flightsraw","ns42":"urn:axis.sosnoski.com"}},{"@href":"#id139","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns41":"http:\/\/flightsraw","ns42":"urn:axis.sosnoski.com"}},{"@href":"#id140","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns41":"http:\/\/flightsraw","ns42":"urn:axis.sosnoski.com"}},{"@href":"#id141","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns41":"http:\/\/flightsraw","ns42":"urn:axis.sosnoski.com"}},{"@href":"#id142","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns41":"http:\/\/flightsraw","ns42":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns41:FlightBean[6]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns41":"http:\/\/flightsraw","ns42":"urn:axis.sosnoski.com"}},"from":{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns41":"http:\/\/flightsraw"}},"to":{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns41":"http:\/\/flightsraw"}},"@id":"id24","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns41:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns41":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id143","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns43":"http:\/\/flightsraw","ns44":"urn:axis.sosnoski.com"}},{"@href":"#id144","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns43":"http:\/\/flightsraw","ns44":"urn:axis.sosnoski.com"}},{"@href":"#id145","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns43":"http:\/\/flightsraw","ns44":"urn:axis.sosnoski.com"}},{"@href":"#id146","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns43":"http:\/\/flightsraw","ns44":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns43:FlightBean[4]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns43":"http:\/\/flightsraw","ns44":"urn:axis.sosnoski.com"}},"from":{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns43":"http:\/\/flightsraw"}},"to":{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns43":"http:\/\/flightsraw"}},"@id":"id36","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns43:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns43":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id147","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns45":"http:\/\/flightsraw","ns46":"urn:axis.sosnoski.com"}},{"@href":"#id148","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns45":"http:\/\/flightsraw","ns46":"urn:axis.sosnoski.com"}},{"@href":"#id149","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns45":"http:\/\/flightsraw","ns46":"urn:axis.sosnoski.com"}},{"@href":"#id150","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns45":"http:\/\/flightsraw","ns46":"urn:axis.sosnoski.com"}},{"@href":"#id151","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns45":"http:\/\/flightsraw","ns46":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns45:FlightBean[5]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns45":"http:\/\/flightsraw","ns46":"urn:axis.sosnoski.com"}},"from":{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns45":"http:\/\/flightsraw"}},"to":{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns45":"http:\/\/flightsraw"}},"@id":"id41","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns45:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns45":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id152","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns47":"http:\/\/flightsraw","ns48":"urn:axis.sosnoski.com"}},{"@href":"#id153","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns47":"http:\/\/flightsraw","ns48":"urn:axis.sosnoski.com"}},{"@href":"#id154","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns47":"http:\/\/flightsraw","ns48":"urn:axis.sosnoski.com"}},{"@href":"#id155","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns47":"http:\/\/flightsraw","ns48":"urn:axis.sosnoski.com"}},{"@href":"#id156","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns47":"http:\/\/flightsraw","ns48":"urn:axis.sosnoski.com"}},{"@href":"#id157","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns47":"http:\/\/flightsraw","ns48":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns47:FlightBean[6]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns47":"http:\/\/flightsraw","ns48":"urn:axis.sosnoski.com"}},"from":{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns47":"http:\/\/flightsraw"}},"to":{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns47":"http:\/\/flightsraw"}},"@id":"id34","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns47:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns47":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id158","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns49":"http:\/\/flightsraw","ns50":"urn:axis.sosnoski.com"}},{"@href":"#id159","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns49":"http:\/\/flightsraw","ns50":"urn:axis.sosnoski.com"}},{"@href":"#id160","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns49":"http:\/\/flightsraw","ns50":"urn:axis.sosnoski.com"}},{"@href":"#id161","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns49":"http:\/\/flightsraw","ns50":"urn:axis.sosnoski.com"}},{"@href":"#id162","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns49":"http:\/\/flightsraw","ns50":"urn:axis.sosnoski.com"}},{"@href":"#id163","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns49":"http:\/\/flightsraw","ns50":"urn:axis.sosnoski.com"}},{"@href":"#id164","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns49":"http:\/\/flightsraw","ns50":"urn:axis.sosnoski.com"}},{"@href":"#id165","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns49":"http:\/\/flightsraw","ns50":"urn:axis.sosnoski.com"}},{"@href":"#id166","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns49":"http:\/\/flightsraw","ns50":"urn:axis.sosnoski.com"}},{"@href":"#id167","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns49":"http:\/\/flightsraw","ns50":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns49:FlightBean[10]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns49":"http:\/\/flightsraw","ns50":"urn:axis.sosnoski.com"}},"from":{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns49":"http:\/\/flightsraw"}},"to":{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns49":"http:\/\/flightsraw"}},"@id":"id22","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns49:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns49":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id168","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns51":"http:\/\/flightsraw","ns52":"urn:axis.sosnoski.com"}},{"@href":"#id169","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns51":"http:\/\/flightsraw","ns52":"urn:axis.sosnoski.com"}},{"@href":"#id170","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns51":"http:\/\/flightsraw","ns52":"urn:axis.sosnoski.com"}},{"@href":"#id171","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns51":"http:\/\/flightsraw","ns52":"urn:axis.sosnoski.com"}},{"@href":"#id172","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns51":"http:\/\/flightsraw","ns52":"urn:axis.sosnoski.com"}},{"@href":"#id173","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns51":"http:\/\/flightsraw","ns52":"urn:axis.sosnoski.com"}},{"@href":"#id174","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns51":"http:\/\/flightsraw","ns52":"urn:axis.sosnoski.com"}},{"@href":"#id175","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns51":"http:\/\/flightsraw","ns52":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns51:FlightBean[8]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns51":"http:\/\/flightsraw","ns52":"urn:axis.sosnoski.com"}},"from":{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns51":"http:\/\/flightsraw"}},"to":{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns51":"http:\/\/flightsraw"}},"@id":"id56","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns51:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns51":"http:\/\/flightsraw"}},{"URL":{"$":"http:\/\/www.bumblingint.com","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns53":"http:\/\/flightsraw"}},"name":{"$":"Bumbling International","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns53":"http:\/\/flightsraw"}},"rating":{"$":"2","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns53":"http:\/\/flightsraw"}},"ident":{"$":"BI","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns53":"http:\/\/flightsraw"}},"@id":"id67","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns53:CarrierBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns53":"http:\/\/flightsraw"}},{"URL":{"$":"http:\/\/www.combinedlines.com","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns54":"http:\/\/flightsraw"}},"name":{"$":"Combined Airlines","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns54":"http:\/\/flightsraw"}},"rating":{"$":"7","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns54":"http:\/\/flightsraw"}},"ident":{"$":"CA","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns54":"http:\/\/flightsraw"}},"@id":"id66","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns54:CarrierBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns54":"http:\/\/flightsraw"}},{"location":{"$":"Miami, FL","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns55":"http:\/\/flightsraw"}},"name":{"$":"Miami International Airport","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns55":"http:\/\/flightsraw"}},"ident":{"$":"MIA","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns55":"http:\/\/flightsraw"}},"@id":"id58","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns55:AirportBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns55":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id176","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns56":"http:\/\/flightsraw","ns57":"urn:axis.sosnoski.com"}},{"@href":"#id177","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns56":"http:\/\/flightsraw","ns57":"urn:axis.sosnoski.com"}},{"@href":"#id178","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns56":"http:\/\/flightsraw","ns57":"urn:axis.sosnoski.com"}},{"@href":"#id179","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns56":"http:\/\/flightsraw","ns57":"urn:axis.sosnoski.com"}},{"@href":"#id180","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns56":"http:\/\/flightsraw","ns57":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns56:FlightBean[5]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns56":"http:\/\/flightsraw","ns57":"urn:axis.sosnoski.com"}},"from":{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns56":"http:\/\/flightsraw"}},"to":{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns56":"http:\/\/flightsraw"}},"@id":"id2","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns56:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns56":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id181","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns58":"http:\/\/flightsraw","ns59":"urn:axis.sosnoski.com"}},{"@href":"#id182","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns58":"http:\/\/flightsraw","ns59":"urn:axis.sosnoski.com"}},{"@href":"#id183","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns58":"http:\/\/flightsraw","ns59":"urn:axis.sosnoski.com"}},{"@href":"#id184","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns58":"http:\/\/flightsraw","ns59":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns58:FlightBean[4]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns58":"http:\/\/flightsraw","ns59":"urn:axis.sosnoski.com"}},"from":{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns58":"http:\/\/flightsraw"}},"to":{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns58":"http:\/\/flightsraw"}},"@id":"id47","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns58:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns58":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id185","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns60":"http:\/\/flightsraw","ns61":"urn:axis.sosnoski.com"}},{"@href":"#id186","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns60":"http:\/\/flightsraw","ns61":"urn:axis.sosnoski.com"}},{"@href":"#id187","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns60":"http:\/\/flightsraw","ns61":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns60:FlightBean[3]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns60":"http:\/\/flightsraw","ns61":"urn:axis.sosnoski.com"}},"from":{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns60":"http:\/\/flightsraw"}},"to":{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns60":"http:\/\/flightsraw"}},"@id":"id8","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns60:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns60":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id188","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns62":"http:\/\/flightsraw","ns63":"urn:axis.sosnoski.com"}},{"@href":"#id189","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns62":"http:\/\/flightsraw","ns63":"urn:axis.sosnoski.com"}},{"@href":"#id190","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns62":"http:\/\/flightsraw","ns63":"urn:axis.sosnoski.com"}},{"@href":"#id191","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns62":"http:\/\/flightsraw","ns63":"urn:axis.sosnoski.com"}},{"@href":"#id192","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns62":"http:\/\/flightsraw","ns63":"urn:axis.sosnoski.com"}},{"@href":"#id193","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns62":"http:\/\/flightsraw","ns63":"urn:axis.sosnoski.com"}},{"@href":"#id194","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns62":"http:\/\/flightsraw","ns63":"urn:axis.sosnoski.com"}},{"@href":"#id195","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns62":"http:\/\/flightsraw","ns63":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns62:FlightBean[8]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns62":"http:\/\/flightsraw","ns63":"urn:axis.sosnoski.com"}},"from":{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns62":"http:\/\/flightsraw"}},"to":{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns62":"http:\/\/flightsraw"}},"@id":"id38","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns62:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns62":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id196","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns64":"http:\/\/flightsraw","ns65":"urn:axis.sosnoski.com"}},{"@href":"#id197","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns64":"http:\/\/flightsraw","ns65":"urn:axis.sosnoski.com"}},{"@href":"#id198","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns64":"http:\/\/flightsraw","ns65":"urn:axis.sosnoski.com"}},{"@href":"#id199","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns64":"http:\/\/flightsraw","ns65":"urn:axis.sosnoski.com"}},{"@href":"#id200","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns64":"http:\/\/flightsraw","ns65":"urn:axis.sosnoski.com"}},{"@href":"#id201","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns64":"http:\/\/flightsraw","ns65":"urn:axis.sosnoski.com"}},{"@href":"#id202","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns64":"http:\/\/flightsraw","ns65":"urn:axis.sosnoski.com"}},{"@href":"#id203","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns64":"http:\/\/flightsraw","ns65":"urn:axis.sosnoski.com"}},{"@href":"#id204","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns64":"http:\/\/flightsraw","ns65":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns64:FlightBean[9]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns64":"http:\/\/flightsraw","ns65":"urn:axis.sosnoski.com"}},"from":{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns64":"http:\/\/flightsraw"}},"to":{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns64":"http:\/\/flightsraw"}},"@id":"id45","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns64:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns64":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id205","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns66":"http:\/\/flightsraw","ns67":"urn:axis.sosnoski.com"}},{"@href":"#id206","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns66":"http:\/\/flightsraw","ns67":"urn:axis.sosnoski.com"}},{"@href":"#id207","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns66":"http:\/\/flightsraw","ns67":"urn:axis.sosnoski.com"}},{"@href":"#id208","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns66":"http:\/\/flightsraw","ns67":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns66:FlightBean[4]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns66":"http:\/\/flightsraw","ns67":"urn:axis.sosnoski.com"}},"from":{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns66":"http:\/\/flightsraw"}},"to":{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns66":"http:\/\/flightsraw"}},"@id":"id4","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns66:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns66":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id209","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns68":"http:\/\/flightsraw","ns69":"urn:axis.sosnoski.com"}},{"@href":"#id210","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns68":"http:\/\/flightsraw","ns69":"urn:axis.sosnoski.com"}},{"@href":"#id211","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns68":"http:\/\/flightsraw","ns69":"urn:axis.sosnoski.com"}},{"@href":"#id212","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns68":"http:\/\/flightsraw","ns69":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns68:FlightBean[4]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns68":"http:\/\/flightsraw","ns69":"urn:axis.sosnoski.com"}},"from":{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns68":"http:\/\/flightsraw"}},"to":{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns68":"http:\/\/flightsraw"}},"@id":"id32","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns68:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns68":"http:\/\/flightsraw"}},{"URL":{"$":"http:\/\/www.serenityflights.com","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns70":"http:\/\/flightsraw"}},"name":{"$":"Serenity Flights, Inc.","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns70":"http:\/\/flightsraw"}},"rating":{"$":"7","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns70":"http:\/\/flightsraw"}},"ident":{"$":"SF","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns70":"http:\/\/flightsraw"}},"@id":"id72","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns70:CarrierBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns70":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id213","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns71":"http:\/\/flightsraw","ns72":"urn:axis.sosnoski.com"}},{"@href":"#id214","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns71":"http:\/\/flightsraw","ns72":"urn:axis.sosnoski.com"}},{"@href":"#id215","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns71":"http:\/\/flightsraw","ns72":"urn:axis.sosnoski.com"}},{"@href":"#id216","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns71":"http:\/\/flightsraw","ns72":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns71:FlightBean[4]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns71":"http:\/\/flightsraw","ns72":"urn:axis.sosnoski.com"}},"from":{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns71":"http:\/\/flightsraw"}},"to":{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns71":"http:\/\/flightsraw"}},"@id":"id35","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns71:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns71":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id217","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns73":"http:\/\/flightsraw","ns74":"urn:axis.sosnoski.com"}},{"@href":"#id218","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns73":"http:\/\/flightsraw","ns74":"urn:axis.sosnoski.com"}},{"@href":"#id219","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns73":"http:\/\/flightsraw","ns74":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns73:FlightBean[3]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns73":"http:\/\/flightsraw","ns74":"urn:axis.sosnoski.com"}},"from":{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns73":"http:\/\/flightsraw"}},"to":{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns73":"http:\/\/flightsraw"}},"@id":"id7","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns73:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns73":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id220","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns75":"http:\/\/flightsraw","ns76":"urn:axis.sosnoski.com"}},{"@href":"#id221","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns75":"http:\/\/flightsraw","ns76":"urn:axis.sosnoski.com"}},{"@href":"#id222","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns75":"http:\/\/flightsraw","ns76":"urn:axis.sosnoski.com"}},{"@href":"#id223","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns75":"http:\/\/flightsraw","ns76":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns75:FlightBean[4]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns75":"http:\/\/flightsraw","ns76":"urn:axis.sosnoski.com"}},"from":{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns75":"http:\/\/flightsraw"}},"to":{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns75":"http:\/\/flightsraw"}},"@id":"id15","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns75:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns75":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id224","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns77":"http:\/\/flightsraw","ns78":"urn:axis.sosnoski.com"}},{"@href":"#id225","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns77":"http:\/\/flightsraw","ns78":"urn:axis.sosnoski.com"}},{"@href":"#id226","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns77":"http:\/\/flightsraw","ns78":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns77:FlightBean[3]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns77":"http:\/\/flightsraw","ns78":"urn:axis.sosnoski.com"}},"from":{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns77":"http:\/\/flightsraw"}},"to":{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns77":"http:\/\/flightsraw"}},"@id":"id52","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns77:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns77":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id227","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns79":"http:\/\/flightsraw","ns80":"urn:axis.sosnoski.com"}},{"@href":"#id228","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns79":"http:\/\/flightsraw","ns80":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns79:FlightBean[2]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns79":"http:\/\/flightsraw","ns80":"urn:axis.sosnoski.com"}},"from":{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns79":"http:\/\/flightsraw"}},"to":{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns79":"http:\/\/flightsraw"}},"@id":"id9","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns79:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns79":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id229","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns81":"http:\/\/flightsraw","ns82":"urn:axis.sosnoski.com"}},{"@href":"#id230","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns81":"http:\/\/flightsraw","ns82":"urn:axis.sosnoski.com"}},{"@href":"#id231","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns81":"http:\/\/flightsraw","ns82":"urn:axis.sosnoski.com"}},{"@href":"#id232","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns81":"http:\/\/flightsraw","ns82":"urn:axis.sosnoski.com"}},{"@href":"#id233","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns81":"http:\/\/flightsraw","ns82":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns81:FlightBean[5]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns81":"http:\/\/flightsraw","ns82":"urn:axis.sosnoski.com"}},"from":{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns81":"http:\/\/flightsraw"}},"to":{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns81":"http:\/\/flightsraw"}},"@id":"id27","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns81:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns81":"http:\/\/flightsraw"}},{"location":{"$":"New York, NY","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns83":"http:\/\/flightsraw"}},"name":{"$":"John F. Kennedy International Airport","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns83":"http:\/\/flightsraw"}},"ident":{"$":"JFK","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns83":"http:\/\/flightsraw"}},"@id":"id62","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns83:AirportBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns83":"http:\/\/flightsraw"}},{"URL":{"$":"http:\/\/www.classyskylines.com","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns84":"http:\/\/flightsraw"}},"name":{"$":"Worldwide Airlines","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns84":"http:\/\/flightsraw"}},"rating":{"$":"7","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns84":"http:\/\/flightsraw"}},"ident":{"$":"WA","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns84":"http:\/\/flightsraw"}},"@id":"id68","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns84:CarrierBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns84":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id234","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns85":"http:\/\/flightsraw","ns86":"urn:axis.sosnoski.com"}},{"@href":"#id235","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns85":"http:\/\/flightsraw","ns86":"urn:axis.sosnoski.com"}},{"@href":"#id236","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns85":"http:\/\/flightsraw","ns86":"urn:axis.sosnoski.com"}},{"@href":"#id237","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns85":"http:\/\/flightsraw","ns86":"urn:axis.sosnoski.com"}},{"@href":"#id238","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns85":"http:\/\/flightsraw","ns86":"urn:axis.sosnoski.com"}},{"@href":"#id239","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns85":"http:\/\/flightsraw","ns86":"urn:axis.sosnoski.com"}},{"@href":"#id240","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns85":"http:\/\/flightsraw","ns86":"urn:axis.sosnoski.com"}},{"@href":"#id241","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns85":"http:\/\/flightsraw","ns86":"urn:axis.sosnoski.com"}},{"@href":"#id242","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns85":"http:\/\/flightsraw","ns86":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns85:FlightBean[9]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns85":"http:\/\/flightsraw","ns86":"urn:axis.sosnoski.com"}},"from":{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns85":"http:\/\/flightsraw"}},"to":{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns85":"http:\/\/flightsraw"}},"@id":"id18","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns85:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns85":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id243","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns87":"http:\/\/flightsraw","ns88":"urn:axis.sosnoski.com"}},{"@href":"#id244","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns87":"http:\/\/flightsraw","ns88":"urn:axis.sosnoski.com"}},{"@href":"#id245","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns87":"http:\/\/flightsraw","ns88":"urn:axis.sosnoski.com"}},{"@href":"#id246","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns87":"http:\/\/flightsraw","ns88":"urn:axis.sosnoski.com"}},{"@href":"#id247","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns87":"http:\/\/flightsraw","ns88":"urn:axis.sosnoski.com"}},{"@href":"#id248","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns87":"http:\/\/flightsraw","ns88":"urn:axis.sosnoski.com"}},{"@href":"#id249","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns87":"http:\/\/flightsraw","ns88":"urn:axis.sosnoski.com"}},{"@href":"#id250","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns87":"http:\/\/flightsraw","ns88":"urn:axis.sosnoski.com"}},{"@href":"#id251","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns87":"http:\/\/flightsraw","ns88":"urn:axis.sosnoski.com"}},{"@href":"#id252","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns87":"http:\/\/flightsraw","ns88":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns87:FlightBean[10]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns87":"http:\/\/flightsraw","ns88":"urn:axis.sosnoski.com"}},"from":{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns87":"http:\/\/flightsraw"}},"to":{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns87":"http:\/\/flightsraw"}},"@id":"id21","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns87:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns87":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id253","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns89":"http:\/\/flightsraw","ns90":"urn:axis.sosnoski.com"}},{"@href":"#id254","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns89":"http:\/\/flightsraw","ns90":"urn:axis.sosnoski.com"}},{"@href":"#id255","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns89":"http:\/\/flightsraw","ns90":"urn:axis.sosnoski.com"}},{"@href":"#id256","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns89":"http:\/\/flightsraw","ns90":"urn:axis.sosnoski.com"}},{"@href":"#id257","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns89":"http:\/\/flightsraw","ns90":"urn:axis.sosnoski.com"}},{"@href":"#id258","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns89":"http:\/\/flightsraw","ns90":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns89:FlightBean[6]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns89":"http:\/\/flightsraw","ns90":"urn:axis.sosnoski.com"}},"from":{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns89":"http:\/\/flightsraw"}},"to":{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns89":"http:\/\/flightsraw"}},"@id":"id53","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns89:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns89":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id259","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns91":"http:\/\/flightsraw","ns92":"urn:axis.sosnoski.com"}},{"@href":"#id260","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns91":"http:\/\/flightsraw","ns92":"urn:axis.sosnoski.com"}},{"@href":"#id261","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns91":"http:\/\/flightsraw","ns92":"urn:axis.sosnoski.com"}},{"@href":"#id262","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns91":"http:\/\/flightsraw","ns92":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns91:FlightBean[4]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns91":"http:\/\/flightsraw","ns92":"urn:axis.sosnoski.com"}},"from":{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns91":"http:\/\/flightsraw"}},"to":{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns91":"http:\/\/flightsraw"}},"@id":"id31","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns91:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns91":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id263","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns93":"http:\/\/flightsraw","ns94":"urn:axis.sosnoski.com"}},{"@href":"#id264","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns93":"http:\/\/flightsraw","ns94":"urn:axis.sosnoski.com"}},{"@href":"#id265","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns93":"http:\/\/flightsraw","ns94":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns93:FlightBean[3]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns93":"http:\/\/flightsraw","ns94":"urn:axis.sosnoski.com"}},"from":{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns93":"http:\/\/flightsraw"}},"to":{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns93":"http:\/\/flightsraw"}},"@id":"id51","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns93:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns93":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id266","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns95":"http:\/\/flightsraw","ns96":"urn:axis.sosnoski.com"}},{"@href":"#id267","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns95":"http:\/\/flightsraw","ns96":"urn:axis.sosnoski.com"}},{"@href":"#id268","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns95":"http:\/\/flightsraw","ns96":"urn:axis.sosnoski.com"}},{"@href":"#id269","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns95":"http:\/\/flightsraw","ns96":"urn:axis.sosnoski.com"}},{"@href":"#id270","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns95":"http:\/\/flightsraw","ns96":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns95:FlightBean[5]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns95":"http:\/\/flightsraw","ns96":"urn:axis.sosnoski.com"}},"from":{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns95":"http:\/\/flightsraw"}},"to":{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns95":"http:\/\/flightsraw"}},"@id":"id1","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns95:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns95":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id271","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns97":"http:\/\/flightsraw","ns98":"urn:axis.sosnoski.com"}},{"@href":"#id272","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns97":"http:\/\/flightsraw","ns98":"urn:axis.sosnoski.com"}},{"@href":"#id273","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns97":"http:\/\/flightsraw","ns98":"urn:axis.sosnoski.com"}},{"@href":"#id274","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns97":"http:\/\/flightsraw","ns98":"urn:axis.sosnoski.com"}},{"@href":"#id275","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns97":"http:\/\/flightsraw","ns98":"urn:axis.sosnoski.com"}},{"@href":"#id276","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns97":"http:\/\/flightsraw","ns98":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns97:FlightBean[6]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns97":"http:\/\/flightsraw","ns98":"urn:axis.sosnoski.com"}},"from":{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns97":"http:\/\/flightsraw"}},"to":{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns97":"http:\/\/flightsraw"}},"@id":"id44","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns97:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns97":"http:\/\/flightsraw"}},{"location":{"$":"Boston, MA","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns99":"http:\/\/flightsraw"}},"name":{"$":"Logan International Airport","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns99":"http:\/\/flightsraw"}},"ident":{"$":"BOS","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns99":"http:\/\/flightsraw"}},"@id":"id60","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns99:AirportBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns99":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id277","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns100":"http:\/\/flightsraw","ns101":"urn:axis.sosnoski.com"}},{"@href":"#id278","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns100":"http:\/\/flightsraw","ns101":"urn:axis.sosnoski.com"}},{"@href":"#id279","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns100":"http:\/\/flightsraw","ns101":"urn:axis.sosnoski.com"}},{"@href":"#id280","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns100":"http:\/\/flightsraw","ns101":"urn:axis.sosnoski.com"}},{"@href":"#id281","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns100":"http:\/\/flightsraw","ns101":"urn:axis.sosnoski.com"}},{"@href":"#id282","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns100":"http:\/\/flightsraw","ns101":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns100:FlightBean[6]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns100":"http:\/\/flightsraw","ns101":"urn:axis.sosnoski.com"}},"from":{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns100":"http:\/\/flightsraw"}},"to":{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns100":"http:\/\/flightsraw"}},"@id":"id43","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns100:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns100":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id283","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns102":"http:\/\/flightsraw","ns103":"urn:axis.sosnoski.com"}},{"@href":"#id284","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns102":"http:\/\/flightsraw","ns103":"urn:axis.sosnoski.com"}},{"@href":"#id285","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns102":"http:\/\/flightsraw","ns103":"urn:axis.sosnoski.com"}},{"@href":"#id286","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns102":"http:\/\/flightsraw","ns103":"urn:axis.sosnoski.com"}},{"@href":"#id287","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns102":"http:\/\/flightsraw","ns103":"urn:axis.sosnoski.com"}},{"@href":"#id288","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns102":"http:\/\/flightsraw","ns103":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns102:FlightBean[6]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns102":"http:\/\/flightsraw","ns103":"urn:axis.sosnoski.com"}},"from":{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns102":"http:\/\/flightsraw"}},"to":{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns102":"http:\/\/flightsraw"}},"@id":"id33","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns102:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns102":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id289","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns104":"http:\/\/flightsraw","ns105":"urn:axis.sosnoski.com"}},{"@href":"#id290","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns104":"http:\/\/flightsraw","ns105":"urn:axis.sosnoski.com"}},{"@href":"#id291","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns104":"http:\/\/flightsraw","ns105":"urn:axis.sosnoski.com"}},{"@href":"#id292","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns104":"http:\/\/flightsraw","ns105":"urn:axis.sosnoski.com"}},{"@href":"#id293","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns104":"http:\/\/flightsraw","ns105":"urn:axis.sosnoski.com"}},{"@href":"#id294","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns104":"http:\/\/flightsraw","ns105":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns104:FlightBean[6]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns104":"http:\/\/flightsraw","ns105":"urn:axis.sosnoski.com"}},"from":{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns104":"http:\/\/flightsraw"}},"to":{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns104":"http:\/\/flightsraw"}},"@id":"id23","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns104:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns104":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id295","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns106":"http:\/\/flightsraw","ns107":"urn:axis.sosnoski.com"}},{"@href":"#id296","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns106":"http:\/\/flightsraw","ns107":"urn:axis.sosnoski.com"}},{"@href":"#id297","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns106":"http:\/\/flightsraw","ns107":"urn:axis.sosnoski.com"}},{"@href":"#id298","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns106":"http:\/\/flightsraw","ns107":"urn:axis.sosnoski.com"}},{"@href":"#id299","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns106":"http:\/\/flightsraw","ns107":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns106:FlightBean[5]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns106":"http:\/\/flightsraw","ns107":"urn:axis.sosnoski.com"}},"from":{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns106":"http:\/\/flightsraw"}},"to":{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns106":"http:\/\/flightsraw"}},"@id":"id20","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns106:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns106":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id300","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns108":"http:\/\/flightsraw","ns109":"urn:axis.sosnoski.com"}},{"@href":"#id301","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns108":"http:\/\/flightsraw","ns109":"urn:axis.sosnoski.com"}},{"@href":"#id302","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns108":"http:\/\/flightsraw","ns109":"urn:axis.sosnoski.com"}},{"@href":"#id303","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns108":"http:\/\/flightsraw","ns109":"urn:axis.sosnoski.com"}},{"@href":"#id304","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns108":"http:\/\/flightsraw","ns109":"urn:axis.sosnoski.com"}},{"@href":"#id305","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns108":"http:\/\/flightsraw","ns109":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns108:FlightBean[6]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns108":"http:\/\/flightsraw","ns109":"urn:axis.sosnoski.com"}},"from":{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns108":"http:\/\/flightsraw"}},"to":{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns108":"http:\/\/flightsraw"}},"@id":"id25","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns108:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns108":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id306","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns110":"http:\/\/flightsraw","ns111":"urn:axis.sosnoski.com"}},{"@href":"#id307","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns110":"http:\/\/flightsraw","ns111":"urn:axis.sosnoski.com"}},{"@href":"#id308","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns110":"http:\/\/flightsraw","ns111":"urn:axis.sosnoski.com"}},{"@href":"#id309","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns110":"http:\/\/flightsraw","ns111":"urn:axis.sosnoski.com"}},{"@href":"#id310","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns110":"http:\/\/flightsraw","ns111":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns110:FlightBean[5]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns110":"http:\/\/flightsraw","ns111":"urn:axis.sosnoski.com"}},"from":{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns110":"http:\/\/flightsraw"}},"to":{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns110":"http:\/\/flightsraw"}},"@id":"id6","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns110:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns110":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id311","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns112":"http:\/\/flightsraw","ns113":"urn:axis.sosnoski.com"}},{"@href":"#id312","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns112":"http:\/\/flightsraw","ns113":"urn:axis.sosnoski.com"}},{"@href":"#id313","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns112":"http:\/\/flightsraw","ns113":"urn:axis.sosnoski.com"}},{"@href":"#id314","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns112":"http:\/\/flightsraw","ns113":"urn:axis.sosnoski.com"}},{"@href":"#id315","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns112":"http:\/\/flightsraw","ns113":"urn:axis.sosnoski.com"}},{"@href":"#id316","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns112":"http:\/\/flightsraw","ns113":"urn:axis.sosnoski.com"}},{"@href":"#id317","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns112":"http:\/\/flightsraw","ns113":"urn:axis.sosnoski.com"}},{"@href":"#id318","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns112":"http:\/\/flightsraw","ns113":"urn:axis.sosnoski.com"}},{"@href":"#id319","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns112":"http:\/\/flightsraw","ns113":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns112:FlightBean[9]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns112":"http:\/\/flightsraw","ns113":"urn:axis.sosnoski.com"}},"from":{"@href":"#id58","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns112":"http:\/\/flightsraw"}},"to":{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns112":"http:\/\/flightsraw"}},"@id":"id17","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns112:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns112":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id320","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns114":"http:\/\/flightsraw","ns115":"urn:axis.sosnoski.com"}},{"@href":"#id321","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns114":"http:\/\/flightsraw","ns115":"urn:axis.sosnoski.com"}},{"@href":"#id322","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns114":"http:\/\/flightsraw","ns115":"urn:axis.sosnoski.com"}},{"@href":"#id323","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns114":"http:\/\/flightsraw","ns115":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns114:FlightBean[4]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns114":"http:\/\/flightsraw","ns115":"urn:axis.sosnoski.com"}},"from":{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns114":"http:\/\/flightsraw"}},"to":{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns114":"http:\/\/flightsraw"}},"@id":"id48","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns114:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns114":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id324","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns116":"http:\/\/flightsraw","ns117":"urn:axis.sosnoski.com"}},{"@href":"#id325","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns116":"http:\/\/flightsraw","ns117":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns116:FlightBean[2]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns116":"http:\/\/flightsraw","ns117":"urn:axis.sosnoski.com"}},"from":{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns116":"http:\/\/flightsraw"}},"to":{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns116":"http:\/\/flightsraw"}},"@id":"id10","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns116:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns116":"http:\/\/flightsraw"}},{"location":{"$":"Los Angeles, CA","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns118":"http:\/\/flightsraw"}},"name":{"$":"Los Angeles International Airport","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns118":"http:\/\/flightsraw"}},"ident":{"$":"LAX","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns118":"http:\/\/flightsraw"}},"@id":"id59","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns118:AirportBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns118":"http:\/\/flightsraw"}},{"location":{"$":"Denver, CO","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns119":"http:\/\/flightsraw"}},"name":{"$":"Denver International Airport","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns119":"http:\/\/flightsraw"}},"ident":{"$":"DEN","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns119":"http:\/\/flightsraw"}},"@id":"id64","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns119:AirportBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns119":"http:\/\/flightsraw"}},{"URL":{"$":"http:\/\/www.tempusfugit.com","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns120":"http:\/\/flightsraw"}},"name":{"$":"Tempus Fugit Lines","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns120":"http:\/\/flightsraw"}},"rating":{"$":"7","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns120":"http:\/\/flightsraw"}},"ident":{"$":"TF","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns120":"http:\/\/flightsraw"}},"@id":"id71","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns120:CarrierBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns120":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id326","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns121":"http:\/\/flightsraw","ns122":"urn:axis.sosnoski.com"}},{"@href":"#id327","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns121":"http:\/\/flightsraw","ns122":"urn:axis.sosnoski.com"}},{"@href":"#id328","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns121":"http:\/\/flightsraw","ns122":"urn:axis.sosnoski.com"}},{"@href":"#id329","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns121":"http:\/\/flightsraw","ns122":"urn:axis.sosnoski.com"}},{"@href":"#id330","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns121":"http:\/\/flightsraw","ns122":"urn:axis.sosnoski.com"}},{"@href":"#id331","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns121":"http:\/\/flightsraw","ns122":"urn:axis.sosnoski.com"}},{"@href":"#id332","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns121":"http:\/\/flightsraw","ns122":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns121:FlightBean[7]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns121":"http:\/\/flightsraw","ns122":"urn:axis.sosnoski.com"}},"from":{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns121":"http:\/\/flightsraw"}},"to":{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns121":"http:\/\/flightsraw"}},"@id":"id39","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns121:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns121":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id333","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns123":"http:\/\/flightsraw","ns124":"urn:axis.sosnoski.com"}},{"@href":"#id334","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns123":"http:\/\/flightsraw","ns124":"urn:axis.sosnoski.com"}},{"@href":"#id335","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns123":"http:\/\/flightsraw","ns124":"urn:axis.sosnoski.com"}},{"@href":"#id336","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns123":"http:\/\/flightsraw","ns124":"urn:axis.sosnoski.com"}},{"@href":"#id337","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns123":"http:\/\/flightsraw","ns124":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns123:FlightBean[5]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns123":"http:\/\/flightsraw","ns124":"urn:axis.sosnoski.com"}},"from":{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns123":"http:\/\/flightsraw"}},"to":{"@href":"#id60","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns123":"http:\/\/flightsraw"}},"@id":"id5","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns123:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns123":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id338","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns125":"http:\/\/flightsraw","ns126":"urn:axis.sosnoski.com"}},{"@href":"#id339","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns125":"http:\/\/flightsraw","ns126":"urn:axis.sosnoski.com"}},{"@href":"#id340","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns125":"http:\/\/flightsraw","ns126":"urn:axis.sosnoski.com"}},{"@href":"#id341","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns125":"http:\/\/flightsraw","ns126":"urn:axis.sosnoski.com"}},{"@href":"#id342","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns125":"http:\/\/flightsraw","ns126":"urn:axis.sosnoski.com"}},{"@href":"#id343","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns125":"http:\/\/flightsraw","ns126":"urn:axis.sosnoski.com"}},{"@href":"#id344","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns125":"http:\/\/flightsraw","ns126":"urn:axis.sosnoski.com"}},{"@href":"#id345","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns125":"http:\/\/flightsraw","ns126":"urn:axis.sosnoski.com"}},{"@href":"#id346","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns125":"http:\/\/flightsraw","ns126":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns125:FlightBean[9]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns125":"http:\/\/flightsraw","ns126":"urn:axis.sosnoski.com"}},"from":{"@href":"#id62","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns125":"http:\/\/flightsraw"}},"to":{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns125":"http:\/\/flightsraw"}},"@id":"id46","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns125:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns125":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id347","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns127":"http:\/\/flightsraw","ns128":"urn:axis.sosnoski.com"}},{"@href":"#id348","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns127":"http:\/\/flightsraw","ns128":"urn:axis.sosnoski.com"}},{"@href":"#id349","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns127":"http:\/\/flightsraw","ns128":"urn:axis.sosnoski.com"}},{"@href":"#id350","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns127":"http:\/\/flightsraw","ns128":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns127:FlightBean[4]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns127":"http:\/\/flightsraw","ns128":"urn:axis.sosnoski.com"}},"from":{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns127":"http:\/\/flightsraw"}},"to":{"@href":"#id59","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns127":"http:\/\/flightsraw"}},"@id":"id3","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns127:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns127":"http:\/\/flightsraw"}},{"flights":{"item":[{"@href":"#id351","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns129":"http:\/\/flightsraw","ns130":"urn:axis.sosnoski.com"}},{"@href":"#id352","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns129":"http:\/\/flightsraw","ns130":"urn:axis.sosnoski.com"}},{"@href":"#id353","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns129":"http:\/\/flightsraw","ns130":"urn:axis.sosnoski.com"}}],"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns129:FlightBean[3]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns129":"http:\/\/flightsraw","ns130":"urn:axis.sosnoski.com"}},"from":{"@href":"#id64","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns129":"http:\/\/flightsraw"}},"to":{"@href":"#id61","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns129":"http:\/\/flightsraw"}},"@id":"id50","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns129:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns129":"http:\/\/flightsraw"}},{"flights":{"item":{"@href":"#id354","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns131":"http:\/\/flightsraw","ns132":"urn:axis.sosnoski.com"}},"@xsi:type":"soapenc:Array","@soapenc:arrayType":"ns131:FlightBean[1]","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns131":"http:\/\/flightsraw","ns132":"urn:axis.sosnoski.com"}},"from":{"@href":"#id63","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns131":"http:\/\/flightsraw"}},"to":{"@href":"#id57","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns131":"http:\/\/flightsraw"}},"@id":"id12","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns131:RouteBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns131":"http:\/\/flightsraw"}},{"location":{"$":"Seattle, WA","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns133":"http:\/\/flightsraw"}},"name":{"$":"Seattle-Tacoma International Airport","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns133":"http:\/\/flightsraw"}},"ident":{"$":"SEA","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns133":"http:\/\/flightsraw"}},"@id":"id57","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns133:AirportBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns133":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"7:57p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns134":"http:\/\/flightsraw"}},"departureTime":{"$":"5:08p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns134":"http:\/\/flightsraw"}},"number":{"$":"671","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns134":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns134":"http:\/\/flightsraw"}},"@id":"id102","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns134:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns134":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:58a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns135":"http:\/\/flightsraw"}},"departureTime":{"$":"1:46a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns135":"http:\/\/flightsraw"}},"number":{"$":"709","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns135":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns135":"http:\/\/flightsraw"}},"@id":"id301","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns135:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns135":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:54a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns136":"http:\/\/flightsraw"}},"departureTime":{"$":"11:08p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns136":"http:\/\/flightsraw"}},"number":{"$":"275","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns136":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns136":"http:\/\/flightsraw"}},"@id":"id125","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns136:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns136":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:15a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns137":"http:\/\/flightsraw"}},"departureTime":{"$":"3:11a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns137":"http:\/\/flightsraw"}},"number":{"$":"809","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns137":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns137":"http:\/\/flightsraw"}},"@id":"id319","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns137:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns137":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:46a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns138":"http:\/\/flightsraw"}},"departureTime":{"$":"1:45a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns138":"http:\/\/flightsraw"}},"number":{"$":"709","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns138":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns138":"http:\/\/flightsraw"}},"@id":"id201","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns138:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns138":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:56a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns139":"http:\/\/flightsraw"}},"departureTime":{"$":"1:46a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns139":"http:\/\/flightsraw"}},"number":{"$":"346","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns139":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns139":"http:\/\/flightsraw"}},"@id":"id148","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns139:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns139":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:49p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns140":"http:\/\/flightsraw"}},"departureTime":{"$":"11:46a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns140":"http:\/\/flightsraw"}},"number":{"$":"523","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns140":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns140":"http:\/\/flightsraw"}},"@id":"id306","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns140:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns140":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:42a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns141":"http:\/\/flightsraw"}},"departureTime":{"$":"3:05a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns141":"http:\/\/flightsraw"}},"number":{"$":"934","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns141":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns141":"http:\/\/flightsraw"}},"@id":"id206","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns141:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns141":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:46a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns142":"http:\/\/flightsraw"}},"departureTime":{"$":"3:17a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns142":"http:\/\/flightsraw"}},"number":{"$":"749","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns142":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns142":"http:\/\/flightsraw"}},"@id":"id128","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns142:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns142":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:43p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns143":"http:\/\/flightsraw"}},"departureTime":{"$":"1:43p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns143":"http:\/\/flightsraw"}},"number":{"$":"569","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns143":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns143":"http:\/\/flightsraw"}},"@id":"id278","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns143:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns143":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"9:31a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns144":"http:\/\/flightsraw"}},"departureTime":{"$":"6:08a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns144":"http:\/\/flightsraw"}},"number":{"$":"690","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns144":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns144":"http:\/\/flightsraw"}},"@id":"id152","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns144:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns144":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"8:42a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns145":"http:\/\/flightsraw"}},"departureTime":{"$":"4:07a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns145":"http:\/\/flightsraw"}},"number":{"$":"731","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns145":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns145":"http:\/\/flightsraw"}},"@id":"id169","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns145:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns145":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"9:03a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns146":"http:\/\/flightsraw"}},"departureTime":{"$":"4:24a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns146":"http:\/\/flightsraw"}},"number":{"$":"600","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns146":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns146":"http:\/\/flightsraw"}},"@id":"id326","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns146:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns146":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"6:15p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns147":"http:\/\/flightsraw"}},"departureTime":{"$":"3:11p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns147":"http:\/\/flightsraw"}},"number":{"$":"485","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns147":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns147":"http:\/\/flightsraw"}},"@id":"id251","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns147:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns147":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:48a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns148":"http:\/\/flightsraw"}},"departureTime":{"$":"11:28p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns148":"http:\/\/flightsraw"}},"number":{"$":"409","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns148":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns148":"http:\/\/flightsraw"}},"@id":"id316","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns148:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns148":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:05a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns149":"http:\/\/flightsraw"}},"departureTime":{"$":"1:49a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns149":"http:\/\/flightsraw"}},"number":{"$":"714","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns149":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns149":"http:\/\/flightsraw"}},"@id":"id273","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns149:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns149":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:57a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns150":"http:\/\/flightsraw"}},"departureTime":{"$":"1:15a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns150":"http:\/\/flightsraw"}},"number":{"$":"861","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns150":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns150":"http:\/\/flightsraw"}},"@id":"id303","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns150:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns150":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"9:53a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns151":"http:\/\/flightsraw"}},"departureTime":{"$":"8:04a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns151":"http:\/\/flightsraw"}},"number":{"$":"687","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns151":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns151":"http:\/\/flightsraw"}},"@id":"id80","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns151:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns151":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:42a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns152":"http:\/\/flightsraw"}},"departureTime":{"$":"3:08a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns152":"http:\/\/flightsraw"}},"number":{"$":"316","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns152":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns152":"http:\/\/flightsraw"}},"@id":"id168","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns152:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns152":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"9:52a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns153":"http:\/\/flightsraw"}},"departureTime":{"$":"6:52a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns153":"http:\/\/flightsraw"}},"number":{"$":"292","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns153":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns153":"http:\/\/flightsraw"}},"@id":"id249","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns153:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns153":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:43a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns154":"http:\/\/flightsraw"}},"departureTime":{"$":"2:04a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns154":"http:\/\/flightsraw"}},"number":{"$":"357","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns154":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns154":"http:\/\/flightsraw"}},"@id":"id131","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns154:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns154":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"8:22p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns155":"http:\/\/flightsraw"}},"departureTime":{"$":"5:12p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns155":"http:\/\/flightsraw"}},"number":{"$":"848","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns155":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns155":"http:\/\/flightsraw"}},"@id":"id165","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns155:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns155":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:33a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns156":"http:\/\/flightsraw"}},"departureTime":{"$":"2:47a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns156":"http:\/\/flightsraw"}},"number":{"$":"649","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns156":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns156":"http:\/\/flightsraw"}},"@id":"id342","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns156:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns156":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:15a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns157":"http:\/\/flightsraw"}},"departureTime":{"$":"3:08a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns157":"http:\/\/flightsraw"}},"number":{"$":"213","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns157":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns157":"http:\/\/flightsraw"}},"@id":"id107","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns157:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns157":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:00a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns158":"http:\/\/flightsraw"}},"departureTime":{"$":"1:06a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns158":"http:\/\/flightsraw"}},"number":{"$":"778","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns158":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns158":"http:\/\/flightsraw"}},"@id":"id333","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns158:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns158":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"11:14p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns159":"http:\/\/flightsraw"}},"departureTime":{"$":"6:34p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns159":"http:\/\/flightsraw"}},"number":{"$":"769","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns159":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns159":"http:\/\/flightsraw"}},"@id":"id297","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns159:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns159":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:25a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns160":"http:\/\/flightsraw"}},"departureTime":{"$":"1:01a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns160":"http:\/\/flightsraw"}},"number":{"$":"891","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns160":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns160":"http:\/\/flightsraw"}},"@id":"id325","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns160:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns160":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"6:51p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns161":"http:\/\/flightsraw"}},"departureTime":{"$":"2:48p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns161":"http:\/\/flightsraw"}},"number":{"$":"672","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns161":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns161":"http:\/\/flightsraw"}},"@id":"id309","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns161:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns161":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:25a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns162":"http:\/\/flightsraw"}},"departureTime":{"$":"2:49a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns162":"http:\/\/flightsraw"}},"number":{"$":"439","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns162":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns162":"http:\/\/flightsraw"}},"@id":"id287","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns162:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns162":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"11:27p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns163":"http:\/\/flightsraw"}},"departureTime":{"$":"8:05p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns163":"http:\/\/flightsraw"}},"number":{"$":"812","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns163":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns163":"http:\/\/flightsraw"}},"@id":"id157","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns163:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns163":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:56a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns164":"http:\/\/flightsraw"}},"departureTime":{"$":"1:06a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns164":"http:\/\/flightsraw"}},"number":{"$":"585","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns164":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns164":"http:\/\/flightsraw"}},"@id":"id336","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns164:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns164":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:22p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns165":"http:\/\/flightsraw"}},"departureTime":{"$":"5:42p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns165":"http:\/\/flightsraw"}},"number":{"$":"226","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns165":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns165":"http:\/\/flightsraw"}},"@id":"id134","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns165:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns165":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:57p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns166":"http:\/\/flightsraw"}},"departureTime":{"$":"12:19p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns166":"http:\/\/flightsraw"}},"number":{"$":"898","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns166":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns166":"http:\/\/flightsraw"}},"@id":"id289","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns166:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns166":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:45p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns167":"http:\/\/flightsraw"}},"departureTime":{"$":"2:39p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns167":"http:\/\/flightsraw"}},"number":{"$":"749","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns167":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns167":"http:\/\/flightsraw"}},"@id":"id223","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns167:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns167":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:16p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns168":"http:\/\/flightsraw"}},"departureTime":{"$":"1:10p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns168":"http:\/\/flightsraw"}},"number":{"$":"726","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns168":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns168":"http:\/\/flightsraw"}},"@id":"id162","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns168:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns168":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:37a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns169":"http:\/\/flightsraw"}},"departureTime":{"$":"1:26a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns169":"http:\/\/flightsraw"}},"number":{"$":"919","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns169":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns169":"http:\/\/flightsraw"}},"@id":"id197","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns169:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns169":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"6:20p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns170":"http:\/\/flightsraw"}},"departureTime":{"$":"2:47p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns170":"http:\/\/flightsraw"}},"number":{"$":"372","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns170":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns170":"http:\/\/flightsraw"}},"@id":"id212","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns170:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns170":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:54p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns171":"http:\/\/flightsraw"}},"departureTime":{"$":"3:04p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns171":"http:\/\/flightsraw"}},"number":{"$":"293","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns171":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns171":"http:\/\/flightsraw"}},"@id":"id79","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns171:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns171":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:10a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns172":"http:\/\/flightsraw"}},"departureTime":{"$":"1:56a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns172":"http:\/\/flightsraw"}},"number":{"$":"906","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns172":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns172":"http:\/\/flightsraw"}},"@id":"id166","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns172:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns172":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:46a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns173":"http:\/\/flightsraw"}},"departureTime":{"$":"1:13a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns173":"http:\/\/flightsraw"}},"number":{"$":"212","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns173":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns173":"http:\/\/flightsraw"}},"@id":"id199","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns173:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns173":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:57a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns174":"http:\/\/flightsraw"}},"departureTime":{"$":"3:44a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns174":"http:\/\/flightsraw"}},"number":{"$":"747","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns174":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns174":"http:\/\/flightsraw"}},"@id":"id247","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns174:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns174":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:35a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns175":"http:\/\/flightsraw"}},"departureTime":{"$":"1:47a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns175":"http:\/\/flightsraw"}},"number":{"$":"595","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns175":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns175":"http:\/\/flightsraw"}},"@id":"id174","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns175:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns175":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:08p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns176":"http:\/\/flightsraw"}},"departureTime":{"$":"12:42p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns176":"http:\/\/flightsraw"}},"number":{"$":"647","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns176":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns176":"http:\/\/flightsraw"}},"@id":"id286","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns176:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns176":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"12:20p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns177":"http:\/\/flightsraw"}},"departureTime":{"$":"10:50a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns177":"http:\/\/flightsraw"}},"number":{"$":"404","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns177":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns177":"http:\/\/flightsraw"}},"@id":"id291","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns177:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns177":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:42a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns178":"http:\/\/flightsraw"}},"departureTime":{"$":"1:31a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns178":"http:\/\/flightsraw"}},"number":{"$":"349","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns178":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns178":"http:\/\/flightsraw"}},"@id":"id183","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns178:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns178":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:46a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns179":"http:\/\/flightsraw"}},"departureTime":{"$":"1:57a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns179":"http:\/\/flightsraw"}},"number":{"$":"377","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns179":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns179":"http:\/\/flightsraw"}},"@id":"id181","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns179:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns179":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:37p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns180":"http:\/\/flightsraw"}},"departureTime":{"$":"7:49p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns180":"http:\/\/flightsraw"}},"number":{"$":"420","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns180":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns180":"http:\/\/flightsraw"}},"@id":"id106","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns180:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns180":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"12:37a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns181":"http:\/\/flightsraw"}},"departureTime":{"$":"10:35p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns181":"http:\/\/flightsraw"}},"number":{"$":"932","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns181":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns181":"http:\/\/flightsraw"}},"@id":"id149","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns181:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns181":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:37p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns182":"http:\/\/flightsraw"}},"departureTime":{"$":"12:52p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns182":"http:\/\/flightsraw"}},"number":{"$":"891","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns182":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns182":"http:\/\/flightsraw"}},"@id":"id354","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns182:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns182":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"6:30a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns183":"http:\/\/flightsraw"}},"departureTime":{"$":"4:49a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns183":"http:\/\/flightsraw"}},"number":{"$":"823","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns183":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns183":"http:\/\/flightsraw"}},"@id":"id200","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns183:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns183":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:31a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns184":"http:\/\/flightsraw"}},"departureTime":{"$":"1:16a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns184":"http:\/\/flightsraw"}},"number":{"$":"259","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns184":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns184":"http:\/\/flightsraw"}},"@id":"id295","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns184:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns184":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:39a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns185":"http:\/\/flightsraw"}},"departureTime":{"$":"2:23a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns185":"http:\/\/flightsraw"}},"number":{"$":"692","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns185":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns185":"http:\/\/flightsraw"}},"@id":"id345","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns185:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns185":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"8:21p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns186":"http:\/\/flightsraw"}},"departureTime":{"$":"5:25p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns186":"http:\/\/flightsraw"}},"number":{"$":"979","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns186":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns186":"http:\/\/flightsraw"}},"@id":"id347","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns186:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns186":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:57a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns187":"http:\/\/flightsraw"}},"departureTime":{"$":"3:20a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns187":"http:\/\/flightsraw"}},"number":{"$":"299","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns187":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns187":"http:\/\/flightsraw"}},"@id":"id250","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns187:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns187":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"11:46a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns188":"http:\/\/flightsraw"}},"departureTime":{"$":"7:45a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns188":"http:\/\/flightsraw"}},"number":{"$":"269","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns188":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns188":"http:\/\/flightsraw"}},"@id":"id263","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns188:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns188":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"7:23p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns189":"http:\/\/flightsraw"}},"departureTime":{"$":"4:03p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns189":"http:\/\/flightsraw"}},"number":{"$":"847","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns189":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns189":"http:\/\/flightsraw"}},"@id":"id144","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns189:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns189":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:35a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns190":"http:\/\/flightsraw"}},"departureTime":{"$":"2:52a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns190":"http:\/\/flightsraw"}},"number":{"$":"291","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns190":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns190":"http:\/\/flightsraw"}},"@id":"id211","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns190:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns190":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"7:56p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns191":"http:\/\/flightsraw"}},"departureTime":{"$":"4:49p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns191":"http:\/\/flightsraw"}},"number":{"$":"768","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns191":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns191":"http:\/\/flightsraw"}},"@id":"id238","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns191:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns191":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"7:14p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns192":"http:\/\/flightsraw"}},"departureTime":{"$":"4:24p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns192":"http:\/\/flightsraw"}},"number":{"$":"373","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns192":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns192":"http:\/\/flightsraw"}},"@id":"id188","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns192:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns192":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:36p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns193":"http:\/\/flightsraw"}},"departureTime":{"$":"8:54a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns193":"http:\/\/flightsraw"}},"number":{"$":"267","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns193":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns193":"http:\/\/flightsraw"}},"@id":"id96","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns193:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns193":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:44a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns194":"http:\/\/flightsraw"}},"departureTime":{"$":"3:26a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns194":"http:\/\/flightsraw"}},"number":{"$":"339","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns194":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns194":"http:\/\/flightsraw"}},"@id":"id328","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns194:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns194":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:53p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns195":"http:\/\/flightsraw"}},"departureTime":{"$":"7:39p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns195":"http:\/\/flightsraw"}},"number":{"$":"871","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns195":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns195":"http:\/\/flightsraw"}},"@id":"id158","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns195:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns195":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:38a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns196":"http:\/\/flightsraw"}},"departureTime":{"$":"6:50a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns196":"http:\/\/flightsraw"}},"number":{"$":"718","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns196":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns196":"http:\/\/flightsraw"}},"@id":"id74","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns196:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns196":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"8:52a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns197":"http:\/\/flightsraw"}},"departureTime":{"$":"5:46a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns197":"http:\/\/flightsraw"}},"number":{"$":"239","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns197":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns197":"http:\/\/flightsraw"}},"@id":"id267","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns197:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns197":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:38a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns198":"http:\/\/flightsraw"}},"departureTime":{"$":"1:45a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns198":"http:\/\/flightsraw"}},"number":{"$":"277","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns198":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns198":"http:\/\/flightsraw"}},"@id":"id299","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns198:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns198":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"8:48p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns199":"http:\/\/flightsraw"}},"departureTime":{"$":"4:08p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns199":"http:\/\/flightsraw"}},"number":{"$":"279","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns199":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns199":"http:\/\/flightsraw"}},"@id":"id136","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns199:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns199":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:45a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns200":"http:\/\/flightsraw"}},"departureTime":{"$":"3:09a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns200":"http:\/\/flightsraw"}},"number":{"$":"889","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns200":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns200":"http:\/\/flightsraw"}},"@id":"id126","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns200:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns200":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:16a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns201":"http:\/\/flightsraw"}},"departureTime":{"$":"3:05a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns201":"http:\/\/flightsraw"}},"number":{"$":"994","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns201":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns201":"http:\/\/flightsraw"}},"@id":"id312","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns201:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns201":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:50a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns202":"http:\/\/flightsraw"}},"departureTime":{"$":"1:57a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns202":"http:\/\/flightsraw"}},"number":{"$":"862","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns202":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns202":"http:\/\/flightsraw"}},"@id":"id81","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns202:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns202":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:27a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns203":"http:\/\/flightsraw"}},"departureTime":{"$":"9:25p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns203":"http:\/\/flightsraw"}},"number":{"$":"363","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns203":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns203":"http:\/\/flightsraw"}},"@id":"id310","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns203:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns203":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:41a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns204":"http:\/\/flightsraw"}},"departureTime":{"$":"2:25a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns204":"http:\/\/flightsraw"}},"number":{"$":"273","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns204":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns204":"http:\/\/flightsraw"}},"@id":"id204","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns204:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns204":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"12:28p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns205":"http:\/\/flightsraw"}},"departureTime":{"$":"10:20a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns205":"http:\/\/flightsraw"}},"number":{"$":"625","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns205":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns205":"http:\/\/flightsraw"}},"@id":"id89","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns205:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns205":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"9:20p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns206":"http:\/\/flightsraw"}},"departureTime":{"$":"6:22p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns206":"http:\/\/flightsraw"}},"number":{"$":"945","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns206":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns206":"http:\/\/flightsraw"}},"@id":"id252","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns206:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns206":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:47a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns207":"http:\/\/flightsraw"}},"departureTime":{"$":"3:20a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns207":"http:\/\/flightsraw"}},"number":{"$":"406","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns207":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns207":"http:\/\/flightsraw"}},"@id":"id77","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns207:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns207":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:08a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns208":"http:\/\/flightsraw"}},"departureTime":{"$":"2:18a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns208":"http:\/\/flightsraw"}},"number":{"$":"497","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns208":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns208":"http:\/\/flightsraw"}},"@id":"id177","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns208:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns208":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:33a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns209":"http:\/\/flightsraw"}},"departureTime":{"$":"4:19a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns209":"http:\/\/flightsraw"}},"number":{"$":"746","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns209":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns209":"http:\/\/flightsraw"}},"@id":"id262","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns209:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns209":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"11:17p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns210":"http:\/\/flightsraw"}},"departureTime":{"$":"8:24p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns210":"http:\/\/flightsraw"}},"number":{"$":"823","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns210":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns210":"http:\/\/flightsraw"}},"@id":"id191","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns210:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns210":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"5:48a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns211":"http:\/\/flightsraw"}},"departureTime":{"$":"1:02a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns211":"http:\/\/flightsraw"}},"number":{"$":"332","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns211":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns211":"http:\/\/flightsraw"}},"@id":"id122","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns211:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns211":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"7:30p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns212":"http:\/\/flightsraw"}},"departureTime":{"$":"2:49p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns212":"http:\/\/flightsraw"}},"number":{"$":"549","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns212":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns212":"http:\/\/flightsraw"}},"@id":"id100","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns212:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns212":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"5:18p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns213":"http:\/\/flightsraw"}},"departureTime":{"$":"2:33p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns213":"http:\/\/flightsraw"}},"number":{"$":"609","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns213":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns213":"http:\/\/flightsraw"}},"@id":"id256","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns213:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns213":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:03a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns214":"http:\/\/flightsraw"}},"departureTime":{"$":"9:19p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns214":"http:\/\/flightsraw"}},"number":{"$":"263","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns214":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns214":"http:\/\/flightsraw"}},"@id":"id132","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns214:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns214":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"9:08a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns215":"http:\/\/flightsraw"}},"departureTime":{"$":"7:03a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns215":"http:\/\/flightsraw"}},"number":{"$":"310","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns215":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns215":"http:\/\/flightsraw"}},"@id":"id279","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns215:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns215":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:56a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns216":"http:\/\/flightsraw"}},"departureTime":{"$":"2:41a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns216":"http:\/\/flightsraw"}},"number":{"$":"836","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns216":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns216":"http:\/\/flightsraw"}},"@id":"id147","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns216:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns216":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"6:40a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns217":"http:\/\/flightsraw"}},"departureTime":{"$":"3:53a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns217":"http:\/\/flightsraw"}},"number":{"$":"612","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns217":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns217":"http:\/\/flightsraw"}},"@id":"id194","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns217:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns217":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:07p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns218":"http:\/\/flightsraw"}},"departureTime":{"$":"8:28p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns218":"http:\/\/flightsraw"}},"number":{"$":"508","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns218":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns218":"http:\/\/flightsraw"}},"@id":"id231","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns218:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns218":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:53p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns219":"http:\/\/flightsraw"}},"departureTime":{"$":"10:12a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns219":"http:\/\/flightsraw"}},"number":{"$":"753","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns219":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns219":"http:\/\/flightsraw"}},"@id":"id135","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns219:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns219":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:15a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns220":"http:\/\/flightsraw"}},"departureTime":{"$":"3:08a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns220":"http:\/\/flightsraw"}},"number":{"$":"572","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns220":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns220":"http:\/\/flightsraw"}},"@id":"id315","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns220:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns220":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:07a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns221":"http:\/\/flightsraw"}},"departureTime":{"$":"2:28a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns221":"http:\/\/flightsraw"}},"number":{"$":"511","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns221":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns221":"http:\/\/flightsraw"}},"@id":"id176","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns221:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns221":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:01a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns222":"http:\/\/flightsraw"}},"departureTime":{"$":"3:25a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns222":"http:\/\/flightsraw"}},"number":{"$":"832","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns222":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns222":"http:\/\/flightsraw"}},"@id":"id265","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns222:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns222":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:29a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns223":"http:\/\/flightsraw"}},"departureTime":{"$":"12:33a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns223":"http:\/\/flightsraw"}},"number":{"$":"493","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns223":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns223":"http:\/\/flightsraw"}},"@id":"id349","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns223:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns223":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:38a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns224":"http:\/\/flightsraw"}},"departureTime":{"$":"2:10a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns224":"http:\/\/flightsraw"}},"number":{"$":"785","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns224":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns224":"http:\/\/flightsraw"}},"@id":"id172","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns224:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns224":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:51p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns225":"http:\/\/flightsraw"}},"departureTime":{"$":"2:10p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns225":"http:\/\/flightsraw"}},"number":{"$":"940","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns225":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns225":"http:\/\/flightsraw"}},"@id":"id253","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns225:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns225":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"7:24p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns226":"http:\/\/flightsraw"}},"departureTime":{"$":"6:14p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns226":"http:\/\/flightsraw"}},"number":{"$":"767","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns226":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns226":"http:\/\/flightsraw"}},"@id":"id222","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns226:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns226":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"7:57p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns227":"http:\/\/flightsraw"}},"departureTime":{"$":"3:16p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns227":"http:\/\/flightsraw"}},"number":{"$":"707","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns227":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns227":"http:\/\/flightsraw"}},"@id":"id99","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns227:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns227":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:29a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns228":"http:\/\/flightsraw"}},"departureTime":{"$":"3:21a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns228":"http:\/\/flightsraw"}},"number":{"$":"987","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns228":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns228":"http:\/\/flightsraw"}},"@id":"id119","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns228:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns228":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"7:20p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns229":"http:\/\/flightsraw"}},"departureTime":{"$":"2:42p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns229":"http:\/\/flightsraw"}},"number":{"$":"963","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns229":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns229":"http:\/\/flightsraw"}},"@id":"id331","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns229:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns229":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:44a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns230":"http:\/\/flightsraw"}},"departureTime":{"$":"3:00a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns230":"http:\/\/flightsraw"}},"number":{"$":"363","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns230":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns230":"http:\/\/flightsraw"}},"@id":"id141","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns230:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns230":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:40a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns231":"http:\/\/flightsraw"}},"departureTime":{"$":"2:23a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns231":"http:\/\/flightsraw"}},"number":{"$":"774","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns231":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns231":"http:\/\/flightsraw"}},"@id":"id137","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns231:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns231":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:15a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns232":"http:\/\/flightsraw"}},"departureTime":{"$":"2:39a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns232":"http:\/\/flightsraw"}},"number":{"$":"355","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns232":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns232":"http:\/\/flightsraw"}},"@id":"id159","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns232:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns232":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"12:48p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns233":"http:\/\/flightsraw"}},"departureTime":{"$":"11:11a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns233":"http:\/\/flightsraw"}},"number":{"$":"610","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns233":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns233":"http:\/\/flightsraw"}},"@id":"id343","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns233:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns233":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:03a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns234":"http:\/\/flightsraw"}},"departureTime":{"$":"4:11a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns234":"http:\/\/flightsraw"}},"number":{"$":"771","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns234":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns234":"http:\/\/flightsraw"}},"@id":"id335","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns234:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns234":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:18a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns235":"http:\/\/flightsraw"}},"departureTime":{"$":"1:48a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns235":"http:\/\/flightsraw"}},"number":{"$":"388","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns235":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns235":"http:\/\/flightsraw"}},"@id":"id145","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns235:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns235":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"11:54a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns236":"http:\/\/flightsraw"}},"departureTime":{"$":"7:15a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns236":"http:\/\/flightsraw"}},"number":{"$":"920","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns236":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns236":"http:\/\/flightsraw"}},"@id":"id123","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns236:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns236":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"12:42a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns237":"http:\/\/flightsraw"}},"departureTime":{"$":"9:59p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns237":"http:\/\/flightsraw"}},"number":{"$":"589","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns237":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns237":"http:\/\/flightsraw"}},"@id":"id217","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns237:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns237":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:55p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns238":"http:\/\/flightsraw"}},"departureTime":{"$":"2:55p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns238":"http:\/\/flightsraw"}},"number":{"$":"648","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns238":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns238":"http:\/\/flightsraw"}},"@id":"id276","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns238:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns238":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:20a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns239":"http:\/\/flightsraw"}},"departureTime":{"$":"3:38a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns239":"http:\/\/flightsraw"}},"number":{"$":"476","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns239":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns239":"http:\/\/flightsraw"}},"@id":"id154","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns239:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns239":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:49a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns240":"http:\/\/flightsraw"}},"departureTime":{"$":"7:05a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns240":"http:\/\/flightsraw"}},"number":{"$":"910","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns240":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns240":"http:\/\/flightsraw"}},"@id":"id75","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns240:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns240":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:14a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns241":"http:\/\/flightsraw"}},"departureTime":{"$":"2:13a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns241":"http:\/\/flightsraw"}},"number":{"$":"804","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns241":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns241":"http:\/\/flightsraw"}},"@id":"id160","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns241:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns241":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:55a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns242":"http:\/\/flightsraw"}},"departureTime":{"$":"3:18a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns242":"http:\/\/flightsraw"}},"number":{"$":"646","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns242":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns242":"http:\/\/flightsraw"}},"@id":"id86","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns242:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns242":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:59a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns243":"http:\/\/flightsraw"}},"departureTime":{"$":"1:37a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns243":"http:\/\/flightsraw"}},"number":{"$":"602","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns243":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns243":"http:\/\/flightsraw"}},"@id":"id180","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns243:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns243":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:08p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns244":"http:\/\/flightsraw"}},"departureTime":{"$":"11:52a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns244":"http:\/\/flightsraw"}},"number":{"$":"716","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns244":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns244":"http:\/\/flightsraw"}},"@id":"id314","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns244:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns244":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:34a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns245":"http:\/\/flightsraw"}},"departureTime":{"$":"2:07a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns245":"http:\/\/flightsraw"}},"number":{"$":"231","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns245":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns245":"http:\/\/flightsraw"}},"@id":"id290","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns245:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns245":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:09a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns246":"http:\/\/flightsraw"}},"departureTime":{"$":"2:13a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns246":"http:\/\/flightsraw"}},"number":{"$":"576","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns246":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns246":"http:\/\/flightsraw"}},"@id":"id95","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns246:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns246":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:12p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns247":"http:\/\/flightsraw"}},"departureTime":{"$":"2:32p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns247":"http:\/\/flightsraw"}},"number":{"$":"378","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns247":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns247":"http:\/\/flightsraw"}},"@id":"id196","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns247:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns247":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:30p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns248":"http:\/\/flightsraw"}},"departureTime":{"$":"12:18p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns248":"http:\/\/flightsraw"}},"number":{"$":"484","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns248":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns248":"http:\/\/flightsraw"}},"@id":"id94","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns248:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns248":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:35p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns249":"http:\/\/flightsraw"}},"departureTime":{"$":"8:52p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns249":"http:\/\/flightsraw"}},"number":{"$":"408","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns249":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns249":"http:\/\/flightsraw"}},"@id":"id198","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns249:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns249":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:15a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns250":"http:\/\/flightsraw"}},"departureTime":{"$":"2:38a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns250":"http:\/\/flightsraw"}},"number":{"$":"627","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns250":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns250":"http:\/\/flightsraw"}},"@id":"id318","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns250:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns250":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"9:19p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns251":"http:\/\/flightsraw"}},"departureTime":{"$":"8:09p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns251":"http:\/\/flightsraw"}},"number":{"$":"547","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns251":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns251":"http:\/\/flightsraw"}},"@id":"id220","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns251:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns251":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:23a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns252":"http:\/\/flightsraw"}},"departureTime":{"$":"3:11a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns252":"http:\/\/flightsraw"}},"number":{"$":"318","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns252":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns252":"http:\/\/flightsraw"}},"@id":"id216","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns252:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns252":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:03p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns253":"http:\/\/flightsraw"}},"departureTime":{"$":"11:52a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns253":"http:\/\/flightsraw"}},"number":{"$":"544","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns253":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns253":"http:\/\/flightsraw"}},"@id":"id161","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns253:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns253":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:38a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns254":"http:\/\/flightsraw"}},"departureTime":{"$":"3:41a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns254":"http:\/\/flightsraw"}},"number":{"$":"454","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns254":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns254":"http:\/\/flightsraw"}},"@id":"id232","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns254:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns254":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:30a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns255":"http:\/\/flightsraw"}},"departureTime":{"$":"1:45a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns255":"http:\/\/flightsraw"}},"number":{"$":"538","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns255":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns255":"http:\/\/flightsraw"}},"@id":"id214","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns255:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns255":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:42a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns256":"http:\/\/flightsraw"}},"departureTime":{"$":"3:13a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns256":"http:\/\/flightsraw"}},"number":{"$":"598","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns256":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns256":"http:\/\/flightsraw"}},"@id":"id127","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns256:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns256":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:42a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns257":"http:\/\/flightsraw"}},"departureTime":{"$":"7:31a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns257":"http:\/\/flightsraw"}},"number":{"$":"436","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns257":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns257":"http:\/\/flightsraw"}},"@id":"id266","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns257:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns257":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:58a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns258":"http:\/\/flightsraw"}},"departureTime":{"$":"3:33a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns258":"http:\/\/flightsraw"}},"number":{"$":"536","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns258":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns258":"http:\/\/flightsraw"}},"@id":"id264","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns258:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns258":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:39p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns259":"http:\/\/flightsraw"}},"departureTime":{"$":"6:48p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns259":"http:\/\/flightsraw"}},"number":{"$":"897","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns259":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns259":"http:\/\/flightsraw"}},"@id":"id225","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns259:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns259":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:37a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns260":"http:\/\/flightsraw"}},"departureTime":{"$":"2:53a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns260":"http:\/\/flightsraw"}},"number":{"$":"246","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns260":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns260":"http:\/\/flightsraw"}},"@id":"id353","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns260:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns260":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"7:51a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns261":"http:\/\/flightsraw"}},"departureTime":{"$":"3:17a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns261":"http:\/\/flightsraw"}},"number":{"$":"654","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns261":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns261":"http:\/\/flightsraw"}},"@id":"id296","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns261:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns261":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:43a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns262":"http:\/\/flightsraw"}},"departureTime":{"$":"1:26a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns262":"http:\/\/flightsraw"}},"number":{"$":"673","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns262":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns262":"http:\/\/flightsraw"}},"@id":"id352","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns262:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns262":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:38a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns263":"http:\/\/flightsraw"}},"departureTime":{"$":"2:52a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns263":"http:\/\/flightsraw"}},"number":{"$":"244","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns263":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns263":"http:\/\/flightsraw"}},"@id":"id175","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns263:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns263":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"8:35p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns264":"http:\/\/flightsraw"}},"departureTime":{"$":"5:37p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns264":"http:\/\/flightsraw"}},"number":{"$":"369","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns264":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns264":"http:\/\/flightsraw"}},"@id":"id88","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns264:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns264":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:13a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns265":"http:\/\/flightsraw"}},"departureTime":{"$":"7:08a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns265":"http:\/\/flightsraw"}},"number":{"$":"771","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns265":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns265":"http:\/\/flightsraw"}},"@id":"id235","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns265:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns265":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"6:05a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns266":"http:\/\/flightsraw"}},"departureTime":{"$":"3:09a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns266":"http:\/\/flightsraw"}},"number":{"$":"361","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns266":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns266":"http:\/\/flightsraw"}},"@id":"id245","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns266:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns266":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:05a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns267":"http:\/\/flightsraw"}},"departureTime":{"$":"1:28a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns267":"http:\/\/flightsraw"}},"number":{"$":"371","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns267":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns267":"http:\/\/flightsraw"}},"@id":"id178","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns267:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns267":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"5:33p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns268":"http:\/\/flightsraw"}},"departureTime":{"$":"1:52p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns268":"http:\/\/flightsraw"}},"number":{"$":"715","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns268":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns268":"http:\/\/flightsraw"}},"@id":"id182","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns268:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns268":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"5:36p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns269":"http:\/\/flightsraw"}},"departureTime":{"$":"2:41p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns269":"http:\/\/flightsraw"}},"number":{"$":"714","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns269":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns269":"http:\/\/flightsraw"}},"@id":"id85","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns269:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns269":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"8:27p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns270":"http:\/\/flightsraw"}},"departureTime":{"$":"3:45p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns270":"http:\/\/flightsraw"}},"number":{"$":"365","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns270":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns270":"http:\/\/flightsraw"}},"@id":"id133","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns270:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns270":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:53p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns271":"http:\/\/flightsraw"}},"departureTime":{"$":"7:12p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns271":"http:\/\/flightsraw"}},"number":{"$":"576","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns271":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns271":"http:\/\/flightsraw"}},"@id":"id351","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns271:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns271":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:42a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns272":"http:\/\/flightsraw"}},"departureTime":{"$":"3:26a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns272":"http:\/\/flightsraw"}},"number":{"$":"616","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns272":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns272":"http:\/\/flightsraw"}},"@id":"id233","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns272:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns272":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:01p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns273":"http:\/\/flightsraw"}},"departureTime":{"$":"1:59p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns273":"http:\/\/flightsraw"}},"number":{"$":"892","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns273":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns273":"http:\/\/flightsraw"}},"@id":"id277","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns273:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns273":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:42p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns274":"http:\/\/flightsraw"}},"departureTime":{"$":"12:08p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns274":"http:\/\/flightsraw"}},"number":{"$":"302","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns274":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns274":"http:\/\/flightsraw"}},"@id":"id259","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns274:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns274":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:21a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns275":"http:\/\/flightsraw"}},"departureTime":{"$":"3:19a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns275":"http:\/\/flightsraw"}},"number":{"$":"509","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns275":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns275":"http:\/\/flightsraw"}},"@id":"id155","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns275:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns275":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:26a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns276":"http:\/\/flightsraw"}},"departureTime":{"$":"1:35a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns276":"http:\/\/flightsraw"}},"number":{"$":"970","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns276":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns276":"http:\/\/flightsraw"}},"@id":"id153","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns276:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns276":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"12:26p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns277":"http:\/\/flightsraw"}},"departureTime":{"$":"9:27a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns277":"http:\/\/flightsraw"}},"number":{"$":"870","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns277":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns277":"http:\/\/flightsraw"}},"@id":"id244","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns277:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns277":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:34a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns278":"http:\/\/flightsraw"}},"departureTime":{"$":"1:49a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns278":"http:\/\/flightsraw"}},"number":{"$":"994","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns278":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns278":"http:\/\/flightsraw"}},"@id":"id338","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns278:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns278":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:26a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns279":"http:\/\/flightsraw"}},"departureTime":{"$":"11:24p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns279":"http:\/\/flightsraw"}},"number":{"$":"733","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns279":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns279":"http:\/\/flightsraw"}},"@id":"id302","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns279:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns279":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:57a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns280":"http:\/\/flightsraw"}},"departureTime":{"$":"3:40a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns280":"http:\/\/flightsraw"}},"number":{"$":"370","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns280":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns280":"http:\/\/flightsraw"}},"@id":"id300","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns280:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns280":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:16a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns281":"http:\/\/flightsraw"}},"departureTime":{"$":"9:04a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns281":"http:\/\/flightsraw"}},"number":{"$":"267","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns281":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns281":"http:\/\/flightsraw"}},"@id":"id108","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns281:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns281":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:26a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns282":"http:\/\/flightsraw"}},"departureTime":{"$":"1:22a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns282":"http:\/\/flightsraw"}},"number":{"$":"724","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns282":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns282":"http:\/\/flightsraw"}},"@id":"id324","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns282:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns282":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:03a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns283":"http:\/\/flightsraw"}},"departureTime":{"$":"2:03a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns283":"http:\/\/flightsraw"}},"number":{"$":"842","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns283":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns283":"http:\/\/flightsraw"}},"@id":"id271","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns283:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns283":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:03a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns284":"http:\/\/flightsraw"}},"departureTime":{"$":"1:49a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns284":"http:\/\/flightsraw"}},"number":{"$":"630","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns284":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns284":"http:\/\/flightsraw"}},"@id":"id221","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns284:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns284":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:42a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns285":"http:\/\/flightsraw"}},"departureTime":{"$":"1:52a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns285":"http:\/\/flightsraw"}},"number":{"$":"565","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns285":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns285":"http:\/\/flightsraw"}},"@id":"id104","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns285:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns285":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"7:36p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns286":"http:\/\/flightsraw"}},"departureTime":{"$":"6:01p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns286":"http:\/\/flightsraw"}},"number":{"$":"933","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns286":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns286":"http:\/\/flightsraw"}},"@id":"id293","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns286:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns286":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"12:20a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns287":"http:\/\/flightsraw"}},"departureTime":{"$":"9:16p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns287":"http:\/\/flightsraw"}},"number":{"$":"348","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns287":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns287":"http:\/\/flightsraw"}},"@id":"id242","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns287:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns287":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"9:37p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns288":"http:\/\/flightsraw"}},"departureTime":{"$":"5:34p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns288":"http:\/\/flightsraw"}},"number":{"$":"356","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns288":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns288":"http:\/\/flightsraw"}},"@id":"id305","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns288:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns288":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"7:23p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns289":"http:\/\/flightsraw"}},"departureTime":{"$":"4:00p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns289":"http:\/\/flightsraw"}},"number":{"$":"963","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns289":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns289":"http:\/\/flightsraw"}},"@id":"id146","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns289:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns289":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:39a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns290":"http:\/\/flightsraw"}},"departureTime":{"$":"11:25p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns290":"http:\/\/flightsraw"}},"number":{"$":"919","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns290":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns290":"http:\/\/flightsraw"}},"@id":"id92","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns290:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns290":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:15a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns291":"http:\/\/flightsraw"}},"departureTime":{"$":"2:06a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns291":"http:\/\/flightsraw"}},"number":{"$":"708","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns291":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns291":"http:\/\/flightsraw"}},"@id":"id164","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns291:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns291":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"8:35p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns292":"http:\/\/flightsraw"}},"departureTime":{"$":"6:18p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns292":"http:\/\/flightsraw"}},"number":{"$":"823","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns292":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns292":"http:\/\/flightsraw"}},"@id":"id118","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns292:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns292":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:59a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns293":"http:\/\/flightsraw"}},"departureTime":{"$":"2:45a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns293":"http:\/\/flightsraw"}},"number":{"$":"563","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns293":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns293":"http:\/\/flightsraw"}},"@id":"id281","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns293:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns293":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:45a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns294":"http:\/\/flightsraw"}},"departureTime":{"$":"3:31a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns294":"http:\/\/flightsraw"}},"number":{"$":"883","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns294":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns294":"http:\/\/flightsraw"}},"@id":"id121","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns294:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns294":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:46a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns295":"http:\/\/flightsraw"}},"departureTime":{"$":"2:35a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns295":"http:\/\/flightsraw"}},"number":{"$":"210","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns295":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns295":"http:\/\/flightsraw"}},"@id":"id205","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns295:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns295":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:11p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns296":"http:\/\/flightsraw"}},"departureTime":{"$":"12:41p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns296":"http:\/\/flightsraw"}},"number":{"$":"763","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns296":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns296":"http:\/\/flightsraw"}},"@id":"id215","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns296:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns296":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"9:39p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns297":"http:\/\/flightsraw"}},"departureTime":{"$":"6:13p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns297":"http:\/\/flightsraw"}},"number":{"$":"689","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns297":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns297":"http:\/\/flightsraw"}},"@id":"id156","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns297:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns297":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"5:39a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns298":"http:\/\/flightsraw"}},"departureTime":{"$":"1:46a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns298":"http:\/\/flightsraw"}},"number":{"$":"476","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns298":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns298":"http:\/\/flightsraw"}},"@id":"id111","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns298:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns298":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:38a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns299":"http:\/\/flightsraw"}},"departureTime":{"$":"1:22a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns299":"http:\/\/flightsraw"}},"number":{"$":"370","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns299":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns299":"http:\/\/flightsraw"}},"@id":"id292","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns299:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns299":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:42a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns300":"http:\/\/flightsraw"}},"departureTime":{"$":"1:37a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns300":"http:\/\/flightsraw"}},"number":{"$":"581","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns300":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns300":"http:\/\/flightsraw"}},"@id":"id257","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns300:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns300":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:09a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns301":"http:\/\/flightsraw"}},"departureTime":{"$":"3:10a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns301":"http:\/\/flightsraw"}},"number":{"$":"613","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns301":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns301":"http:\/\/flightsraw"}},"@id":"id91","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns301:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns301":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:42a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns302":"http:\/\/flightsraw"}},"departureTime":{"$":"3:01a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns302":"http:\/\/flightsraw"}},"number":{"$":"699","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns302":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns302":"http:\/\/flightsraw"}},"@id":"id219","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns302:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns302":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:06a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns303":"http:\/\/flightsraw"}},"departureTime":{"$":"3:14a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns303":"http:\/\/flightsraw"}},"number":{"$":"732","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns303":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns303":"http:\/\/flightsraw"}},"@id":"id167","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns303:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns303":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:29a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns304":"http:\/\/flightsraw"}},"departureTime":{"$":"2:35a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns304":"http:\/\/flightsraw"}},"number":{"$":"629","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns304":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns304":"http:\/\/flightsraw"}},"@id":"id260","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns304:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns304":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"11:05a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns305":"http:\/\/flightsraw"}},"departureTime":{"$":"8:15a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns305":"http:\/\/flightsraw"}},"number":{"$":"680","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns305":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns305":"http:\/\/flightsraw"}},"@id":"id83","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns305:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns305":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"12:50a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns306":"http:\/\/flightsraw"}},"departureTime":{"$":"10:01p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns306":"http:\/\/flightsraw"}},"number":{"$":"499","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns306":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns306":"http:\/\/flightsraw"}},"@id":"id348","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns306:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns306":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"7:15a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns307":"http:\/\/flightsraw"}},"departureTime":{"$":"3:55a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns307":"http:\/\/flightsraw"}},"number":{"$":"862","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns307":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns307":"http:\/\/flightsraw"}},"@id":"id313","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns307:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns307":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:29a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns308":"http:\/\/flightsraw"}},"departureTime":{"$":"11:03p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns308":"http:\/\/flightsraw"}},"number":{"$":"223","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns308":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns308":"http:\/\/flightsraw"}},"@id":"id261","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns308:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns308":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:35a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns309":"http:\/\/flightsraw"}},"departureTime":{"$":"1:47a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns309":"http:\/\/flightsraw"}},"number":{"$":"671","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns309":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns309":"http:\/\/flightsraw"}},"@id":"id340","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns309:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns309":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:43a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns310":"http:\/\/flightsraw"}},"departureTime":{"$":"1:17a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns310":"http:\/\/flightsraw"}},"number":{"$":"945","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns310":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns310":"http:\/\/flightsraw"}},"@id":"id327","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns310:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns310":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:52a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns311":"http:\/\/flightsraw"}},"departureTime":{"$":"11:36p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns311":"http:\/\/flightsraw"}},"number":{"$":"937","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns311":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns311":"http:\/\/flightsraw"}},"@id":"id317","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns311:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns311":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:09p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns312":"http:\/\/flightsraw"}},"departureTime":{"$":"6:15p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns312":"http:\/\/flightsraw"}},"number":{"$":"886","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns312":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns312":"http:\/\/flightsraw"}},"@id":"id112","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns312:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns312":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:58p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns313":"http:\/\/flightsraw"}},"departureTime":{"$":"11:13a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns313":"http:\/\/flightsraw"}},"number":{"$":"639","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns313":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns313":"http:\/\/flightsraw"}},"@id":"id120","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns313:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns313":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"11:17a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns314":"http:\/\/flightsraw"}},"departureTime":{"$":"7:11a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns314":"http:\/\/flightsraw"}},"number":{"$":"422","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns314":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns314":"http:\/\/flightsraw"}},"@id":"id308","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns314:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns314":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"11:17p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns315":"http:\/\/flightsraw"}},"departureTime":{"$":"9:34p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns315":"http:\/\/flightsraw"}},"number":{"$":"294","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns315":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns315":"http:\/\/flightsraw"}},"@id":"id229","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns315:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns315":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:06a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns316":"http:\/\/flightsraw"}},"departureTime":{"$":"3:48a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns316":"http:\/\/flightsraw"}},"number":{"$":"978","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns316":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns316":"http:\/\/flightsraw"}},"@id":"id163","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns316:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns316":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"11:44p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns317":"http:\/\/flightsraw"}},"departureTime":{"$":"10:10p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns317":"http:\/\/flightsraw"}},"number":{"$":"825","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns317":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns317":"http:\/\/flightsraw"}},"@id":"id344","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns317:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns317":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:37a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns318":"http:\/\/flightsraw"}},"departureTime":{"$":"3:52a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns318":"http:\/\/flightsraw"}},"number":{"$":"221","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns318":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns318":"http:\/\/flightsraw"}},"@id":"id294","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns318:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns318":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:47a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns319":"http:\/\/flightsraw"}},"departureTime":{"$":"3:09a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns319":"http:\/\/flightsraw"}},"number":{"$":"429","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns319":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns319":"http:\/\/flightsraw"}},"@id":"id203","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns319:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns319":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:54a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns320":"http:\/\/flightsraw"}},"departureTime":{"$":"1:26a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns320":"http:\/\/flightsraw"}},"number":{"$":"680","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns320":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns320":"http:\/\/flightsraw"}},"@id":"id84","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns320:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns320":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:50a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns321":"http:\/\/flightsraw"}},"departureTime":{"$":"1:24a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns321":"http:\/\/flightsraw"}},"number":{"$":"743","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns321":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns321":"http:\/\/flightsraw"}},"@id":"id76","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns321:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns321":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:15p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns322":"http:\/\/flightsraw"}},"departureTime":{"$":"9:31a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns322":"http:\/\/flightsraw"}},"number":{"$":"339","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns322":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns322":"http:\/\/flightsraw"}},"@id":"id323","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns322:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns322":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:11p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns323":"http:\/\/flightsraw"}},"departureTime":{"$":"12:49p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns323":"http:\/\/flightsraw"}},"number":{"$":"340","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns323":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns323":"http:\/\/flightsraw"}},"@id":"id285","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns323:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns323":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:43p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns324":"http:\/\/flightsraw"}},"departureTime":{"$":"9:59a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns324":"http:\/\/flightsraw"}},"number":{"$":"633","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns324":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns324":"http:\/\/flightsraw"}},"@id":"id322","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns324:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns324":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:56a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns325":"http:\/\/flightsraw"}},"departureTime":{"$":"2:03a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns325":"http:\/\/flightsraw"}},"number":{"$":"759","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns325":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns325":"http:\/\/flightsraw"}},"@id":"id150","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns325:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns325":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:51a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns326":"http:\/\/flightsraw"}},"departureTime":{"$":"2:14a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns326":"http:\/\/flightsraw"}},"number":{"$":"833","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns326":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns326":"http:\/\/flightsraw"}},"@id":"id192","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns326:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns326":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:50a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns327":"http:\/\/flightsraw"}},"departureTime":{"$":"3:53a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns327":"http:\/\/flightsraw"}},"number":{"$":"311","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns327":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns327":"http:\/\/flightsraw"}},"@id":"id101","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns327:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns327":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:50a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns328":"http:\/\/flightsraw"}},"departureTime":{"$":"2:48a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns328":"http:\/\/flightsraw"}},"number":{"$":"486","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns328":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns328":"http:\/\/flightsraw"}},"@id":"id116","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns328:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns328":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:02p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns329":"http:\/\/flightsraw"}},"departureTime":{"$":"9:30a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns329":"http:\/\/flightsraw"}},"number":{"$":"813","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns329":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns329":"http:\/\/flightsraw"}},"@id":"id210","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns329:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns329":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:48a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns330":"http:\/\/flightsraw"}},"departureTime":{"$":"2:49a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns330":"http:\/\/flightsraw"}},"number":{"$":"796","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns330":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns330":"http:\/\/flightsraw"}},"@id":"id321","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns330:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns330":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:08a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns331":"http:\/\/flightsraw"}},"departureTime":{"$":"2:29a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns331":"http:\/\/flightsraw"}},"number":{"$":"449","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns331":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns331":"http:\/\/flightsraw"}},"@id":"id272","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns331:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns331":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:18a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns332":"http:\/\/flightsraw"}},"departureTime":{"$":"2:43a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns332":"http:\/\/flightsraw"}},"number":{"$":"329","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns332":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns332":"http:\/\/flightsraw"}},"@id":"id143","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns332:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns332":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:48a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns333":"http:\/\/flightsraw"}},"departureTime":{"$":"2:40a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns333":"http:\/\/flightsraw"}},"number":{"$":"675","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns333":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns333":"http:\/\/flightsraw"}},"@id":"id224","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns333:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns333":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"9:01p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns334":"http:\/\/flightsraw"}},"departureTime":{"$":"7:20p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns334":"http:\/\/flightsraw"}},"number":{"$":"447","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns334":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns334":"http:\/\/flightsraw"}},"@id":"id138","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns334:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns334":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:48a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns335":"http:\/\/flightsraw"}},"departureTime":{"$":"4:06a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns335":"http:\/\/flightsraw"}},"number":{"$":"503","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns335":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns335":"http:\/\/flightsraw"}},"@id":"id124","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns335:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns335":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:43a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns336":"http:\/\/flightsraw"}},"departureTime":{"$":"1:01a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns336":"http:\/\/flightsraw"}},"number":{"$":"688","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns336":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns336":"http:\/\/flightsraw"}},"@id":"id130","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns336:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns336":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:56a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns337":"http:\/\/flightsraw"}},"departureTime":{"$":"7:43a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns337":"http:\/\/flightsraw"}},"number":{"$":"294","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns337":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns337":"http:\/\/flightsraw"}},"@id":"id311","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns337:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns337":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:19p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns338":"http:\/\/flightsraw"}},"departureTime":{"$":"11:54a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns338":"http:\/\/flightsraw"}},"number":{"$":"900","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns338":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns338":"http:\/\/flightsraw"}},"@id":"id227","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns338:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns338":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:13a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns339":"http:\/\/flightsraw"}},"departureTime":{"$":"11:08p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns339":"http:\/\/flightsraw"}},"number":{"$":"542","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns339":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns339":"http:\/\/flightsraw"}},"@id":"id241","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns339:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns339":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:41a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns340":"http:\/\/flightsraw"}},"departureTime":{"$":"4:02a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns340":"http:\/\/flightsraw"}},"number":{"$":"461","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns340":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns340":"http:\/\/flightsraw"}},"@id":"id184","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns340:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns340":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:32a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns341":"http:\/\/flightsraw"}},"departureTime":{"$":"12:27a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns341":"http:\/\/flightsraw"}},"number":{"$":"646","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns341":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns341":"http:\/\/flightsraw"}},"@id":"id275","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns341:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns341":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"11:53a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns342":"http:\/\/flightsraw"}},"departureTime":{"$":"7:13a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns342":"http:\/\/flightsraw"}},"number":{"$":"409","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns342":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns342":"http:\/\/flightsraw"}},"@id":"id332","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns342:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns342":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:01a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns343":"http:\/\/flightsraw"}},"departureTime":{"$":"3:30a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns343":"http:\/\/flightsraw"}},"number":{"$":"295","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns343":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns343":"http:\/\/flightsraw"}},"@id":"id243","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns343:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns343":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:00a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns344":"http:\/\/flightsraw"}},"departureTime":{"$":"3:17a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns344":"http:\/\/flightsraw"}},"number":{"$":"298","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns344":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns344":"http:\/\/flightsraw"}},"@id":"id334","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns344:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns344":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:41a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns345":"http:\/\/flightsraw"}},"departureTime":{"$":"2:32a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns345":"http:\/\/flightsraw"}},"number":{"$":"946","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns345":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns345":"http:\/\/flightsraw"}},"@id":"id98","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns345:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns345":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:05a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns346":"http:\/\/flightsraw"}},"departureTime":{"$":"3:08a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns346":"http:\/\/flightsraw"}},"number":{"$":"806","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns346":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns346":"http:\/\/flightsraw"}},"@id":"id282","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns346:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns346":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:16p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns347":"http:\/\/flightsraw"}},"departureTime":{"$":"10:53a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns347":"http:\/\/flightsraw"}},"number":{"$":"405","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns347":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns347":"http:\/\/flightsraw"}},"@id":"id213","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns347:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns347":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:50p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns348":"http:\/\/flightsraw"}},"departureTime":{"$":"10:45a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns348":"http:\/\/flightsraw"}},"number":{"$":"876","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns348":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns348":"http:\/\/flightsraw"}},"@id":"id270","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns348:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns348":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"6:59p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns349":"http:\/\/flightsraw"}},"departureTime":{"$":"4:16p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns349":"http:\/\/flightsraw"}},"number":{"$":"633","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns349":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns349":"http:\/\/flightsraw"}},"@id":"id255","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns349:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns349":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:27p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns350":"http:\/\/flightsraw"}},"departureTime":{"$":"8:44p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns350":"http:\/\/flightsraw"}},"number":{"$":"852","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns350":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns350":"http:\/\/flightsraw"}},"@id":"id142","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns350:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns350":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:39a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns351":"http:\/\/flightsraw"}},"departureTime":{"$":"4:05a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns351":"http:\/\/flightsraw"}},"number":{"$":"624","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns351":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns351":"http:\/\/flightsraw"}},"@id":"id330","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns351:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns351":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"8:19a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns352":"http:\/\/flightsraw"}},"departureTime":{"$":"4:16a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns352":"http:\/\/flightsraw"}},"number":{"$":"775","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns352":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns352":"http:\/\/flightsraw"}},"@id":"id307","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns352:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns352":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:39a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns353":"http:\/\/flightsraw"}},"departureTime":{"$":"9:01p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns353":"http:\/\/flightsraw"}},"number":{"$":"757","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns353":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns353":"http:\/\/flightsraw"}},"@id":"id170","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns353:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns353":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:36a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns354":"http:\/\/flightsraw"}},"departureTime":{"$":"1:03a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns354":"http:\/\/flightsraw"}},"number":{"$":"939","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns354":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns354":"http:\/\/flightsraw"}},"@id":"id258","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns354:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns354":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:09a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns355":"http:\/\/flightsraw"}},"departureTime":{"$":"2:42a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns355":"http:\/\/flightsraw"}},"number":{"$":"530","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns355":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns355":"http:\/\/flightsraw"}},"@id":"id239","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns355:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns355":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:43a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns356":"http:\/\/flightsraw"}},"departureTime":{"$":"2:09a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns356":"http:\/\/flightsraw"}},"number":{"$":"587","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns356":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns356":"http:\/\/flightsraw"}},"@id":"id346","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns356:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns356":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:38a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns357":"http:\/\/flightsraw"}},"departureTime":{"$":"2:12a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns357":"http:\/\/flightsraw"}},"number":{"$":"842","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns357":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns357":"http:\/\/flightsraw"}},"@id":"id202","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns357:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns357":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:14a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns358":"http:\/\/flightsraw"}},"departureTime":{"$":"3:30a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns358":"http:\/\/flightsraw"}},"number":{"$":"293","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns358":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns358":"http:\/\/flightsraw"}},"@id":"id109","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns358:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns358":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:52p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns359":"http:\/\/flightsraw"}},"departureTime":{"$":"2:28p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns359":"http:\/\/flightsraw"}},"number":{"$":"600","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns359":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns359":"http:\/\/flightsraw"}},"@id":"id228","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns359:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns359":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"8:50p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns360":"http:\/\/flightsraw"}},"departureTime":{"$":"6:07p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns360":"http:\/\/flightsraw"}},"number":{"$":"313","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns360":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns360":"http:\/\/flightsraw"}},"@id":"id105","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns360:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns360":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:28a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns361":"http:\/\/flightsraw"}},"departureTime":{"$":"3:34a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns361":"http:\/\/flightsraw"}},"number":{"$":"904","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns361":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns361":"http:\/\/flightsraw"}},"@id":"id186","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns361:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns361":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:27a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns362":"http:\/\/flightsraw"}},"departureTime":{"$":"2:06a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns362":"http:\/\/flightsraw"}},"number":{"$":"820","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns362":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns362":"http:\/\/flightsraw"}},"@id":"id185","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns362:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns362":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:37a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns363":"http:\/\/flightsraw"}},"departureTime":{"$":"3:34a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns363":"http:\/\/flightsraw"}},"number":{"$":"255","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns363":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns363":"http:\/\/flightsraw"}},"@id":"id208","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns363:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns363":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:29a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns364":"http:\/\/flightsraw"}},"departureTime":{"$":"4:19a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns364":"http:\/\/flightsraw"}},"number":{"$":"260","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns364":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns364":"http:\/\/flightsraw"}},"@id":"id209","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns364:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns364":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"6:01a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns365":"http:\/\/flightsraw"}},"departureTime":{"$":"4:15a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns365":"http:\/\/flightsraw"}},"number":{"$":"840","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns365":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns365":"http:\/\/flightsraw"}},"@id":"id230","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns365:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns365":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:49a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns366":"http:\/\/flightsraw"}},"departureTime":{"$":"2:36a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns366":"http:\/\/flightsraw"}},"number":{"$":"680","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns366":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns366":"http:\/\/flightsraw"}},"@id":"id195","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns366:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns366":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:35a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns367":"http:\/\/flightsraw"}},"departureTime":{"$":"2:07a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns367":"http:\/\/flightsraw"}},"number":{"$":"939","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns367":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns367":"http:\/\/flightsraw"}},"@id":"id171","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns367:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns367":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:44a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns368":"http:\/\/flightsraw"}},"departureTime":{"$":"4:04a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns368":"http:\/\/flightsraw"}},"number":{"$":"504","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns368":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns368":"http:\/\/flightsraw"}},"@id":"id254","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns368:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns368":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:28p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns369":"http:\/\/flightsraw"}},"departureTime":{"$":"11:48a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns369":"http:\/\/flightsraw"}},"number":{"$":"465","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns369":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns369":"http:\/\/flightsraw"}},"@id":"id129","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns369:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns369":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:25a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns370":"http:\/\/flightsraw"}},"departureTime":{"$":"3:11a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns370":"http:\/\/flightsraw"}},"number":{"$":"270","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns370":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns370":"http:\/\/flightsraw"}},"@id":"id288","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns370:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns370":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:51a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns371":"http:\/\/flightsraw"}},"departureTime":{"$":"1:21a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns371":"http:\/\/flightsraw"}},"number":{"$":"253","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns371":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns371":"http:\/\/flightsraw"}},"@id":"id189","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns371:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns371":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:38a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns372":"http:\/\/flightsraw"}},"departureTime":{"$":"2:00a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns372":"http:\/\/flightsraw"}},"number":{"$":"291","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns372":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns372":"http:\/\/flightsraw"}},"@id":"id97","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns372:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns372":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:54a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns373":"http:\/\/flightsraw"}},"departureTime":{"$":"2:48a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns373":"http:\/\/flightsraw"}},"number":{"$":"827","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns373":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns373":"http:\/\/flightsraw"}},"@id":"id113","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns373:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns373":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:20a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns374":"http:\/\/flightsraw"}},"departureTime":{"$":"1:08a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns374":"http:\/\/flightsraw"}},"number":{"$":"573","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns374":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns374":"http:\/\/flightsraw"}},"@id":"id117","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns374:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns374":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:07a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns375":"http:\/\/flightsraw"}},"departureTime":{"$":"1:10a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns375":"http:\/\/flightsraw"}},"number":{"$":"404","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns375":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns375":"http:\/\/flightsraw"}},"@id":"id234","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns375:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns375":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:38a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns376":"http:\/\/flightsraw"}},"departureTime":{"$":"1:34a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns376":"http:\/\/flightsraw"}},"number":{"$":"706","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns376":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns376":"http:\/\/flightsraw"}},"@id":"id207","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns376:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns376":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"6:18p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns377":"http:\/\/flightsraw"}},"departureTime":{"$":"1:35p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns377":"http:\/\/flightsraw"}},"number":{"$":"217","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns377":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns377":"http:\/\/flightsraw"}},"@id":"id329","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns377:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns377":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:32a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns378":"http:\/\/flightsraw"}},"departureTime":{"$":"2:51a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns378":"http:\/\/flightsraw"}},"number":{"$":"490","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns378":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns378":"http:\/\/flightsraw"}},"@id":"id298","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns378:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns378":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:35a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns379":"http:\/\/flightsraw"}},"departureTime":{"$":"6:50a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns379":"http:\/\/flightsraw"}},"number":{"$":"733","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns379":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns379":"http:\/\/flightsraw"}},"@id":"id226","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns379:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns379":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:54a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns380":"http:\/\/flightsraw"}},"departureTime":{"$":"2:40a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns380":"http:\/\/flightsraw"}},"number":{"$":"793","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns380":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns380":"http:\/\/flightsraw"}},"@id":"id115","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns380:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns380":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:51p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns381":"http:\/\/flightsraw"}},"departureTime":{"$":"12:37p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns381":"http:\/\/flightsraw"}},"number":{"$":"683","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns381":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns381":"http:\/\/flightsraw"}},"@id":"id90","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns381:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns381":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"11:00p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns382":"http:\/\/flightsraw"}},"departureTime":{"$":"9:21p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns382":"http:\/\/flightsraw"}},"number":{"$":"620","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns382":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns382":"http:\/\/flightsraw"}},"@id":"id339","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns382:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns382":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"11:13a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns383":"http:\/\/flightsraw"}},"departureTime":{"$":"8:39a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns383":"http:\/\/flightsraw"}},"number":{"$":"330","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns383":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns383":"http:\/\/flightsraw"}},"@id":"id187","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns383:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns383":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:02a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns384":"http:\/\/flightsraw"}},"departureTime":{"$":"4:10a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns384":"http:\/\/flightsraw"}},"number":{"$":"402","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns384":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns384":"http:\/\/flightsraw"}},"@id":"id237","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns384:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns384":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:01a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns385":"http:\/\/flightsraw"}},"departureTime":{"$":"3:51a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns385":"http:\/\/flightsraw"}},"number":{"$":"740","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns385":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns385":"http:\/\/flightsraw"}},"@id":"id151","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns385:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns385":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:45a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns386":"http:\/\/flightsraw"}},"departureTime":{"$":"10:17p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns386":"http:\/\/flightsraw"}},"number":{"$":"742","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns386":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns386":"http:\/\/flightsraw"}},"@id":"id284","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns386:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns386":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"12:41p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns387":"http:\/\/flightsraw"}},"departureTime":{"$":"10:28a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns387":"http:\/\/flightsraw"}},"number":{"$":"394","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns387":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns387":"http:\/\/flightsraw"}},"@id":"id93","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns387:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns387":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"12:11p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns388":"http:\/\/flightsraw"}},"departureTime":{"$":"10:07a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns388":"http:\/\/flightsraw"}},"number":{"$":"789","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns388":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns388":"http:\/\/flightsraw"}},"@id":"id274","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns388:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns388":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:05a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns389":"http:\/\/flightsraw"}},"departureTime":{"$":"1:18a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns389":"http:\/\/flightsraw"}},"number":{"$":"295","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns389":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns389":"http:\/\/flightsraw"}},"@id":"id179","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns389:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns389":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:35a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns390":"http:\/\/flightsraw"}},"departureTime":{"$":"1:29a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns390":"http:\/\/flightsraw"}},"number":{"$":"888","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns390":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns390":"http:\/\/flightsraw"}},"@id":"id173","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns390:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns390":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:13a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns391":"http:\/\/flightsraw"}},"departureTime":{"$":"1:18a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns391":"http:\/\/flightsraw"}},"number":{"$":"859","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns391":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns391":"http:\/\/flightsraw"}},"@id":"id110","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns391:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns391":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"9:45p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns392":"http:\/\/flightsraw"}},"departureTime":{"$":"6:49p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns392":"http:\/\/flightsraw"}},"number":{"$":"982","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns392":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns392":"http:\/\/flightsraw"}},"@id":"id350","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns392:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns392":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:44a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns393":"http:\/\/flightsraw"}},"departureTime":{"$":"1:30a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns393":"http:\/\/flightsraw"}},"number":{"$":"406","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns393":"http:\/\/flightsraw"}},"carrier":{"@href":"#id69","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns393":"http:\/\/flightsraw"}},"@id":"id103","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns393:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns393":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:03p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns394":"http:\/\/flightsraw"}},"departureTime":{"$":"12:20p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns394":"http:\/\/flightsraw"}},"number":{"$":"433","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns394":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns394":"http:\/\/flightsraw"}},"@id":"id320","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns394:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns394":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:11a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns395":"http:\/\/flightsraw"}},"departureTime":{"$":"3:17a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns395":"http:\/\/flightsraw"}},"number":{"$":"766","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns395":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns395":"http:\/\/flightsraw"}},"@id":"id236","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns395:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns395":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:30p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns396":"http:\/\/flightsraw"}},"departureTime":{"$":"12:35p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns396":"http:\/\/flightsraw"}},"number":{"$":"637","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns396":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns396":"http:\/\/flightsraw"}},"@id":"id304","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns396:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns396":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:01a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns397":"http:\/\/flightsraw"}},"departureTime":{"$":"4:07a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns397":"http:\/\/flightsraw"}},"number":{"$":"238","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns397":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns397":"http:\/\/flightsraw"}},"@id":"id280","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns397:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns397":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:51a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns398":"http:\/\/flightsraw"}},"departureTime":{"$":"2:57a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns398":"http:\/\/flightsraw"}},"number":{"$":"911","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns398":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns398":"http:\/\/flightsraw"}},"@id":"id190","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns398:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns398":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"2:54a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns399":"http:\/\/flightsraw"}},"departureTime":{"$":"3:52a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns399":"http:\/\/flightsraw"}},"number":{"$":"436","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns399":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns399":"http:\/\/flightsraw"}},"@id":"id87","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns399:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns399":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:17a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns400":"http:\/\/flightsraw"}},"departureTime":{"$":"12:20a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns400":"http:\/\/flightsraw"}},"number":{"$":"893","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns400":"http:\/\/flightsraw"}},"carrier":{"@href":"#id66","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns400":"http:\/\/flightsraw"}},"@id":"id248","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns400:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns400":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"6:23a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns401":"http:\/\/flightsraw"}},"departureTime":{"$":"3:49a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns401":"http:\/\/flightsraw"}},"number":{"$":"989","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns401":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns401":"http:\/\/flightsraw"}},"@id":"id218","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns401:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns401":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:26a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns402":"http:\/\/flightsraw"}},"departureTime":{"$":"2:16a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns402":"http:\/\/flightsraw"}},"number":{"$":"896","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns402":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns402":"http:\/\/flightsraw"}},"@id":"id283","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns402:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns402":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"10:34a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns403":"http:\/\/flightsraw"}},"departureTime":{"$":"7:21a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns403":"http:\/\/flightsraw"}},"number":{"$":"564","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns403":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns403":"http:\/\/flightsraw"}},"@id":"id268","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns403:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns403":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"4:01p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns404":"http:\/\/flightsraw"}},"departureTime":{"$":"2:24p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns404":"http:\/\/flightsraw"}},"number":{"$":"705","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns404":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns404":"http:\/\/flightsraw"}},"@id":"id140","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns404:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns404":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:47a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns405":"http:\/\/flightsraw"}},"departureTime":{"$":"1:53a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns405":"http:\/\/flightsraw"}},"number":{"$":"335","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns405":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns405":"http:\/\/flightsraw"}},"@id":"id73","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns405:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns405":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:02a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns406":"http:\/\/flightsraw"}},"departureTime":{"$":"3:56a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns406":"http:\/\/flightsraw"}},"number":{"$":"790","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns406":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns406":"http:\/\/flightsraw"}},"@id":"id246","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns406:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns406":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:59a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns407":"http:\/\/flightsraw"}},"departureTime":{"$":"3:16a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns407":"http:\/\/flightsraw"}},"number":{"$":"293","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns407":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns407":"http:\/\/flightsraw"}},"@id":"id337","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns407:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns407":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"6:06a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns408":"http:\/\/flightsraw"}},"departureTime":{"$":"2:58a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns408":"http:\/\/flightsraw"}},"number":{"$":"787","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns408":"http:\/\/flightsraw"}},"carrier":{"@href":"#id65","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns408":"http:\/\/flightsraw"}},"@id":"id269","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns408:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns408":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:46a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns409":"http:\/\/flightsraw"}},"departureTime":{"$":"2:59a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns409":"http:\/\/flightsraw"}},"number":{"$":"764","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns409":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns409":"http:\/\/flightsraw"}},"@id":"id139","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns409:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns409":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"3:03a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns410":"http:\/\/flightsraw"}},"departureTime":{"$":"4:19a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns410":"http:\/\/flightsraw"}},"number":{"$":"618","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns410":"http:\/\/flightsraw"}},"carrier":{"@href":"#id68","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns410":"http:\/\/flightsraw"}},"@id":"id240","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns410:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns410":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"8:02p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns411":"http:\/\/flightsraw"}},"departureTime":{"$":"5:11p","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns411":"http:\/\/flightsraw"}},"number":{"$":"839","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns411":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns411":"http:\/\/flightsraw"}},"@id":"id193","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns411:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns411":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:58a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns412":"http:\/\/flightsraw"}},"departureTime":{"$":"12:28a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns412":"http:\/\/flightsraw"}},"number":{"$":"811","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns412":"http:\/\/flightsraw"}},"carrier":{"@href":"#id70","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns412":"http:\/\/flightsraw"}},"@id":"id341","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns412:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns412":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"11:03a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns413":"http:\/\/flightsraw"}},"departureTime":{"$":"8:07a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns413":"http:\/\/flightsraw"}},"number":{"$":"681","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns413":"http:\/\/flightsraw"}},"carrier":{"@href":"#id72","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns413":"http:\/\/flightsraw"}},"@id":"id82","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns413:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns413":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"11:40a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns414":"http:\/\/flightsraw"}},"departureTime":{"$":"7:50a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns414":"http:\/\/flightsraw"}},"number":{"$":"537","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns414":"http:\/\/flightsraw"}},"carrier":{"@href":"#id71","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns414":"http:\/\/flightsraw"}},"@id":"id114","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns414:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns414":"http:\/\/flightsraw"}},{"arrivalTime":{"$":"1:47a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns415":"http:\/\/flightsraw"}},"departureTime":{"$":"2:43a","@xsi:type":"xsd:string","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns415":"http:\/\/flightsraw"}},"number":{"$":"229","@xsi:type":"xsd:int","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns415":"http:\/\/flightsraw"}},"carrier":{"@href":"#id67","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns415":"http:\/\/flightsraw"}},"@id":"id78","@soapenc:root":"0","@soapenv:encodingStyle":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","@xsi:type":"ns415:FlightBean","@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/","soapenc":"http:\/\/schemas.xmlsoap.org\/soap\/encoding\/","ns415":"http:\/\/flightsraw"}}],"@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/"}},"@xmlns":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance","xsd":"http:\/\/www.w3.org\/2001\/XMLSchema","soapenv":"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/"}}}
diff --git a/1.9.10/samples/numbers-fp-4k.jsn b/1.9.10/samples/numbers-fp-4k.jsn new file mode 100644 index 0000000..617542f --- /dev/null +++ b/1.9.10/samples/numbers-fp-4k.jsn
@@ -0,0 +1,6 @@ +[[-4.0517697E24,-4.6834714E9,2.3016275E-5,429379.38,4.1035245E-35,-3.0304818E-8,-6.054423E8,1.2708386E-15,-1.715156E27,-277.43622,2.0346915E-38,-0.01638545,-1.2856552E32,-4.69584413E11,7.477022E-10,1.07893673E12,-3.5855834,103206.47,0.0017756876,-1.61412621E9,-54.93887,-139561.4,-2.378658E22,-3.158278E-35,5.233813E-31,1.76682848E15],[1.0974016E37,5.3739964E-11,-4.9716053E-33,-1.66076738E14,-4.0119002E37,-1.4027267E-32,-2.72471598E18,2.5744203E-19,-4.572614E-38,3.2234583E31,8.654537E19,-3.4919776E-29,-3.25070671E12,-9.000992E-29,1.0441233E36,4.079525E25,1.2051055E-15,-2.29235541E14,-3.2437188E-13,-1.5618475E-4,-4.0124833E-25,2.8310637E-38,-2.7477381E37,1.32944947E9,2.18171494E12,-1.25300354E17,6.0274116E15,-2.107706E23,6.3065464E34,2.51101692E11,5.254233E25,-2.0404816E-19,1.7693594E-33,-1.1974275E35,2.8162636E34,6.4890817E-21,7.184675E-25,7.5984363E34,-5.618655E-11,-3280961.8,1.28438128E8,8.6140408E18,1.1140984E25,1.47108772E10,3.3097485E24,-2052130.9,1.63728826E17,-6256.014,2835.2756,-2.4856512E24,1.2163494E-7,-1.1225695E13,3185.818],[-5.7091426E35,-7.046804E-12,2.8546067E37,-772.3046,-2.1437726E-18,7.247147E36,-1.5350201E29,-8.961063E-10,0.85318434,-7.483097E-33] +,[-1.2860384E8,-8.602547E-36],[-2.944476E-12,2.77460487E13,2.2238986E-12,-4.3412906E19,-5175.8833,-0.0073129623,-2.4091398E-20,-4.1746454E-10,4.45905856E8,1.2805583E28,2.5504562E20,5048020.5,-2.664713E28,-1.3501865E-10,4659.968,-5.82742E-35,-1679.142,-3.875056E-26,-4.033507E24,-4.6903224,1.9332838E38,-2.0680365E29,8.525517E-14,-5.230842E-32,3.673353E-35,-1.7281757E38,-8.2598E-9,-17152.049,-4.852759E-29,-1.0426323E-22,-0.020246392,-3.1350626E-6,1.2408656E-37,1.120012E-28,2.4116303E-15,-0.4785474,346436.97,-5.232122E-33,-1.91926374E9,-3.2487415E19,-8.650112E24,-5.055328E-34,-7.409502E-23,1.2598161E-17,5.4119855E13,-1.1477772E-4,4.6083254E-12,-254158.67,-3562.668,6.329796E-33,1.8004916E-23,9.1474255E-32,2.3754586E-25,-0.3737642,-3.8334996E-8,1.6320389E-21,1.00855703E-16,2.8689735E-36,-1.4815323E20] +,[1.06485072E8,-1.0298127E-36,0.24806988,-1.49687634E10,-3.6207398E32,-1.0312921E-5,-1.2935636E-31,-1.2929703E37,-3.9697367E-19],[1.0102053E15,3.1466665E20,0.08864031,-3.9789494E-35,-2.5044518E-17,4.97892847E17,3.361501E-38,1.9492607E-32,2.0493702E-34,3.00903369E16,-1.6402363E-7,-2.6451675E-18,1.262038E-30,-9.804624E30,-1.2246598E34,-3.315567E25,182204.17,-3.130359E-19,-7.119018E26,-1.48141686E17,4.419125E-31,-2.8471037E-15] +,[8.0939505E9,1.1374584E-19,-1.4202437E-27,1.313552E33,-4.2573942E12,-5.8381478E13],[-2.6502555E30,4.1753343E-29,9.083372E19,-0.068183176,-1.1031515E-26,-2.4913055E-16,-3.6719114E-37,5.8186E37,5.715726,-1.0163735E34,-8.84853E37,-1.1815134E-37,1.0027934E-16] +,[-1.4073724E34,1.30061288E13,0.008461121,-1.3376654E-10,-6.0671164E20,1.1833966E-16,14.809583,3.5770768E-22,-7.530457E-32,-1.5393923E-12,-7.8060027E34,2.1101567E-16,-6.2677943E-17,2.2152926E-20,-1.1757083E-31,2.3695316E19,1.4274136E-12,-1.9480981E26,6.291982E-10,-9.367635E-8,6.9291846E15,4.72749638E11,1.0033393E-12,6.817596E31,-1.2097972E-24,-1.9492175E-8,3.22030314E13,-7.977198E24,-3.4311988,-9.747453,1.6084044E-20,-9.820089E-30,-121.80733,-1.6177538E-27,-8.8467775E-4,5.6503555E-11,2.0995368E26,-5.455361E-9,1.8685779E-32,8.574378E-4,2.1685172E-30],[6.861861E-37,-4.4493197E35] +,[-1.1613617E-18,-4.8534297E20,1.0546074E-20,6.6119614E-25,-2.24921029E17,1.5837627E-19,-186516.12,-3.640935E-33,8.555976E-17,3.2709814E-30,3.63576335E18,1.4442433E-30,2.4232822E-36,-9.666912E31,1.5853016E35,3.73195E21,-125.010605,-2.1777477E-17,1.00537485E-29,-3.1489299E-30,3540.4128,-1.2457142E19,0.002879089,3316.8232,-2.399002E-8,1.2665383E-9,-6.6589328E-21,1.569398E37,-4.0816245E33,7.659948E-29,3.50496255E15,5.2147024E-14,-7.601605E23,3.6567388E7,9.476331E29,6.5074084E7,-3.8742284E-16,-2.8865025E38,-5.8460764E-21,-2.8586424E-36,-1.7062408E32,4.27118324E14,-6.7125395E-28],[3.56796591E16,-618868.25,2.933427E-12,7.236035E-39,1.2127505E-37,9.672922E-34,-4.398644E7,3.5170867E-22,-4.2779222E-30,1.7244597E-28,-2.516157E-4,2.8513992E7,5.198693E-23,1.4477405E19,-1.13826478E10,-2.3829098E-36,18.335575,1.8759609E-13,-1.968288E-22,1.7264434E-37,2.1186231E-17,-1.366064E-37,-2.3724215E-26,-1.83045278E15,-4.5891318E20,1.4144087E33,5517011.0,-1.80326367E18,-3.4664499E-31,8.6163241E12,-3.4160834E-37,1.6376802E-32,-4.1883656E-29,2.1600535E-8,142394.83,-7.924927E24,6.102368E31,5.108181E-15,-3.3982544E21,-0.7968685,1.1872208E35,-5.3212889E17,1.4372333E-9,-2.59713466E11,-1.2630338E34,3.519925E10,7.971905E22,7.0312736E-12,-8.266714E-27],[-1588131.2]]
diff --git a/1.9.10/samples/numbers-fp-64k.jsn b/1.9.10/samples/numbers-fp-64k.jsn new file mode 100644 index 0000000..301f6b1 --- /dev/null +++ b/1.9.10/samples/numbers-fp-64k.jsn
@@ -0,0 +1,68 @@ +[[2.6535229E-31,-6.3308956E19,-3.6612234E15,-2.678559E7,2.6702905,-5.9068637E15,-8.157387E-25] +,[0.0034602399,-4.9989574E-12,5.6027035E-24,2.391569E-20,-4.8545338E-26,-1.9128763E31,-2.2797304E35,-5.6475305E-31,-8.4942343E-16,-3.465149E-16,7.0482251E11,3.126214E-33,1.6426457E-29,-1.07047094E14,2.04265933E9,6459852.5,1.2455255E-19,0.04852945,-4.6918415E-16],[2.993882E-32,-1.2256164E-6,-3.88535779E11,-1.56255725E14,-7.0686278E8,-1.1825112E-8,6.4509857E37,-1.1007136E27,3.5498442E-25,-3.9212004E22,-4.5836344E7,-5.940224E25,69802.234,-5.0968E21,-1.8074694E-8,-3.4485917E31,-0.6611753,2.3213966E24],[1.172189E-29,9.733035E-17,1.0992753E24,8.4844704E12,-8.6683997E-13,1.1094605E11,-1.7965676E7,1.02709966E34,1.0741854E28,1.9185885E-16,-8.3655151E11,-9.856661E-20,-2.85404893E16,-2.379941E-4,-8.3776928E12,1.7867977E-25,0.011597245,-1.41081335E26,-6.6038745E-24,-1.9745221E29,1.539104E24,-5.5591727E28],[1.7871889E25,7.8421593E-26,9.461137E21] +,[-2.12173072E8,-3.795819E31,-1.2554509E28,-2.5654093E-10],[6.5999994,1.7218609E33,-0.012438993,939.1766,7.093138E-23,1.2209317E-25,2.7071306E20,1.77743E-6,2.7941877E-30,1.0859481E-36,-1.0772707E22,1.32352934E9,0.14167772,-6.0089815E-29,-8.502864E25,-5.1308295E-4,-6021.425,-8.89324E-25,-2.500707E-8,0.08228797,-6.8578757E37,-2.9590106E-28,-1.0877065E-20,4.65055536E14,452.99426,-1.69357939E9,1.0729684E10,1.2038169E-24,-144473.9,-1.0064578E-37,-3.062391E-34,-1.100933E-37,-3.0693718E-17,6.763583E-27,4.117854E-39,-1.6736398E-15,8.445957E-9,6.4264248E7,2.2029085E21,-15921.255,-4.3933734E-10,6.940127E32,-3.81793408E9,1.358563E-36,4.1276015E10,-1.4802012E-27,-2.7596408E-32,1.059699E-10,9.104807E-10,8.404422E-26,3.5004688E-9,1.9395138E-21,6.892398E-35,2.03699521E15,8.767824E-20,-2.2651784E23,2.7166499E-17,1.4053419E-4,-1.1724944E25,1.6230291E-24,-1.8291197E29,-4.7328948E10,1.15966246E13,-2.5645604E-21,2.1966392E-20,9.4178323E8,-4.32126144E8,-4.327374E-14,-6.2280279E15,0.004526022,1.9304582E-17,2.3337225E27,6.9692502E16,1.2586697E29],[5997.7617,5.22090368E8,2.19173435E17,1.7981851E37,-9.979369E-12,-0.0017380471,6.2215564E7,-5.697561E37,-1.6502797E37,-3.24494711E14,1.451294E36,-5.835783E-22,0.061836954,1.3775194E-19,-16.837942,-0.23230144,-3.7539396E37,-0.01888702,-2.2541351E-35,1.9484589E-21,-6.7566396E33,0.048821412,-3.495256E27,-1.3285373E-38,4.50898E-28,1.7268163E-20,-955773.6,-6.622828E-29,-8.2036756E-17,2.924259E-13,5.0647647E32,1.1643229E-26,7.2521586E-11,-3.7323227E32,-12991.916,2.339732E29,-2.7075122E-20,-6.8960704E-17,0.51900554,-5.9936054E21,-0.015137768,-3.247555E22,-2.56008961E15,1.47095685E-36,1.4622153E-12,7.7171934E34,-7.544193E-7,5.0779845E-6,3.9633572E-25,2.4219777E-29,0.6069506,2.4379258E34,4.9829147E35,6.2219044E-23,7.4407635E26,-4.8400582E-26,-4.4876697E-10,40811.668,-3.9690345E33,8.862469E-31,-3.20557075E16,-1.1514233E7,-1.9178896E-9,2.11979568E8] +,[-80848.914,-0.0026732397,3.30004746E10,4.9471102E-28,3.8687313E-31,-2.9855964E-5,-3.67212442E9,3.0627095E15,7.8276194E-19,5.3863646E22,-404934.72,1.4820337E-32,1.4192764E-23,1.0121303E-14,-1.7668878E33,-0.06838432,4.233391E22,-4.222806E-39,1.2118468E-30,-35556.418,1.5127279E-15,3.6557565E19,1.5424345E30,6.068394E-39,8.638708E22,3.9049457E24,4.281842E-22,-2.9109668E-30,5.462076E-23,-1.14303206E27,4.688778E-38,-2.8907022E-27,6775.112,-4.3717151E9,5.5270997E-9,-2801.2212,5.6459445E-5,-2.1581222E-27,6.5815562E9,-1.089469E-13,7.1918055E-7,4.5751317E21,-204.8502,-2.8087629E-21,2.6423045E22,-3.340172E-34,5.0326556E-9,-5.22535076E11,-5.4474794E13,6.4334326E21,6.070314E20,23.221071,-6.030393E32,4.538023E-22,-1.9926042E-11,-41.89369],[6.324611E-31,2.6348025E-18,-8.242288E35,2.000639E-16,-3.6666114E26,-5.6946114E26,-4.071132E29],[4.4360223E-14,-2.0585313E36,4.4855497E12,-13.27239,-1.1073428E23,-6.4541437E18,-4.4476496E-25,1.20953678E14,25470.965,-2.7886143E32,3.7357097E-33,-2.2606373E32,-4.23796E35,7720065.5,-2.5043382E-28,4.5656885E-30,-6.961639E-11,-1.9319312E-13,1.26833861E11,1.2163623E-12,-124173.125,3.662106E16,-3.285093E23,5.6386879E11,9.28752E24,5.3346226E25,-4.4209505E20,2.1439174E7,-3.2421666E-22,3.8165513E19,-2.1260923E24,-2.63838945E10,9.541649E-21,-2.5550854E20,0.021623548,5.9854567E26,-5.8091084E11,-7.065009E-32,3.5037792E30,-2.331532E23,5.8431462E8,1.0341694E7,3.896418E-11,4.0183097E-14,2293077.5,-1.5654026E-35,-2.6699253E-14,-7.822621E33,4.315322E-24,-0.002313517,-1.6574543E-21,1.4579729E-20,3591.1572,-4.5170944E-18,-2.78611952E17,-2.1110734E-23,-4.3113246E-6,9.1698276E21,-1.6756981E-15,-6.854833E-6,-2.6159627E-29,412.33392,9.90769E-16,2.8810426E23,-4.9117775E36,5.78823E-40,4.7816546E-9,-1.3817376E7,-3.156944E7,1.5150228E-18,-1.4314575E-32,-4.428179E-28,-2.072301E-34,-5.129252,8.1669195E17,-252.1206,7.001677E-9,-8.144433E-33,-6.253973E-16,-1.8238805E-26,2.4729717E29,3.0851753E25,-3.451688E-35,1.3591939E-11,0.10220055,-1.16058014E11,1.3878365,2.399862E37,-4.3815566E-20,8.3958796E37,-327.94388,5.167833E-38,1.3481001E-36,-4.5197708E-36,0.39352754,-1436.4678],[-3.2871463,-4.2376574E-24,-1.2515325E25,-0.0019005111,-1.2113293E28,9.2862456E-9,-0.0037906703,-1.1611638E37],[-7.978034E-23,2.4743534E36,8.521475E-28,-7.8929362E12,9.952491E-31,1.8642626E-22,-1.719193E-16,0.10001894,-3.523265E-36,249.89531,3.0933438E-35,-1.2585429E7,8.857643E-26,-88230.21,-2.8092234E28,-8.0354126E-13,0.12322309,1.473056E25,-6.8615936E18] +,[-2.5297348E36,-7.368013E-38,-1.076627E-28,-7.7007749E15,-22.372606,-8.977881E22,-7.501992E37,3.7989866E25,2.5683582E28,8.2770024E16,1.87827292E14,-1.33954095E13] +,[2.83583E-36,-3.017899E-34,-9.3147485E-4,-2.9735795E-12,-8.9076545E-31,6.9782866E-36,1.9726709E-22,9.541568E29,-4.834942E-19,-4.6985393E-12,2.4275021E11,-7.481386E-7,6.4340796E-20,-9.9854425E-33,6.7009603E-10,9.471227E-13,-260.90906,1.8235383E-33,-4.95706771E14,-6.952875E-19,9.612285E-8,-1.2719771E-12,-1.12211087E15,55514.207,-4.5526364E27,4.656814E20,1.9872182E-13,0.9946952,2.069911E-5,1.31716538E11,4.0740787E24,-2.487807E-31,4.1312148E7,1.340491E-6,-3.635888E-35,-9.5867587E16,-1.7570944E32],[-2.5722143E27,1.1238163E-38,6.0498795E24,-9.611712E-6,-1.5955684E27,-1.0723542E10,-8.5553495E-7,-4.2760327E-14,-2.630693E21,1.95525083E11,9.127949E29,-7.524899E-23,-2.119795E37,-2.04406235E18,-5.3023616E-19,-3.3658996,8.377197E23,-1.7043822E-5,1.3179344E28,-1.11099537E12,-6.363299E30,-4.7785908E7,3.30950848E8,-3.03227827E9,4.5047694E-32,7.994301E20,3.938957E21,-1.1805678E36,-1.149164E-38,-1.1955668E-17,-1.7497947E-5,1.5460201E-14,0.0011019544,-9.772907E-18,1.6204629E20,3.7992635E19,-0.52898777,-449814.47,1.6927752E-26,-1.890229E-5,3.0518583E31,3.77259452E12,-4.9841966E-17,1.9143402E25,-7.949224E31,7.7348874E-32,-2.44324835E14,-1.2597142E7,3.0461904E28,-1.8065428E36,-5.9193197E-12,29.584963,-9.967072E22,-6.1103116E-22,-2.5339657E-31,-1.24389758E16,5.311816E30,-9.717531E-23,9.976159E-20,-0.4442942,2.046243E-26] +,[-2.96422872E13,-6.3277275E25,5.1580752E-8,1.7779605E-5,-1.4448909,1.041386E19,0.0673465,6428132.0,-0.0062295296,-6.0453197E17,-0.2114366,4.97585952E8,-2.729206E-5,1.82667791E15,-1.3350689E20,1.3113594E20,4.8448774E23,-2.5136028E-36,8.6560627E8,1.32157318E14,1.39104131E12,-1.84373661E12,-1.7154715E-33,2.6342105E-24,5.9719614E34,-1.1233949E31,-1.0465356E-36,1.3186333E-36,-5.2523444E34,-1.5381603E-38,-8.032629E27,1.4126238E-19,-2.4494736E-15,-14.433311,1.0122156E-19,1.5462485E-4,5.852681E-20,-2.2212762E23,-1.01059875E24,-6.394611E20,-0.79532546,-8.351006E-12,2.2660747E-16,4.977851E-10,4.905539E-4,-3.51602465E13,-2.30332976E16,5.59634776E14,-1.0818905E-11,-3.1019576E34,-1273.1372,1.9252214E-22,-9.166295E-20,2.2443522E33,8.7383146E-26,-6.007704E29,-1.6720691E-23,9.061457E-8,-1.2947306E-23,-4.6964997E-38],[7.8893924E31,3.07141837E10,3.5064477E-30,511.66837,2.0288735E-21,1.5008125E-11,4.1229615E19,153.60852,-5.00198464E8,1.0709774E21,4.2353862E-33,-2.55101846E11,-2069187.6,6.164251E-32,-2.7413694E34,4.188528E20,141.74352,-2.6147399E23,7.729892E31,-5.2636273E-18,-0.28653175,5.106643E21,-1.8035745E34,1.9061558E25,4.501794E36,-1.20316945E13,1016.1254,6.061748E-20,-6.4808927E32,5.1562366,5.3972E-38,-0.0032188573,-13.5752735,-3.0721177E22,4.131355E35,-105.52056,8.15333E35,5.363832E29,-0.18775955,4.0500894E22,-1.4168374E21,0.038646944,-7.297702E29,1.1156196E-21,-2.6687906E35,-4.544637E-26,-3.3141204E-4,-4.931643E-19,-5.0394877E12,220407.58,6.1996923E32,1.09094394E-17,-8.928763E-11,0.16848186,1.94481944E15,-7.207436E32,2.3807752E-19,-8.5378472E7,-1.5565517E-15,-934355.0,2.3759372E29,-4.68141849E17,6.417166E-35,-2.2429213E-27,-4.815584E-29,-0.0053960076,105.3496,1.2972911E-24,-2.1951991E23,-4.705652E-22,-6.099291E24,-15635.991,-0.0012562996,6.922176E22,-8.5089015E23,58865.164,2.3982756E-16,9.242356E24,-3.8435752E-9,-6.936914E-14,3.53225146E11,-4.79937E35,3.020672E27,-4.0472785E-24,0.06208434,-0.0010544735,3.2205075E23,2.8516762E21,7.926591E21,-6.8404767E-31,1.1215144E17,-3.3998662E22,7.4122036E34,-4.3587058E22,2.845305E-12,-1.2178893E-24,-4.5326104E16,-1.474497E35,1.6776792E-16,5.79595E-15,7.830873E16,2.212906E-35,2.840859E29,-5.301346E25,3.0949E-36,5.843128E24,2.6651596E-18,4.23338E36,-2.9150254E-25,-8.1340363E12,5.3269786E-36,-1.8946328E-16,-3.8732234E20,3.8953363E11,-1.4908035E-37,1.3413529E7] +,[-4.5626298E-38,4.9297265E9,5.37850817E17,3.974901E30,-7.5143934E37,7.3995796E-9,1.6215814E20,-0.012788779,0.07565902,-7.383337E-23,2.2363313E32],[-9.0022535E-15,2.4458215E32,-8.955363E-29,3.910716E-22,1.1812161E29,-7.7128334E29,-6.5684406E-22,2.6877297E-29,-1.3060789E-11,-1.4532642E19,-1.5384355E36,-9.650132E-19,1.89742E25,-1.26561638E10,1.957695E-37,1.6230686E31,2.8771005E-30] +,[-2.0386938E-10,2.34681E25,-6.2329929E15,-1.4005585E19,1.08749964E14,-461007.44,3.0655994E-16,-3.0385334E25,-1.9790804E31,4.340749E-39, +5.184542E-7,-7.290088E-13,3934.4355,3.079712,-1.3798011E-33,-1.1360229E-26,-6.155818E-6, +-7.5368058E31,1.999573E-7],[9.224108E-15,-3.3340793E-23,1.791771E-21,1.3469135E35,-1.1501752E-14,-3.6089584E-22,2.1340398E-26,2.6019689E38, +1.0074474E-4,-10.901403,2.3974809E-12,1.1665053E-30,1.78668372E11, +-1632184.9,-8.519279E-7,-6.876629E-5,-6.1764878E15,-4.9004257E36, +5.2117971E10,6.8897178E10, +0.0014059772,2.8422242E27,-5.2190044E-36,4.4039364E7,1.5955432E20,-1.0467144E-19,-4.044522E-17,-2.4481046,7.0801434E-6,-6.0419743E9, +-1.66617123E17,9.4009554E27,1.9044671E-31,7.0450094E-23,-1.1768533E28] +,[3.87857E-21,-9.583951E20,-2.70598605E9,-6.307099E-35,2.22536506E12,-59.811153,9.1209144E20,3.4833005E-12,-1.9121487E22,-2.191084E-5,-4.5865073E-28,-6.108937E-30,-3.45633068E13,3.8241077E-19,1.04878048E8,2.9121276E-8,-6.501428E10,-5.8277903E-21] +,[-2.752694E-20,1.674041E38,1.7459461E37,-2.12437861E17] +,[6.991386E-10,3.4141742E-15,-2.3748144E24,-0.007935386,-4.7132715E-17,5.66245E-40,-1.087321E-28,0.0025962195,-1.3299807E25,3.923745E-5,2.1293476E-28,-5.198644E33,-4.2812498E13,8.061859E-33,1.8939721E-8,-4.8484296E-32,8.246557E30,-3.8046344E-28,1.2675797E-23,-1.7817929E-37,1.7236113E-26,-1.5601187E7,1.5747247E-37,-3.748514E-33,1.6529484E-30,-2.7024744E-10,-3.2312002E-25,-235.09137,-2.85875686E17,-1.762145,7.830253E28,4.75398341E11,-3.0335843E-6,-5.6157214E-26,0.0030372695,-8.860499E-31,3.318433E30,-6.7724163E-6,-1.5482294E-27,-4.4418993E-36,6.499332E-34,1.5978082E-32,-2.270039E-4,-0.2433885,1.18475146E14,-0.16603182,3.32074E23,4.82078E-33,1.1191186E23,1.5621392E15,71.506615,6.1661815E10,4.5710682E-17,6.1759707E-37,-7.3347425E23,1.27841115E-8,3.2572577E35,-43.802284,5.324903E-28,-2.830785E22,-4.499699E-26,4.191541E34,3.1751783E-6,-2.66276E-6,-3.0833334E-33,3.3614098E-23,-0.0036774008,-3.8589498E28,-1.2548406,8.259908E7,1.6195077E-28,2.1304361E36,1.4567335E-16,4.3310415E-13,3.3383633E-11,7.885624E-20,-480.6271,1.0037746E35,1.2754476E-9,83.81333,7.898458E-5,-4.03667038E15,-2.2329178E-15,-2.0152636E-13,2.081016E35,1.6286735E-34,1.6121435E24,-6.1771156E-31,-1.7282902E-34],[-3.96941065E15,27.970276,-1.53067066E13,3.6667887E24,2.85265795E15,4.2997931E12,1.4818504E-6,1.0321158E-14,1.5508368E-8,2.927697E-9,-3.39338018E14,-4.4746353E29,-1.5560365E-32,-4.124734E-28,9.0650603E-4,2.30105399E11,-1.3441657E-21,1.9883716E36,15880.264,2.8150516E-36,-11.915885,1.0706588E21,4.223408E8,5.4251542E-12,-1.1481796E-27,5.822903E-33,-3.505783E34,-4.8237903E-14,-7.849323E-38,-4.43749E35,2.2351224E-13,1.8254235E-36,8.9989259E10,1.813454E-36,-1.0558517E-24,-3.6580843E-38,1.4184178E27,1.4560464E34],[85629.22,-1.7003546E-10,-3.5413635E-16,105.94623,-1.4186892E-5,5.2413778E36,9.342507E-9,-1.3427592E-6,-1.2367598E21,-1.55271383E18,-3.2187312E-24,6.251089E35,-1.3887139E-9,-1.03444714E27,1.7714859E-11,-0.005817533,2.4563237E-32,-2.0803736E-28,-13.471874,-1.5048416E-23,-1.7501842E33,-7.2776375,-2.1466478E19,4.853822E36,3.0963873E-12,-3.3486038E37,-1.4131504E25,5.0066066E-18,-1.087173E38,-1.1019988E-18,-7.9779854E37,9.017251E-10,4.0723884E15,-1.341312E-18,-1.0717458E-22,3.46674849E12,-0.02340292,0.22586018,8.6854499E12,2.72159923E16,1.65686212E16,8.758956E-23,2.867559E22,-2.4451188E-9,-1.3564005E24] +,[-6229597.5,2.0014847E31,-3.4308033E-37,-8147.847,-9.0806074E32,-2.1128706E-4,6.6282367E15,1.61200688E8,-2.1548193E-26,2.2858645E31,-6.9279332E22,3.712441E-38],[-3.13842208E18],[-1.9934488E-11,1.3296543E-14,6.088549E-29,2.1249287E-5,-2.3573263E-9,-0.0058179013,1.17241576E21,4.07445E-22],[-1.3451417E-37,-1.5636806E37,-3.764115E-15,-1.0246142E-14,-2.94194173E15,1.9969695E-23,1.2336216E-11,-1.5648814E-38,-1.3196884E-17,4.1131836E-9,-3.1402063E28,-8.293467E-35,-1.79982945E16,-2.0917452E-30,-5.379634E-8,-5.0319304E37,-2.9847737E-12,-1134.7717,1.69248052E13,4.9066194E27,-3.4882248E22,3.7649075E22,4.3517765E-32,2.3000411E32,3.0656001E29,-1.034691E33,5.433126E-7,-7.913855E-16,1.3481003E-8,-9.742205E-31,36.262638,435678.12,1.5763418E-33,-4.031753E-38,4.523754E12] +,[9.943559E23,-1.14064816E-35,-9.176797E-24,-8.234128E-12,0.15862457,-5.4980867E-18,7.7291604E36,-2.6331496E27,4.4836097E-30,-0.041381553,-2.3864592E36,1.0077372E-16,5.853387E37,226.83781,1.8226199E-28,4.0925454E-7,-0.43729714,9.1037206E-11,2.3414647E32,-2.4859513E38,3.1183667E-19,-1.2243246E-11,7.8740177E31,8.458513E-16,1.8281419E-19,1.2040764E7,2.6616312E-34,-67977.56,-1.20570615E30,-6.119411E-38,-1.928541E19,6.815997E-25,-4.2523086E-33,2.876159E31,5.9133672E26,-1.07138136E-29,3.6584114E-38,-4.8518688E-32,1.5660016E33,-5.3123855E-17,-7.438176E-6,-1.0479898E-21,-1432.1406,-1.83065854E15,8.559633E-36,7.294675E-13,6.7877282E15,7.6135919E14,8.0692963E37,5.114364E34,4.2127463E19,1.383909E-7,-4.8990693E-25,6.472123E-37,3.6370087E29,-335.7757,7.5406672E16,1.3973097E-9,-9.911163E28,-5.218519E-19,3.9373206E10,5.8175686E-35,3.3169375E34,0.035486404,-9.863275E24,-3.3888747E19,-2.8939148E19,4.5834077E-35] +,[2.4604633E-21,1.1454275E-37,-4.773637E22,6.88222E-35,2.4849248E-11,5.3971255E13,-0.08682255,-2.1922608E-27,1.48448282E9,-3.808519E-18,-3.891184E31,-2.3028217E-34,5.6621474E32,3.9170726E-27,-1.7524487E22,1.6244168E19,-1.4417567E-34,30673.639,-3.33029107E15,-1.6279645E25,4.7073638E13,-97.48056,1.705634E30,-1.0281326E-10,2.8019733E-7,-8.2943033E-13,14734.208,-9.4815846E8,-7.4620836E14,-6.621855E-15,9.3110124E-8,1.85352217E17,2.3451458E-33,-9.9309604E-17,-4.11369701E11,-5.812215E-11,2.5101806E21,1352671.6,1.7365033E29,2.8036528E-8,5.824094E23,-4.479246E-38,7.213573,-4.2111656E-32,1240764.5,6.305584E28,-7.8413074E-13,-0.0056190337,4.338572E-14,-6.080884E-39,2.7675316E-5,1.5327403E-18,-6.9403528E11,7.8947424E-26,3.1761916E-14,-3151681.0,-2.76852271E13,1.2255282E28,-2344.65,3.2276745E32,1.3160247E22,1.165898E-34,2.5202588E-26,8.5282336E7,2.2256924E33,-6.93265E-8,0.003912731,-1.65872976E11,-3.027568E-12,1.560891E-37,-1.1190163E-30,1.0223823E-24,-2.5976526E-16,3.6897457E20,13499.478,-1.7299861E-18,-3.2848326E37,-1.6212045E-19,1.7557212E-36,-1.0860156E-11,-7.023582E-34,5.6786053E-33,82.14449,-2.5030997E-7,1.400592E-7,1.0625092E21,-8.970597E-17,0.0016552821,-1.0208666E7,1.0773274E29,2.5338252E-6,-3.3852126E11,-1.68228595E9,-7.4949714E-24,-13.60802,1.4036958E7,-1.27623475E13,2.6202063E18,-5.77665E33,-0.1566148,9.465927E-17,6.6991395E-31,2.5110508E27,-1.3195912E26,-509.82,2.650505E-9,1.13659032E18,-4.28806E34,-5.4878118E13,-7.0968315E-22,-173.36906,8.822957E-5,-1.7134555E27,-7.1029226E18,-2.6966985E-33,-1.0770072E30,-7.381477E19,7.909763E-10,-8.2960996E-32,-8.370223E-17,-1.15937536E27,-2.9323547E-32,-5.9325394E-18,4.9792977E28,-5.385977E35,-3064.914,4.4215977E-8,7.5121353E12,-1.1877986E-32,-9.972842E33,-6.1029396E-24,1.4030575E20,7.952922E-20,3.1911554E22,1608748.4,1.5529038E29,-2.1203335E30],[0.013377522,1.6594402E35,9.912939E35,1.9785817E34,2.13610731E17,6.0896337E-9,2.1988515E37,6.2055763E11,-1.4581766E-34,-2.3577012E18,-1.7991664E-36,1.9981725E29,-4.6943924E-9,-1.7148108E33,-9.130543E-39,-6.5057292E11,4784.42,-2.611576E28,3.93782152E17,3.266582E-4,-5.0465737E-10,-6.0319315E-23,-2.8338947E23,-2.2517677E-32,-3.0678122E-22,4.078392E-22,-3.712211E27,9.5129143E-32,6.0775647E16,2.3798107E-30,8.1528656E-10,-2.8964038E-16,-5.9301293E-15,-3.9867887E-29,4.91129064E17,6.320737E-34,-421.9368,2.5257999E-12,-1.17176794E9,1.2343717E-35,1627299.4,-5.810829E-31,-1.185004E38,2.7569042E-33,3.108391E23,2.7838576E25,-1.9218348E-32,3.3662658E-5,2.7247193E-35],[1.3685117E22,-2.2543395E-29,-6.117453E20,-7.79229E-39,1.8904142E-14,-8.3240606E21,15163.21,1.01575E27,1.8002075E-9,-5.4488195E29,0.45126706,-5.16225728E8,-1.4412709E-28,-8.408332E24,-3.6276004E30,1.2204871E23,6.8886653E27,6.2265E31,3.7241733E-33,-2.2511392E32,-1.407166E-23,1.2922098E33,4.2585494E-35,-2.31755248E8,-1.0083557E-38,-4.0378742E29,-3.5291334E-9,-1.4577695E37,9.897636E-39,9.405287E-18,1.3555452E37,-9.078515E-13,-6.2135303E15,4.0782264E-27,-1.4096508E-34,1.2087257E-17,421.17807,-7746.6357,4.445309E-16,-6.2729027E-6,1.8640488E-33,-1.14912232E8,-5.752873E-29,-7.3915064E21,22.460936,5.0996106E9,2.284282,1.7432648E-25,3.2066492E25,20254.875,6.7530603E-22,-3.824307E35,6.3122816E-25,4.1893254E36,7.97705E21,-1.22047866E-29,1.2005957E-36,-8.6610641E10,-5.8215637E-36,4.8796124E-27,1.3179117E36,1.4779165E21,-1301062.1,1.1417486E32,1.3796029E38,6.521187E24,-9.8611437E8,8.250178E-21,4.2303167E-28,1.4423644E-16,2.4052232E-4,-4.4350903E25,961.1548,-2.6661182E-9,4.5496615E-32,1.0892181E33,1.7163632E31,1.3610958E7,6.518452E-9,3.15344788E12,2.2173E-11,-6.5766945E-21,-5.5663702E-5,1.6629153E19,-9.93888E23,-8.599363E-35,2.8860872E-28,1.3699179E-34,8.4352621E15,3.0661657E-24,1.6219009E34,1.157281E37,6.886313E-30,-1.3597877E26,6.9964746E11,-7.2001284E-33,1.4486607E-32,5.7523265E13,-5.6805125E19,4520.4814,-6.977568E35,-1.75602369E15,2.1526697E-17,1.61094E-36,-7.375187E-18,-2.1948729],[-8.791754E-34,6.968372E19,-1.1207005E-24,2.4216982E7,-9.766945E-20,-3.4977608E28,2.1244133E19,-2.9989238E-7,3.10057533E11,-3.2766864E-34,-5.641571E-7,-2.6787975,-1.8415956E27,4.795678E-21,-5.5918408E12,-2.1467392E8,-18879.3,2.6500825E34,7.977973E-10,6.660919E-16,-1.8085991E-25,-6.1228274E20,-3.7943924E-22,1.341398E-8,-8.5483282E10,-8.000307E-35] +,[-5.945489E-11,2.5332061E33,1.2185245E-7,-9.038794E-33,-130.48666,-7.893069E23,29473.13,8.166829E34,-3.9134607E-31,-1.3088044E-14,-5.8650714E10,1.01793837E9,-72652.24,-2.8106998E24,1.6246853E7,-3.39357839E17,-4.67704938E11,-3.2914292E19,4.8891508E-32,2.6304217E-25,0.25187346,-1.7076134E-18,1.754977E38,2.565563E20,-7.8236297E31,8.807448E-4,-8998.401,-1.59900998E12,9.9990304E-29,-2.6473468E36,-2.5573411E-21,-2.55667E-22] +,[-2.65560096E18,-1.4007897E35,12.530237,-3.955555E-36,-5.4991985E9,-1.2324911E-31,0.0026004754,1.5829873E28,1.7246417E19,-8.541806E-9,3.574526E31,-4.9842272E-18,-2.0235442E25,2.02045181E12,-1.6821323E-6,-6.4785885E-11,-5936152.5,-1.720913E7,9.6065487E11],[2.5189547E30,4.408919E25,0.31051606,13.032929,177.4452,-0.01821126,-6.2282225E-21,-7.7406095E-28,3.0242627E-31,-4.0431882E-23,5.8649226E-33,3.675122E26,14912.729,-1.8584317E-24,-4.3161943E-38,6510.859,3.070655E-38,2.7767634E34,3.8474953E-27,-7.2744527E15,1.0053946E37,2.62716481E13,0.013282104],[-1.2254288E20,-4.00565436E11,2.1728722E35,-2.1016934E20,-3.7011133E-36,-8.822166E35,-2463.6926,-56765.113,1.3969837E28,-3.4087975E31,-3.7205904E-38,1.4049089E21,4.38297E-40,-2.1295102E-27,-1.50500217E14],[-2.2349372E29,-6.6248518E15,2.1348871E21,-0.8594765,-5.2489933E-33,-7.7569626E-15,-4.7306723E-28,-1.4602794E-7,-6.2428418E18,-8.1971305E20,-2.029365E-34,-4.4834547E31,1.4006753E-29,1.244169E-33,-1.4092677E-24,-0.0066948957,-2.0225407E-7,-0.14170189,-1.2626884E32,-1.6745427E29,1.14762365E21,4466168.0,-2.7383464E-26,1.2850034E-31,-7.5223203E-31,1.3311776E-37,1.3275721E37,-4.2543905E-30,-0.012650995,-6.6229973E-21,-1.6714041E38,-1.70922376E13,-1.14074306E14,1.6011432,-8.910942E-28,-1.0628991E23,-2.1925081E18,-1.4939666E-37,0.111466296,-5.1021055E-15,-0.0027280378,-1.0441042E-15,4.9724447E-20,-1.9659653E-6,-4.2630705E30,-1.6915913E-11,-1.4960305E-28,-5.5604384E36,-3.870055E25,-6.143615E26,-1.2545532E-33,6.857317E-32,1.4830949E-10,8.35413E30,3406168.2,2.586748E-9,-3.087689E-29,1.3097007E34],[1.5496766E-36] +,[2.277385E-12,-11922.696,-1.0601711E23,6.967414E-19,-5.206316E-22,1.8865904E-23,-3.0848947E-17,-14.666902,2.057501E-13,7.532893,-1.13831456E8,-5.00169834E11,-1.2749845E-15,-26.820055,-3.4026826E12,-8.797125E34,-848.84973,-2746.5835,-303442.44,-7.0334454E22,3.1788996E-24,1.0448093E-33,3.1548128E-26,-3.0011015E-38,-0.7247722,-1.8878101E-17,6.630335E27,-1.5456015E-7,1.0367542E23,2.9280086E36,-2.6455633E-5,3.00810109E12,-9.0245086E33,6.530137E21],[1.38867311E12,-27.486586,-2.434253E-32,2.5778796E20,7.59485E-29,-2.76198201E16,-2.8273008E-13,4.3305346E-23,9.955619E18],[-2.958574E-13,-5.855436E-29,3.1332264E-26,3.2782405E-5,2.23353157E15,3.3291744E-21,-2.33294893E17,-0.001710379,-2.9223552E8,-0.0029085996,1.8074379E31] +,[-4.5601818E24,-8.476378E-37,-1.5906557E-26,4.5619851E10,-5.761538E-19,2.744682E32,-1.10971565E-14,-2.9210783E-9],[5.0052375E-8,-1.6796031E29,6.909423E-30,9.27159E19,1.1730386E-14,0.002774217,-1.6338386E-30,2.4220062E-4,1.6383446E32,1.08755484E14,-1.2060308E-21,6.948288E30,1.6505052E29,8.7491535E-6,-4.480187E34,2.8718891E-27,-6.9487276E-14,-601758.4,-2.92426791E13,2.7383085E-12,1.4675421E-12,1.5540477E33,-9.7484941E17,-1.3063929E-33,-1.5785367E-23,0.21390437,1.69939722E10,4.5304178E-6],[1.0418203E-34,-4.514773E-9,1.03528753E12,6.9052304E-29,-1260908.2,1.59600672E8,3.9271218E14,4.16676172E15,-1.8749305E-10,-6.609547E29],[-4.500122E-4,-1.3003437E26] +,[4.6993582E24,-2.2476652E-35,-2.025543E-38,1.41192624E8,2.2379E12,-6.6317874E-38] +,[-5.4267844E-24,48.191216,-2.3404034E-16,1.0695002E35,-0.24409178,4.834642E-34,2.4793964E-11,-1.5104987E-15,-6.766781E20,3.2134312E-24,2.52508321E13,1.5620833E-5,-2.9720262E-32,8.575686E-26,1.6031063E-6] +,[-3612.9854,-5.444763E-32,-4.4612526E-20,-3.116652E19,-9.344697E-17,0.0052720644,2.338387E-19,2.5050427E-11,-1.998682E19,2.7275892E-13,-1.9041895E24,-1.6710945E-14,230.90535,-3.2392546E38,3.4847934E-11,3.0620878E32,-0.009189749,9.5089046E27,7.239263E-9,-82.75874,5.417001E-21,2.5520123E-8,1.4205682E-13,-3551071.0,5.2756236E-15,-4174.0215,-1.1783311E25,1.0482635E-38,-1.2417504E33,6.4708315E26,-2.1582315E-37,2.4447767E30,2.2057793E-4,1.5143285E-31,-1.98159483E11,-7.471942E-21,-63.107765,6.668308E-14,-1.9725835E36,4.8566816E-4,1.15405865E30,-3.3622467E36,-1.39017204E16,1.9544464E21,2.8000494E-29,4.7190023E31,-7.4939015E17,-5.420105E-5,2.405227E29,180702.77,-1.807901E38,-0.46347526,-1.1928653E38,-1.7304545E22,9.07161E16,-1.8148965E-11,4.7496613E-33,2.7463635E-13,1.542372E24,-5.675163E-38,7.068117E-11,4.9238943E36,-3.983349E32,-13337.522,-3.4916945E-4,1.1932984E31,8.135749E-38],[-2.9809817E-31,3.24457291E17,2.682666E-33,3.5102253E-20,2.6367989E-28,-2.0844399E33,3.528736E-5,-1.0223548E-12,4.36395959E17],[-3.088835E-9,-4.1452816E-25,-5.1354884E37,3.6966E20,-6.658147E21,-4.1318012E-22,-1.43992154E17,2.0267156E-14,-0.019217206,1.8195781E27,-5.35714E-22,3.7145734E-13,-6.06098E22,-1.9937858E-35,-2.750705E-20,-1.3403197E-31,-1.0186433E-31,4.4217047E-18,-2058901.4,4.0615858E-29,-5.590844E29,3.0171224E-19,-1.7438155E22,1.39589798E9,-4.191031E22,2.7864587E-13,1.8216821E19,-1.1428524E17,0.04039231,1.1269817E13,1.145838E19,2.2917673E29,-2.1779514E-21,4.9807283E19,2.8074933E12,4.6995681E10] +,[6.9146962E19,-3.1758063E-8,-1.8491408E-19,-4.4880697E36],[-1.13149512E10,-128055.64,-3.91928033E15,-7.9312525E-37,-8.809E26,-12.84868,2.1193459E-15,6.507739E-22,6.717573E-23],[-47.159573,-4.2953694E23,3.885824E37,-5.25599474E11,3.4922824E-33,240669.95,-5.5850285E23,1.31169579E18],[5.7589196E-35,12876.559,-8.7142436E24,-1.6547342E37],[-5.8402E-31,-8.3912557E12,7.5898206E-6,1.6322806E-34] +,[-33158.465,1.9812552E-27,-4.4407776E-20,5.0424244E-18,1.41699E33,-8.757934E-27,-1081726.5,-2.015518E20,-1.01422044E-26,-3.3002863E-33,13055.995],[1.1319426E20,-1.0948676E22,2.06028027E12,4.1488543E23,-0.005341658,1.18227305E-7,14.305751,-1.6706637E-34,1.56692025E16,-1.6945705E-18,-62.314365,1.9962698E31] +,[-7.368051E-11,-1.2094854E-18,1.0210027E-25,-1995.4661,2.1134639E30,-5.044628E-16,-8.869583E-20] +,[-112.03558,-5.235014E22,-1.2228524E-22,-11133.814,6.6177122E-34,9.791691E37,-1.4827242E25,-3.4249252E-20,4.7146255E35,3.6159345E-5,4.1903357E-7,4.7366243E36,195.98805,-4.5289881E13,2.4037113E-35,2.4560953E16,0.001738607,-5.589831E31,1.7033344E8,1.7232977,-3.3759536E37,-6.339997E-26,1.1119883E-17,9.1740393E-38,-2.51201488E8,5.607045E-39,0.006527377,2.1330482E11,-7.357917E34,-2.1029858E-33,6.9727943E-12,5.6792646E8,1.4564352E-37,-4.3727807E-19,-6.77699E-28,2.296647E38,2.6269462E-12,9.4065273E14,1.3558843E31,-2.3683035E-15,-3.4923606,-3951991.5,256.90814,-3.3386005E23,-3.95611699E9,2.56281504E14,1.87798387E9,-2.75495885E12,-2.237272E20,1.30207002E17,1.07428245E15,-6.6090907E18,-1.3631758E-19,2.9680282E-19,-187.37361,-3.5074108E22,2.8213424E-5,4.292452E-29,-7.131377E-18,15034.558,-4.39418461E12,-2.24211147E18,-1.0460587E-11,-2.80428773E11,1.2054711E22,1.0710614E-12,2.0090904E-20,-5.46057E19,-1.3642586E-35,4.6023165E26,2.43557663E11,-1.2364676E-31,6.8898344E11,1.5083254E-11,-1.6089095E30,-3.843059E-29,-6.4030325E-30,-0.3760086,2.75948E19,3.2108447E26,-4.17577E-30,1.155235E-26,0.060416292,-2.5216004E-26,3.513795E-16,6.519042E-7,-9.254507E-14,441085.44,-0.004158272,-3.1504228E33,2.2683187E-8,1.27185186E-26,-1.2902433E-15,-0.012782133,0.38049155,-3.0701978E-15,-4.3906153E24,1.1270128E-38,1.8822772E-25,-3.9289614E-25,2.05648834E18,-2.8693992E31,-3.1571132E-22,-1.1130514E-7,-1.8716855E-30,1.4887326E-26,4.241542E-13,53695.383,126207.73,-6.6300595E-6],[-1.126504E-27,1.26586E36,2.1201758E-34,1.6026291,-2.430941E38,1.2518707E-37,-1.30829913E14,1.2198096E-29,4.472551E-24,-5.0354387E-26,-7.8567092E14,-0.0025371416,1.0146015E-25,4.2213214E-17,4.7672683E-26,6.0185034E-24,-506132.6,-6.5684215E16,-3.4724798E31,-5.657057E-28,5.647748E-35,5.3402655E-8,7.613152E37,-1.0350687E-12,0.0010120873,-3.70309307E12,-1.6472158E-14,-4.3954373E34,4.00592256E8,-1.2581203E-27,6.0080873E10,1.4912756E35,-4.526522E-19,3.3112363E-18,-6.8008626E-4,5.645379E-16,8.9279052E17,-9.7158696E-20,2.4546924E36,-1.943974E28,-3407.7,-0.019545026,-6.833853,-2.307492E-29,-1.3366143E-35,1.0086338E-11,-3.9686054E-10,8.711066E20,1.1184001E-5,-1.9225208E31,-1.2123996E-37,-1.00854275E-4,3.3385193E28,89.92665,-1.5094693E-8,-1.2247425E-36,-1.0060454E-6,6.858928E-35,3.2533488E-28,-4.2138997E-20,-0.8893121,-3.8721677E-33,1.74107329E11,-1.532285E-16,2.9378392E-33,1.44622561E10] +,[-779.1359,4.5957345E-6,16371.021,-2.3385797E-14,2.704047E-4,-2.6768743E19,1636294.4,7.5111019E11,4.0232038E-32,5.1089298E26,5.76607E-29,-4.393163,3.6522783E22,-2.1372208E38,-5.279335E29,-2.0130148E-34,2.650583,2.15663287E15] +,[2.046967E25,1.0039325E-23,-2.2611841E25,1.5242264E-4,-1.4143259E-9,1.5972371E24,-4.8323383E-4,5.234195E-27,-2.513276E-6,8.543087E-37,2.1127578E19,2.37881679E14,-0.04639983,-3.94664975E12,-1.37400112E8,2.0494555E-15,1.08244195E-14,-2.3964122E-33,1046.1315,-2.5760156E-13,-2.5466814E-23,1.3196846E-8,4.419426E7,2.5098136E-28,-1.825383E-20,-1.1994996E-7,4.9286856E-20,2.0914078E-22,-0.006780296,-9.133744E26,3.7026085E-31,2.17505046E14,-74399.16,-2.07406019E10,1.8340747E-25,470.96228,1.491452E31,9.6333675E36,-7.670459E-26],[1.61482414E10,-2.8478575E25,1.2709846E-26,-6.1345093E22,-3.800501E-37,9.3568824E7,-2.693006E7,3.0798662E-36,-5.6782275E29,-2071453.4,6.9762805E-6,4.672038E-8,2.6068692E-18,4.20126786E12,-1.07101955E-36,1.0209723E23,6.207284E-36,-8.287924E-20,1.1460687E-37,3.6898683E23,-136.22513,-5.19742882E11,3488806.8,1.5953734E19,-1.49981765E-33,4.39981913E17,9.784874E34,2.7060543E25,4.967802E-7,1.947157E12,-5.4016232,-3.9612005E36,7.916292E-25,1.57858513E11,-2.7847707E-15,-2.6330374E-23,4910309.5,-1.5633807E-15,2.1883852E-6,-1.177046E-10,-2.9196513E-13,3.636523E-27,-1.4500978E-9,-6.522685E27,1.0628074E-18,-2.4396341E38,-2.5516168E-14,-3.9965467E10,-6.6444979E8,1.2650369E-5,-3.1459347E34,4.0481756E-18,-3.0360475E-34,-3.41636515E18,-4.3524706E-16,-3.310614E-38,4.6696927E23,1.0129248E-20,-20.945423,-2.961957E31,0.8271526,-4.1675294E-26,3.1402283E-22,1.3237225E38,4.0011433E32,1.7345148E-8,4.880175E-35,-3.2156436E-28,3.7479937E-14,9.995417E26,6.754229E32,-1.0856749E19,3.844049E35,1429744.1,1.7327997E38,-2.04644248E17,-1.5014568E-23,-3.8478078E-4,-1.0011582E-24,-2.0399752E-4,2.13295429E17,7.7851425E-26,1.1652908E-36,7.902411E-25,2.23918653E17,1.0414118E35,-4.670963E-35,8.8482973E-16,-8.801244E34,-6.2454901E12,-104170.57,4.8949002E-21],[-2.2799947E-8,7.639495E-31,-3.66534486E12,8.437986E-5,6.569095E32,1.94218413E12],[29082.746,-5.3562345E-14,3.2055792E-19,3.3885144E24,-2.7307507E-24,1.8294183E-7,2654368.5,-1.9740678E-8,-4.944283E-36,6.881815E-38,5.5142777E-6,1.94791949E9,2.1895704E29,9.1628676E33,-7.475101E33,-4.629694E-26,6.65608E29,-1.0455601E27,2.2842445E-29,-6.2825983E32,3.7540669E-22,2.9792422E17,-2.5226271E19,16431.475,311042.6,-3.2972104E-18,2.836561E-27,2.61553358E14,3.7825254E-20,-9.882928E37],[-1.970304E37,3.280495E-27,-2.8025064E25,-2.0974132E-29,2.52699684E16,-1.1505945E-5,1.519187E23,-9.1113748E15,1.9568832],[-1.9624752E35,3.0642792E33,1.0752591E-28,-5.0235985E-7,3.1543805E-35,-1.2295649E37,5.7295845E33,-1.1539233E22,-9.0622387E8,15.298786,-4.971065,-1.2618188E34,31825.23,8.984011E-14,-1.3667475E-30,-1.317679E21,-1.0995402E32,-8.0578126E-8,-6.4011076E22,1.55622127E17,-6.792501E29,-5.373949E-26,1.6993843E-17,2.3380963E19,3.5186366E25,-161.54507,8.420609E34,-9.641602E-31,4.6381245E-12,1.2518536E-32,7668.5166,4.57002528E8,1.1678749E-20,1.14689526E24,-4.910587E-10,1.6756772E15,-1.2106079E-22,2.3696143E-20,56.631264,-1.6328846E-17,-3.5300533E-26,7.205307E-12,-1.09665414E27,-7.300533E-32,-7.4928196E33,4.3696905E-27,-0.0013854192,-9.873465E-38,0.058501676,-3.1682173E-19,-7.3268664E7,2.0019415E23,1.0920521E24,-3.01774364E13,-1.3145713E-34,4.405406E-5,4.0539798E37,-4.022517E-6,-4.87522912E8,-878.46344,-6.1742166E-30],[-7.4965005E-22,4.581275E-10,5.5573954E-29,6.8123869E13,8.116277E-10,1.98728532E11,-1.644467E-7,2.9436897E-38,1950598.1,3.6343374E-23,-1.3466281E-21,-5.7043828E17,-6.7534076E19,2.9582421E-5,1.5244628E-23] +,[3.9592146E27,-6.5587216E-7,2.1917113E-14,4.4261157E-17,-7.264177E36,-5.739904E-25,5.1055973E-24,-1.1733025E-9,-1.5893152E31],[1.9867963E23,-1.2950139E-37,-6.6832675E-31,3.2167792,3.5190208E-23,-2.806175E23,3.8209556E20,-27186.88,1.7099301E-25,4.4661606E-6,-1.5348093E-7,-1.0886492E-5,5.655572E-28,-244.71165,-1.8909471E19,1.12281036E-7,1.1101646E-11,-4.3777592E20,-0.01849799,8.133171E-19,0.48796266,4464373.0,1.5413162E35,-2.682901E30,-1.9861821E-19,3.2546906E-26,-12.077345,-59279.52,-1.5408482E20,1.6293913,-1.7978099E26,7.1885422E18,-0.74339813,1.8792492E-25,3.3169637E-22,-5.815724E25,1.68538272E8,7.0266443E-35,8.565368E24,7.230063E-30,4.7242993E19,-6.7460835E-22,-4.6872835E-29,-0.1013058,6287194.5,8.7331007E27,2.1940543E19,1.0707918E38,8.664748E22,-6.127593,-4.411171E-19,8.836836E-24,2.1027147E-21,-7.6232244E-35,9.3210624E8,3.5025013E-7,4.6373402E-29,2.5462144E-16,-5.5543312E7,-3.6632652E-13,3.7985408E7,8.538071E-16,3.6094397E-13,-9118150.0,-4.4035589E12,-4.71622E-34,-0.5478556,-0.051223088,-4.8766134E-38,-4.755721E26,-2.7295384E29,-7.2450435E-37,-4.6478435E-17,19.083307,-0.002011672,-6.4378231E15,7.4626866E-29,-6.6496673E24,7.114146,1.10221048E16,-1.1319554E25,3.6191812E29,-5.245042E-4,-3.42991543E12,-3.9315055E36,1.4112847E7,0.001767671,-3.4352837,-2.921994E-22,-394148.47,1.2442059E-28,1.0903586E-28,-1.14717656E-29,-2.4340287E-17,-1.5136631E26,9.304202E27,1.7609354E-7,11337.007,-8.373158E-24,3.1022862E-31,-1.2444933E20,-3.7436606E-17,-1.0777715E37,-2.111371E32,1.9485887E22,6.222807,-1.7070699E-18,7.130554E33,-2.4125381E11,1.1414538E33,-7.7300704E-28,1.1997317E-34,-4.19287532E11,-1.8712265E-21,6.4402985E-7,1.9199932E28,7.761017E21,1.4760437E-34,1.311639E21,-3.473825E-26,1340306.5,7.165198E-25,2.1375271E27,-3.7441183E-20,4.4497543E27,-2.7439192E20,-2.8833095E-33,0.011356765,7.1803647E-28,-2.5945176E23,-1.6136751E22,3.485619E23],[-6.044063E36,-2.6103998E22,1.3173548E-18,-6.674972E-11,3.6872715E30,-8.716288E-33,8.0604186E9,-1.35196679E13,3.954288E32,-1.930289E-29,1.0282257E-8,6.2271836E-35,4.7967978E27] +,[111.52081,-3.4265005E-4,2.08950378E11,-2.6038165E33,-1.2778452E-20,2.0138853E32,5.1685737E13,5.9989783E10,2.7165724E21,-6.1999948E7,-4.2563575E-15,-5.9826374E18,-2.4955483E14,-9.74889E-9,1.998957E-23,1.8474495E34,-4.000669E-24,-1.83592672E16],[-5.9103235E23,1.755274E38,-2.5553578E-12,3.6658224E-4,-5.233411E-24,9.8123824E-36,1.1832269E-15,0.01923362,8.813129E-10,-8.9343013E-13,-8.7737985E-15,5.108798E-18,2.7233456E21,-1.89397654E18,-1.4993371E-18,-1.1762382E-21,-7.55091E-13,1.6910232E25,-6.68898E-36,-4.366135,5.0130123E26,5.658987E-10,1.12944734E-4],[7.670068E-15,-2.80775584E17,-2.9787247E-25,-2.1149537E-8,1.6231991E37,1.1651223E-23,2.0636201E10,-5.1762626E-38,-2.97536597E15,-0.0029359923,2.4034574E21,-1.2315049E29,7.753713E-25,-1.69600369E10,4.523179E31,1.7020673E-18,1338386.4,2.9649162E-21,5.1408284E-30,8.914675E-15,4.534591E-15,1.0657312E-24,-8022.8022,-1.542446E23,9.582449E23,1847851.1,-4.9340898E-26,-38.082893,1123326.2,3.593817E-20,1.328062E-12,-6.9038993E-35],[1.7058306E-37,1.0561656E-18,-3.5017737E-7,-2.309725E32,-3.8855506E-38,-6.4111076E16,-61132.098,7.402418E-32,4.137606E-7,7.0176926E15,-3.8560205E-12,-1.26492795E-36,-229.90636],[-2.0367467E-38,1.7735674E-35] +,[7.8801927E-28,8.99017E-23,-0.12334686,2.267776E-35,6.602E22,-4.1353434E-7,3.8295074E-38,27.062914,-2.6815113E-11,6.647715E30,-6.8557477E22,-0.1737599,3.9544336E-8,4.1595755E-12,-3.9169864E20,3.1313735E-7,-2.22775E19,-2.1013196E30,-5.4897552E7,6.840488E-29,0.5352197,-1.7332099E-18,-8.756769E-33,2.8363015E22,3.6271528E30,-1.32938244E11,2.0292455E-10,1.34025388E13,9.956878E-17,4.8682307E-9,-7.788116E-18,-1.08557995E30,-1.4297638E20,2.306014,-4.2963852E7,1.13428134E9,-1.1373578E29,1.5360171E36,1862.9814,-3.214738E19,1.08695509E15,1.4640759E22] +,[1.28409919E17,3.929078E19,7.398264E37,-5.456806E26,-6.3881414E13,1.995884E-7,2.7377916E-36,2.2008916E29,3.0644462E-15,7.273561E-9,1.01013604E13,-8.7379744E30,926.3532,6.2766252E-37,-6.486869E-25,1.91109896E18,2.3674893E-32,6.6363405E-15,-1.5708478E-32],[2.4038063E-10,-3.50169945E15,-1.8565553E-25,1.3835687E33,-187.00838,-5.0665634E-37,-1.7776346E-8] +,[-7.902012E-19,-2.9315193E28,2.0374592E-23,-8.705462E-38,-3.4425498E-4,2.347934E33,-1.66798356E10,-1.65792252E11,3.1059933E-16,-3.7615085E28,-0.60163826,2.36192557E12,1.8849123E32,-0.026402213,4.7024084E-38,-2.2423211E-38,-1.34600385E13,-2.0817311E23,-3.6401177E-35,9.537745E-18,3.92991736E11,-8.163994E33,5.8147135,-1.510791E30,3.949444E-8,1.38609995E-8,-332381.97,-3.1736623E27,-2.2812714E-29,-2.291572E-9,-4.386445E-25,-8.3170586E37,3.14790117E11,-2753682.5,-4.2155164E26,3.7463407E-31,4.0294633E-26,-1.1594631E-25] +,[-2.787611E38,-1.20194217E15,208.19893,-1.10117254E-16,-2.1501943E24,2.2999115E28,1.03285407E14,4.1158448E-38,-5.9500535E-6,8.709221E-18,-0.41958737,1.4456883E-22,-0.27423915,5.9594743E-23,6.329182E32,-3.8571793E34,3.8146403,-4.4398383E16,1.8653683E-35,-2.0999737E-7,-1.7420561E-15,-4.4825488E8,0.009006739,-1.013476E8,-5.784616E29,5.546931E-33,2.1903438E7,8.8903685E-18,4.2145106E-16,1.06082695E-11,9.3994234E21,-3.2573135E-28,-0.027600484,-1.2911376E-10,2.4733934E-6,1.2162123E30,-3.6730052E-10,-4.779868E-36,7.863201E35,-6.4165717E-21,-2.1013622E29,2.04848678E18,4.4834E-29,4.749279E22,58226.336,1.6627068E-38,5.8317545E12,-1.053897E27,-2.15538E23,-9.140853E-18,-875.62756,-1.830947E-10,-3.415372E34,8.6856913E-32,-5.5848467E-8,-1.2828722E-28,-2.6577513E32,166.79366,1.2213504E-16,2.7111211E14,-2.5846598E-37,-1.5204548E-21,4.3596547E-11,4.4801724E7,-18146.887,-7.418924E28,9.643046E-36,1.2505698E-8,-1.787065E-19,-4.80839765E17,-5.3036786E16,-4.880802E-10,-1.14240748E15,1.1889918E-10,-3.487458E20,-1.72746512E8,-2.6002013E-27,9.447709E24,8.448562E25,3.3825377E-11,1.1789647E23,-7.5225364E15,-1.3568401E23,0.34649983,2797.5444,-8.634043E-10,-1.488431E-23,-4.966701E-24,1.05700284E-14,-398547.53,1.24994286E15,-7.226216E-30,-5.437547E-23,6.955646E-11,4.580792E-15,-2.1163867E27,-8.436962E-9,-8.915255E-23,-3.70964E-8,-1.6971955E-15,-1.09088072E10,-9.016622E-37,-8.4399056E-7,1.303762E31,1.7701865E13,-2.050575E-9,-3.9340855E30,-5.86469E33,-1.9108958E36,-9.45013E-13,1.3413494E-5,-2.3332007E-32,-4.2000536E12,-13.862848,-1.0764852E23,5.2004128E7,9.002588E-34,-2.07457301E13,-7.768945E22,-1.1382736E-10,2.71225426E10,-2.6740375E-18,-1.755016E-33,2.2179205E33,-1633229.8,-6.3014133E-22,-6.6278984E9,-9.227446E-36,3.5444855E-6,2.9015085E-10,-1.003169E-10,-55589.418,-3.0689526E35,-3.0863537E-20,-5.1336855E-38,3.6434092E-32,2.3369965E-24,3.6052084E25,-4.4839972E-35,-1.4167258E-38,3380.7002,-1.2905357,2.82058233E17],[5.338831E-24,2.6178479E36,9.0546997E14,3.7206219E34,1.9083935E-5,6.3134293E-4,-8.3112653E9,-1.9926666E24,3.1517186E27,-2.5517091E20,-1.05800744E8,-9.793455E-14,-2.0169154E37,-3.1260331E-24,-7.613612E-28,6.448219E31,-7.3234214E-29,2.71411919E14,-9.1385004E-8,0.09265018,1.07860514E21,-2.2735031E34,-2.5812135E-15,4770.381,-7.851698E-25,3.49187E-25,-1.2396227E32,-34585.13,17.54151,-3.505097,-1.8355975E-32,-0.037202276,1.5864158E38,3.0053117E-13,5.9356287E-36,-0.008556399,-3.07177E33,-3.8731779E27],[-5.8432459E12,-9.3744706E-29,-3.0442952E31,1.4456566E-20,-2.5532715E25,-1.5532156E-31,4.0604127E-6,3.6498957E35,-3.3537944E19,-6.8137027E-25,-2.1100003E-27,1.4886213E7,-3.0698327E19,2.83065503E13,-4.3249327E30,-6.073115E-23,2.1917574E-35,-205.4083,-9.675174E25,3.5117817E-30,-2.8977774E-36,-5.581732E-14,-1.6782692E-12,1.6625899E-34,-2.0087757E26,-1.5675231E-21,8.767787E-31,47245.637,-1.317919E21,1.5282041E36,2.7906064E-15,2.5141342E35,-1.6795639E34,2.7701904E-34,-7.9624705E31,0.7160752,-1.5922899E-25,1.34162743E11,4.7727696E-8,-3.536734E33,7.8552523,6.858665E27,9.245525E-10,7.298415E-24,9.457784E7,-1.4218246E-27],[-1.3826582E-4,-8365.937,1.5826727E-33,-4.3762118E13,-1.638345E19,2.3506025E-14,7.5632305E35,1.7000062E22,-1.9258136E-26,-3.7648986E-38,-2.1044617E-20,-1.94231665E10,1.4021162E-30,-1.8531586E27,2.2573868E-26,1.8158826E19,-4.8769556E16,-3.519775E-33,-2.776269E30,0.06618641,-1.0570512E31,-2.1206823E-12,-6.407421E-16,-2.4483065E-18,-2.9193552E-36,-1.2697332E-38,-9.11313E-14,-3.60744627E9,5.851594E32,3.343895E19,-1.79549422E16,-1.9918633,1.3503544E-4,-1.9426696E-36,4647990.0,-1.372953E33,-7262599.0,-6.5252539E14,4.9826445E-35,-7.995364E-22,7283753.5,4.2300386E13,-1.4573794E38,3.9310373E-28,-1.8676528E-27,-204610.77] +,[1.1690469E-5] +,[-1.7490238E-20,-335.36093,-0.03876838,5.7398714E-11,2.58614863E16,1.7895315E24,6.746036E-19,8.335507E27,-1.1199012E-8,-70.68674,-100628.875,9.1079204E-23,95.32721,-8.3105464E-5,-1.4512805E-9,1.8253357E-20,9.043557E-12,-1.4538089E34,-1458.933,-1.5232609E13,-3.5019788E21,-6.431496E7,-2.9235591E-34,-3.4052817E30,-5.42358E-15,-1.162009E-19,-1.2892123E25,-1.1598687E-24,-4.9787108E-8,-1.2004785E-23,3.264165E-25,1.08954664E-29,-6.9852667E-25,2.8870893E-35] +,[-5.9509536E-11,3.022469E-31,1.37522086E11,-5.43904525E14,6.7213414E-28,-3.109001E-38,-3.08868E-30,6.997175E-34,-5.7764715E-17,3.0259297E31,8.995435E25,862.57745,5.0345965E-32,-3.75554887E12,3.9959064E-33,7.711432E-29,3.1212494E19,-4.5898716E33,-3.1595166E-27,5.19588E30,3.158304E-28,1.8022409E36,2.9463178E31,-2.0824029E-17,5.21766976E8,4.5923488E-18,-6.8528934E-23,-1.2853099E-8,2.2906182E-14,-7.2089754E-14,-2.5029027E-11,-9.334377E20,1.5007181E34,-4.1258442E27,3.170124E36,1.4901184E8,-2.0482806E-12,-3.1524406E21,-3.684307E-8,2.25045607E18,1.7534187E-16,0.09259096,-1.2650649E7,3.5243125E34,-3.839742E-36,-2.0951473E22,8.4107808E14,2.49820672E9,5.943513E-14,-8.370782,1.7470015E31,2.4800524E-16] +,[-1.8314581E-24,5.3156383E-15,4.06149739E12,-2.0778908E-24],[4.7414213E35,-1.4472924E-24,1.0667976E-27],[1.6747693E-36,-6.3536463E-24,-2.9848924E26,-1.93258496E8,-2.5724427E-17,-4.7488213E15,-2.9393788E36,-24.488659,-1.6337917E-13,0.015942302,-4.50737E-22,0.09000197,-3.7305844E-7,2.705776E-27,5.522876E37,4.9042255E-6,-2.5144967E33,6.326865E-8,-1.6325168E-28,-2.12185456E8,-3.1032023E28,-730.28314,-2.81790566E9,-9.1335451E10,1.944591E32,-1.796695E28,-1.9997478E33,1.5470966E-13,9.697748E-11,2.8183301E-38,9.839224E27,-3.3696503E-36,1.5711026E34,-2.7216077E38,-3.4466444E-32,7.4459716E-10],[4.7447296E8,1.3187252E20,9.5262305E-18,3.48214431E16,-1.48230152E18,3.2828393E9,-89.32659,1.32706145E-5,-2.2086582,4.23790194E15,1.8866916E-38,-1.040885E-9,-19.96205,1.8702944E31,-3.7670456E-10,6.5041374E35,-6.5374434E-29,-2.2779346E-29,-1.930791E-14,-2.0355456E-36,-1.8985005E38,-6.1017356E-38,-9.783483E-11,-2.590552E-10,-2.144385E-14,-5.8224094E-27,-2.1036241E-18,-9.508679E-4,1.046445E-17,-1.06253011E9,6.1921203E9,-5.1182716E-26,-2.8552844E13,-1.0548943E38,-3.1364824E-28,-2.439762E-14,-1.8849034E-22,3.175472E-33,2.85419831E11],[-1.2728546E-25,-2.4089081E-15,-5.345997E25,-2.0281554E-8,3.8364284E-5,-4.7256496E21,-203018.06,-4.859113E-25,1.2689607E-23,1.04371476E10,-1.99889603E16,-1289.2817,-4.082002E21,1.7250264E-18,-4.2471706E35,-1.8774203E-35,-1.80572385E10,6.5519203E28,-2.4870927E-37,-5.33203972E17,-2.0176224E-26,-5.4523193E-34,-2.1113368E8,7.6477055E-20,109985.51,6.157952E-6,3.8773703E-29,1.6886053E-17,-4.7609815E33,-1.730315E-36,1.35175844E-20,5.721813E-18] +,[2.578383E-29,2.1407522E-17,31.79031,7.6587745E-35,1.7669703E-16,-2.2143754E-11,-9.592619E-5,0.25148433,-0.0015977436,-24.724857,-1.0479573E-11,7.600209E26,3.03723119E11,1.60510268E13,-6.43998E37,1.156153E-30,-1260.8202,5.9056794E-31,1.8560622E-13],[2.3129828E21,-1.3179114E-17,0.0018293444,-0.028355591,-5.1170008E20,-1.639061E-35,-4.288461E-12,2.7321386E21,1.2945997E-8,-3.14421658E9,-1.19789886E-29,1.2108384E-19,4.3150282E-38,4178308.2,4.1494581E10,-6.315856E-18,-1.07972675E16,6.0284429E13,-2.5340403E-24,-7.053255E-32,-1.38768728E11,2.5930558E7,3.6359193E34,2.8237853E-36,-3.8022302E-27,-5.9270603E-38,0.0014557667,-3.4602648E18,2.85290394E9,2.15717088E8,-4.783179E21] +,[7.3165595E-21,1.6330827E7,1.949938E22,-3.0818687E36,-9.492587E-15,-8.018424E-19,3.6766472E-25,4.710477E-9,2.4674065E27,8.4178804E-23,-3.0549799E19,0.011932457,-0.064435445,2.8665436E-8,6.5510726E8] +,[4.143027E-8,1.05527866E9,-3.3034116E-17,-0.01745993,-1.6025022E-11,3.98332128E8,-8.147302E-5,-0.0024260967,2.0681027E-15,4.12118E-6,7.8326714E-8,3.033146E-29,0.4014876,-1.7636612E19,-2.1729423E27,4.658796E-9,4.692644E-13,5.6560588E-18,-1.4236583E26,2.1093095E-7,2.8377602E10] +,[-5.3543276E-34,1.2162258E23,-1.725136E38,5.8121733E-21,9698725.0,-1.3808126E-27,-1.9920243E33],[-6.8163403E-28,3.7531467E-29,-1.0797245E-25,-2.04896998E9,-3.2018075E33,6.17484E-5,-6.9869959E15,-1.2112279E-22,-6.8622163E-31,3.27222374E10,0.2774757,9.447319E-20,5.3670025E35,2.5768802E-26,-5.908172E-15,7.111735E31,-1.0841741E-5,-4.5920173E-12,-35.24335,-4.1909565E-10,-1.451999E7,3.113321E32,-2.0105926E-38,7.360878E-22,1.1959701E26,7.8103871E11,-1.01281424E31,2.825187E31,7.791911E-37,-3.8097867E-25,-2.0257489E-22,-6.2790656E-5,-1.0638966E-13,-5.607467E-39,1.4443735E-11],[-1.5659822E12,-1.8548425E20,4.379502E-8,1.6227315E21,0.023761006,-1.4084973E23,-1.0373781E28,-3.92045302E17,-3.6820947E-21,7.721931E-7,4.953904E-5,9.829162E-23,-3.0381864E34,2.2705972E-20,0.45697522,1.37205135E23,-6.7923245E-28,-3.8678106E-14,-2.8258558E-34,-3.4087187E-22,9.985425E-35,-3.208587E23,4.7699587E26,341.0504,1.9148532E-23,1.5104017E-27,2.2115055E-6,-785.40796,2.47666442E10,-1.09997891E15,5.4106214E22,-1.7257473E-19,-1.0920247E28,-1.98869012E16,-3.8831403E31,7.180658E30,1.3781747E26,-9.8714429E13,-2.8494894E-21,3.0224927E-15,7.1029867E19,0.36988097,-52938.695,-3.6699495E-26,-2.1958775E-7,9.4241516E-12,1.3375675E-20,1.641165E-9,-2.1869612E30,-1.592192E35,-1.4863947E32,1.1867613E-34,-1.7990541E31,-9.2414015E-37],[-1.38330671E14,-1.0093699E-25,2.07890816E8,2.495359E-21,2.8600511E-30,1.52352735E13,-3.5963658E-5,-8.4457796E-23,3.2360748E-37,-2.5366527E19,-3.0223868E-10,7.704658E29,-4.891117E-39,1.8510434E-9,-1.9662264E-6,-8.5123343E-35,1.0233703E-29,-4.07778E-4,-4.9774094,-2.1434484E-22],[6.1155787E-15,3.5030426E-35,-2.1463117E36,-3.5930778E-10,2.5891168E31,-2.034399E33,-15.845953,1.2520056E-15,9.271135E-13,-1.0094107E29,-6.2471997E-26,1.6837067E37,-480.735,2.805314E-5,7.38588E16,628.3713,-4.178089E-17,3.659356E-32,1.06922208E9,-3.6458355E32,2.093946E-11,-0.009274969,3.435875E-38,-2.647997E35,4.8889696E-23,-1566708.4,1.8100004E22,-9.7933875E-37,1.6057602E-36,223176.4,7.6059896E7,-1.6038903E-22,8.0857737E-32,4.6276833E22,1.7561114E26,-8.4496947E-16] +,[8.960487E-20,3.8659976E20,3.3677843E19,0.3636747,4.001805E-36,-8.3070655E-30,1.1630094E30,-0.2936796,-1.0943436E-24,2.2370308E32,1.3145464E-21,1.8699703E-12,6.6084256,-1.14621564E-7,5.449864E33],[-9.001434E-5,-0.013550841,0.0024260508,5.977011E-5,0.023893138,-0.79309505,-4.05305385E18,4.2951996E-21,1.8245819E-34,2.092976E22,-1.9596499E37,-1.9850101E-19,-2.95824677E15,-8.9322776E-24,4.7877494E-37,4.6591217E-11,-8.8906435E-32,-6.551076E-26,108380.734,7.2342685E-22,7.864914E-36,-0.74648815,8.7611578E8,2.8797029E-8,-2.16400036E11,-3.991639E-14,8.8960174E32,-3.3295037E-22,3.805071E-34,2.505315E-6,-2.2189872E-15,7.3960384E-25,-1.4324795E28,1.19091597E9,0.30877537,-65596.45,-9.1923716E16,0.002302992,-3.5947764E-6,-2.7453833E25,1.8256555E22,6.296076E32,1.7969349E-29,-1.3224854E-25,-1.865051E-13,-1.6795361E-9,4.58929E-32,-7.5768415E31,8.609212E-13,-1.405573E20,-2.1593589E-20,1.4146859E20,-1.5759025E25,4.11518787E17,-6.6402119E18,-6.538252E-13,6.8095654E-20,4.904244E36,-8.702819E11,-7.804506E27,1.9414134E-30,-7.285966E-6,10.765796,2.6755415E38,-1.080392E-33,-3.3392953E25,3.3808866E36,9.690364E-18,9.63493E-23,3.02373373E13,-186.63098,-3.608344E29,-2.369865E-31,-2.65095208E17,4.233673E36],[1.863118E-38,4.2373912E-32,-5.6873272E9,4.89264807E17,1.4580419E-8,5.801327E25,-3407944.2,-9.989441E-27,-2.3140594E20,-7.439021E37,-4.070032E-8,8.152068E-13,-2.3844628E-13,-1.5062257E-31,-7.664698E-27,-1.0964827E20,1.343938E-12,3.3020196E-27,1.1043192E31,1.2754209E29,1.3173707E-12,6.776007E-15,3.0201242E23,-1.02439533E18,3.9109428E-28,8.868579E31,-2.6422139E-11,-2.794292E37,-7.890599E36,-6.0250507E23,-3.762835E-19,1.54682065E11,-5.7581316E7,3.1687102E-27,1.383549E30,4.5978523E-9,6.571768E-34,3.1372478E-5,-9.483022E29,2896239.0,-1.5946105E-23,-9.604633E23,-3.074529,-7.823916E27,-6.328333E30,-9859902.0,-1.16368385E-26,8536995.0,8.7641715E22,1.3236179E-20,-7.314045E-32,-3.2939533E-17,7.584158E-26,2.2639514E34] +,[2.4222497E31,8.4374126E16,2.7139265E-34,-3.0442354E-12,1.0319381E28,-0.012431737,14300.638,9.864925E31,-8.148761E22,1.6651499E-19,-2897.8486,1.7007772E-21,-2.5553316E-12,-3.8972147E13,-1.3397367E19,-4.28240589E9,-7.330018E-24,-1.3116366E-35,4.0559863E-16,-2.7402616E-30,-9.2888735E-26,-3.033942E32,-3.7567037E28,5.7873286E-29,-2.56340896E8,-2.001569E29,667.44653,2.3909379E-29,-3.8634906E-16,-6.7680235E-26,9.0435826E23,6.6319652E22,-3.3968045E34,-3.48282163E9,-6.46849E31,-6.701696E25,4.722044E-15,-3.899074E-14,3.559046E28,-2.32093161E16,0.92322904],[2.1500663E-14,3.049157E25,-1.77232036E10,0.00621631,9.8988935E-11,-9.894642E19,-1.97949784E11,6.211777E14,2.7481554E28,3.45673034E16,-7.2608294E-8,-7.640893E-5] +,[5.763044E-25,-4.494909E36,7.363763E-29,2.9826397E30,-4.9785089E18,-5.7037541E11,2.6963912E32,3.173759E36,-3.4239266E-37,-229933.92,-1.65245376E8,1.7023391E-19,-1.4045989E23,7.2134404E13,3.421599E-22,-9.9753748E11,-26708.273,1.82239462E15,-7.4102952E7,2.8951376E-15,6.9537265E-25,-1.3446756E28,-7573.729,-1.8991696E-29,-1.1015584E-23,3.071476E34,1.1310751E-36,1.4858923E-24,-6.435571E-11,4.8536323E-14,3.9481112E-17,-8.239384E-8,-1.7388548E23,1.9631239E-14,-7895389.5,5.780547E28,7.1938254E16,0.0014096443,-3.36592E-23,-3.330957E37,5.9715877E27,-5.96862E-12,-27938.877,1.4260314E-28,-7.3189333E-13,1.4535185E35,-6.764541E35,2.0084628E30,4.142594E-25,-6.3855526E11,1.06434352E8,2.064847E-35,4.097626E-33,-2.9355786E-15,-4.885569E-29,-3.34775789E14,3.9914883E-29,5.8714615E13,9.219286E-11,-1.1424285E-10,8.861739E-25,1.01399724E34,-5.582282E33,4.7519065E-36,7.070825E-23,-6.9288425E-37,1.4018126E-21,-1.5138554E26],[-0.014581802,-0.014699543,-0.4107308,-3.1366124E25,2.9320444E-7,-3.89730638E18,5.061011E-35,8.1635905E-30,-1.9888839E33,1.1674182E24,-9.3102266E-36,-4.1034733E35,8.1275039E9,-2.34244896E8,-5.3807376E-21,-2.3239405E30,-1.852454E13,-8.253771E-11,254.91922,1.94037378E14,-1.7782805E-19,1.3514357E-29,7.8769123E17,1.9456303E-38,1.6169681E32,-196.27563,-18449.299,-3.1785905E-25,1.0165525E-7,-6.6392956E-14,-1.9442488E-23,1.72436339E9,1.36848299E16] +,[-9.3395342E17,7.373187E18,1.1399847E-27,-5.316129E-30,7.2988406E-21,2.2520927E34,2.3066718E-32,6.5449464E-30,-6653136.0,-5.077006E24,7.06684E-30,-9.627278E21,5.100456E-19,4.5153296E29,79.27249,-7.572292E-6,-2.206689E34,1.570405E23,1.9953152E7,-5.0584735E37,-2.7735241E-11] +,[3.8347066E16,4.7537537E-21,0.43369678,11.544229,9.141825E-12,3.206481E-7,-5.40461E37,-3.912049E30,2.1420896E-29,-11621.5625,-1.2781598E-26],[1.12640424E16,2.4187301E-11,-3.73978266E9,3.3488855E19,123.37761,1.451703E-22,40880.918,2.8787174,7.8736654E-22,-6614.9106,-67.738495,2.7019217E37,-1.29506644E14,-4.59274304E8,-7.691104E-10,6.803491E30] +,[2.546722E38,6.3388975E27,-3.83930631E17,3.3236818E33,2.2989126E-29,8.8564961E17,-1.6703415E25,5261816.5,-1.6122646E26,-6.534883E-12,-1.4734447E-34,4.461915E32,7.614744E37,-2.5144255E27,3.9098264E20,-25671.889,7.867279E27,4.54826098E14,-2.1246989E24,-6.5303327E-9,-4.1615433E-17,2.27374538E16,4.5768346E-4,11.746855,-3.13760212E17,-1.5043964E-26,-5.7728556E7,6.378261E30,-1.6621725E-34,-2.9804674E25,6.2865331E9,6.566137E-37,-1.3021403E-36,4.8349145E-18,-9.623567E-23,-1852880.6,1.3170271E-6,2.8417924E-10,-1.0297846E-28,7.8908384E-20,1.1305975E-18,-2.298566E-29,0.28349736,-4.1232098E-32],[-53378.02,-2.4348677E-5,2.0141289E22,-2.3816893E19,6.1437776E16,-1.673584E-17,-6.4791756E-8,-2.517094E-29,-2.063491E-33,-2.20992E38,-2.820192E-7,7.1575211E15,1.6017266E-37,-4.1947107E-16,83.15008,1.48910131E18,4.9730394E37,-6.193448E-6,-6.1033527E-38,1.4470078E-11,-109360.18,-2.98181271E13,4.546957E27,28.050613,2.22219595E14,1.76234946E17,6.24209,-3.804794E-13,-2.7770268E34,-1.6883155E21,1.17251257E12,2.85061511E16,7.688295E-26,-8.5139256E20,2.4504939E26,2.5029476E-14,5.9073295E-19,-8.40137E-28,3.663849,1.509104E-29,1.8793774E38,-3.26979486E11,2.2339417E-16,0.0057175397,5.914664E-35,-5.8366517E-18,1.17936447E13,6.9955204E-6,-1.682988E21,-6.0758643E-15,7.311768E23,-9.2867125E14,3.233391E-15,0.4262526,-3.32802392E11,-1.1501448E-11,-1.701389E27] +,[-0.0017165262,-1.2724064E33,-9.009366E-16] +,[1.7839068E-10,7.7823914E-10,-3.07036058E10,-1.5130077E-37,-446.29678,-1.774378E-16,-1.6339367E-16,-1.698852E-31,4.1384502E-14,9.514817E27,-7.864796E-25,-2.9919293E23,0.13843381] +,[2.1279191E-4,190355.83,-4.1957372E-7,1.6358798E-10,-5.546888E24,9.579898E21,9.0732345E-7,-4.8682492E26,1.2438232E-25,-8.743151E-12,1.6934396E34,-1.0441042E-14,1.6620653E19,-8.675206E-27,-758141.7,5.904506E-5,-7.380854E25,3.8057492,-0.00773271,2.5373261E-26,-6.6881906E-10,2.095169E-11,-1.791023E26,7.159086E-32,-9.0563107E33,-6.6240623E16,1.4647568E-12,1.2714292E23,5.4157537E24,7.0665114E-6,9.473122E-35,-1.1077577E-32,8.3889456E16,-1.4109704E25,-4.6205777E-31,272257.78,-1.6126594E-16,-3.998725E-6,-1.0632713E-11,3.4417483E-21,-6.3214898E18,-3.5661094E-12,3.655405E-30,-3.7573435E37,4.25798192E14,-3.514179E30,9.361147E-32,1.1075149E21,0.0029928624,-5.2112356E-13,-6.5362262E15,-1.2038075E-21,3.115808E-21,-2.05605E-36,2.7845992E-30,-4.020312,5.582345E-20,5.8310703E-9,-0.17258346,-52.747665,7.285912E-29,2.61914273E15,9.815328E-23,-1844.2174,9.002968E33,2.1011398E-19,6.693701E-29,-3.1481093E30,0.23139499,-4.3402977E23,-2.6744801E-14,-5.0197025E-16,-689385.5,1.4711415E29,9.5353845E-26,1.0982829E-16,-2.097193E-15,1.0374574E-11,2.8988225E-15,-1.1387278E-29,-2.1959857E-17,3.0753384E-18,-2.1534387E-27,1297446.2,-8.081576E32,7.3064278E11,-2.0182112E27,-1.9000503E-25,3.8570384E34,-1.5915849E-29,3.51232908E17,-5.329934E-6,2.38143219E14,-9.6799263E27,6.160485E-13,2.4711058E35,2.4747681E16,0.09800296,-1.1182718E36,-8.7405578E9,7.566347E-27,54503.645,6.6824335E-21,-3.3890405E-30,2.717748E29,-2.1986161E-5,-245.0435,1.6598992E19,-1.130798E20,1.4756107E-9,-1.5944864E28,8.0335363E30,4.537881E-15,4.99391E-28,-1.9242471E31,1.5696506E21,1.5965287E-36,4.2670817E-6,1.7389909E-36,2.7348243E33,5.4664225E26,3.3139525E-29,-1.6460602E-6,3.43947622E9,-3.470771,54.989876,-0.19886814,-1.85754547E9,1.0683111E27,5.6301133E-24,9.848386E-21,5.2225376E-31,-4.32787E-14,-3.320742E38,-7777458.5,-4.145566E31] +,[-2.5351684E38,5.5903027E-19,1040321.56,3.38312458E10,1.4903255E-12,0.025317257,153.47539,6.8795531E10,7889.5537,-8.9482164E-27,3.12200499E9,1.9048915E-4,2.6747952E8,8.365426E37,3.6656786E-8,4.179911E-19,-1.7171582E31,22418.111,8.0066557E16,-83767.76,109.396736,1.3821912E-31,-2.8017373E-27,58816.56,8.6286327E-26,2.96344124E13,1.6938506E-37,2.62191E-8,3.5752467E-4,3.3806003E31,-1.3314564,-5.653364E-25,-1.7542277E13,-6.0345686E26,-6.1112406E13,49.768883,-7.9691228E9,-3.809219E-17,-2.1541923E-38,-3.9188712E-4,-2.3283323E-17,1.65297894E9,4.83322501E14],[1.8270576E-22,-4.960506E-13,-1446.0315,3.6918467E-19,-3.50016776E15,-2.5466105E-7,1.3753059E27,1.0404823E-8,4723.4307,-2.819457E24,-1.3786469E30,-5.357719E-7,1.58583521E10,1.4863654E28,3.8821987E-13,1.5235958E-6,5.430119,-1.7409842E33,-4.7633066E-21,-2.7903541E26,-2.1037476E29,2.8976874E31,-2.0810089E38,1.1160759E-30,3.1547093E-10,-14455.295,-1.0687387E-26,3.0977924E-28,1.00432466E-13,-1.9730476E-24,9.334673E19,-4.400483E35,-2.0237804E-16,-2.4839214E26,1.2820549E27,-2.9480559E-12,-8.0636827E33,1.0154122E19],[-4.3857993E19,1.877893E-23,-2.7546048E-19,-1.3387484E-37,114.46374,3.4824585E-17,-2.8232162E-32,7.8781281E9,-5.1475985E-30,0.0019016591,1.4153812E7,2.6432982E-37,1.6322665E34,1.7036795E-5,-9.2699866E36,-4.8939908E-15,2.8015324E30,5.558837E19,2.4107695E-22,1.5226718E-36,5.0422913E19] +,[1.8566589E22,1.2250837E37,4.5599097E-14,-4.0511993E-30,6.5709867E11,-2.67016E31,-5.3984523E-14,4.389576E-35,5.0318777E37,-2.30779313E14,-5.773945E-27,-6.68303E-18,-4.458687E-36,-6.861388E-5,-9.377162E31,4.809452E-13,2.58250608E8,405.7435,-8.5590437E27,20.174587,486501.72,5.704466E20],[-9.584733E26,3.3663747E-12,-1.0657247E32,-4.996626E30,1.5157849E25,-5.6416478E-27,-2.8021502E35,1.6830677E-16,4.063297E25,3.884891E-7,-0.20764667,4.2618368E-36,-2.2505126E24,-2.16989951E16,-3.3791352E-23,-2.2622431E-12,-1.9832247E-18,7.9941054E37,4.3089252E10,-3.9480576E16,2738.2466,1.4452786E36,1.321338,-5.733875E-22,-1.23433347E15,2.4229963E38,-1.1628368E-8,4.8816623E31,-2.823122E-6,-1.6411271E31,-6.02098E-22,-6.287941E36,1.8752344E-14,4.3050327E-10,-0.02403785,5.7330963E-37,-2.1668185E22,-2.00985612E14,-4.7075902E21,8.27232E36,-2.6243335E35,3.92364023E17,1.8086118E26,-3.5541944E19,-9.298125E-36,-1.6644138E19,5.4246154E-8,-15749.5,2.19071035E13,7.02522E-12,5.4936867E16,3.0804336E-37,3.0653246E-32,-5.08605E34,-0.0011060967,-2.4211834E-6,-5.309445E-21,1.1074681E-26,-6.079166E-16,8.9123897E10,5.1624315E-22,-8.689611E-9,-8.623229E13,-3.27240473E16,1.3190854E36,-1.4852208E-21,3.027946E21,0.0035015726,-5.748167E-8,-1.9010928E-30,-1.1107124E-17,-6.8929363E18,1.7260037E-38,-0.007688139,4.202356E29,3.5537087E22,9.378857E-24,1.1471318E-24,-4.9013718E-8,-3.6719764E-5,1.01447354E9,-9.823231E-18,8.8776794E16,1.9152184E24,2.4040656E-24,-0.029477606,-5.6788453E26,-7578.009,2918.2883,0.057530016,2.3970672E37,-6.4669535E21,3.5951024E-22,-1019938.8,-0.011560057,8.943859E-6,6.1301847E-33,-1577910.2,-8.1258654E-13,1.0505744E22,6.453602E-21,3.4392283E-30,5.6482457E-14,3.08532364E18,2.0574037E24,2649.5166,5.6074753E-31,-1.65605897E16,-3.6331367E-30,1.0064234E-32,8.064997E24,-3.65624492E11,3.88990658E14,-3.5895756E-27,-2.0697576E34,-7.2641886E-11,-7.456001E-21,-3.9443768E-20,7.68356E-40,-1.3052598E-38,8.222302E-6,-2.0499108E-23,-8.028338E22,-4.527867E-16,-1.0447115E-27,-3.8851717E-12,-4.0457946E-16,1.507552E-34,2.1087501E33,-1.1247249E-4,-2.63530925E15,3.2929465E-18,1.1921536E-27,6.477329E-24,7.7310992E16,1.9015664E-33,-1.0365526E7,3.18606103E17,-6.2920983E16,2.5957222E35,-1.9258832E-31,2.6266172E-19,3.5621542E33,3.0454332E7,1.2476855E-16,-1.8176861E-31,1.36548031E13,4.9214045E25,2.7438851E-17,-1.8473959E33,-3.0454578E-23,-4.8897692E7,7.0721573E37,5.9847318E-27,-4.1846877E25,3.3531302E23,-3.364228E28,-3.74606E-27,8.870112E-19,3.2105653E-19,6.9492075E-24,5.413313E36,-7.762603E28,-2.3253088E-35,-3.31289446E16,-2.16585744E8,1.34195825E10,3.7324236E27,-4.01608869E14,8.3575915E-12,0.0041716653,3.3479494E24,-4.2670086E-19,-2.8259825E-31,1.2722923E-10,-0.0017439951,2.0298965E26,-5.0272176E-21,1.99348746E15,0.18023208,-1.5176701E-24,-2.1410287E-10,5.6091987E8,-1.4499126E-9,1.1885654E-9,2.6898118E-36,-0.18070306,1.4850517E10,-6.852806E20,5.1599894E-22,9.411071,4.89038217E11,1.07041925E-13,-0.020197956,8.366439E-13,-6.4576534E35,3.0023203E-11,-105.14248,2.2960459E14,-2.7814795E-28,2.8688215E-17,-2.3964953E19,-1.6446723E27,-2.1542435E-36,222250.61,2.1277626E31,-3.5781515E-37,13.174928,7.4567587E-19,-2.0350378E-14,5.2352136E24,2.9334891E-5,1.0556122E-7,-140545.3,2.2071881E33,-1.0923296E-35,6.8107282E17,-1.1686143E-36] +,[-3.7570866E-36,4.3920528E-21,-3.0267458E33,-4.8123838E-4,2.12880242E15,2956280.0,-7.4784644E-8,7.6129017E36,-30.573015,2.8056875E-28,6.55768E-28,-1.16929085E-26,-174.06331,80.37314,-1.04798074E14,-1.0279604E8],[2.628307E-16,-1.7618769E-37,-5.0951494E-27,-1.5004825E-38,-1.6793842E-36,4.6419328E9,-1.1114292E-14,-6.980926E-35,-1.10313708E12,5.6927907E-26,1.40455E34,-1.5325342E35,1.3978647E-7,-6.990763E33,1.7162768E31,4.07759687E18,-1.8870195E-22,262014.48,-4.193267E-20,-1.3926199E-21,1.59593477E13,-1.19191731E16,-2.5215198E32,9.60373E23,9.7813126E-11,-1.57487411E9,-1.35527411E9,3.1812082E-9,-6.177941E-16,1.3771007E-36,-6.0719493E15,0.04487049,-1.1324775E33,-5.3247848E7,-6.4157197E-22,2.1571381E-32,-3.3804733E-13,-1.7190284E24,-5.294223E34,1.5343845E25,-7.05058E-9,-3.4925557E-27,-1.2725383E-34,-7.734155E-36,-3.4937855E-28,9.50521E-23,-3555126.5,-4.5004522E-27,8.518416E31,-2.8177185E-35,-5.541759E-34,2.2947006E-17],[6.8358187E34,2.04636401E16,9.12752E30,6.527289E-24,2.9402646E29,2.5824407E36,-4.8833208E30,-5.94667E-15,1.30115923E17,5.6415725E-14,2.4838693E-16,2.2218246E-29,-3.1267355E34,-7.4469495E-32,-2.7373522E-12,-2.622843E34,-1.9547955E20,-8.692458E-33,1.9223859E-5,-4.5640927E-27,-25.795946,4.1003613E29,-9.2776E37,-6.434533E-23,-3.1305103E-38,-9.306484E26,-245004.48,-6.335563E-24,2.0519342E-9,1.2816643E-38,5.482879E33,3.1055513E25,-5.860269E-6,2.974895E21,6.796779E-27,7.070272,6.444903E30,4.9232947E-37],[-21.336824,-4.7621618E-20,-0.66497993,8.3766025E31,-2.3898977E-8,-3.5307857E-9,-1.0266436E-5,1.7609032E38,-7.6773987E-38,3.5121708E33,1.7548092E-35,-1.1697135E-18,2.8212008E-15,-1.986672E-11,317.6892,3.99097434E15,3.63208097E15,4.381874E-11,1.12951248E8,103042.68,2.4132948E23,3.33862067E16,2.4436065E23,-8.328726E32,-4.43866986E14,5.46849E-33,1.1179067E20,1.68093248E9,1.4400609E-4,3.0030544E28,-3.0063615E29,-3.01945897E10,-45050.22,1.398677E-9,-3.7032833E28,9.7888625E25,-1.3143519E-28,1.3282156E-33,-1.06655865E21,-1.4759362E-25,2.58851945E16,-1.7093964E-5,3.72831656E12] +,[1.7212977E22,-1.6110315E-34,4.1975646E19,-5.9847237E18,19.350712] +,[220476.72,-1.18574151E17,2.2182982E-24,-7.739423E-37,-1.9043889E-31,-5.6461822E-8,-2.7649708E-20,13.952787,4.1838666E20,4.38796E37] +,[2.7655644E-4,-5.724242E23,1.96025779E9,-1.5486204E-8,-5.4481943E-11,2.1857963E-5,1.63553918E17,-7.113666E-13,-2.1068328E34,-12630.789,-3.297585E-31,-1.4076463E-7,-9.1754084E-23,-4.44090816E8,1.3148161E-19,-3.0914472E-11,-1.4561927E31,-6.301541E-27,8.399797E30,3.67614331E15,-0.0055200066,-5.7940585E13,-3.43707807E16,2.716806E34,-1.0018717E-8,-2.33219988E17,1.4592641E38,2.6494505E9,1.05013653E14,-8.009347E-33,1.9547011E-29,1.883113E26,31231.357,-1.011895E-5,-9.6077873E12,-1.7764658E-13,4.7828343E32,1.31251164E14,-1.5896487E-16,259.09628,1.0760773E22,-5.309685E-4,12.104666,3.6872232E27,-1.7278494E-33,227827.33,1.17411065E-35,-2.2445887E24,2.4458088E7,-5.3171926E-22,2.1767572E-32,1.85946416E8,2.8596588E7,-1.91242043E11,-7.835202E-18,-2.7471544E-35,0.0010917947,2.1841521E-4,-2.1312299E-29,5.930519E-8,6.6859726E-11,96240.48,4.051071E33,3.168662E-16,4.687558E-8,-4.9372333E20,-1.12451607E17,5.8929087E-5,-1.467048E8,-1.6280365E-30,3.76742784E9],[-1.75584351E16,1.2245168E-33,5123130.0,-4.514292E-33,-1.4935367E22,2764259.5,-1.45118991E17,-6.9147292E13,9.674682E-33,-119250.984,-3.703168E-14,5.6170836E33,116.853165,-5.27508374E11,1.1289592E-15,9.946945E-22,-3.9366324E-30,-1.3504566E33,-1.1016756E38,5.08689719E14,-1.2788694E-32,6.599717E22,-12502.141,2.2842587E21,3.667297E-10,-4.5007733E-32,7309935.0,-1.73013051E17,2.4907978E7,2.02769039E10,-8.224463E-11,3.0989545E35,5.774948E-17,3.74249878E17,-2.061192E-5,9.947499E16,3.0657485E28,2.5322439E32,6.6040974E-15,-0.07022908,1.716999E-9,-1.3621023E21,-1.0400885E-7,-2.9722635E-13,4.9212E29,-1.0066843E-19,1.6089257E-11,2.3340341E20,-6.290064E-29,6.886818E-38,-1327744.8,1.5810359E-38,1.1454622E-28,1.3125685E21,-1.1477186E33,1.7961565E14,8.71463E-36,3.65589472E17,1.1879758E-23,-2.081335E-37,-6.836266E23,5.2622714E-30,-7.0061786E-12,2.9054075E30,-1.7370435E-18,-1.9153267E28,-2.7897597E-18,0.39471734,-2.676496E-23,-4.381145E-9,-2.1551504E-18,-0.52318925,2.546482E-11,-1.0389E29,-10.113984,-4.4505333E-11,-5.4575633E-8,1.2912783E-9,-2.1069744E-37,33.521736,3.1073418E-7,3401.844,-4.8082936E-30,7.357117E-33,3530.7163,-1.0631536E27,1.06069036E15,-1.5604408E-33,2.2575062E-19,-7.26557E36,1.2502042E-34,2.4010126E-34,-1.10593291E18,-4.842133E-36,5.8919647E20,-2986.734,-1.3374483E32,-2.3035782E-27,1.4147205E-18,-1.7623882E7,2.7470034E37,-1.8373128E-16,3.1367524E-35,2.44237078E17,-4.451739E-37,3.404541E-31,1750.7219,1.3187349E-16,-4.686884E-27] +,[-1.2303181E-9,9.170093E-37,0.4784891,-6.1942696E14],[-0.0037292065,1.5047219E21,1.9131262E-14,-2.627254E-27,-1.5929944E-22,-1.4257981E-12,-7.630401E-5,-75804.51],[9.935494E-21,-1.8472805E-36,-5.8191081E10,1.53035242E13,5.576163E-17,0.30631384,4.803341E-28,1.6066789E31,6.2460291E11,1.2759892E29,6.1332144E15,-4.130231E37,-1.2088627E15,4.6335262E-18,1.73138E-38,-2.7958729E-27,4.6879826E24,4.1132406E20,-1.7825944E35,-1.03556544E-19,3.3949943E-9,4.11711579E17,-3.35493888E9,-7744065.0,1.0330292E36,7.724934E-15,0.5944197,-7.936431E-10,3.9887612E29,9.94681E-37,1.04271539E18,-1.6114264E24,-1.0828852E-21,-5.4225265E-28,3.41002289E11,1.375858E-18,1.08457798E14,-372435.97,1.878048E-4,2.839687E19,-3.5429884E-12,-1.4272401E-13,1.1276847E-16,-2.859622E19,1.04727879E15,1.1058462E-28,1.3562694E-28,7.651554E21,-5.4016757E37,-1.0013809E23,1.33454879E10,-1.1905907E21,4.0029266E-10,2.9158632E-21,8.4604236E-24,-2.9850152E-34,-0.012190459] +,[-5.764414E31,-5.2196752E26,6.7858896E7,0.909799,-6077.3174,2.3042354E-21,-5.212471E-5,-5.1442374E-36,-6.9973688E7,-2.727006E34,-1.1359338E-4,-3.9407945E32,1.30400625E11,-9.346719E-24,2.1532475E-26,3.8182804E-22,0.10658172,4.39766374E17,3.70600675E18,3.5758696E11,-6.778952E-15,4681.533,-4.5092954E-24,-2.08312356E16] +,[3.2162023E-22,8.221859E-24,6.462382E-31,9.4229164E21,1.1810377E38,-0.12487992,-1.0157863E-4,1.15495858E15,-6.2867823E31,1.2492463E-23,9.601541E-26,-1.6277776E11,-2.931216E7,3.6215828E-25,-2.7987744E-13,9.694505E-35,1.23615048E10,4.1462154E-13,1.4492912E-25,-32598.293,2.0894494E38,1.2132723E-37,2.2854747E-5,-1.3249754E37,1.8793671,1.1965214E-16,1.2201502E-32,7.583581E19,1.5794895E-9,1.182034E-9,-2.5222528E-12,-9.3422186E36,8.056309E36,-135772.14,-1.523953,-436.8168,-3.447895E-30,8.5902084E-11,-6.1617074E-17,-1.3981657E-14,-4.2009978E19,-6.309546E-29,-731046.6,-4.27337921E18,-9.168636E-26,3.95471999E14,-6.735841E-6,-5.207519E-6],[1.4292304E-8,4.1480423E32,2.0948E-9,-7.849331E23,4.3482833E29,-3.7333004E-27,1.0487214E-9,-7.913312,7.495433E24,1.11571444E-13,6.9270526E31,5.0445893E-12,-5.2592262E20,-3.56502897E11,5019.301,-1.1874029E-27,-1.0265498E35,6.7177503E15,6.86319E-19,1.04973047E17,2.49409959E15] +,[-2.79268102E17]]
diff --git a/1.9.10/samples/numbers-int-4k.jsn b/1.9.10/samples/numbers-int-4k.jsn new file mode 100644 index 0000000..3a1e557 --- /dev/null +++ b/1.9.10/samples/numbers-int-4k.jsn
@@ -0,0 +1,11 @@ +[[ -6815,-15 ,25 ,-2379,-30,20,8 ,-148966676 ,-25,-15 ,-475215790,27 ,-21 ,-18 ,-10 ,-860 ,-2703 ,-747,2886 ,-13,-390],[-242 ,22,-55475680,-11,70 ,8,21 ,-5712,22 ,41741460 ,25,-28 ,175967856,20 ,180766425,425383080,-15,100 ,-22 ,0,-4,-1656 ,-195903072 ,-14 ,103871680 ,1,-30,22,5,30,-7 ,-6566160 ,3,0 ,-5100 ,1,4207210 ,2568240 ,262598850 ,3885852 ,-2968],[30,-14421168 ,16,-30 ,21 ,21,-89984160 ,-36689745 ,656 ,-8 ,29 ,27 ,-45057880 ,-2320 ,31,-24 ,-12,22,22],[0 ,840 ,-12,4548996 ,-4,-15 ,21887400 ,27,2255 ,-15,9 ,28,30 ,-4867 ,-19,4 ,5,-12 ,-3,-2964] +,[-2288,-27,0 ,-450877856,-25 ,-1428,288,68410304 ,-2783,10283700,25,0,3360,3220,2,-14,-3 ,-12,162483684,26,962325,-336726192] +,[2080 ,-18 ,-226446836,24,-9010575],[572,-14 ,0,10,9 ,18,4228 ,474152068 ,-9 ,-249 ,-3504],[29,-8 ,88136384 ,0 ,-31 ,26,-5425,342 ,-6 ,29,22 ,-3 ,29 ,4300 ,9710532,-10,-4,-1326 ,19 ,1420,-11 ,15447796 ,-9,11],[-4,101 ,-26148096,2086410 ,-5100,13 ,-396,-11835750,-1204,-15 ,-2562,25 ,-2418,-65220672 ,0 ,-5200,2],[12 ,25 ,1768,29 ,10,-266238792 ,190918080 ,-66498600 ,74835240,-14,-753 ,-31] +,[-19424880,14 ,673847790 ,2088],[1909 ,-6] +,[-1150 ,864 ,1043,24003072 ,-446 ,-12532509 ,31,-1,26,23 ,29 ,27,-234 ,23,-27,8 ,-5424,59461944,-24 ,-37243800 ,-31 ,429 ,-12950162,-741951 ,330,-1513 ,3744 ,-104324880 ,-1363,13723920 ,1072,0 ,-66401460,-7 ,-28 ,14,-496 ,222896688 ,2392 ,10 ,852 ,10,710600 ,-702268,252678888,31,8],[107921457,0,-69005788 ,-110735688,-2,21 ,620 ,-1],[4,-27,-4,16 ,-1197 ,12575995 ,3248 ,-17 ,-341727540 ,25385304 ,265557816 ,-341890794,44668932,-686426364,-27 ,6 ,-2,850],[59970240,-12 ,-30,26 ,-24 ,640498719,5425,-48,-2418 ,83878272,-948 ,-26,308087920,-22 ,-7320,28,18,-2312,-5084 ,24,18229519 ,-833,30],[17082996 ,7,-12,-493723332 ,184624128,-364 ,10 ,-1950 ,-51792480 ,3,1742,21150360 ,9 ,-730,11 ,153 ,7,-2,-25,342078609 ,123,5 ,48,-19,6500592 ,0,-11] +,[-13,-31 ,-1683 ,-26,-4264 ,1005 ,-18,195189561 ,-13780200 ,-3842 ,19,-109547490 ,-13,22,15] +,[-4247 ,163096443 ,4455,4312824 ,-39474240,221,896] +,[18 ,563669100,-4975,-18,-12 ,8,-14 ,11,12 ,0,24,-337153320,5,237760740,-4520,490,-36,54106920,5 ,1337,-31355456,-26,-5751 ,21 ,-91954704 ,-2952 ,-23,468 ,-97562412,2080,28,5 ,14 ,262828602 ,-1 ,7,-7,6000 ,-28 ,-193977180,-24 ,546,-1615 ,-1,-357052350 ,15,-20,7,-71564800 ,-30,-21,4867 ,-11,14 ,12,-13 ,-8,23],[339311000,-20 ,-459,-20,0] +,[-16,-920,1116 ,11 ,14 ,-6,452 ,-4025 ,20,-347848875 ,-5640,-185852250,6604,-174912615 ,-9 ,11,-38637780 ,-26,19,-3,-2757977,-29,92153700 ,17 ,-341 ,-9 ,1 ,19,17 ,2527,19 ,-10 ,5673,-14 ,30 ,5456,398044154 ,-12 ,27 ,-5,-6356 ,-1 ,0 ,-24,-429469920,9,-30],[449989148 ,-6,37694916 ,26 ,980 ,18 ,-11484696,-14 ,0,7 ,1408 ,3689,22 ,-560 ,-349350300,28238400,702 ,4104 ,1701 ,-13,-2,-17058312 ,-31 ,-25832520 ,31700160 ,-2508,1 ,865 ,-376597728,3484 ,16,83891808,-111926304,0 ,180025335 ,-10,-7 ,-21,2044,73 ,-23,-221454648],[-2875 ,0,-13 ,14 ,-7 ,6448 ,9,-24,48582105 ,-20 ,4885162 ,650,-3770 ,-17632350,-32004840 ,-468,26955450 ,-25,-2223 ,2040 ,246021300 ,3720 ,-71730560,-27,-88855200 ,88889504,-20,16 ,-137357280,-69545280 ,-4,87012325 ,111810816,-415,8 ,14,9,27,-14592798,3,-31,-5060 ,216 ,-9,-6,-3696,-24 ,427221360,-8,-20,16 ,-99887940 ,13 ,11 ,-2596] +,[19 ,8 ,154626318 ,1],[-3072 ,-792 ,27 ,-3438 ,5 ,-13,-5 ,27,-1824 ,9,-75,-108 ,-12,-4028 ,26 ,-2442 ,420,59505320 ,-6],[7 ,97876512 ,-300 ,1955,19],[-3750 ,-3 ,-945,-5,0 ,2028,-5 ,6 ,3 ,5928,357979776 ,-4,-24 ,22,-18,3458,-25363756 ,-28 ,-1816,17 ,9 ,-45321881 ,-30,-26,0,20 ,-15,16520672,-4 ,13 ,-19] +,[93313272,-252644854,3 ,-233450 ,899,6,-26,295789200 ,-840,-13,9,-12 ,-24 ,-5675,-18],[2522 ,339500832 ,0 ,-21 ,14 ,-31,184500,-4 ,0 ,1695330 ,6,-7 ,-27 ,6,-16470210,-4420 ,-15 ,28,2712 ,4,212084622,-26 ,26780400 ,-15,468084708 ,870,-54512648,30923640,59129470,166213800,-69060576,110 ,5,22,47040588,155440992,10],[-759 ,168 ,2938,24 ,1312 ,-18 ,-210243550,171418600,107993520,6,-1918 ,1720 ,3819,20 ,21,-261,-205366356 ,-750675750 ,5 ,19 ,-176472244 ,110 ,194590704 ,-2 ,-23 ,1,278327610,-6 ,0,11,-1,-244155912,15,8,11,-1,-1 ,27 ,-15 ,-22 ,-3696],[-15]]
diff --git a/1.9.10/samples/numbers-int-64k.jsn b/1.9.10/samples/numbers-int-64k.jsn new file mode 100644 index 0000000..7fbe559 --- /dev/null +++ b/1.9.10/samples/numbers-int-64k.jsn
@@ -0,0 +1,154 @@ +[[-5493516,-17565660 ,21,0 ,515145906,23 ,10937052 ,20,-4620 ,1440,-47879778 ,-8 ,13321935],[1,-27,-10,10,-26 ,278053965,-285202170,522,15 ,-8718624],[8 ,22] +,[2,-30,2184 ,-165381615 ,708 ,127883304 ,25,-103616391 ,-3822 ,20,-17,21 ,20,60093036 ,2,-7,-3,28 ,-2 ,-17 ,-234 ,-3472,13,3,-27 ,-21,-14086896,-3360,-592740720 ,-464,46114320,-109179840,26 ,-5 ,-12,146850480 ,-28,-16,22,-20 ,24909960 ,-18,-248,4425] +,[-24,-16,4554,-31,1,65097736 ,-6,4,-21,13 ,-4 ,0 ,-2,42024360,-59395842 ,1620 ,-4320,-8,29822904,-19225596,-29],[-54302595,-480689496,9639280,31 ,-19 ,-38030958 ,-11,-8,-2100,17830400 ,0,-26,6554 ,5,-84105480,3779055,-800792 ,30 ,-22,-28 ,31,74368660 ,-64643320,-4085 ,-20,22 ,5 ,-4 ,-2394,26,-7],[-3648 ,-100 ,31 ,15 ,13] +,[20 ,-28,-53671800 ,-69036933,-142748730 ,-1123836,20,-10] +,[0 ,17,14 ,-1722,-4482 ,24 ,3440 ,-233026686,8979705,-13,11,6615 ,0 ,-17216760 ,12 ,-546099235,24 ,-11,-30,2509 ,-12 ,194635350,-4392 ,4600 ,23 ,20 ,11,25 ,2500 ,-19 ,22 ,570] +,[6084,-1628 ,-9 ,-832 ,2464,-924 ,-2110,13,-6122640 ,-79437728,3,-3910 ,0,28 ,208356300,24 ,-1 ,-30,1281945 ,10,24,84771348,-21717570 ,103233317,221295564,-207229575,-31235848,0,183428940,269512137 ,30 ,-24451560 ,6 ,-4,-1,-816 ,20 ,0 ,-7,-520255008 ,274987448,37809408,-10,-2581,1188 ,-11 ,3435 ,1555080,-9 ,-14,-17,245288250 ,190557000 ,-9 ,9,-840 ,23 ,16] +,[31 ,3 ,-4284,27,20 ,-31,-1 ,-322462868 ,-110720650 ,0,31,-18 ,6,2880 ,-21,-11 ,7427904,-25 ,183814512,16,16,-33760720,118156428,-19,25,-144086850 ,12 ,-230576970 ,27 ,-6 ,477,-4298496,442944544,18 ,29,6420,2728,-3,-161 ,-1 ,0,-22,18 ,15 ,2376,1442376 ,-15,1056,19,28,5278 ,-60587604,-442 ,3726 ,15,-26],[2904,-10 ,-20,14,-17],[27 ,-27 ,10,24,-26 ,-5616,19,-15,-21167916,-1 ,35552800,23,-18,30,208722906 ,-20,-22 ,2205,-1305,-122874700 ,29607207,0 ,38506734,71241456 ,23 ,990,-76136720,-1820 ,0 ,-2070,-3],[-7140000,-207460792],[-469476 ,-72 ,-16,0 ,-5526900 ,30,16315600,3444 ,15,2657088 ,-10 ,-16 ,23 ,-26772705,31,19 ,1140,3312 ,532,-16 ,-3870,-192 ,17 ,-4,-22 ,-3258,-62669288 ,-624,18 ,11 ,-3572 ,109160415,-162],[0,20 ,-23,-14338940,-6 ,1485 ,2820 ,-14,198 ,-27,0,375240600 ,1008,-1152,9 ,-996,-198,1 ,-2860,-2 ,9249808,-129703980,-391,21 ,-10366400,17,680 ,20 ,-17 ,419744364 ,-9,59357600,15,24,-108559969 ,-11 ,-3699 ,0 ,-20 ,2060,24,-1478295,-27 ,-999],[847,9,15 ,135523840 ,-233421441,0,-22 ,117282060 ,-8 ,-48 ,-372,-1056,26 ,31,22,42 ,-17 ,6,-21660480 ,-7 ,113050320,-6,4590,-36883848 ,136,-2565,3553 ,85366848,-25 ,-8,8,-2],[45371755 ,17 ,-828,-144121824 ,-13,-2,-7,776,26811750,74118130,-28,-10,3,1,1380,-3290,-1952370 ,24 ,-12,94710336 ,18,-22 ,-6,-25,0,324699624 ,-26] +,[21,-301316548,-18 ,176284185 ,29 ,2090400,-28 ,15 ,-23 ,26 ,-15617515,31 ,235085200,-14 ,-14 ,-26 ,442007916,-13,7,-67563600,-1380 ,-1216,22,-2,-23,-3 ,-25 ,-4016 ,-14,1568 ,-120 ,-9,-213614520,423411678 ,1 ,-97522128 ,26,-216,-14 ,471416050 ,26 ,-176542740,-50331288,-12762960 ,-272371712 ,-17 ,14,122,-132 ,0 ,-492,-17,-428341420 ,-31 ,60481248,8,-23,4464 ,22 ,16,169607999,200460906,-3 ,-15,11 ,-301622750,46882560,1610 ,390 ,11,-21450335,-11 ,124228764,31 ,400518692,-16 ,-17,6,-7 ,10 ,-28 ,237548850 ,33377136,16,-8450244,-2420,-360 ,-6,-9320784,-244067904 ,1680,1115 ,4100 ,5 ,-27,24,28 ,-788,635 ,14,-156939264,-1190 ,6758,-20,95208960,683216058,21,-26 ,5 ,105055951,-3,-31],[492 ,29 ,21589630 ,23622144 ,6 ,-5 ,-56659912,7161 ,-36724416,53453650,54585100 ,12,-288 ,-560 ,-161335680 ,9],[3 ,378031500,-9,3,2478592 ,26,-5841645,35808752,291812192,8 ,-1020,11 ,-1771,-43215336 ,230590512,-83174850 ,-22 ,-289695297 ,-25622616 ,0,-357 ,-31,13 ,0 ,765,0 ,-31 ,11 ,229068950 ,0,-275265900,-27,251016,-3538 ,503445051 ,5 ,-2128,1411 ,-73133905,28,9305550,-6,156381096,69329196 ,-3424,-1674 ,104380992,16,22,15,399 ,1836720 ,23,23] +,[683575650,0,-1680 ,-21,-3952 ,20 ,-19 ,-2337 ,-112663584 ,9,-660 ,3860,267858844,-2 ,396 ,1] +,[24,0 ,-15 ,907788,377316360 ,-704,-3,-1490 ,-2,-15,-4876,-4,-1360,16,3420,8377530,105796800,-12,18,29 ,540,0 ,204 ,0 ,19,63616890,-1210,689 ,6916,-20,375 ,36113490 ,-4 ,125932336 ,18,-294707160 ,-3 ,12,3,-13 ,18,12 ,15,-64877196 ,-420 ,0,14 ,-4 ,3388 ,-5,35475048,-2616 ,-37500528 ,16,25 ,-3458,-2169 ,-31609176,-14464818 ,762 ,-15 ,-143553780,27],[31,-1701 ,-14 ,0,31,-27069000 ,2752,18,-24,-15,-20 ,9,-700 ,-198 ,-1,42300726,16 ,-1264 ,3510,-325876860 ,-3,-14 ,6 ,25,-3 ,-164],[28,-23287140 ,-3 ,3 ,-3456] +,[28 ,-26 ,-22,54374580,215029760,-24 ,-30,-48048297,1239,2 ,4 ,195 ,0,6 ,-189932544],[402,-29 ,4250,24 ,-26 ,-10854436 ,167269041 ,756 ,-720,-673097850,-26,-19,-5 ,263432520 ,-8,-164350248 ,-13,-2380,160 ,19,6,-12,-27 ,19 ,-2820 ,335281296 ,-2394,-14,-960,36] +,[1480 ,1629,10 ,-41119435 ,-15 ,4142,-15,-3075,29500128,4 ,-31278357,33930750,6,-357723975,21,332867584,-667,-16 ,3,-26 ,291925200 ,-18,28 ,16,-4 ,-101395800,1 ,275218293 ,19,-28,0,-8,169445724,616,-52252560,142371840 ,26,5 ,-555186880 ,-1950,-17 ,11] +,[11,29848320,31,6 ,-13,1674,750 ,5588,-16] +,[4760 ,2214 ,-962 ,-25,-23 ,48461490,793,30817200 ,-3009 ,-8 ,-1710 ,-18 ,27 ,1976,0 ,-7752000 ,31 ,14 ,-20,-7 ,14,4,10 ,-23,4,159148224,11,24 ,-10 ,-537551040 ,7 ,4410,11 ,-34083378 ,29,-64299312 ,2288 ,-25,-28 ,-12 ,8,-3366,-3816 ,19,-197053098 ,-30208064 ,-8,-5324 ,2278,-26 ,31 ,-26 ,28,17 ,-14751288,-16,-24 ,-700],[-1742,189,23 ,-24561075 ,28 ,-45495849 ,2410 ,-10,-9 ,107006580 ,-200353200 ,-208809657,0 ,-3 ,4032,918 ,21147399 ,11 ,931,29 ,8110220 ,3180,3444,3720 ,7 ,10 ,2,6,0 ,-16,1080,-173294592 ,-6,2 ,148752480 ,-6775130 ,-10739718,-30,23 ,-28 ,-18014400 ,-774,-6083028,-362235456,9 ,4 ,225104873,89396937,-700144926 ,-751068864 ,-139500072 ,138 ,-108,-82,20615958 ,-9 ,9567800,2 ,-90 ,15 ,-27 ,-19,-100056960,2431,-21 ,2 ,1421 ,-16,-5,14 ,-24 ,19,18],[0 ,-431028216 ,-256,-12474000,-6,-61380319 ,499792 ,-4960 ,0,-31,3,7 ,-2133,308 ,250921616,-15 ,-7591545 ,0 ,398408400 ,-9 ,-26 ,1579000,-3 ,146901216 ,97546050,-638066,-133298000,-7743750 ,14512302,96 ,1008,24 ,-916560 ,23 ,335329288,15,196,3 ,-7 ,-3724,20 ,544,-6,27 ,186019920,-29 ,105598976 ,-9] +,[11579400,-39621939,-38734462 ,23,153 ,0 ,900 ,6,164459774,9 ,6] +,[17 ,17 ,-18],[-288 ,2142,-19,15],[-300,-37399733 ,4356,3,920 ,-18 ,5765410],[-26,-23 ,-6664 ,-28,-3,-31,-18 ,-225 ,13,1,24 ,-29 ,-29 ,-20,-26,1 ,-24 ,15],[185056188 ,0 ,-3 ,12] +,[1 ,-1027 ,-2373,0 ,20914624 ,0 ,-7,24,60145416 ,-10,-8,-10 ,-5,0,1572,-18 ,1,912520 ,11,-670 ,18,-12,2618 ,23,-15,-2985579 ,-4960 ,31,-17,5 ,23,161903520 ,-26 ,20 ,0 ,-159009768,175160000 ,-277153380,30 ,1548,-11 ,-26,-26,-2790,-17,31] +,[240183450 ,3348,-1,-14,-25 ,10537488 ,-239568840,-29,13,-4,2 ,-7980896 ,-16 ,5741078 ,1687 ,-10609056 ,582310575,10 ,420] +,[1274 ,-8 ,-928,1053 ,-26 ,334698000 ,-62619288,2696100,15447600,-194609952 ,27,-13,3,-1023,265082160 ,-11 ,-69,-28 ,26,-57278188,4060] +,[-26,4000,-29 ,-2044 ,-2,-4 ,-1120,-22,-19,15993392 ,-10 ,-34799506,0 ,416,0 ,-1638360 ,-3],[-23 ,0,0,0 ,-2205216 ,-25,-14312700 ,-14 ,300 ,1482] +,[2538 ,1,1 ,2175,448 ,-3000 ,-5363,186,-9 ,30 ,580,3230,3,-29 ,24 ,155511552] +,[15 ,-27,-11,-90180090,27,-133564464,416774820 ,51377690,25 ,-2688 ,43146272 ,6 ,-21,17 ,-3 ,-22 ,-1793 ,-406095040,21 ,744 ,0,26,-15,-8 ,-4619 ,452,31 ,120 ,18,0,-21,-2060,-16,-21] +,[-23 ,141 ,-207268587 ,1705,-18,171 ,28,-636,-2520,-11 ,10,-8,-4470,-27748474 ,1248,621,17 ,111956952 ,-364 ,14805560 ,-1197 ,-17,-3097920 ,-23,-31] +,[24,-9,139260170,31146600,900 ,-127,-9,0 ,-29,-52391220 ,-671 ,25 ,-24506502,-2280,3000 ,486,20,1498 ,-21,-1520,19],[-1 ,-4497240,4,-25 ,23212008 ,71821823 ,765 ,-20 ,24,810,10,342 ,-233043120 ,-6,-2560 ,8,-2,24 ,2390 ,-8 ,-143,5,0 ,-30 ,-47 ,-14,19 ,512259475 ,2046 ,18 ,1056 ,-5 ,525,18 ,2280,25,-16,710 ,-2898,318896214 ,-23,-13,29,17 ,-28 ,30 ,3102 ,-6,-93884931 ,-1312,-117842202 ,-19,2090 ,-30 ,-10 ,-8075001 ,444929856,-2899 ,-17 ,-20559440,-23784729 ,32332680 ,-3 ,-4350 ,65054580,-20,396,3 ,-2128 ,14053732 ,-29,12 ,-756 ,-8 ,4275,17 ,1133,69328800,-4150,436487874,0,-348985784 ,20,332099750,21,-1,-344,18499264,-78522745 ,-483090300,22 ,-2856,-4],[-245895150 ,25,-1144 ,-149855680 ,23 ,-7,-18,-2727 ,23 ,8 ,-410,2507 ,-10,-26621000,23,-22804848,-306,-3264,-2242 ,23,3390 ,-2735388,-1712],[-4 ,2476656 ,76637600,-144,14 ,27 ,-1615 ,17 ,5150 ,-12,-7 ,-2943,6972 ,-47053125 ,9 ,18 ,3520,-28 ,336 ,-918,4 ,-196881272 ,-1100 ,24 ,-1890000 ,-5913 ,-1470,21,14],[-24 ,-116812696,22 ,4,20 ,13 ,506,15 ,326145816 ,12,-16 ,-26,-2829,-226,590,2652 ,-8,27 ,-162690444,31,-26,-9 ,4 ,-21 ,-112457466 ,15 ,-30,0,350135032 ,3402,1650,-8 ,598,20,233 ,17,-1980,1,-281358000,-6,6,-29,-1350,37555210],[27,11923120 ,4123,2499 ,-13],[-4182,-1606 ,-40257756,27,664 ,-11,-19 ,-18935532 ,215951340,-485,50 ,-131700528 ,-275 ,25 ,276911460,-7 ,8043750 ,-447636392,-3059,-8,-15 ,25091550,0 ,4625 ,-76350330 ,-7793775,16,21,3360,27 ,12 ,-32708185 ,3 ,-4248,7,22 ,-11 ,18 ,-93637440 ,19,34403512,-31 ,14,-395036928,19 ,1425 ,-5487,11,-22 ,259772800 ,5213700,128496450,-803,-3264 ,-1088,54,11,-480 ,-27],[3,10,23 ,25,-26,4 ,5 ,29,-6,-24 ,-14342400 ,31 ,-64156730,-162150660 ,-286569582,21482016 ,14 ,6,-6,-22 ,-5 ,22 ,2759,31 ,-20,16,-6,137,-261762816 ,-25625500 ,3838,12 ,-3220,-358712172,-27689904 ,-7 ,-31,-21,-1395,-28 ,2508,-7 ,128028897 ,-9 ,0 ,13,-15,-9362610 ,5616,-336068852,1428,121983344 ,1,-18 ,-14 ,-1,0,18 ,-1644 ,4071 ,31 ,570,15,4 ,3211 ,4 ,-7,440215424,-16115325,-798411120,25 ,-13 ,-10 ,2205495,-1830,544,725372825 ,44856900 ,-243203380 ,6 ,0 ,-13],[-2610,-27,135,15,-4050,29 ,3632,12 ,-31,-802779120 ,0 ,16 ,-117 ,6 ,11 ,-35099688 ,1729 ,29 ,0,16 ,-18,20,15,-9,-4 ,108754688 ,-6,515074560] +,[1711,7,115977638,-16 ,-98368320,-22 ,13,-3 ,1400,22364160 ,1 ,-8,-23,12,1632 ,-30 ,-5980],[-9,19,-12,0 ,-27,1417,-1782] +,[-4284,42594504 ,-9 ,2 ,28,-14 ,-13,29 ,-1944 ,23 ,-6,-9 ,-23 ,1139022,23,-14 ,629 ,20,-143720085 ,-2136 ,2,21159600 ,28 ,1298,-28,-5138856,-33666120 ,13 ,1656 ,25 ,-13,-17,-560,41,931 ,8,25 ,0 ,-10,-10 ,-540 ,-1,59257800,20 ,-1 ,-78624470,-2412360,4422 ,2,-178849356 ,7 ,15 ,-30,-70116138 ,0 ,-1584 ,-24 ,26 ,304,2 ,-8 ,14,-17,29,-477322560,-1957800,-23 ,4775,-28 ,0 ,876 ,10,-144021960,17,20 ,212339232,16698136,-12,0 ,23 ,-8,17,-75344880 ,-26,-2772 ,0,3,-28,1 ,-285812076,-3,4309 ,14 ,0 ,-4373818 ,-25 ,-400,21121600 ,50506140,-4816 ,-7 ,-2886 ,-2816 ,-12 ,152017488,962,-4807,20 ,696954000 ,-27,-8 ,-6,1403,179759304,28212800 ,5566,-247629177,608,-238,4077,0 ,-2 ,2382900 ,17564508 ,-2730 ,12 ,-10558944 ,-704,-642 ,-5671116 ,-9 ,-461685728,24,-2987040,16,1408,-14,-16,-1510627,56076324,-5510,29 ,-323024016 ,18,-1432,-27 ,915,28,23,48589680 ,335 ,214740526 ,22 ,-6 ,-28 ,60 ,-12,7 ,9,-9,5 ,10 ,182,-15 ,7657,294958755 ,1 ,112677660,-89913240,-2,-1224],[-25 ,-15 ,5220 ,1341 ,-2562 ,-35650602 ,210141000,7 ,296,86113500,131163480 ,-20,7172928 ,20 ,29,-80617332 ,8 ,-5292 ,0 ,0,24,-264,1725],[8,483192675,-2704 ,14 ,-26 ,-385141978 ,1159] +,[-61809318 ,26 ,-1 ,20,-31,-23 ,-1430,9,-2364 ,300,-4080 ,6972,184,-93317301,-394] +,[-1,48814056,-440,-14,4540 ,-7 ,-1,-31 ,-112482180 ,48084704 ,39427046,-7 ,21,-15,26,3 ,21,819,20 ,4424 ,363483936 ,2296,26 ,20,11 ,-3366,115506840,-26 ,29,-27 ,-14,-16 ,27] +,[-20,16661088 ,-12,30591912] +,[-31,-194795790 ,12 ,-99204168,-1665,-28,-11,0 ,-1320,20 ,-376732446,-4066 ,-131922777,-8 ,19,-1719720] +,[-5 ,20 ,-75601253 ,-416038964,24087000,6870],[-3247,-79494870 ,-227768464 ,8297802 ,-13 ,-6,-15,124188750,29659374,11,-7,-2 ,-30 ,0 ,22646580,606662281 ,-13,-4,-21,-25,18245418 ,-9 ,-22 ,-22,4 ,23 ,4,-118270256 ,-25,-32630752,-3888,-89617482,0 ,-4 ,-2500,-8891400,-248,-36 ,58390200 ,7,20 ,10 ,27 ,-6,149634496,28,16786575,12 ,2 ,-16 ,27 ,-17 ,-223677760 ,-22,-228434850,25252787 ,2112,0 ,-18,-6880236,-170549946 ,3 ,30,-4730,-147463232,-26 ,286,16,25,-183,-295,-20 ,-25 ,22 ,36724770,-29 ,-122 ,-92736360 ,-26,-17,3971370 ,-13 ,-18 ,13,20,-2500,2964 ,145931328,29 ,31 ,-16,1943 ,-688842 ,3,12 ,387583119,165678392 ,575 ,10],[50090274,-6 ,-2,466131780,-28 ,162 ,18,100719000 ,24 ,-101334324,-6 ,109600776 ,26,-874,25 ,-3 ,2,1110 ,20,3750 ,-15840836,14,-26552709 ,23 ,27 ,24754368,-16 ,-29 ,54232416,406625200,-5 ,-17346462,-15 ,26,25605168 ,-1303552 ,-15 ,-31,0,1664002,30 ,-216106270,-1376,-2,-3136 ,-1 ,13 ,405748512 ,23 ,7] +,[-2966166,1075032,-4326 ,-3640,5,-2070 ,12206560,3066,-32334336,-7 ,-19 ,22 ,-73863504,-3288660 ,-14,3584,19 ,-28,2688,-525,153811860,-161431296 ,31 ,-108346812,12 ,-156241824,-49663824,-85124256,25 ,0 ,-34692100 ,19599300,13] +,[-3,352,-2 ,106858560 ,-28,15,13 ,21,22,600526360,28 ,-12,-4945149,-14 ,-2125,-21 ,-1650 ,-10,333243900,-146018340 ,1738,-597039696,-31 ,-25,-5,-28126660 ,5080 ,0,-13 ,-2 ,-615 ,476,-22668124,27 ,912,24 ,-25 ,1425 ,14 ,1350,23709378,-21 ,66969100 ,-179585250 ,-2242,443293536,25 ,45749207,602,1944 ,-16855224,15,1771 ,-7 ,-2],[3000 ,120,14 ,-25 ,-3,260000,27 ,-4712,25 ,-6106800,-338696640 ,-3 ,1953 ,-1976 ,144999300 ,27 ,-320254272 ,-25],[11,-47455056,5766 ,310370566 ,-4 ,-29395170,118839840,14 ,-24,-73768338] +,[22 ,174 ,2392 ,450131565,-46205934 ,-14,23,31 ,350555130 ,-28,-6 ,-5,-504 ,424,19 ,-920 ,1323 ,-1000,-840,-30582048 ,-12 ,-25,-50843376,-20677020] +,[-27,7 ,-10173184,1404,-22 ,29,2880,1 ,20 ,5 ,283176000,-9,-14 ,-396538170,-1414],[-870 ,25,24 ,-11,11 ,-2352,-20 ,2520 ,27,19,44968040,197399664,29,30,-1,-30,-3,-7,-8,-2244,-25 ,-687 ,-11 ,-1144 ,-21 ,-14 ,21446400,-2142,-68172960 ,-54684448 ,0 ,24632832 ,882,-1746,24756774 ,-1472046,-11 ,16 ,25 ,-2300 ,46310670,-23,0,0 ,2044 ,-9 ,24352075,-27] +,[25338470,-1452,31 ,14 ,-14 ,-24493014,6,-23,2,-31,2,682 ,1106 ,-30,520 ,-28,-1,-454207860,-532 ,-22,-6541 ,-45384192,3900],[4 ,-10,0 ,687831768 ,7,1152,22,309918570 ,24,-18,26973320,19,-16,16,9,3240 ,261192000,-5 ,-6,-8,29 ,-1,-18 ,102760164,5748048,-132015360,12 ,-27 ,30 ,-735 ,0 ,-572 ,-12,2268,10 ,-63620025 ,-62067600,31 ,11622852,241348564,-56701879 ,-115 ,7 ,-18,-24,12,-12 ,-25 ,64581300],[-75622120,-19 ,44 ,-24,112783712,7,19,-300,5,5 ,-7 ,938,5166,-211981800 ,-10 ,27 ,436,6,-98 ,18,2040,142769536 ,10,-400929408],[-9 ,-16,83225736 ,24,203906100,92101200 ,-1617 ,-15 ,-46952640,-31 ,-2,-309670390 ,-4,-19,-4089,10 ,6390826 ,840,3735] +,[-15,25 ,1716,-42970932,-300534192 ,3,-5684 ,-4482 ,-840 ,9993687,33556320,63784224,0,228,-244446150 ,7 ,112404000 ,3936,87495635 ,28 ,26,-1200,19,26456480,-3,-24794500,20,55302870,-9,-24 ,-14],[20,-1479078] +,[-244976358 ,-24 ,1200 ,143647182 ,93801760,-2327 ,-31,40896898 ,276737250,-21 ,6 ,28,640,238 ,-1,34594800,22 ,12694016 ,69087168 ,516,-11833884,1692 ,-202277372,-14 ,27,-195 ,27 ,-544,16 ,29830944 ,27,0 ,-2106,-41724396,2832 ,165 ,-55291842,27 ,-478705545,7 ,1380,-1152,-29,8 ,14] +,[-27,126772712 ,-4767 ,-11,5 ,-2449,-26,30 ,718485 ,-1680 ,0 ,-1320 ,-6,24,2016,-531,3248 ,55,11,-437141760 ,-22,34,-9,-26,15595356,99038784,-5,0 ,-4,0,14,-31,340,112130620 ,-1612,-23 ,-30,-17499354,-23,102328950,9,392935941 ,1,-29 ,372 ,1482,243497268 ,-30 ,31],[-4082 ,-11,64012410 ,-3,3045 ,-15,230 ,25 ,-11,-8 ,1,648,-213196536,503921250 ,19,-3400 ,-2,-57200640 ,3702006 ,351 ,19,-4 ,316202080 ,-10 ,564] +,[26 ,4560,-17 ,14 ,18,3000 ,16 ,-7099 ,-6 ,10 ,-27 ,636,15331050,-36314902] +,[0 ,17,-212,6225296 ,-11,2616,2448,5,253666336,-261 ,-11535678,16 ,776 ,-11284882 ,5 ,6003,1946088,363,8,145139058 ,5,14 ,-1133,698186940,-15 ,-13517840 ,-249 ,25530816 ,6 ,-677489400,123 ,80502240 ,50,-3,-16,21,-7,-160511940 ,-7 ,0,-8,-2580 ,-2635 ,2460,6,17,18 ,-329,31,-4945 ,31931700 ,13,13,26598465 ,38233278 ,7125532 ,28,-12031155,-3 ,-24,380592775,28,22090950,400 ,-351,-20,22 ,0,1000,-11 ,-85108464 ,5 ,5680440,3841,31 ,-3813 ,-6409,0,7192 ,-4872 ,697249800 ,24 ,2175 ,28,-23 ,67919975,15,12,-3,-23 ,-39512022 ,580,2449,14 ,7 ,0 ,-28,26 ,-201050432 ,-7710105,-2068 ,21,18,2664,-14,21 ,4961938,18 ,-10303020,0,-60081210 ,2366520,13,1320,21 ,-6,-4752 ,-8 ,22,-88,28,-17,-240 ,-780 ,17,-23,31,2929 ,397582812 ,6,-105938532,18,4410 ,0,1,0,10,-68 ,-962],[-10006265 ,83538 ,-28,-6,4700 ,8,237591816,-18 ,7 ,28 ,-5280 ,-3060 ,-1,289333506 ,-1632,18,-20 ,-173058600,486530604 ,1920,-12,81902310,12,174383264 ,-3,-26 ,2682 ,-5 ,-145 ,19606815,996,324847237 ,3,13 ,-7032567,-11,-26,-5 ,18,-23 ,352 ,-3576 ,-182741020 ,1224,28 ,-149884695 ,19,6,20 ,15 ,7,24,21904432 ,573255,-12 ,-1000,-130153760,-19,-25 ,-6 ,-18829824,-14,20 ,-1373675,-15 ,3920,0 ,-10303080,10,25],[-2780 ,8] +,[-12993435 ,713,3360,14325168 ,22,52527552 ,-6024 ,5 ,10 ,30,-16 ,-7 ,-31 ,8 ,-17 ,1932,-16,-27 ,-21 ,22,18,-3 ,-22,24782640,4,-28917119,27 ,1560,-134 ,-1743,-77443908,1770 ,-29238104,-6344 ,13,-26,-226921100,-290844312 ,-3024 ,-1014,-30 ,2,28 ,2175,-31 ,30],[-20,105223500 ,49377244,143736600,1,8 ,14,3150 ,12 ,67945848,-213011526,-1440 ,14] +,[-3591,-5516,396685968 ,31079020 ,28 ,-22 ,-18,17 ,1116,-1 ,19,-21,-5165370,24 ,850,13 ,1827 ,-896 ,10,-3354,-6],[3472 ,-1331,1710 ,30 ,-25,-2712780,3150 ,0 ,11,2941,8 ,-24 ,-10 ,10,-477 ,-396 ,17 ,4179 ,11 ,102765936 ,1278 ,5,30 ,-20,184901424 ,-6757,-11] +,[3 ,43163136 ,-4920 ,-23 ,9,1185 ,-29,12426384 ,24,-210,93918528,-493190,-19,19,-12 ,-606 ,-994,5 ,-13,-25 ,-189 ,-460 ,4,17 ,-187 ,-22 ,-2724,370686960 ,164,2193,25,0,-31,3,1314 ,-99736858 ,3162 ,76107000,-31 ,0,-15 ,-3220,-23681865 ,0 ,13 ,6 ,-3596 ,-32398032,11 ,3420 ,-29,-28 ,3,21,18,21 ,-17 ,30,-57914120 ,905661,54319146 ,182,555,13 ,47419200 ,-1456,1089 ,-43820490 ,91332144 ,-13 ,-3,-2 ,-29 ,2449],[29,-2839 ,13 ,-3378753 ,49048077,53505816,13 ,-22,0,-13,-28282680,-23 ,300,-4843,-27 ,10181640 ,28],[-20] +,[9] +,[-9,-24,25 ,20,31 ,30 ,1],[18 ,-2288,-20,-21,-29,-3332,12],[0 ,-1,-50969604,-8383900 ,-3116694 ,-22446770 ,18,2440 ,-796,-5656 ,2 ,141214320 ,-14,-360,75224968 ,-4 ,-344069000,-29 ,-16474860 ,-16 ,476] +,[-12 ,0,-70509824 ,-2,4 ,260063784 ,-1700 ,1710,-28,14,-16,8,0,119967311 ,22,28273180,-880,702906624,-1056 ,-24,1188 ,0 ,21 ,28 ,4,-28 ,2291,-4 ,-462 ,-940 ,-5932820,19,-20 ,1098,-3,4142 ,-3635450,-34505240,4174800 ,-16,-8 ,4032,362796720,2 ,-28 ,2220 ,8,-2,30,-3173 ,28 ,-475 ,32122160,-8436717 ,38920500 ,-2896,-24 ,-27,-7876080,25 ,-9 ,117250848,7 ,27,13,2,10 ,-1320,26 ,-320 ,280051830 ,-4300 ,-10 ,-10981656,-18 ,-29 ,0,-28 ,1032 ,400233960,11,5,2,5] +,[-8 ,17,-65148800],[-4706600 ,-3 ,0 ,-179794944,7,-2945 ,55431012 ,-28 ,-24 ,1397,9,25 ,-28 ,28,476,-6,-900,4760,30726905 ,11 ,-756,-27,-990,6210,-9167478 ,-1647,-26 ,-96531138,-780],[-77841522,-3781,-12,-29 ,2184,-3289 ,-10,-1012,26,-9 ,-25 ,-18 ,-521783262 ,-1760,-280891611 ,456 ,-29 ,129099648,-5] +,[-183948840 ,8359188,-28 ,-144532752,198,56629881,3111 ,11 ,4446 ,29,605,-91156740 ,10 ,75 ,55 ,-7,29 ,-161628390,448,15711808 ,-58739640,-24 ,-29 ,-85350804 ,174 ,19,-174067404 ,16 ,-28],[16,3942 ,2490,-16200084,19503588,-624 ,62455204 ,-7,-2 ,11477839],[-24,3718 ,3038 ,-72940560,22,-864 ,-7 ,143,3838,26 ,17 ,10 ,-7590 ,-517449920,357106428],[-3906,-29 ,3552 ,-184787320 ,13,30 ,-564355350,32754510,45454080,21,-1162,-30,-486 ,23,-141995000 ,-20 ,-75457410,-2520,-510,-2500] +,[-24,-15,-29,1884,2],[0 ,15,-7,26,-3344],[-18237240 ,0,9,-11,7,-29 ,-16 ,19726416 ,-28 ,1284,3150700 ,-31 ,25 ,2110,0 ,26 ,-24,6,16,-5,138402880 ,316 ,26,-22 ,-30,-204484500,11 ,-14303520,11,30 ,26 ,-9 ,90043272,17,11 ,-2450,871,-694705752,-73301076 ,0,0 ,71706720 ,88229790,-21,-17554880,13919360 ,-2880 ,357980698 ,-120 ,5 ,126365512,-6,-25 ,27,10 ,-28 ,16660720,20,1807240,11 ,-3280 ,4,31,60871440,92743044 ,-24,-1896 ,-19,-26354160 ,100639776,530127000 ,29 ,377260416,1449 ,-6789,10186655,1254,-101534160 ,0 ,-3 ,24,-332550192 ,14,-1330 ,1100 ,1380,27 ,1555747 ,2058 ,211711680 ,-820,-198446355 ,0 ,-1630 ,-14,-17,-19598107,240190076,10478160,-10 ,29 ,1456,-25 ,-59529600 ,20,-6,-173740160] +,[3480680,4370,-1554,30 ,-173851020 ,0 ,-1,-336,11 ,4464,4234 ,-1,23,-3280],[-1,-11 ,-1050 ,23 ,-28 ,-14 ,2944 ,6595200 ,250 ,-11069790,-774,-94 ,-1836,-29 ,-42380811 ,55200870 ,2187,-99540320 ,441775776,-6,5 ,7134,66027318 ,-15391260,81411075,-16,23,32476206 ,-782537743 ,60266240 ,-10,-5 ,11775798 ,23 ,-15 ,-6 ,265750914 ,-198,-23,9 ,1 ,-4500 ,16 ,31 ,13 ,-111085128] +,[15,-17683452,0,-768,15 ,-28 ,-2618 ,551145780,-349133652,23 ,14,-28 ,6,-4 ,1032,-2142,9] +,[-300046068,-4,76082327 ,1472,-4088,12,-26,24,-5 ,-16 ,10,1403 ,8 ,-11 ,-20 ,-2448,-4293,19,13 ,93754284 ,22,-10,-19,2 ,-4,-30 ,15,6390324 ,5,-469,2,-15 ,-377,28,-3,-29 ,-5,-1035 ,398646720 ,320752080 ,-18589500 ,624085632,2 ,252 ,30159394 ,31,1584 ,-28,30 ,-142774344,-16297820 ,20,45591024,373775600 ,-27 ,-67898970,-2736,-576 ,-9 ,20 ,234,-4280,10,4305,5080 ,69223050 ,14 ,63222120,24 ,-1266 ,467409008 ,18 ,27194490,5427 ,28,761669572 ,340810974 ,-38400880 ,4532192 ,11 ,22670460 ,-2352,-7 ,164498880 ,-22 ,-26 ,369203200,-352494090 ,-4465 ,-16,-2 ,-21 ,15,-11221938 ,7 ,233914260 ,579492000,-4 ,-31811028,-4607680,2483 ,136490886 ,5 ,1 ,-15 ,-27 ,9,24 ,-15,30,6561 ,1338,97110108,11 ,-111149901 ,-14,-12992476 ,-12 ,-22 ,3,3456,-5250 ,3,-19,5496,26] +,[-285170325,28 ,-2158,-5974] +,[2,901,1 ,14 ,-31 ,2556,-3120] +,[20 ,-4,-869 ,1728 ,23798125,-2 ,-18 ,-21,-5,340,2 ,-8,13,-8 ,0 ,-437 ,4 ,-18,-211,5126718 ,-106901616,-651 ,407982960,-2716 ,-5 ,-63816662,-25 ,144 ,-12 ,275,-36428028,118037250],[5890 ,106973460 ,-30,4180 ,-21,-18,222472528 ,10 ,10982500 ,-12,-738 ,-26248320],[-785,31,-11 ,18] +,[-457520140],[18,13],[-30,24,-2522],[1225,-185744160 ,-738000 ,2736 ,12,-28,5803625,0 ,20,400246980 ,73571840 ,-20 ,-30,952 ,726831504 ,-76,383505390,-18,240 ,-28,381 ,2822358 ,85395576 ,271558818 ,-27,-23] +,[-19,28 ,-469185838,-19,-13,-18,-400698330,3222 ,-16,-4929 ,18,91372248 ,2 ,11,-187642560,-6 ,341231013 ,6,-52226208 ,-8,-11,9 ,-2070,-19 ,-5,-30,-3243,26 ,16,-2,2415],[-50015700,0,-17 ,155858040] +,[-9,15,-13 ,-11,-20 ,-1026069,49677500 ,-10,-31 ,28 ,282 ,-16,68319600,87606750 ,1 ,1440 ,-1495,5668,-2751 ,15,-18 ,1222 ,8 ,-5 ,90166544,0,-10142028 ,-7 ,440 ,1584,14,-2,-20775555 ,-3006 ,-1482 ,30,-575,1881 ,-7,-14 ,98685600,-119642454 ,-28 ,-475],[-9254520,-6,-3874,-25784148,3 ,9563333 ,-10 ,0 ,-204,1820,6,6,20,68460840,23] +,[855,-28,-30 ,-3050 ,0 ,-13,-241685700,18,3,-1332 ,29,1218,-4,-10,0 ,-7 ,1539,26,1408,-383212980,8,-308 ,-27753460 ,26,-27 ,4,13 ,-6,448],[-25 ,-5512 ,16,-1476 ,57928040 ,17,0 ,-79250600,0,0,2070 ,132,-3] +,[-18875208 ,21 ,5,-20 ,-3791 ,-420521696,-159620890 ,0 ,25 ,-520,390,-13,0,-7,-21,-2740 ,222721065,-7 ,14,20605200,22 ,-528 ,6162,-24 ,-15 ,-75492480 ,4 ,-31,-45394076,2,-1893006 ,4876,0 ,13,8 ,-22 ,-19,-1998 ,-15 ,-340569765 ,-2366,7 ,-20 ,5 ,31 ,-28 ,126499034,-19 ,-60 ,-32478138 ,-225989520],[-9,0,4,-25 ,-156836169,-10 ,-1767 ,9,-285,6 ,414126090 ,-5 ,-31 ,-274760800 ,-3107 ,223992440 ,-472164 ,-2 ,27,21,-10 ,15 ,-3990 ,78704900 ,-26 ,10 ,-20 ,-28 ,-14,-198,-31 ,-98652036 ,1755 ,-540 ,5 ,-2160 ,16 ,-12 ,15,-2291 ,9],[-1832 ,-8,84187740 ,-14 ,-5 ,-120285891 ,-20,-7,2,31 ,-298507587,24 ,-232,-3819 ,1323,10 ,-26499690,24,17787984 ,-8,-18 ,31,1597200 ,-143174560 ,-14 ,-241886880 ,35245440 ,-267,-27] +,[-2466,-207 ,20 ,4,0,-781650],[349123302 ,23509416 ,0,-390 ,-15 ,-4669 ,15,-229139820 ,24 ,2734600 ,-369889632,-27 ,13 ,-2976 ,74053024,-21,1595 ,47597088,109658106 ,-4482],[-160,-167686096 ,22 ,-28,14 ,153050850,-4437477,-29 ,13040080 ,0 ,-24,5 ,-20 ,-5 ,-27 ,7234282 ,-136507500,-226432206,-23,26,23 ,102778200 ,110791850,-100582944 ,-320,24,-1444320,1000 ,-151045500,399231104 ,9,157752882 ,-8415792 ,-64122480 ,-90313540 ,3091086,-279422178,2,-16 ,21 ,-2508,-213551325,2618,418 ,10,-230 ,-1878177,11,-2430,-481,204 ,5109786,23 ,24 ,-3294,-28741614 ,2464,-3640,23,-16 ,-5,-22 ,-1078 ,-4 ,13,-23,28,-9,336,19,7000] +,[-11 ,-25315696 ,-12604800,-15,-1001,17,10,-363142050 ,4525,12 ,-19 ,10 ,-28,9202536,-1566] +,[-43 ,-26,2625,-11438544,-16 ,-9 ,-2 ,100693521 ,1610 ,11,25 ,-256 ,-1482,912 ,164894751 ,-33788502 ,403253400,25 ,-21 ,-4744935 ,-127576944 ,23 ,-4131,-78999904,4613220 ,-27,-13 ,-13151200 ,-1422,-171716020 ,-1568,24 ,58102209 ,11 ,658,-415633170 ,-7,-2356 ,21,-582 ,70774200,-21,31 ,4,-31979352 ,-4548096,-244212150,-1020 ,11 ,9,10,26,-47214488 ,12728430,18 ,-472 ,21,-261326200,7 ,13 ,-21841800,-2 ,-1760,-18,26,-14,-1479 ,17 ,-252,14,-1547 ,-7080 ,-610 ,1440 ,-11 ,-8,1162 ,2,444 ,-9 ,-11664768 ,7,-25],[-21,-4704,-8090760,-1120 ,-918 ,-14 ,-19,-1,-216703800 ,-38544465,241352825,8,23,-20 ,6860,-225700551,13 ,-8 ,-29,-4818 ,-28,0,-196477380,25 ,490,-9 ,-2324 ,-19,-14,15394860,-177302268 ,2898 ,-4712,-7,-9,52019610 ,-23,306619950,4290 ,8 ,-128779488 ,78907616 ,-525872 ,5 ,-5 ,-74542000,-62628027 ,88551372 ,-1380 ,11,4640 ,-2250 ,-19,-9 ,0 ,23,18,-3885,168724920,4351590,-1260 ,-12,420,-29 ,-22 ,-29 ,9,248965024,18,-17,1800 ,243230400],[91450944,11,-37892448 ,-16,-24 ,-6420078] +,[960 ,3636,-2420 ,22 ,-93510384 ,-2859268,-46,-9 ,-1462 ,26 ,3374,4576 ,4080,11,18,27 ,19,-9,31 ,-8,-4290 ,-25,-196948080 ,6,23,151484929,1096056,-14 ,-20 ,-31 ,-10968300,-31,-141860280,3,29510932],[85858080,-8172516 ,-228,-748,6797288,30 ,2782 ,11663100,7047,17 ,13,-5 ,64967040 ,2 ,0,-1148,-21 ,5510 ,-6902,17325340 ,-26 ,-17 ,19 ,612,-16,13 ,-5 ,-28,63914940,-19 ,65924946,-20 ,4752 ,165804585 ,-45499806,11,25,22 ,22,-5615360,-972 ,-20,9,15 ,14 ,220680060 ,225367472 ,10,-22 ,171089808 ,-2 ,320132016,15,73532394],[-1044,-2185,-868,-616,-22,-19 ,28 ,4340 ,10,196,-9,-7,-354207560 ,28 ,-17 ,206957751,-14,-15062975 ,-51126933 ,21 ,2769,27,13,-1720 ,15 ,2004,19,-30,407,-134438400 ,13,-22,4086 ,6,28,-354774168 ,9,-166076504 ,2761,-48274056,-30,29,-51074496,1400,-26,34724875,17 ,-37853475,-75919416,30 ,-4 ,27619460 ,-207029758,177 ,2450 ,-8,-5162 ,-18 ,10885950 ,5 ,15282150,28 ,12,3146 ,0 ,-1156,29,-1 ,93399270,1593 ,-29 ,-490957530 ,7562016 ,-5971968,29,-840 ,0,-3,-24,-8203140,0,28,28 ,-20,-226 ,3654 ,-4200 ,-5 ,29,13597402 ,-72082703,-522 ,16,-10,1534 ,-6534 ,663,-10,-8,28,-184009292 ,-2097,200,31,-24 ,-22,19,24,-1 ,-182626080 ,44505240,-7,-1005,-66734640 ,-9 ,-637 ,-22,-798 ,-8505720 ,550,-143996250,-26,-197450560,8 ,116590914,2 ,-23 ,6,520 ,-18,24 ,288 ,2,-768,-4880 ,18 ,-7,165058740] +,[-18,-3216 ,-27,-714 ,9,-19 ,-3570 ,-16403040,-3360 ,-18,-7,-22 ,-2607,0,43015104 ,6 ,-5177,-28 ,759 ,17,1632 ,7,26,16 ,-15] +,[9 ,-770,16] +,[14 ,-76802600 ,-10],[-306478600,-1710,-2727,4,-5,-22,-21 ,-9,-4,105518966 ,20 ,-373281156,-493,298019834 ,17 ,-12,89861940 ,7 ,-250 ,25],[191874420 ,-200059740],[24 ,4,13 ,2613 ,-30,-19,194345814,16 ,-833952204 ,8 ,-29 ,15,256007760 ,35547675,32,-10 ,43 ,-5656,-690148554 ,65829582 ,-2508 ,18 ,12,464348 ,30607650,13,-1980,342 ,-68174736 ,-8,0,31 ,18 ,5000 ,5 ,-1400,-14 ,-14,-189 ,-29,-57931608,-9 ,28,-26,-9,-705 ,645 ,-126071120,-2,14 ,13 ,23 ,15 ,214511196 ,1111 ,128686833 ,188047710,-30 ,-5,-4400,17,184589130,-13,-22 ,-4 ,-11,10,-5037,615 ,-6,-192917526 ,-29,31,-16,-8 ,-2 ,-15,14 ,5320,26 ,-2680 ,-3600 ,16,-18 ,-767,14 ,-1450,27,22 ,21,65265984 ,250850640,9458667,675,140487864,-2503250 ,1 ,3825612 ,-55,-25 ,-5434,138,-2057,-35635242 ,187077423 ,-5 ,-4 ,-3,-3155790 ,51266457 ,-26 ,-10,-2250 ,-150 ,4232529,-11,3023100 ,6713232,-525311820,1284 ,127895460 ,-10 ,-16,-11,1904 ,-4600,464 ,-137640000,29957585,0,3864,31,-5 ,73524162 ,-436241430 ,498 ,14,14,2472],[690,-6 ,-935,2,-13 ,-15,5 ,3 ,1 ,6820,57075504,4 ,9,-3 ,28 ,-1804,-265268700,-82153568,6571845 ,302999697,-2040,21,4968,7 ,-81925380,6,-22 ,21 ,21,-23,-2112 ,1260 ,12 ,-16 ,-7,-8,27 ,-21,-13 ,12 ,-17,10,3 ,8,-956 ,-3 ,25,-736],[1200,-22,9,18 ,-4 ,141571100 ,-4 ,58397008 ,28,-247 ,-40075020 ,39376480 ,-144 ,150178644 ,-78 ,12 ,25 ,3,-6 ,-11 ,111016224,30,280375290,-3180 ,-19 ,0 ,27555472,-1410,0,-1832 ,-3645 ,-19 ,-6,-190202040,-118995912,-1320,-6858240 ,32038080 ,21,-120582756 ,2373 ,21010400,-3582240 ,-22,-3760 ,-772124610,-18] +,[-18,767 ,2400,29,1659 ,-15 ,10 ,-36246200 ,-88597350 ,30,75091968 ,20 ,481027750 ,-28,2 ,84657536,31,-19,2957420,-7] +,[1,-6318 ,5060,-21,-2,5818020,-1407,-298014145 ,-10 ,-1896,24,-37943948,9 ,-410006080 ,-6250 ,30,20,0 ,19 ,-1992 ,0 ,6 ,2097,4158],[-224 ,25 ,270 ,-14,17 ,-47839446 ,24,108,20 ,11 ,17,2265750] +,[26 ,4025 ,-28,-1508562 ,0,5217885,23,-2044 ,646,-1692 ,-202700960,-4263 ,0 ,-6 ,-29592168,-25 ,26 ,28,-24,0,3,9 ,-11,19,-69 ,2 ,-65002665,-696,-732,14 ,-372,19,98810226 ,-528 ,0 ,-23752197,246,-495],[-27,2312 ,-222884805 ,-247466752,-26,310518 ,4290,8 ,-3 ,-216 ,21 ,-8,-975 ,-330,28,6,-12 ,25,1836,-1976 ,78132276,-575 ,-31779376 ,-12,27 ,-13 ,2169,1048344 ,-6873 ,6075,-10,450,-260,0 ,620 ,-8,13 ,-2323 ,-15,15459048,-605025036,-13 ,18,-258,-1 ,-21,0,2,23 ,3629 ,23,40981200 ,182,1025,-1820 ,-2940 ,-2 ,7,8145306 ,-14 ,8,-23,0,76 ,27 ,496 ,3475,1,-18 ,-20 ,-25838934,7,-67056800 ,-24,10,-5,1743 ,-181152840,76,16971600,73738350,15284740 ,576 ,-1032,152366400,1 ,26 ,-20480750,-1088 ,-12,-28,-1,-3604 ,11728545 ,61127300,-1853544 ,-22 ,1674 ,-15 ,6 ,20 ,-18,-22,7 ,300 ,-15,19,23,-7,-6021,25 ,25 ,1148,-28 ,5,-12 ,-222,4738 ,230 ,728 ,-246118400 ,-2385,-52297372 ,279311760,22 ,21,28,-2175 ,-2277,29,220913640,1190,3,-112490868 ,26,-2,7,-703107900,20 ,-180754332 ,27 ,-496 ,-399614644,21 ,-72087444,7] +,[-1000 ,1456,-936 ,-620 ,17,-17,-19,-2000 ,-107890664,796 ,16,-4,3706 ,482694444,22 ,-3323024,-24587808,-78 ,-15,-13 ,8512152] +,[26,20 ,330 ,-18 ,5,0 ,-3344874 ,20,-3700 ,12 ,-26,-19 ,137969040 ,171721620 ,139926156 ,-391 ,-7,3040 ,33897045,-10,9,-7440 ,262410792 ,58699020,-7 ,8,23 ,49188750 ,-15 ,-4320,-16 ,110819214 ,21 ,1 ,-62384322,9 ,-37542816] +,[4920,-4,241638000 ,-5,19 ,148203520,54835950],[-429 ,18,96881304,159 ,-60,-142733792 ,225,22 ,-6 ,-10,-4860 ,-1458,-25 ,-8,-14,-4966,923220 ,-17 ,-4,-17,1302332 ,-1,10 ,141441904 ,-1 ,-263918088 ,79677108 ,10 ,3672 ,22 ,-287415408 ,-15 ,-30 ,10] +,[-121831736 ,-270272835 ,-14,-16,0 ,-20 ,56684684,22,20],[-5304 ,9 ,-9 ,0 ,31 ,-10 ,1972,516960],[128063705 ,-2376,-30 ,84,19 ,-28,14,-22 ,33859800,24 ,-1482 ,-6982040 ,4972,-4025,8,-29 ,3 ,-5 ,-1104,-16 ,154219032 ,1431,18010380 ,-75647390 ,-19,-15,8019330,17,6,0 ,0 ,204 ,0 ,230608560,-48102208 ,1846 ,1207 ,-3480 ,-726,0 ,-34,-23,-26,-77,-3 ,-5236 ,-12 ,21 ,-27 ,216 ,-3099132,20 ,197917344 ,29,3,2765488 ,-30 ,5175,4600,9537456,-30 ,235486440,8 ,22 ,-20 ,-366429492,-6,-1,16,-1320,27250320 ,7 ,-22,1188 ,-904,-19,1,1936,-4 ,16,-1040,-30 ,-13 ,-26 ,-23 ,18624200,0,122109912 ,676,-13,-29 ,-12 ,4,-7,-312495020,-1 ,-5,-291400188 ,-237 ,20 ,-1 ,801 ,0 ,21,-27,-100055760],[-754 ,-3759,-1872,20149200 ,-19 ,-333898774 ,1964622,389795392 ,3,6,-15] +,[-11,17,-28234800,-17,-7 ,1 ,-696,-9,50115450,2675,-820,50181831 ,30,290580252,-20 ,82086016 ,-1691 ,-1624,-27 ,31 ,16 ,20,0,77085744,2060,40104252 ,68739710,-16,17,10 ,-7 ,-7 ,4680,384,666950986,-3468,232051456 ,3096 ,1 ,-4636 ,0,17507880 ,26 ,-9,-1782,6 ,26 ,426350025,51521570,1,185235876 ,-20,-196,0],[-684,2928,-4,258009720 ,31 ,5 ,-11,14825993,-18,10 ,12,165790656 ,0 ,-4095 ,-3 ,25,594 ,29 ,-6 ,8,6 ,-41387580 ,1624,-13,10 ,45512502,17 ,-24862800 ,30 ,-31,62 ,-495590324,-16 ,896,-27,-17,-25 ,10 ,38988230 ,0 ,8,-3296 ,1134,2 ,-1820] +,[5824 ,-7 ,-30,14 ,4740,3472 ,-14,-98061432 ,-4 ,27 ,29,-3,440228096],[-25,19,-21 ,2299 ,153 ,26 ,29 ,13 ,6599340 ,-163537380,-121627818 ,61821396,-286 ,5,10,31 ,-26,-11,-1378,7380 ,176,-18,-23 ,-26 ,1 ,3564 ,-25 ,-5304 ,-69270080,-8,277200198 ,0,840 ,-53417870,3,-197239962 ,10 ,-4375,3322 ,18,-232895520 ,454,6 ,0,-4444 ,78445314 ,23 ,46085598 ,-3043 ,39814840 ,364 ,-5520 ,-988,-24,178861608,2 ,-2784,-16,42 ,-63349418 ,0 ,281105264 ,177128352 ,-2196 ,-6,0,31 ,-9,457299434 ,-1336 ,4030,-4617984,19] +,[21,0,9,-51830660,1113,-11 ,424,4,26011206 ,19,-645557472,-27],[0 ,-2178,-16 ,-18,-29 ,19 ,83738512],[-16,67544358 ,14,678,-192,20,-24 ,-2,-18 ,-31 ,0,6 ,-2 ,-14724620 ,-155,-12 ,0,-10202465 ,288,-117831762,-26 ,-22,-74400960 ,-5 ,17 ,6975 ,-31,-7080 ,3304 ,-552,-30,-9,-31,3762,19,-25,-13 ,12,49602204 ,-2353,3,14 ,456,3317 ,6500375 ,14,221 ,-67557312 ,0,315,-39121680,-360690975,0,27 ,-367937388 ,1,651,-2 ,738999072,42158550,-1736,-1344,207392400,-429781520 ,0 ,-20,-20882568,-1 ,-95903925 ,-20,-28 ,25 ,0,-28 ,-320,-681,12 ,4158 ,23] +,[658 ,285241400],[8 ,18 ,4 ,-2,-22,-10 ,2 ,17,126704320],[-2580 ,93500496 ,-1757 ,-1243 ,-12 ,2415,2755 ,-2484,-264,-276864750,-10 ,-530881659 ,-18,-24 ,106164,-20 ,-322662120 ,4050 ,201308800 ,-280,2784 ,-2600,-5,-104715648 ,-98829024 ,7560,2266,-22,-1899,-2222,1185 ,-62367840 ,4554,-186 ,-30,-5,3332 ,-15 ,2 ,-5775 ,-280296720,78190800 ,-42366411 ,27,-4994 ,0,6757,-21,-204 ,269712,8092032,-6,-22 ,-5250 ,-2268 ,25974300,10 ,-17 ,43636144 ,11 ,4 ,-3,0 ,29 ,-23 ,5400 ,-134779350 ,-26] +,[14352884 ,-2240 ,29,16 ,-11,-6750,-24 ,2416,888 ,-12,7,8 ,0,21,-563338656 ,-1209,2070,1332 ,-1170 ,-17,-22],[3276 ,30 ,-127666560,-4800 ,-202344716,132157954 ,-4,-7,19],[2 ,21,186965558 ,7,19,4284 ,24 ,-900 ,2511 ,5974,42 ,23,-30 ,-18],[2 ,5,-31,-303251130 ,0,-25,-25 ,-25,-26,17 ,-1,23752872,4121936 ,3306,-2,20] +,[-18,281226296,-5,-3 ,-3864,7,22 ,26,-885,-1116,-7,-5,16,-168862375,-1992,1340 ,-26 ,9850968 ,8 ,8 ,-792 ,-16 ,-19,74410740 ,16,4340,104603520 ,363661740 ,-449766930,259084260] +,[-21 ,744 ,14,-19391424 ,-169683696 ,-4,488 ,408 ,-28,18 ,-26,3 ,-2,16 ,0 ,-159 ,-9 ,26 ,6,0,955 ,1 ,-30,-26 ,5,-9141792 ,-18,3277 ,0,162 ,-27,108 ,4,286101720 ,6,-13700512,-12 ,23 ,180980904 ,24 ,16,-54714330,-67] +,[-28,28 ,150725750 ,-29865472 ,0,-5967,-29,-30 ,-29 ,30 ,-13483596 ,-31 ,2232 ,-297765504 ,0,133803360,89671480,37441440 ,31,26586819 ,0,-31 ,-108426303 ,-14,17,-29 ,30,29 ,-27,128555925 ,0,-300,-4740,9,279863425 ,-23 ,1008 ,27 ,-3 ,-344890128 ,1104 ,-212144988,177,-94197054,16,3268 ,-27,-644,26 ,-26,0 ,-4,-2522 ,-7179732 ,20 ,8,-28,-14,27],[-432 ,-882,-45861200,-72167040 ,23,0 ,14,-20,-576,4212 ,2,2128 ,-23,29,363781594 ,18] +,[-34584870,28 ,5292,3472,2115,1008 ,11 ,-28,-8 ,632382660,9,-17 ,-5,-6 ,6,20424642,-2,1680,-2520,7378 ,-22 ,16 ,-62916966,580 ,3234,16 ,-21],[-755,323,816 ,1554,493,-14 ,-24 ,371897055 ,0 ,-37316496 ,253,-231621460 ,-3668,0 ,21,-249917448 ,13 ,5,27 ,291345080,-12,5 ,7,-11,-2567 ,1] +,[25 ,-13081596,1976,-16505280,26 ,540,3648 ,-36 ,-11 ,-21 ,-21 ,1311 ,-22,-27,28 ,3570,-29,-5564,-11 ,187917912 ,-20599200 ,180669600 ,14,-2378464 ,9 ,-3451 ,107576784 ,-2982,-4263 ,-3840 ,-10 ,-22 ,-21,3360 ,-8,20,1 ,321002000,-2986230,-5460,0 ,-14624712 ,-27,1470 ,8 ,-1296,43547088 ,12],[22 ,0,8 ,682216416 ,6683427,1165236 ,621 ,36251910 ,3,23,-20080,96265400,-441,6 ,56 ,28,-3 ,-5010,-10,9,-44157900 ,18,-19 ,-12,16 ,296978220,1624,-6269090,-2016 ,11,-84898440 ,3466736 ,-11,12 ,9 ,-16 ,26,19 ,-6,4163,183 ,-4150,20 ,-2100 ,0 ,-41321475,315163002 ,-11 ,14 ,274,29 ,-48153960,-3 ,8 ,-2480688 ,560 ,-16148352 ,19 ,25 ,-940 ,-23 ,6247080 ,-14,38234730,29,28 ,-22 ,12 ,-29,-82837872,5 ,0 ,-31 ,-930 ,1160 ,-30,0 ,-16598552 ,21 ,24 ,-3,732 ,150270633,7,16,2460 ,27 ,-10 ,1],[364 ,10646720 ,19,18 ,-7 ,-9 ,1886 ,54012744 ,-25 ,-648] +,[-4848,105137084 ,-17 ,-968 ,18,29 ,37429140,-4 ,21,3205944 ,-3151,-7140 ,19,12 ,-26,1120] +,[30540600,70865760,12376452,9,840 ,16,47 ,0 ,-32,233639599 ,30676840,18,2,8 ,-24,126877608 ,33937512,-1040,-10,13 ,80094600,-5361752 ,31 ,-39981480 ,193889825 ,-159621840,-2 ,-447124608 ,12,482140890 ,1820 ,10,-16 ,26,-1333,-15,18],[-14,-175184856 ,-3340 ,-6 ,-30 ,-4440,-27,12],[-249129270 ,-154,15 ,1819630,3 ,2790 ,696,-174689382 ,-468 ,-22,1206240 ,247589664 ,-300728241,1215 ,-215824056,-12,219168078,28,51214330,2001 ,2231,-858,-20 ,-160,125 ,-18 ,76761384 ,-260895600,36849960,-4 ,23,-2304 ,-19336005 ,-31,6448,0 ,23 ,-6412 ,8,-345,211077432,-10472544 ,-8295363,-1891,29,1666],[192,16 ,0,-2,22 ,11 ,28 ,2,155052660,20,-825,-1 ,2156 ,-3895,-8 ,7,0,1118,-4,1707156 ,10 ,1930,-3,429189192,82452916,10999170,23,15 ,4776992 ,15,-10,-22 ,-16 ,118519000 ,-8,200889920,-12,-30,258081600,-13 ,-11,-193641640 ,317541642,-37506392],[14,-56311728 ,620,19 ,-143,192928176 ,18 ,30 ,-23,-244385700,0 ,27 ,1008,51622164,-29,1674,-256288320,7530,-1243,33802340 ,-6235696 ,1350,-11,-25,26470917 ,102630600 ,9 ,20 ,25,-13,30 ,15,-285 ,18 ,-26 ,3,132369514 ,1534 ,0,25 ,-22 ,912,1 ,-16,-5,-3,-31 ,263797326 ,-1710 ,-31,6 ,9] +,[-12,-161891136 ,-2128,18,1896 ,-6540 ,-546 ,-11 ,8 ,-26 ,1144 ,-9 ,6,31 ,-17,1 ,-30 ,20 ,8,-1,26,7816743,4813460,-8 ,-11,-16,-93755376,-54259260 ,29,-1730,846,-1,13 ,8 ,28 ,20 ,-306 ,-16,46559712,3213 ,81554814 ,-306653225,-27 ,0] +,[21 ,748,-12 ,-2646 ,51161376 ,21,-1 ,31 ,2002 ,-16 ,-118435740,504,22,-199612100 ,26,-1 ,-24,0,-6 ,-19,-8 ,-7 ,15,-5040,78616656,6 ,-9 ,-13 ,-420,-5250 ,-1207844 ,-1776 ,608,25 ,16],[-4,25 ,-107680828 ,-29,27,1,27,229039500 ,244 ,-24 ,-121572594 ,3838,28,-2074,20,-1020,25,-113460480,-4843,441 ,-24 ,6 ,223411176,-16,28,-413236096 ,-1008,1235 ,22712522,-29,-6264 ,-5448 ,-11,125216520 ,16,-11,14,10 ,-14 ,26 ,-1 ,-14,-4851 ,-11392164 ,860861640,85664000 ,750,-10 ,23,14,-43703305,1,-20,46257876 ,70451160 ,3751,-25 ,26,-4,-15,-65788675 ,-23 ,-2366 ,101 ,-4312,-4,78,14662017 ,-123547200,8,38822000,12,-7 ,-6015960 ,21,-4 ,-18,4140 ,5 ,26,14 ,156],[-11 ,10 ,-9792952 ,309246000,15348879 ,22,-77455500 ,-16,-6,-3768,-27,2628 ,5310760,-24,19],[-23417100 ,-4810,1596,-3,-18,-4483608 ,31,22 ,232048896 ,-8,-522 ,-83204800 ,6,0,-28 ,-25 ,0,-17,-26 ,24 ,5832 ,775 ,-29,-22 ,-28245430,-642107340 ,-28,-4 ,-96976 ,-28,5119200 ,-868,0 ,-3712,-31 ,9 ,-1695,-28 ,-22,104251200,11,-4 ,4194,2200],[-31 ,3762160,-2150192 ,3] +,[13,-378599776 ,-3,28010880 ,-21,4914,17,-13,-79473440 ,21,-1230 ,47020160 ,-453189984,3,-148 ,-123831678 ,546],[-371135100 ,8372889,316,-631468344,3108 ,-417384 ,-14,-21 ,306020819,125593416 ,-22,1 ,-27 ,296886601,4114,-3069036 ,15 ,16,138924370 ,28723968,12 ,158455740,152947904,-175142880,-15,-7,-8 ,-124218400,-44,2263,1464 ,-1408 ,133],[-21 ,7,-480590704,-9 ,-10,-11 ,-17 ,23] +,[100,1978,1212 ,-2060 ,-2024 ,-7311360 ,-88742400,-26388675],[-21 ,-3927,-7050 ,-13 ,-22,26,-722,19 ,27 ,11992133 ,-142742880,-200,31 ,-15 ,30 ,-27 ,31,3135 ,1368,21,990,-28,-1 ,15 ,-19 ,-21,2520,-2772,26,24,-1392 ,-14,589 ,24] +,[-5 ,32579412 ,11,8 ,6330 ,-6 ,-29,15 ,-3,-6604,27780000 ,-616,-1560 ,76281832 ,-17 ,-227077189 ,-80869104 ,26 ,30,-25 ,6 ,-4700 ,6 ,-233760800,7,21,7,22,-8,130 ,-6],[-146038551],[-4 ,29 ,19,-16 ,392] +,[-11908910,-3360,4693 ,-358783620 ,189165600],[-1,7778260] +,[14,1276 ,-28,1,13,3637396 ,0],[2080,-24 ,0,-28,-18 ,-17 ,24 ,-25,-4082176 ,-2553],[-131076000 ,-106576722 ,-438412338,89666976,-9 ,3,494,210],[-29,4,-29 ,0,-5 ,279778976,29,-20,15 ,-15 ,-25 ,29 ,-160801452 ,2960,49204688,-25761600,-19,-3240],[-1 ,292097640,-42680000],[584623296 ,-315,-3,-23,-218604312,-8,12,-1 ,-96339342 ,-119214953 ,-8 ,-27 ,438,-2,-27,378609840,25 ,-6 ,-1782704 ,-210,-19402560,-1485,-13,46639700,-5,39413436,27,2320,-13,4,0,418527125,-7,9,432,-22708800 ,-31408566,22 ,-27 ,725 ,0,-771840 ,-76219260 ,-10,0,320,-29 ,-134847396 ,-1737,-990] +,[-68274360 ,11,31 ,26,16 ,-31 ,15] +,[-44 ,9,11 ,-31 ,-1007,2662 ,-6,-915,-47719282,-8 ,-189849640 ,-6] +,[5 ,115,15,13434336,-3630,-17 ,23,-10230920 ,29 ,15 ,-3188160 ,-10 ,-563035,208060500 ,2,7 ,34829406 ,25,-19,4368],[-1,-9,9,-8,11889360,-80403400,768,19 ,-6,-426 ,4,-12 ,1760 ,5 ,174540096 ,-29 ,182229996 ,-4 ,-810 ,144827550 ,-711 ,166752684,-72065136] +,[-56632128 ,-33811456 ,3,300452784,2100,8,107846011 ,-1072,-168715950,19,-6 ,-4,7,-9 ,-200] +,[23 ,-1712 ,1953,15,25,-770 ,10677072,12 ,-872,13856370 ,-23,3348 ,-1416 ,7555275 ,-300,516 ,0 ,-16 ,320279400,-194961816,-62935056,87744564,-23232762,-4800,24,51,10885410,-5 ,1276 ,1201537,-133508370,31257207,-4 ,-1,-25],[-18,-180,-5452,-16,2 ,-31,22121856,-21,796 ,17,23 ,9,11 ,-271697400 ,2 ,-595563936,-30 ,-31 ,11,-30 ,24 ,3 ,1280,0 ,-5,1 ,0 ,24 ,317252754 ,19,20 ,-31 ,66193556 ,26,-138606710,9 ,-20 ,1 ,9,-4620,119660541 ,27,-22,-8 ,-2002,-3328],[5544 ,7,-894360 ,-30,-20890200,-60 ,-1136 ,-30 ,-8,0 ,10,25,29,-462933630,-3 ,258663600,7192 ,2436,2852,-14,-1962,-16,22,-15893350 ,31,-8 ,-4,22 ,5642,-12,23,27 ,14 ,-22 ,-24 ,9 ,-252,-772 ,330792,25,-4,-20 ,1,-15,-26,17,-176508670 ,-442183770,436153830,12 ,-119336008 ,-1040 ,-17,-58023200,-11 ,29,4,-2989884 ,21,13 ,-2320 ,1287,18,-31,-25,10,36 ,-1904,-10,25,432,-309,-5180 ,-3,-22 ,-23 ,153542610,-337345560 ,48 ,2,4290 ,23231160 ,280 ,-26 ,-359915946,-27 ,44693250,-34777665 ,-26] +,[-26,-5,21,-17 ,-1482 ,0 ,-182,2496 ,-306247392,-23 ,27 ,-24,4239 ,-16885330,-1190 ,-170,-3 ,-336,-20,-51975495 ,1628,680,285,0,-186,17 ,29 ,2 ,-19,-7112,-17 ,-23,-2730 ,10 ,223976760],[7,-100 ,24304116 ,-13,405 ,2676833 ,-6,18 ,-57 ,3709696 ,4224,-1272,-19292350,25,3 ,1391,110010672 ,-26,-13933440 ,2608,5232,-11,239263605,289543680 ,3,-13 ,10929490,23,-117672444 ,29,3895 ,-24,432 ,25 ,1 ,665,1824 ,-1,-14,20,-12 ,-4660],[-22 ,121694470 ,-417245400,-462296289 ,-10 ,525,10 ,28,-17],[13,-1696 ,21098088,29 ,2 ,-9,-23,-60718500 ,8],[0 ,288,280,-4,-27 ,363 ,21 ,105918180 ,-353030184 ,-2697 ,1720,-1558 ,4584,21 ,-29151960 ,10546970,0,-22,-1107 ,-19,-16 ,4080,-29 ,2080,30,-4712,-2706 ,1755,-8,2604,23 ,-231267315,23,-3656730,469 ,-15,-22 ,-2,15 ,-16,0 ,68439900 ,-11,-3894 ,4,-1969 ,-28,-387,-59127615,9 ,-10092648 ,-1650 ,-5101428 ,-884,-10 ,-11,-249119640,-25490388 ,165545400 ,-4686 ,0 ,-3287,6,-10 ,-24,18 ,23 ,502 ,6102 ,63704800,-20,-1140,0 ,-5,20 ,3008,-232007516,31,29 ,-16,11,-67118184 ,18 ,-86891332],[-4 ,-12,-7 ,-2068,-29,-25 ,-4 ,14 ,-5832480,-2460 ,-4600,2436,-25 ,8 ,-1470 ,-8,31714144,-6 ,-10 ,-14 ,1411704 ,-86837240 ,-123160128 ,98052864 ,-6,5850 ,232241465 ,8,770,3759552,-8,11 ,-27] +,[-10,27,154 ,5],[4579887 ,-2180 ,12478656,1,408,198,22575240,-24 ,-129542490,4,68517952 ,-20,0 ,20,0,0 ,29,88689835 ,-3674160 ,22,-11 ,24197355 ,-2,25,2500 ,16,-570250800 ,25 ,276450 ,-15590340,-24,11,-24 ,-27,13,21,-23 ,1580,29] +,[1,5,12 ,1,24 ,96938415 ,-28257024,1416,22,2664,-786,-20,-2470,540 ,-341089920 ,-7,-96634944,-380,-136,1036,-306784800,5,-551,-2142 ,11,4,133521388,8 ,-1 ,0,-38862486,22492050,14 ,-174 ,28],[-104,-6 ,-103014072,-28 ,-129708390,-15,-24 ,30,61863480,18 ,-22 ,3,-20,-269748000 ,23,-48 ,4 ,0,-3990 ,18 ,25,-13 ,-5430,40328560 ,-116910196 ,5335248,21 ,-23 ,-28 ,10427400 ,-20,-11 ,-920 ,127181556,3306 ,9 ,28,5 ,6390,10 ,-25 ,-18307120 ,7110 ,21 ,959 ,-9 ,870,330 ,-24,-25,4553 ,-26 ,580 ,-19 ,2057 ,-9930060 ,5 ,648 ,-16 ,-24201384 ,6348372 ,456 ,-27 ,-24 ,252 ,-172016768,11 ,1848 ,16,-148,11,-37695528 ,-8930493,133546392,-27,26637105 ,-194238328 ,76857984 ,21 ,-3268,-10 ,-995 ,63369960 ,-118274640,-237 ,2658736 ,-29,-14 ,774,-22 ,2 ,3360 ,-45749880 ,8 ,-351,-19 ,10066176,78 ,-567666,3] +,[0 ,-15,31581725,-21,-162 ,-6 ,-19,25 ,4752 ,1036 ,-12830706 ,-56050155,12,-20,9930720,3,17,185,10,-26,-24,-2054 ,32 ,868,-21,-144 ,-18 ,4,-7 ,21 ,2178 ,-13,11,-10,63120660,-19 ,27,-67648284,-11,358398710,-1215 ,-18,-17540874 ,0,11122056 ,-31 ,1356,2,-631275390,-1208,-56909820 ,-25 ,-6902 ,0 ,11 ,21,5160,2925 ,86348700 ,16,-13,-2068,160],[-114403520],[-17,-8,-1,1,19,-4 ,17,629 ,6 ,21],[107505 ,30 ,1143 ,-16 ,107521925,17 ,2056865,21 ,-8,-164464020 ,-26,1235 ,124,13 ,7,525 ,164577088,8814750 ,-330,-358918620,0,-10 ,0 ,-13,44604000 ,26 ,6240 ,-580 ,18 ,-8 ,-1,13 ,2 ,8 ,4480 ,-594 ,-2 ,366988496,261365400,-12148840 ,-6,2133,16,-20 ,62797170,9 ,142012416 ,0,0,-99483750,1638 ,407660,-5271 ,-9,-32844070,-1586,380912 ,-6240,0 ,-1,-156,-3570,19,-1052058,5,3402,1 ,-10,-200662000,1134,7 ,-1044 ,-3 ,-2034617,4752,-418803800,-20331540 ,10,20,8,-25 ,6 ,-31147920,-10 ,7,-276 ,-246369546 ,2760500,1278,-129486420 ,-52544376,14,22 ,25,142845612,-5964,-29,2988 ,3 ,-2 ,-13 ,4478292],[-2 ,15 ,2916,9616640 ,1 ,-1 ,7006,14 ,20,-24 ,94645080,14 ,-12,-1746 ,-2 ,729 ,-16 ,28 ,9,-76946100,-23,222,-1,-25,-3952 ,12 ,-23,6634971 ,28 ,-15,2 ,-2002,206892480,13],[234,-9266880 ,16 ,230099760,5 ,-24 ,29,-749,-2016 ,-30,75001550,-22 ,10,-1372,7 ,-30,-5355,80090960,8687744,3015000 ,528636500,1717,-8,27590080,15 ,80354690,13,29 ,-27 ,0 ,-3 ,-20,-4,1360 ,-339,-984,-108 ,-738 ,-25 ,-15 ,-25 ,30 ,-184463818,-29,13,19 ,17,622485,8 ,13 ,1782,-59128380 ,264 ,2354 ,8,-270 ,-24,-22,542651850 ,30,-3893 ,-31,-1582],[61475148 ,-29,-10,73475392,21 ,-5,-19 ,72859176,-19 ,1860,-1938 ,-2266,-7999120 ,2590,-15 ,17 ,-29,-11,26 ,-39142656,-23,-1088 ,211671250,-1476 ,2574,-2,107330598 ,100,-13 ,-5824,-1704,-15 ,104610240 ,-122478312,2610,-69891856,-29 ,-590 ,-31,184370340,-2295 ,-16,-290051892 ,4416,-165,18 ,-25,0,61 ,26,-426 ,24,19 ,-28,-23,-5600,22,-17,27,15 ,-30 ,2728 ,-451237644,1158,3744,-28 ,4 ,-54126300,-2088,-249247320],[3125,109506306 ,-2171 ,252148120 ,3612,-30761289 ,6] +,[-183865344,12564384 ,78006654,-1,-73759500,-4 ,1 ,-3 ,4796,755263440,24,-2782500,0 ,1760 ,11,-18,-100824768 ,-2178 ,5,15,-401903775] +,[25,-67880218 ,15916392,248 ,-21 ,-18 ,47289580 ,2 ,-393,26253220 ,8,-3,3648480 ,-12,3 ,-1645,-1 ,14,-24,-4 ,-6386092,-7,-7,1426,344742660 ,4,-31502308,1 ,233981415 ,-31,1271,3 ,-4843 ,258,30572880 ,-588 ,7,4 ,-1300 ,-16,37690224,-8,-10,-77904560,-46327890,-267658749 ,1755,-28 ,22] +,[-3150,27,-34116768,-28 ,-220700214 ,28,-13,-22001200,-1 ,114385200,-77729287 ,5 ,-112913352,-12 ,-2814 ,13 ,336 ,1508,2525,-3 ,26,-9 ,13 ,102 ,-5,2442 ,-20] +,[-31490389 ,2332,-16,-25,281865194 ,9 ,-525428316 ,16 ,1864 ,31 ,-360,3726,-17 ,-2 ,31,-24,78978412,-45,6904681 ,806,1194,-5,1596,19880994,-10 ,-1404 ,-19 ,-160260000,74105550 ,-5,-19,10,24,84669750 ,2028 ,117 ,17,91,180 ,1032 ,30,31,-103370526 ,9,-17,29,-400],[18458836 ,23,-33608520,27573780 ,26,-1 ,-13,-1,-14 ,10914408 ,5,21 ,-31801050,-10 ,-195458562,15] +,[-22555360 ,-18 ,-19,-14 ,-31 ,-10 ,-30,-8 ,-30,-1 ,2574 ,-2964 ,-52901376 ,714,-29,21,43825680,0 ,2355,180713484,-43846110 ,1476 ,-9820836 ,30,-4020744 ,226 ,-274785467,-1166 ,19 ,26,-7792200,84489780 ,136082232,-1780 ,-7,-3834,0 ,16,25,4 ,-1,-21,-351 ,-237 ,-2415,-15,31 ,121200912,1,8,-1000 ,464 ,-10,36132420,-25 ,20 ,0 ,-16,-3692073 ,-28 ,23,-1661,-265052000 ,22 ,-127416242,80937510 ,14,-8 ,30 ,-17,3 ,-6 ,15 ,44269680 ,-5,0,2180,-596,45075480 ,-25,6426,127243530 ,18 ,-97343840 ,0,81741750 ,-10 ,23 ,9 ,0 ,-19],[-31,-27 ,16 ,10,29119716,18,-6 ,-11 ,-16 ,224 ,-23 ,12,-70525224 ,-11 ,-1339170,447526800 ,2431] +,[-416,7 ,-5 ,-200 ,8],[-62686000 ,5,-277134528 ,80798130] +,[550579680 ,642,18605210,261205680,4 ,1020,-13 ,-5589,-94285620 ,10,-1500 ,4316,27 ,-31,197130080 ,19 ,388911600 ,26 ,371 ,-1692 ,-4,8 ,-32175735 ,-27,-23,-3 ,45093600 ,-53440940 ,23],[-13,3523325,-6757,2 ,-234,31 ,-10 ,406291041,0 ,-247490400,4832724,-29,1830 ,0,-14 ,-25 ,-22 ,-28,-7,-5750,-275,1645434,8 ,78 ,-9,1] +,[52166970,648 ,11043648,10,21 ,6356,-32761440,19,31827128,-67161600,-286226100 ,1550 ,5099040,-26 ,-2737150,6,1955 ,-81798444 ,19,10494236,-3806880 ,29 ,23,71823094 ,-57815775,640 ,1710,4 ,-18,1410,-10347194 ,-9,9 ,-25,8,-6786 ,-2025 ,0 ,-690 ,-4,-23,4094 ,-27 ,1782 ,-28,2,-1812 ,-4,-106072720,-280 ,11 ,-7000999 ,19 ,237097476,1488,1680,-8,-197581760 ,-608994380 ,0,-7192 ,-17,-12021490,-11666336 ,-615 ,34102449,-29 ,24,-3620,6972 ,374,1904,2453724,8 ,25544708 ,1185,-792 ,24 ,-5304 ,0,17 ,17 ,2240,3798,1 ,-65810070 ,6 ,0 ,98785728 ,1275,14,-9261039 ,31 ,-69351072,1716 ,-130,1584,-6,315091260 ,30,132495360 ,-592,6334524 ,437 ,4 ,5 ,-224447795 ,22 ,-5187 ,-297 ,15,118386525,-22,-4420 ,201794779,0 ,-10 ,-424003620,-200,29235816,720,23,-25,-43167924 ,-19,-28 ,-140136750,3546 ,-167652980 ,-9865824 ,5490,9029200,15783840,-45699804 ,-10,2299 ,2441824 ,-97463080,16 ,223411157 ,0 ,2616 ,14 ,7 ,6030,-27 ,8929800,28,282225888 ,-8 ,15 ,50442000 ,-89755560,-41671840 ,-3,1454355 ,65735040 ,-16,3145 ,-27657806,-4046 ,-3304 ,0,-3,638 ,-15 ,-23 ,-93936528 ,28 ,8342624 ,0,-18 ,18449991 ,-2 ,29 ,18,23,43187116,-137887344,-91230075 ,-5 ,-1 ,-22 ,8 ,-3 ,-4360,1212,-28,-4 ,-317239230 ,-7,-8 ,-22,-2,-14 ,864,-2106,30 ,4 ,-25 ,-4,8 ,1776 ,-12 ,-29,1976 ,-30,15 ,-1998 ,0,-7 ,19 ,-324 ,21 ,-16,17,-552 ,-11 ,87441120 ,190079820,28 ,8,2100 ,9105761,30,0,552006 ,20,-24,-9 ,24 ,-9,20,20 ,-5 ,-21489258 ,-77577588 ,24 ,3648 ,0,-17,575,9689940 ,296318898 ,0 ,-9,21 ,95805990 ,-24,194],[2600,-87658256,12 ,26 ,202433688 ,0 ,42008019 ,17,14016990,11 ,-19 ,10,-1998,233624475,7 ,-21,-5,5,0 ,-23,-25 ,768,-26,-28 ,2,11,17 ,206264718 ,24,10,-25 ,12,3,-1890],[784,-18972450,378,24 ,3732300 ,-22,-388855080,8547360,-17,918 ,-188306382 ,0,262719360,26 ,0 ,-30 ,-1 ,-21,7,-7 ,9 ,-1292,-5 ,-12,774 ,235,-505102500,-16 ,68312720 ,2 ,-3111330,-11,184196320,-24,10643496 ,-158814600 ,399420,-10 ,66965096,4218 ,-24 ,3069 ,-1,-34681218 ,2,10,14778575,5 ,88806256,20,-22,-5 ,-369158400,-216702390 ,115453800,-144169130 ,248360112 ,28 ,1248 ,4140 ,-1416,-2366,22,-16 ,26,-18 ,2660 ,3410240,-525780 ,21,-4137,11 ,-1269 ,162583420 ,-5 ,-5,-264,-1651 ,1080,19 ,-527 ,-3 ,-30,14905358 ,-6969312 ,5880 ,-125650764 ,-23,-15,-7320,275 ,-19 ,6664 ,4469820 ,-684 ,-14,-112 ,-26 ,21,-25 ,25 ,16 ,17,9 ,24 ,-1340,156507414,-20,-27 ,13 ,-23,19,7 ,31 ,-16 ,-8],[-27,-26,6 ,-205706592,-14,-8,-5,66539648 ,14,-27 ,-25,-270284220 ,-10,12 ,-18 ,5,2 ,1582920 ,12 ,-2 ,-2233,31 ,-27 ,12,28246995,199408716,1161,-172476690 ,-1358,-28,29828512,7,894255600 ,16 ,700 ,-58525560,-104478561 ,-1,40231296,96779232 ,-12712410 ,26,-1090 ,8 ,23,2896,1066 ,-13,-10,1717 ,12 ,18 ,-4824 ,-34899600,7063200 ,2940 ,16 ,16 ,-29,252 ,-26],[-276,165123000 ,-18 ,-1518 ,-19,-228,-898560 ,-730 ,3,14 ,61063872 ,-14 ,-10154136 ,10 ,95290560 ,24 ,0 ,-2034,18 ,-30,4,19 ,46,-15,-9] +,[247864617 ,-170847600 ,-1053,-5688820,-273,-3264,1030 ,6,-26,242 ,-175262080 ,18 ,0 ,-2736 ,-25 ,-125586756,252,484,-23471289 ,-9019248 ,420 ,-15 ,1390,-5478 ,1030 ,-12 ,-6804 ,-19 ,-21,3364596,-2223,31,-24 ,3054420,12,290197650 ,-28 ,10,14],[482631552,-8 ,0 ,-864,6] +,[0,-2825,79493700,-1,1428 ,28 ,-22,23 ,18130560 ,-5,-26 ,-29881920,-21,16 ,14 ,-25,-3 ,-4818 ,-21,29,13 ,-376202232],[0,5,1582 ,30 ,-513603288,500780610 ,-31 ,-2043 ,59908080 ,23,-26,5112 ,163550070,-4 ,9 ,-416,265067640],[-508232308,20 ,17649920,18],[-33706920 ,-410,-104837820 ,30 ,-11,-82122184 ,238154462 ,-13,21,-15,-2970,-18 ,50004416,16128720 ,-1566 ,-25,-864,966,-3615],[890 ,330 ,161472 ,25898264,-672,25,-61383672,777 ,3 ,-77549160 ,-8 ,-23 ,315424018 ,-26633816,-478,-29,-285,4 ,-1224,-24,-22,-8,10,-783,-19 ,50882544 ,140 ,-63167580 ,-17,-15 ,2,8,4,-19,-24843240 ,227863950,-32059560,24574613,0,3990,-30,14,-22 ,24,24,6 ,16 ,-23 ,-17013360,-23,-2120 ,318,1064 ,3210,-12 ,148974896 ,-5784,-199563085 ,2,-352836441,-596892972 ,1035,5,28,736,131632644,-2387952,-13 ,2241 ,21,22,-23,-23667680 ,15 ,0,2 ,16,2640,1638] +,[3,0 ,26 ,5075 ,-14 ,19 ,-9 ,-220] +,[-19 ,-25,0 ,-11 ,-77435160] +,[1881 ,31,-260,8 ,14145120,18,-25713639 ,-19,448594925,-799 ,-21,-479287776 ,-4488,15 ,-6,-41394046,14,-294 ,20,-5 ,4368,26,27 ,-20 ,6,174531830],[-9118396 ,1375380 ,-396 ,28,-15 ,-1035,-548 ,-6,0,-28,1600 ,18,-4,-88277202 ,-738888 ,-5730 ,6200,13,-3556 ,-20 ,349046550 ,-414,2,-460539673 ,-3079692 ,-1188,25 ,-11 ,-8 ,5699220,-294068016 ,5,-27,-12 ,-15 ,14 ,12,6,1261 ,-15,-19,17 ,23 ,17 ,-188201160,9 ,-27,-4332,-20 ,18,37806470 ,-10 ,-26,-22 ,213 ,15,15 ,67378152 ,965 ,-30 ,-22851752,273948318 ,24 ,-53793180 ,27],[88882332 ,-3281 ,-29,0,0 ,-310317120 ,-20 ,-22 ,-30,-51519678,-498718945 ,28,-47449890 ,0,637080 ,31 ,28,30,-2670,-5,-16],[-11 ,390,2052,955,-6510,20 ,29,236758756,-4785] +,[0,855 ,-8,2,-16 ,-148512480 ,0,-218147265 ,-846 ,360,49703358,-6 ,42482220,-148656024,1,-7395,-57403500 ,121806720,-302,58447350 ,132507960,-13 ,-8 ,0,14,-21 ,-29,-564 ,21,12 ,22222468 ,11 ,4 ,15,14,186244380 ,15,-292719648,13,-16,-4 ,-88672880,21,-1026000 ,-28,-15,13 ,11,-1952 ,-4048,-17 ,-24 ,-30,4237,-16204599,-9,-550,27 ,-737],[10684960 ,26 ,792,-240,-18 ,2697 ,1] +,[6 ,397786312,4784514 ,-651,24,17,47879916 ,6708240,12 ,-29 ,3910,-1 ,-29 ,31 ,-822 ,-26,26,-2832,4248,1584 ,-7 ,8,17411600,-69101400,-19,-1887 ,5301,-4692,4 ,-29,1071,28,-14,-1521,-16,-20 ,-30,-6214 ,19,-24 ,3,18 ,-8,9 ,-31,15 ,-15 ,11 ,-301826616,0,-406817840,-19130085,17,-12 ,44821361,-19,475230720,-5 ,383364300,-5177,-70224000,4475,-1280 ,9 ,4 ,135666140 ,3,0 ,0 ,27 ,408882600,-17 ,-3924,-2,-25 ,8 ,5,-163214304 ,4401,-25,4 ,-690 ,-654,26,-18 ,-1242,24,18,23,249253200 ,-12 ,-12,-1440 ,29,5220,-30,-2744,6,-680 ,-9612720 ,31 ,19 ,6,-704,18258464 ,-17 ,-58287934,-108005760,416,-136 ,104311152 ,-29 ,27199040 ,-19 ,-16 ,-1926 ,-762 ,-1 ,7 ,-247 ,27,14 ,19 ,4,5300491,2,8,-170226360,28 ,110001672 ,-2227,8,-1,29],[-3,354451916 ,-6,-7 ,19 ,30,-213990016 ,-24,-23,-265031493,4,-13 ,-31820162 ,14 ,15 ,-15 ,-9535008 ,-44408736,24735900,108756570,-211,0,-99 ,-26,-24,-13 ,29,20 ,-3454,20 ,1917,514410468 ,2939976,19,23 ,-735 ,15,-19 ,1575,-25 ,-7,165655378,29 ,149618040,-10575552,0,3,7,-19 ,26 ,-28 ,-20,30,326,-29 ,-19,-9 ,161726616 ,-65771160,15,901 ,-580,-78258250,-123865308,-8 ,3948 ,-11,-8,-5236,-2,-978466 ,3 ,7409 ,-8,108,16 ,27,37092160] +,[4 ,6014 ,-186050976 ,-2028,5146 ,-1 ,-1884 ,-3192,-1701 ,-3 ,-6,-252,117453985,-27 ,27 ,3618,2140,2684 ,-6 ,-215197819,23 ,-25,6240,18,29,0 ,-12,-11 ,2717,-25,-28,-247 ,31 ,-55813464,-30],[-4725,702 ,30,-2840 ,166213351 ,-7 ,20 ,-1 ,-4,76,-3555,1096,4,8713200 ,57769740 ,30 ,23,-4 ,-7] +,[-3225 ,163819938,54614868 ,-238713552 ,13 ,24,15],[26,339442116 ,-4 ,76 ,74868480 ,4075,-189026383,10 ,1364 ,2240 ,-28,-450,-23,-27,-754650,50992500,19 ,18,-696240,-198698880 ,31 ,-1890,1,20 ,-136,-26,22 ,-29,13,27 ,-28 ,0 ,-14 ,3,0,6318 ,17,24,-28,0 ,2400 ,-430856400 ,-5066358 ,3],[-25,-7047],[-4032 ,549 ,-17 ,27716992 ,13473120,-2289,837 ,31 ,8 ,-594901944],[-15] +,[124317720 ,-580 ,-25 ,22 ,-15805970,27 ,-11 ,-21 ,-3486 ,13] +,[29 ,-13] +,[3,-18,-52787664 ,1135,-88 ,4991,-28,-3552 ,14487795,34021080 ,-2100,-44106216 ,-6 ,-216,1260,2070 ,-1854 ,-22 ,-1341 ,-1587,18617000,26356500,10485447 ,-24,-4394,27 ,3510 ,-30 ,-31952851 ,-18 ,-2,31,150 ,22 ,-74 ,3,-3300 ,-1552,3900,-376,67120704 ,2301312,1,-23 ,11 ,-29,-1,91577213 ,5520,0],[-2004300 ,0,-12 ,326332638 ,-13831818,-20 ,127072652,-3,13 ,1,2760 ,-15 ,-1712],[-26,-171753 ,-84823600,22,-486402147,25 ,472013580,10 ,-3,22 ,-4252932 ,-717336837 ,28,-18,17,-27,2300,-447120 ,4131,3956 ,8,4554,-391,-22 ,70797909 ,14,76 ,1,-149289400,7130,-5,-2626 ,-3451,-21,432646099 ,1958 ,24,1,31,-3080,255461696 ,18],[212402960] +,[9,4,-28,117984240,3840 ,9 ,-31,15 ,29 ,19254312 ,-24,-211963500 ,-23,-14 ,9,-25],[1650,53155872 ,-139994008 ,23,1 ,0,-364,-20,-139320610 ,12,-11372608 ,-417810,10 ,-21,210,1464,15 ,-18,15 ,4 ,-7766550,-22,11 ,193392 ,-6,-8 ,28,-27695160,-12127130,-49655340,-31,9,-158584218,310676544,6,27 ,2632,3,26,-9,-16,-17 ,0 ,1 ,-252 ,-2958,6,0,-25],[4060,-3375,-3420 ,-96327525,-339165000],[-7,-3 ,-4 ,-31],[-27 ,-15 ,3360,6846420,-15 ,0,-12 ,6,125034325 ,16184718,247873920,-26 ,232,-28 ,1440,21,131702571,24,-21,-17,-289912392 ,0 ,0,28 ,-1540,57003606,-4150 ,1 ,-31 ,20,3780,-26 ,-7122204,-3675,324 ,-40084786 ,14790238,124614704 ,-16],[452182830 ,14,-3 ,5,11 ,23,-2325 ,-2 ,-25,0,16,24 ,20,-4847040,165754314 ,18,-8,12,163,20 ,346752945,3000,-420877976,-23 ,-12,6,-26,-56,64488080] +,[3105,12,29 ,14] +,[1308 ,-3 ,4050,-379124550,-2522 ,-23,21 ,-1705,-873 ,-14649999,-23 ,-144682720,-15,-1880 ,-20 ,127601280 ,-21 ,0,-1564,42905984,23 ,-3276,0,-7,-3474 ,-3660,-9 ,-4 ,-30,1800 ,2 ,1,376920320 ,3129041 ,-18 ,-5 ,-4290 ,-9 ,31 ,529439814],[26 ,108 ,-10,-22,196,-585,3,-18,149848818,-14250240],[25 ,-692 ,-3906,310294040,-48471654,-1 ,-6,17,4180,-1964100 ,26,-3,-11,20,-93937473 ,-25 ,2,17,-25 ,23 ,770 ,-23,-545 ,2,9 ,-3289 ,682,0,1 ,30,30 ,-73012992,3420 ,26144076 ,-19,172 ,131136789 ,7 ,-1260,-825,-8,0 ,16 ,91103232,-6552 ,340468920 ,-18 ,-48828224,6],[-1748 ,-855324,72494298 ,-23,40292720,15,-21,26 ,-3 ,2548 ,26 ,-410032392,420 ,-29 ,28 ,39394296,19,1414,6,9 ,-19,-22 ,9738162,-29 ,8 ,18,31 ,30 ,341181708 ,-576,-2 ,-20,-2982 ,4220,3192] +,[-26,-26,4,-10,151967340 ,-21,1136 ,-66 ,-58540725,1533 ,-3500,1620,-1,-19,28 ,187124080,-5,20,-1595,0,-67055100,0,-3,10 ,-9553986,24 ,-5365 ,-55411776,49227948 ,23,24,-1872,-3225 ,20 ,-2176,18,285631890 ,4,-19,-25,-68592656 ,-5145,-3952 ,-9133306] +,[1648792,-78699390 ,-6,133358454,0,127693746 ,0 ,-25,0 ,3075016,0,-9353421 ,5,-29,-527 ,13 ,-2230 ,0 ,167554576,3514,-30 ,-240 ,3400,2757144,270 ,-316680624,90067200 ,9596710,-27,3542,-110760842,26 ,21,-475673022 ,21 ,-9 ,12,24494960,-64224696,-24 ,2520 ,357371190 ,30,-29,2,212 ,19,-1190 ,21,-10 ,-2 ,-21 ,0,-24 ,-3024,82,1,0,-112,0,-11 ,-31,66832470,29,434 ,180692370,27,-20 ,24185850 ,171745368,99865560 ,-115525840,0 ,1 ,1 ,2600,765,-91387464,-6,-132197454 ,27,-74,-110544098,26 ,-29,77874804,413550005,59963760,3540,-2530,2016 ,28 ,-10,30 ,20,1 ,3,41713444,-1323 ,69840120,-2,-2] +,[-28,-295589376,72707292 ,480719808,-26 ,5324 ,-4110 ,-26,552,-11 ,-350,10 ,-15,5,-29 ,12837930 ,-92 ,10,-24,-24,-13,-167246664 ,0,-18,-168,-26 ,-16 ,3450,16,-20,6,-5508 ,-2352 ,-18,-1467 ,-1140,14 ,87365750 ,-376479714 ,29651328,24,-405905214 ,122925600 ,31,-4599,-3,-1,0] +,[-882,24164973 ,-3267855 ,-1725003,134832900,7,-310859076 ,8249904,2662 ,-215,13 ,1152,1475,-30 ,29,689 ,0 ,-10 ,3795 ,-3,2 ,423658390,0,-22 ,-11 ,19,-24,17 ,3 ,369312762,-69569280 ,-840 ,2,-476,-72469323,-12 ,-30 ,990,29,-4,29 ,2124 ,20,495,97402905 ,395335603,-238844448,-4543236 ,-12 ,2070 ,15] +,[14 ,-14613750,12 ,-798,-11 ,-17,29 ,3777900,13 ,17 ,2716,-1056 ,4628 ,560,320466510 ,117868863,117,8879452,984 ,-16,6384 ,28 ,-7,16941600,142599852 ,-1480,-259653240 ,22 ,-5,-1020,252603360 ,29,-30 ,-22 ,0,-144503190 ,12,-9 ,-21 ,-1375 ,1645497] +,[108529824 ,7 ,-1025,656,54092640 ,12 ,-4,-1656 ,-16 ,-14 ,-27 ,-15,-31,-8,26 ,-642 ,4061,-2628780 ,-2700,-31079664,-512047055 ,-81148844 ,810 ,-3770,8 ,7285 ,-14,14 ,-18803343,2 ,16,9,-23 ,-6,68748328,-2 ,-28,-54555174,-14,-17,-12,-74 ,-2 ,20 ,340565760 ,201],[10 ,-22 ,-28 ,10,8 ,178270752,-1150,22 ,-11 ,-1398,-17 ,-2460 ,1824 ,946 ,-860 ,-7590 ,-7 ,89781000 ,-35513280 ,3 ,122710896,-4 ,-4738480,29,520,-1,-175348688 ,120341760 ,-658 ,-548523008,-67381144 ,21925683 ,47773236 ,17,-20 ,10 ,-14,-4480 ,-426,18,21 ,562102272 ,4515,93873432,-17,27 ,-3696,-552 ,-3,-3,11 ,37931400,-190565725,-19,-40226760 ,-5486],[13 ,-1700,6060],[23,740 ,40700166,11,5,29,25675104 ,5,40,15 ,-4,-28,2494,45760780 ,-3 ,10 ,-10,1,27 ,2432 ,-5 ,-81546630,20133540 ,80406560 ,-197247330,-5,-23 ,-19,1,-2 ,-43977400,-4508,28,20,8,-20,-192435880 ,-400440600 ,2912 ,-1,-491425440,-28 ,4129947 ,-12,-21 ,-16,550,19,6006 ,252 ,20,6,85660084,-491183592,2 ,-2,23769864 ,-4108 ,-636398400 ,26,166937568 ,23,115806600,-13,2704 ,-31 ,3,16 ,5 ,22 ,-104017914,242994720 ,-1716,-2436,-980,2604 ,21 ,-8 ,17,16,18 ,0,21,20879480,19410795 ,5,327006360,4925,-18 ,-5456,-18,-24,-20 ,-260234854,3,0 ,360,262992450 ,218608560,-15 ,1,-238,-1085 ,3 ,17,-2064 ,-236634801,2926 ,-298517184 ,20 ,-170],[1113 ,-27057888 ,30,4579 ,-157899384 ,-143 ,714 ,10,-9,-25 ,-5 ,-2772 ,12 ,4,-18576844 ,31,1256 ,-952,28,-256 ,-1 ,47411580 ,208 ,-13 ,2420,14 ,2352 ,2 ,1032 ,-6018528 ,-1026 ,6 ,-16 ,-3 ,-10 ,-544 ,-5] +,[-18 ,20,13 ,-22,89742450,0,30,-150,-184609320 ,-7] +,[29150100 ,-23,-12,-390,7071840,16 ,-451,-7,-21,60403152,4,-210 ,25,18,22 ,7350 ,-1,-462 ,3200 ,-69149484 ,-26 ,2460 ,6,-21] +,[-8 ,3185,27724476,-317469746 ,26,-27 ,7 ,4,-119802298,24 ,4960 ,6,12,-21 ,4300 ,26,-21,305324080,-402020772,2775 ,-97617277 ,9 ,-18 ,5,163144692 ,2261 ,-1068,-14] +,[-10,-23157660 ,3816 ,-25 ,240,16 ,-98315856,0 ,25,-20,-26779599,-3300,10,-375500903,31,-21,13,1872,16464000 ,28 ,-1,-6479] +,[-2520 ,2904,-419896120 ,-109098696,-1305 ,30 ,-7 ,0,-30 ,-21 ,-3 ,-26,512502767,5130 ,-181762372 ,-2780 ,19,2754,6125 ,-2856,4425,-410911788 ,3 ,31 ,12 ,29 ,4920 ,-1 ,390 ,2 ,24 ,-3382,-406 ,44786736 ,-4,24 ,-5944752 ,538383240,29,9 ,-13 ,-1454733,17 ,-71000976 ,-11 ,-3572 ,104,-12,31,-1691] +,[-20,21,0 ,-26175540,-34011120 ,29,15,15 ,182,-29 ,31 ,-7,5,-3465 ,13 ,-27 ,-29836992 ,21,5070,-150933276,-27 ,24 ,44983350 ,-2350,2673,12 ,-31 ,2250,-26 ,-14145000,18,21531312,26,-1920,2500 ,594 ,-1,-249 ,-164792628 ,-2 ,-8,-34453152 ,3 ,-7] +,[-3 ,150,-336311040 ,-24 ,-2205 ,4320,21 ,-14,31 ,25,-57851136,-17 ,22 ,-3],[-262251990 ,0,61747920 ,453302244,-11464704 ,-75850740,23 ,-5,-234145670,-3 ,30 ,20287017 ,-22,95308902 ,6458760,18,-84530592,18,-13,6,-13 ,78954057,56107000 ,-6900,428,18 ,-86625000 ,7466536,2552 ,-8290926,-25 ,18382600,0 ,529287696,25,2060 ,88141584,13,-1102 ,-448153160,2322,0 ,21 ,-141618375,-1870,-80788266,784,-86107032 ,-22 ,-21 ,6692,-191252880 ,-85158627 ,0,5,-4389,1860,-22 ,-20,3] +,[-592120320,30 ,1755,-36301475,0,29,14 ,17 ,17,-3,21,-184075398 ,73385447,1800687,-3,-8 ,121628913 ,7 ,1750 ,-24,3960,2964,42995232 ,29 ,-11,300597765 ,31012256 ,-16,2892 ,42054600],[26 ,-3,0 ,-22,160,0,3258840,-21,185895336,-3502 ,7 ,3661290,108 ,108804555,18,-45506340,-24 ,-13 ,0,-142857702 ,-21 ,-165349616,22 ,11,8 ,22 ,-30,-6 ,-5 ,920,-1612,52286475,30] +,[-8847696,-780 ,-1 ,0,20 ,177799509 ,3744 ,10427157 ,-4680 ,-76 ,-2180,18,-3912040,-15,5,8239374,-5736,2,-13 ,-10,2001046 ,74422845 ,-18 ,-3630 ,-47685000 ,2659392 ,9,23655300 ,-3,-4488 ,-12,-11,23 ,7 ,12 ,0 ,16,-2 ,-3211,-29 ,11,0 ,-250354260 ,-238 ,0,1468929 ,527,96271860 ,39963022 ,3979,4,-5,-504 ,25 ,-16,250180144 ,35091043 ,-3136 ,14,13 ,-13,-10 ,400 ,-25,-1197 ,-171 ,-23,-1570,13,18 ,-21,8,2 ,-103646970 ,27 ,87702784,264212940,13886378,25,-6348000 ,20 ,-2272 ,1586 ,-21 ,10,15 ,-47871792,1200,-456 ,320024208] +,[20 ,-166190700 ,21 ,22 ,4524,-3 ,-31],[-16,-41307420 ,-2,475202700 ,-32406000,-1792,2587296 ,207,386347000,-6 ,-13,19 ,190896096 ,0,-8,-745,-22 ,23,1212],[17,-222362560,-154951069 ,-14221792,512,-2175 ,-1001,-576,-2142 ,-3 ,-89438310 ,102616480 ,157615470,-135337986,30,644 ,6 ,-490 ,4,28,-8,10 ,255841536 ,-27,-4636440 ,-9 ,17,-80631590,238569786,-23,-9,-890,4340,-17 ,29,0 ,278,12 ,-19 ,-65165405,-782 ,-238 ,23 ,-3528,-5],[675,-1768,936,31,-381251226 ,-16 ,3654,-9 ,23 ,287601600,-2060 ,394880,-138511500,-11947936,4509,-4,3007 ,-4,70425290,27 ,-180433620,8366358 ,-31 ,-26,0 ,-990,27,2982,49597800] +,[-92456250,2436840,-31,0,2727,22971240 ,-20,0,-164,23,-5,-8199200 ,7,6,23 ,700,16,28,29,10,492,13,3760 ,-19,-1272 ,-13 ,12484104 ,861 ,1512,31],[397646982 ,25 ,9],[-4675 ,814 ,-26,3712,3 ,-15 ,-24 ,-21 ,28 ,7006,309446592 ,-5797 ,27 ,24,28 ,-5304 ,0,26 ,-25 ,21,-454475,22],[-102 ,1264 ,-18,1751250,-5 ,-25 ,7,23 ,924,-209630750,5 ,-366171330,-536085480,26,0 ,-41575040,22,-31,480 ,-2 ,-25,24 ,-17 ,21],[-12644544,-24 ,-115822005,-1,190042560,12841620 ,-10 ,6,3 ,-1502585,-18 ,-446003910,-162 ,-24865000,24,54932150,4620 ,-27,-23,-31,14,-4 ,859902568 ,23374728 ,-28415772 ,-110584800,7 ,-130756194 ,16 ,-123969780 ,30,11,84423534 ,9,27 ,-172224936 ,17 ,19 ,-2385 ,219956880,-1188],[93485448 ,13875840,-14885955,10,17 ,-12] +,[-4554 ,824 ,795 ,-2912 ,-20,23,26,-19 ,-7,15 ,53701380,5040,-9186690] +,[-3648,4712,-76 ,46871748 ,-1673 ,1,31796184 ,13 ,3872 ,13,955 ,-8541592,22,-33611602,60138180,13,-29 ,-2178 ,-459545520 ,2962120,-95500248 ,-5,-3,-31,2419380 ,2784,254594300,-8 ,30929760,-1337 ,17,9 ,0 ,0 ,961632],[-466569840,-26 ,209556900,6726645 ,-26 ,108112290 ,1666 ,-4625,-26,-1275372,8,-1125 ,26,4650,-46597815 ,-23 ,-2,140803677 ,26,-1233 ,-10,-824 ,-108590820 ,-6630,-594306076,21] +,[1 ,546,66110198,25 ,-608784363 ,12 ,21 ,-28 ,-7,25,15 ,0,-3,1344,-30 ,1496 ,5 ,-25,1 ,-3280,-5857024 ,28,-18,-30,84110832,1988,-3016 ,30,20 ,30,23437184,1330 ,35,-4 ,-12 ,-3968,234853830,505614060,640711384 ,21 ,-2184,-2,2231 ,-9,-5,-25,-920 ,1,3196,17,-22 ,-11,924 ,20,-2 ,-9 ,18 ,79583400],[-17,16388816 ,2 ,-135 ,60 ,708 ,-28 ,-14,-20,10,10080720 ,22,-21,35932650,18 ,5905380,-13 ,-10 ,32995080,31 ,-13,-25] +,[-364,35,12,255,-22559328 ,31,30 ,11503096,100566000,-1070,2340,7,-45786972,103558620,-340,16 ,302377519 ,21 ,28 ,-486,4,0,6 ,-2] +,[-17507952 ,4,-13],[18,-7,-4935,19 ,-12,-31 ,586269320 ,94248756 ,-14,-2,-9 ,1056 ,-17,-2240 ,-536,54269556 ,-373637544 ,19 ,-22 ,-185907696,77205960 ,-252,306,9,19,5,17,1188 ,-558 ,3381,23 ,118742400,6840 ,-2 ,-3420 ,458163720],[5684 ,26 ,-12 ,16,-11,-4698,164163285,40922910 ,447213690,7 ,2859885 ,98382200 ,67216810,17 ,-15,3696,5334,-12 ,-20 ,15,-5040,30,16020018,-4 ,-10321419 ,10,0 ,-16 ,6,21,-34251300 ,-13,20 ,19,99,510 ,242672724,-13] +,[-544293984,-30 ,-390 ,3726 ,-200 ,-18,3234,24,8,19,17040240,0,3,-139063320 ,-117010410,336,20 ,-1004,22609314 ,6 ,-1584,13,-35266560 ,-112822227,581416408 ,-17,-9 ,3,-5549,93279312 ,36349040 ,19,28311360,27],[11 ,-21 ,1340 ,108 ,546,3 ,113782548,-28 ,2 ,-25 ,90818400 ,12809988,462,178335625,-17 ,-812880636,88 ,-7] +,[-17 ,378 ,180155136,17 ,-21 ,-13 ,-13,23 ,31,-30,-10 ,-261623362 ,-1652 ,-12,-15277200 ,46070712,-20,-349139520,-9022862 ,17,532,3,119279250] +,[7 ,3247 ,-17,11 ,-21,810,-16 ,-2079 ,-22 ,-6 ,-25 ,6] +,[21 ,-16,-280,-352,319,21 ,-29] +,[0,6,-29378921 ,-1 ,-33256665 ,-7,197411994 ,-18 ,-24,-300 ,-28 ,27,1998,208728000,3 ,1392 ,-195,-31540992 ,25,84068600 ,-19856964 ,12 ,-27,-31 ,0 ,5308576 ,-4 ,-83394360,28 ,-306533190 ,-11 ,-132402256 ,14,3024,-12,16 ,-280768950,29210368 ,0,58397100 ,31 ,-31 ,-12 ,3 ,4620 ,-28,8,997440,27 ,4 ,2625 ,27,-67382718 ,9,639,103714200 ,-7,945 ,-1404],[-16,382 ,-26 ,1 ,10 ,-6,-17,-7 ,-20,-30,15,-2716,-27,5 ,19572570,-11,5,-2 ,9 ,59773440 ,-36112635 ,-10,144879644 ,16 ,36187200,58673855,2000,-116289420] +,[23]]
diff --git a/1.9.10/samples/test1.jsn b/1.9.10/samples/test1.jsn new file mode 100644 index 0000000..94ad459 --- /dev/null +++ b/1.9.10/samples/test1.jsn
@@ -0,0 +1,9 @@ +{ "test key" : true, +"nullField":null, +"foo":1, +"foo2": { "a" : 3 }, + "a\u00E3b" : -323, + "2" : [ 1, 2, 3], + "\"foo\"" : "foo\nbar" +} +
diff --git a/1.9.10/samples/test2.jsn b/1.9.10/samples/test2.jsn new file mode 100644 index 0000000..2629250 --- /dev/null +++ b/1.9.10/samples/test2.jsn
@@ -0,0 +1 @@ +{"\"abKey\"":3, "foo":false}
diff --git a/1.9.10/sandbox/tests/TestOverloaded.java b/1.9.10/sandbox/tests/TestOverloaded.java new file mode 100644 index 0000000..76aaec3 --- /dev/null +++ b/1.9.10/sandbox/tests/TestOverloaded.java
@@ -0,0 +1,38 @@ +package org.codehaus.jackson.map.deser; + +import org.codehaus.jackson.map.*; + +/** + * Unit tests related to handling of overloaded methods; + * and specifically addressing problem [JACKSON-189]. + * + * @since 1.5 + */ +public class TestOverloaded + extends BaseMapTest +{ + static class OverloadBean + { + String a; + + public OverloadBean() { } + + public void setA(int value) { a = String.valueOf(value); } + public void setA(String value) { a = value; } + } + + /** + * Unit test related to [JACKSON-189] + */ + public void testSimpleOverload() throws Exception + { + OverloadBean bean; + try { + bean = new ObjectMapper().readValue("{ \"a\" : 13 }", OverloadBean.class); + } catch (JsonMappingException e) { + fail("Did not expect an exception, got: "+e.getMessage()); + return; + } + assertEquals("13", bean.a); + } +}
diff --git a/1.9.10/src/VERSION.txt b/1.9.10/src/VERSION.txt new file mode 100644 index 0000000..d78bda9 --- /dev/null +++ b/1.9.10/src/VERSION.txt
@@ -0,0 +1 @@ +@VERSION@
diff --git a/1.9.10/src/java/org/codehaus/jackson/Base64Variant.java b/1.9.10/src/java/org/codehaus/jackson/Base64Variant.java new file mode 100644 index 0000000..308c4ab --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/Base64Variant.java
@@ -0,0 +1,413 @@ +/* Jackson JSON-processor. + * + * Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi + * + * Licensed under the License specified in file LICENSE, included with + * the source code and binary code bundles. + * You may not use this file except in compliance with the License. + * + * 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. + */ +package org.codehaus.jackson; + +import java.util.Arrays; + +/** + * Abstract base class used to define specific details of which + * variant of Base64 encoding/decoding is to be used. Although there is + * somewhat standard basic version (so-called "MIME Base64"), other variants + * exists, see <a href="http://en.wikipedia.org/wiki/Base64">Base64 Wikipedia entry</a> for details. + * + * @author Tatu Saloranta + * + * @since 0.9.3 + */ +public final class Base64Variant +{ + /** + * Placeholder used by "no padding" variant, to be used when a character + * value is needed. + */ + final static char PADDING_CHAR_NONE = '\0'; + + /** + * Marker used to denote ascii characters that do not correspond + * to a 6-bit value (in this variant), and is not used as a padding + * character. + */ + public final static int BASE64_VALUE_INVALID = -1; + + /** + * Marker used to denote ascii character (in decoding table) that + * is the padding character using this variant (if any). + */ + public final static int BASE64_VALUE_PADDING = -2; + + /* + /********************************************************** + /* Encoding/decoding tables + /********************************************************** + */ + + /** + * Decoding table used for base 64 decoding. + */ + private final int[] _asciiToBase64 = new int[128]; + + /** + * Encoding table used for base 64 decoding when output is done + * as characters. + */ + private final char[] _base64ToAsciiC = new char[64]; + + /** + * Alternative encoding table used for base 64 decoding when output is done + * as ascii bytes. + */ + private final byte[] _base64ToAsciiB = new byte[64]; + + /* + /********************************************************** + /* Other configuration + /********************************************************** + */ + + /** + * Symbolic name of variant; used for diagnostics/debugging. + */ + final String _name; + + /** + * Whether this variant uses padding or not. + */ + final boolean _usesPadding; + + /** + * Characted used for padding, if any ({@link #PADDING_CHAR_NONE} if not). + */ + final char _paddingChar; + + /** + * Maximum number of encoded base64 characters to output during encoding + * before adding a linefeed, if line length is to be limited + * ({@link java.lang.Integer#MAX_VALUE} if not limited). + *<p> + * Note: for some output modes (when writing attributes) linefeeds may + * need to be avoided, and this value ignored. + */ + final int _maxLineLength; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + public Base64Variant(String name, String base64Alphabet, boolean usesPadding, char paddingChar, int maxLineLength) + { + _name = name; + _usesPadding = usesPadding; + _paddingChar = paddingChar; + _maxLineLength = maxLineLength; + + // Ok and then we need to create codec tables. + + // First the main encoding table: + int alphaLen = base64Alphabet.length(); + if (alphaLen != 64) { + throw new IllegalArgumentException("Base64Alphabet length must be exactly 64 (was "+alphaLen+")"); + } + + // And then secondary encoding table and decoding table: + base64Alphabet.getChars(0, alphaLen, _base64ToAsciiC, 0); + Arrays.fill(_asciiToBase64, BASE64_VALUE_INVALID); + for (int i = 0; i < alphaLen; ++i) { + char alpha = _base64ToAsciiC[i]; + _base64ToAsciiB[i] = (byte) alpha; + _asciiToBase64[alpha] = i; + } + + // Plus if we use padding, add that in too + if (usesPadding) { + _asciiToBase64[(int) paddingChar] = BASE64_VALUE_PADDING; + } + } + + /** + * "Copy constructor" that can be used when the base alphabet is identical + * to one used by another variant except for the maximum line length + * (and obviously, name). + */ + public Base64Variant(Base64Variant base, String name, int maxLineLength) + { + this(base, name, base._usesPadding, base._paddingChar, maxLineLength); + } + + /** + * "Copy constructor" that can be used when the base alphabet is identical + * to one used by another variant, but other details (padding, maximum + * line length) differ + */ + public Base64Variant(Base64Variant base, String name, boolean usesPadding, char paddingChar, int maxLineLength) + { + _name = name; + byte[] srcB = base._base64ToAsciiB; + System.arraycopy(srcB, 0, this._base64ToAsciiB, 0, srcB.length); + char[] srcC = base._base64ToAsciiC; + System.arraycopy(srcC, 0, this._base64ToAsciiC, 0, srcC.length); + int[] srcV = base._asciiToBase64; + System.arraycopy(srcV, 0, this._asciiToBase64, 0, srcV.length); + + _usesPadding = usesPadding; + _paddingChar = paddingChar; + _maxLineLength = maxLineLength; + } + + /* + /********************************************************** + /* Public accessors + /********************************************************** + */ + + public String getName() { return _name; } + + public boolean usesPadding() { return _usesPadding; } + public boolean usesPaddingChar(char c) { return c == _paddingChar; } + public boolean usesPaddingChar(int ch) { return ch == (int) _paddingChar; } + public char getPaddingChar() { return _paddingChar; } + public byte getPaddingByte() { return (byte)_paddingChar; } + + public int getMaxLineLength() { return _maxLineLength; } + + /* + /********************************************************** + /* Decoding support + /********************************************************** + */ + + /** + * @return 6-bit decoded value, if valid character; + */ + public int decodeBase64Char(char c) + { + int ch = (int) c; + return (ch <= 127) ? _asciiToBase64[ch] : BASE64_VALUE_INVALID; + } + + public int decodeBase64Char(int ch) + { + return (ch <= 127) ? _asciiToBase64[ch] : BASE64_VALUE_INVALID; + } + + public int decodeBase64Byte(byte b) + { + int ch = (int) b; + return (ch <= 127) ? _asciiToBase64[ch] : BASE64_VALUE_INVALID; + } + + /* + /********************************************************** + /* Encoding support + /********************************************************** + */ + + public char encodeBase64BitsAsChar(int value) + { + /* Let's assume caller has done necessary checks; this + * method must be fast and inlinable + */ + return _base64ToAsciiC[value]; + } + + /** + * Method that encodes given right-aligned (LSB) 24-bit value + * into 4 base64 characters, stored in given result buffer. + */ + public int encodeBase64Chunk(int b24, char[] buffer, int ptr) + { + buffer[ptr++] = _base64ToAsciiC[(b24 >> 18) & 0x3F]; + buffer[ptr++] = _base64ToAsciiC[(b24 >> 12) & 0x3F]; + buffer[ptr++] = _base64ToAsciiC[(b24 >> 6) & 0x3F]; + buffer[ptr++] = _base64ToAsciiC[b24 & 0x3F]; + return ptr; + } + + public void encodeBase64Chunk(StringBuilder sb, int b24) + { + sb.append(_base64ToAsciiC[(b24 >> 18) & 0x3F]); + sb.append(_base64ToAsciiC[(b24 >> 12) & 0x3F]); + sb.append(_base64ToAsciiC[(b24 >> 6) & 0x3F]); + sb.append(_base64ToAsciiC[b24 & 0x3F]); + } + + /** + * Method that outputs partial chunk (which only encodes one + * or two bytes of data). Data given is still aligned same as if + * it as full data; that is, missing data is at the "right end" + * (LSB) of int. + * + * @param outputBytes Number of encoded bytes included (either 1 or 2) + */ + public int encodeBase64Partial(int bits, int outputBytes, char[] buffer, int outPtr) + { + buffer[outPtr++] = _base64ToAsciiC[(bits >> 18) & 0x3F]; + buffer[outPtr++] = _base64ToAsciiC[(bits >> 12) & 0x3F]; + if (_usesPadding) { + buffer[outPtr++] = (outputBytes == 2) ? + _base64ToAsciiC[(bits >> 6) & 0x3F] : _paddingChar; + buffer[outPtr++] = _paddingChar; + } else { + if (outputBytes == 2) { + buffer[outPtr++] = _base64ToAsciiC[(bits >> 6) & 0x3F]; + } + } + return outPtr; + } + + public void encodeBase64Partial(StringBuilder sb, int bits, int outputBytes) + { + sb.append(_base64ToAsciiC[(bits >> 18) & 0x3F]); + sb.append(_base64ToAsciiC[(bits >> 12) & 0x3F]); + if (_usesPadding) { + sb.append((outputBytes == 2) ? + _base64ToAsciiC[(bits >> 6) & 0x3F] : _paddingChar); + sb.append(_paddingChar); + } else { + if (outputBytes == 2) { + sb.append(_base64ToAsciiC[(bits >> 6) & 0x3F]); + } + } + } + + public byte encodeBase64BitsAsByte(int value) + { + // As with above, assuming it is 6-bit value + return _base64ToAsciiB[value]; + } + + /** + * Method that encodes given right-aligned (LSB) 24-bit value + * into 4 base64 bytes (ascii), stored in given result buffer. + */ + public int encodeBase64Chunk(int b24, byte[] buffer, int ptr) + { + buffer[ptr++] = _base64ToAsciiB[(b24 >> 18) & 0x3F]; + buffer[ptr++] = _base64ToAsciiB[(b24 >> 12) & 0x3F]; + buffer[ptr++] = _base64ToAsciiB[(b24 >> 6) & 0x3F]; + buffer[ptr++] = _base64ToAsciiB[b24 & 0x3F]; + return ptr; + } + + /** + * Method that outputs partial chunk (which only encodes one + * or two bytes of data). Data given is still aligned same as if + * it as full data; that is, missing data is at the "right end" + * (LSB) of int. + * + * @param outputBytes Number of encoded bytes included (either 1 or 2) + */ + public int encodeBase64Partial(int bits, int outputBytes, byte[] buffer, int outPtr) + { + buffer[outPtr++] = _base64ToAsciiB[(bits >> 18) & 0x3F]; + buffer[outPtr++] = _base64ToAsciiB[(bits >> 12) & 0x3F]; + if (_usesPadding) { + byte pb = (byte) _paddingChar; + buffer[outPtr++] = (outputBytes == 2) ? + _base64ToAsciiB[(bits >> 6) & 0x3F] : pb; + buffer[outPtr++] = pb; + } else { + if (outputBytes == 2) { + buffer[outPtr++] = _base64ToAsciiB[(bits >> 6) & 0x3F]; + } + } + return outPtr; + } + + /** + * Convenience method for converting given byte array as base64 encoded + * String using this variant's settings. + * Resulting value is "raw", that is, not enclosed in double-quotes. + * + * @param input Byte array to encode + * + * @since 1.6 + */ + public String encode(byte[] input) + { + return encode(input, false); + } + + /** + * Convenience method for converting given byte array as base64 encoded + * String using this variant's settings, optionally enclosed in + * double-quotes. + * + * @param input Byte array to encode + * @param addQuotes Whether to surround resulting value in double quotes + * or not + * + * @since 1.6 + */ + public String encode(byte[] input, boolean addQuotes) + { + int inputEnd = input.length; + StringBuilder sb; + { + // let's approximate... 33% overhead, ~= 3/8 (0.375) + int outputLen = inputEnd + (inputEnd >> 2) + (inputEnd >> 3); + sb = new StringBuilder(outputLen); + } + if (addQuotes) { + sb.append('"'); + } + + int chunksBeforeLF = getMaxLineLength() >> 2; + + // Ok, first we loop through all full triplets of data: + int inputPtr = 0; + int safeInputEnd = inputEnd-3; // to get only full triplets + + while (inputPtr <= safeInputEnd) { + // First, mash 3 bytes into lsb of 32-bit int + int b24 = ((int) input[inputPtr++]) << 8; + b24 |= ((int) input[inputPtr++]) & 0xFF; + b24 = (b24 << 8) | (((int) input[inputPtr++]) & 0xFF); + encodeBase64Chunk(sb, b24); + if (--chunksBeforeLF <= 0) { + // note: must quote in JSON value, so not really useful... + sb.append('\\'); + sb.append('n'); + chunksBeforeLF = getMaxLineLength() >> 2; + } + } + + // And then we may have 1 or 2 leftover bytes to encode + int inputLeft = inputEnd - inputPtr; // 0, 1 or 2 + if (inputLeft > 0) { // yes, but do we have room for output? + int b24 = ((int) input[inputPtr++]) << 16; + if (inputLeft == 2) { + b24 |= (((int) input[inputPtr++]) & 0xFF) << 8; + } + encodeBase64Partial(sb, b24, inputLeft); + } + + if (addQuotes) { + sb.append('"'); + } + return sb.toString(); + } + + /* + /********************************************************** + /* other methods + /********************************************************** + */ + + @Override + public String toString() { return _name; } +} +
diff --git a/1.9.10/src/java/org/codehaus/jackson/Base64Variants.java b/1.9.10/src/java/org/codehaus/jackson/Base64Variants.java new file mode 100644 index 0000000..3c67ba4 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/Base64Variants.java
@@ -0,0 +1,90 @@ +/* Jackson JSON-processor. + * + * Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi + * + * Licensed under the License specified in file LICENSE, included with + * the source code and binary code bundles. + * You may not use this file except in compliance with the License. + * + * 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. + */ +package org.codehaus.jackson; + +/** + * Container for commonly used Base64 variants. + * + * @author Tatu Saloranta + */ +public final class Base64Variants +{ + final static String STD_BASE64_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + + /** + * This variant is what most people would think of "the standard" + * Base64 encoding. + *<p> + * See <a href="">wikipedia Base64 entry</a> for details. + *<p> + * Note that although this can be thought of as the standard variant, + * it is <b>not</b> the default for Jackson: no-linefeeds alternative + * is because of JSON requirement of escaping all linefeeds. + */ + public final static Base64Variant MIME; + static { + MIME = new Base64Variant("MIME", STD_BASE64_ALPHABET, true, '=', 76); + } + + /** + * Slightly non-standard modification of {@link #MIME} which does not + * use linefeeds (max line length set to infinite). Useful when linefeeds + * wouldn't work well (possibly in attributes), or for minor space savings + * (save 1 linefeed per 76 data chars, ie. ~1.4% savings). + */ + public final static Base64Variant MIME_NO_LINEFEEDS; + static { + MIME_NO_LINEFEEDS = new Base64Variant(MIME, "MIME-NO-LINEFEEDS", Integer.MAX_VALUE); + } + + /** + * This variant is the one that predates {@link #MIME}: it is otherwise + * identical, except that it mandates shorter line length. + */ + public final static Base64Variant PEM = new Base64Variant(MIME, "PEM", true, '=', 64); + + /** + * This non-standard variant is usually used when encoded data needs to be + * passed via URLs (such as part of GET request). It differs from the + * base {@link #MIME} variant in multiple ways. + * First, no padding is used: this also means that it generally can not + * be written in multiple separate but adjacent chunks (which would not + * be the usual use case in any case). Also, no linefeeds are used (max + * line length set to infinite). And finally, two characters (plus and + * slash) that would need quoting in URLs are replaced with more + * optimal alternatives (hyphen and underscore, respectively). + */ + public final static Base64Variant MODIFIED_FOR_URL; + static { + StringBuffer sb = new StringBuffer(STD_BASE64_ALPHABET); + // Replace plus with hyphen, slash with underscore (and no padding) + sb.setCharAt(sb.indexOf("+"), '-'); + sb.setCharAt(sb.indexOf("/"), '_'); + /* And finally, let's not split lines either, wouldn't work too + * well with URLs + */ + MODIFIED_FOR_URL = new Base64Variant("MODIFIED-FOR-URL", sb.toString(), false, Base64Variant.PADDING_CHAR_NONE, Integer.MAX_VALUE); + } + + /** + * Method used to get the default variant ("MIME_NO_LINEFEEDS") for cases + * where caller does not explicitly specify the variant. + * We will prefer no-linefeed version because linefeeds in JSON values + * must be escaped, making linefeed-containing variants sub-optimal. + */ + public static Base64Variant getDefaultVariant() { + return MIME_NO_LINEFEEDS; + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/FormatSchema.java b/1.9.10/src/java/org/codehaus/jackson/FormatSchema.java new file mode 100644 index 0000000..b59ae41 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/FormatSchema.java
@@ -0,0 +1,29 @@ +package org.codehaus.jackson; + +/** + * Simple tag interface used to mark schema objects that are used by some + * {@link JsonParser} and {@link JsonGenerator} implementations to further + * specify structure of expected format. + * Basic JSON-based parsers and generators do not use schemas, but some data + * formats (like many binary data formats like Thrift, protobuf) mandate + * use of schemas. + *<p> + * Since there is little commonality between schemas for different data formats, + * this interface does not define much meaningful functionality for accessing + * schema details; rather, specific parser and generator implementations need + * to cast to schema implementations they use. This marker interface is mostly + * used for tagging "some kind of schema" -- instead of passing opaque + * {@link java.lang.Object} -- for documentation purposes. + * + * @since 1.8 + */ +public interface FormatSchema +{ + /** + * Method that can be used to get an identifier that can be used for diagnostics + * purposes, to indicate what kind of data format this schema is used for: typically + * it is a short name of format itself, but it can also contain additional information + * in cases where data format supports multiple types of schemas. + */ + public String getSchemaType(); +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/JsonEncoding.java b/1.9.10/src/java/org/codehaus/jackson/JsonEncoding.java new file mode 100644 index 0000000..5780d86 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/JsonEncoding.java
@@ -0,0 +1,47 @@ +package org.codehaus.jackson; + +/** + * Enumeration that defines legal encodings that can be used + * for JSON content, based on list of allowed encodings from + * <a href="http://www.ietf.org/rfc/rfc4627.txt">JSON specification</a>. + *<p> + * Note: if application want to explicitly disregard Encoding + * limitations (to read in JSON encoded using an encoding not + * listed as allowed), they can use {@link java.io.Reader} / + * {@link java.io.Writer} instances as input + */ +public enum JsonEncoding { + UTF8("UTF-8", false), // N/A for big-endian, really + UTF16_BE("UTF-16BE", true), + UTF16_LE("UTF-16LE", false), + UTF32_BE("UTF-32BE", true), + UTF32_LE("UTF-32LE", false) + ; + + protected final String _javaName; + + protected final boolean _bigEndian; + + JsonEncoding(String javaName, boolean bigEndian) + { + _javaName = javaName; + _bigEndian = bigEndian; + } + + /** + * Method for accessing encoding name that JDK will support. + * + * @return Matching encoding name that JDK will support. + */ + public String getJavaName() { return _javaName; } + + /** + * Whether encoding is big-endian (if encoding supports such + * notion). If no such distinction is made (as is the case for + * {@link #UTF8}), return value is undefined. + * + * @return True for big-endian encodings; false for little-endian + * (or if not applicable) + */ + public boolean isBigEndian() { return _bigEndian; } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/JsonFactory.java b/1.9.10/src/java/org/codehaus/jackson/JsonFactory.java new file mode 100644 index 0000000..bf47e7e --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/JsonFactory.java
@@ -0,0 +1,937 @@ +/* Jackson JSON-processor. + * + * Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi + * + * Licensed under the License specified in file LICENSE, included with + * the source code and binary code bundles. + * You may not use this file except in compliance with the License. + * + * 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. + */ +package org.codehaus.jackson; + +import java.io.*; +import java.lang.ref.SoftReference; +import java.net.URL; + +import org.codehaus.jackson.format.InputAccessor; +import org.codehaus.jackson.format.MatchStrength; +import org.codehaus.jackson.io.*; +import org.codehaus.jackson.impl.ByteSourceBootstrapper; +import org.codehaus.jackson.impl.ReaderBasedParser; +import org.codehaus.jackson.impl.Utf8Generator; +import org.codehaus.jackson.impl.WriterBasedGenerator; +import org.codehaus.jackson.sym.BytesToNameCanonicalizer; +import org.codehaus.jackson.sym.CharsToNameCanonicalizer; +import org.codehaus.jackson.util.BufferRecycler; +import org.codehaus.jackson.util.VersionUtil; + +/** + * The main factory class of Jackson package, used to configure and + * construct reader (aka parser, {@link JsonParser}) + * and writer (aka generator, {@link JsonGenerator}) + * instances. + *<p> + * Factory instances are thread-safe and reusable after configuration + * (if any). Typically applications and services use only a single + * globally shared factory instance, unless they need differently + * configured factories. Factory reuse is important if efficiency matters; + * most recycling of expensive construct is done on per-factory basis. + *<p> + * Creation of a factory instance is a light-weight operation, + * and since there is no need for pluggable alternative implementations + * (as there is no "standard" JSON processor API to implement), + * the default constructor is used for constructing factory + * instances. + * + * @author Tatu Saloranta + */ +public class JsonFactory implements Versioned +{ + /** + * Name used to identify JSON format + * (and returned by {@link #getFormatName()} + */ + public final static String FORMAT_NAME_JSON = "JSON"; + + /** + * Bitfield (set of flags) of all parser features that are enabled + * by default. + */ + final static int DEFAULT_PARSER_FEATURE_FLAGS = JsonParser.Feature.collectDefaults(); + + /** + * Bitfield (set of flags) of all generator features that are enabled + * by default. + */ + final static int DEFAULT_GENERATOR_FEATURE_FLAGS = JsonGenerator.Feature.collectDefaults(); + + /* + /********************************************************** + /* Buffer, symbol table management + /********************************************************** + */ + + /** + * This <code>ThreadLocal</code> contains a {@link java.lang.ref.SoftRerefence} + * to a {@link BufferRecycler} used to provide a low-cost + * buffer recycling between reader and writer instances. + */ + final protected static ThreadLocal<SoftReference<BufferRecycler>> _recyclerRef + = new ThreadLocal<SoftReference<BufferRecycler>>(); + + /** + * Each factory comes equipped with a shared root symbol table. + * It should not be linked back to the original blueprint, to + * avoid contents from leaking between factories. + */ + protected CharsToNameCanonicalizer _rootCharSymbols = CharsToNameCanonicalizer.createRoot(); + + /** + * Alternative to the basic symbol table, some stream-based + * parsers use different name canonicalization method. + *<p> + * TODO: should clean up this; looks messy having 2 alternatives + * with not very clear differences. + */ + protected BytesToNameCanonicalizer _rootByteSymbols = BytesToNameCanonicalizer.createRoot(); + + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + /** + * Object that implements conversion functionality between + * Java objects and JSON content. For base JsonFactory implementation + * usually not set by default, but can be explicitly set. + * Sub-classes (like @link org.codehaus.jackson.map.MappingJsonFactory} + * usually provide an implementation. + */ + protected ObjectCodec _objectCodec; + + /** + * Currently enabled parser features. + */ + protected int _parserFeatures = DEFAULT_PARSER_FEATURE_FLAGS; + + /** + * Currently enabled generator features. + */ + protected int _generatorFeatures = DEFAULT_GENERATOR_FEATURE_FLAGS; + + /** + * Definition of custom character escapes to use for generators created + * by this factory, if any. If null, standard data format specific + * escapes are used. + * + * @since 1.8 + */ + protected CharacterEscapes _characterEscapes; + + /** + * Optional helper object that may decorate input sources, to do + * additional processing on input during parsing. + * + * @since 1.8 + */ + protected InputDecorator _inputDecorator; + + /** + * Optional helper object that may decorate output object, to do + * additional processing on output during content generation. + * + * @since 1.8 + */ + protected OutputDecorator _outputDecorator; + + /* + /********************************************************** + /* Construction + /********************************************************** + */ + + /** + * Default constructor used to create factory instances. + * Creation of a factory instance is a light-weight operation, + * but it is still a good idea to reuse limited number of + * factory instances (and quite often just a single instance): + * factories are used as context for storing some reused + * processing objects (such as symbol tables parsers use) + * and this reuse only works within context of a single + * factory instance. + */ + public JsonFactory() { this(null); } + + public JsonFactory(ObjectCodec oc) { _objectCodec = oc; } + + /* + /********************************************************** + /* Format detection functionality (since 1.8) + /********************************************************** + */ + + /** + * Method that returns short textual id identifying format + * this factory supports. + *<p> + * Note: sub-classes should override this method; default + * implementation will return null for all sub-classes + * + * @since 1.8 + */ + public String getFormatName() + { + /* Somewhat nasty check: since we can't make this abstract + * (due to backwards compatibility concerns), need to prevent + * format name "leakage" + */ + if (getClass() == JsonFactory.class) { + return FORMAT_NAME_JSON; + } + return null; + } + + public MatchStrength hasFormat(InputAccessor acc) throws IOException + { + // since we can't keep this abstract, only implement for "vanilla" instance + if (getClass() == JsonFactory.class) { + return hasJSONFormat(acc); + } + return null; + } + + protected MatchStrength hasJSONFormat(InputAccessor acc) throws IOException + { + return ByteSourceBootstrapper.hasJSONFormat(acc); + } + + /* + /********************************************************** + /* Versioned + /********************************************************** + */ + + @Override + public Version version() { + // VERSION is included under impl, so can't pass this class: + return VersionUtil.versionFor(Utf8Generator.class); + } + + /* + /********************************************************** + /* Configuration, parser settings + /********************************************************** + */ + + /** + * Method for enabling or disabling specified parser feature + * (check {@link JsonParser.Feature} for list of features) + * + * @since 1.2 + */ + public final JsonFactory configure(JsonParser.Feature f, boolean state) + { + if (state) { + enable(f); + } else { + disable(f); + } + return this; + } + + /** + * Method for enabling specified parser feature + * (check {@link JsonParser.Feature} for list of features) + * + * @since 1.2 + */ + public JsonFactory enable(JsonParser.Feature f) { + _parserFeatures |= f.getMask(); + return this; + } + + /** + * Method for disabling specified parser features + * (check {@link JsonParser.Feature} for list of features) + * + * @since 1.2 + */ + public JsonFactory disable(JsonParser.Feature f) { + _parserFeatures &= ~f.getMask(); + return this; + } + + /** + * Checked whether specified parser feature is enabled. + * + * @since 1.2 + */ + public final boolean isEnabled(JsonParser.Feature f) { + return (_parserFeatures & f.getMask()) != 0; + } + + // // // Older deprecated (as of 1.2) methods + + /** + * @deprecated Use {@link #enable(JsonParser.Feature)} instead + */ + @SuppressWarnings("dep-ann") + public final void enableParserFeature(JsonParser.Feature f) { + enable(f); + } + + /** + * @deprecated Use {@link #disable(JsonParser.Feature)} instead + */ + @SuppressWarnings("dep-ann") + public final void disableParserFeature(JsonParser.Feature f) { + disable(f); + } + + /** + * @deprecated Use {@link #configure(JsonParser.Feature, boolean)} instead + */ + @SuppressWarnings("dep-ann") + public final void setParserFeature(JsonParser.Feature f, boolean state) { + configure(f, state); + } + + /** + * @deprecated Use {@link #isEnabled(JsonParser.Feature)} instead + */ + @SuppressWarnings("dep-ann") + public final boolean isParserFeatureEnabled(JsonParser.Feature f) { + return (_parserFeatures & f.getMask()) != 0; + } + + /** + * Method for getting currently configured input decorator (if any; + * there is no default decorator). + * + * @since 1.8 + */ + public InputDecorator getInputDecorator() { + return _inputDecorator; + } + + /** + * Method for overriding currently configured input decorator + * + * @since 1.8 + */ + public JsonFactory setInputDecorator(InputDecorator d) { + _inputDecorator = d; + return this; + } + + /* + /********************************************************** + /* Configuration, generator settings + /********************************************************** + */ + + /** + * Method for enabling or disabling specified generator feature + * (check {@link JsonGenerator.Feature} for list of features) + * + * @since 1.2 + */ + public final JsonFactory configure(JsonGenerator.Feature f, boolean state) { + if (state) { + enable(f); + } else { + disable(f); + } + return this; + } + + + /** + * Method for enabling specified generator features + * (check {@link JsonGenerator.Feature} for list of features) + * + * @since 1.2 + */ + public JsonFactory enable(JsonGenerator.Feature f) { + _generatorFeatures |= f.getMask(); + return this; + } + + /** + * Method for disabling specified generator feature + * (check {@link JsonGenerator.Feature} for list of features) + * + * @since 1.2 + */ + public JsonFactory disable(JsonGenerator.Feature f) { + _generatorFeatures &= ~f.getMask(); + return this; + } + + /** + * Check whether specified generator feature is enabled. + * + * @since 1.2 + */ + public final boolean isEnabled(JsonGenerator.Feature f) { + return (_generatorFeatures & f.getMask()) != 0; + } + + // // // Older deprecated (as of 1.2) methods + + /** + * @deprecated Use {@link #enable(JsonGenerator.Feature)} instead + */ + @Deprecated + public final void enableGeneratorFeature(JsonGenerator.Feature f) { + enable(f); + } + + /** + * @deprecated Use {@link #disable(JsonGenerator.Feature)} instead + */ + @Deprecated + public final void disableGeneratorFeature(JsonGenerator.Feature f) { + disable(f); + } + + /** + * @deprecated Use {@link #configure(JsonGenerator.Feature, boolean)} instead + */ + @Deprecated + public final void setGeneratorFeature(JsonGenerator.Feature f, boolean state) { + configure(f, state); + } + + /** + * @deprecated Use {@link #isEnabled(JsonGenerator.Feature)} instead + */ + @Deprecated + public final boolean isGeneratorFeatureEnabled(JsonGenerator.Feature f) { + return isEnabled(f); + } + + /** + * Method for accessing custom escapes factory uses for {@link JsonGenerator}s + * it creates. + * + * @since 1.8 + */ + public CharacterEscapes getCharacterEscapes() { + return _characterEscapes; + } + + /** + * Method for defining custom escapes factory uses for {@link JsonGenerator}s + * it creates. + * + * @since 1.8 + */ + public JsonFactory setCharacterEscapes(CharacterEscapes esc) { + _characterEscapes = esc; + return this; + } + + /** + * Method for getting currently configured output decorator (if any; + * there is no default decorator). + * + * @since 1.8 + */ + public OutputDecorator getOutputDecorator() { + return _outputDecorator; + } + + /** + * Method for overriding currently configured output decorator + * + * @since 1.8 + */ + public JsonFactory setOutputDecorator(OutputDecorator d) { + _outputDecorator = d; + return this; + } + + /* + /********************************************************** + /* Configuration, other + /********************************************************** + */ + + /** + * Method for associating a {@link ObjectCodec} (typically + * a {@link org.codehaus.jackson.map.ObjectMapper}) with + * this factory (and more importantly, parsers and generators + * it constructs). This is needed to use data-binding methods + * of {@link JsonParser} and {@link JsonGenerator} instances. + */ + public JsonFactory setCodec(ObjectCodec oc) { + _objectCodec = oc; + return this; + } + + public ObjectCodec getCodec() { return _objectCodec; } + + /* + /********************************************************** + /* Reader factories + /********************************************************** + */ + + /** + * Method for constructing JSON parser instance to parse + * contents of specified file. Encoding is auto-detected + * from contents according to JSON specification recommended + * mechanism. + *<p> + * Underlying input stream (needed for reading contents) + * will be <b>owned</b> (and managed, i.e. closed as need be) by + * the parser, since caller has no access to it. + * + * @param f File that contains JSON content to parse + */ + public JsonParser createJsonParser(File f) + throws IOException, JsonParseException + { + // true, since we create InputStream from File + IOContext ctxt = _createContext(f, true); + InputStream in = new FileInputStream(f); + // [JACKSON-512]: allow wrapping with InputDecorator + if (_inputDecorator != null) { + in = _inputDecorator.decorate(ctxt, in); + } + return _createJsonParser(in, ctxt); + } + + /** + * Method for constructing JSON parser instance to parse + * contents of resource reference by given URL. + * Encoding is auto-detected + * from contents according to JSON specification recommended + * mechanism. + *<p> + * Underlying input stream (needed for reading contents) + * will be <b>owned</b> (and managed, i.e. closed as need be) by + * the parser, since caller has no access to it. + * + * @param url URL pointing to resource that contains JSON content to parse + */ + public JsonParser createJsonParser(URL url) + throws IOException, JsonParseException + { + // true, since we create InputStream from URL + IOContext ctxt = _createContext(url, true); + InputStream in = _optimizedStreamFromURL(url); + // [JACKSON-512]: allow wrapping with InputDecorator + if (_inputDecorator != null) { + in = _inputDecorator.decorate(ctxt, in); + } + return _createJsonParser(in, ctxt); + } + + /** + * Method for constructing JSON parser instance to parse + * the contents accessed via specified input stream. + *<p> + * The input stream will <b>not be owned</b> by + * the parser, it will still be managed (i.e. closed if + * end-of-stream is reacher, or parser close method called) + * if (and only if) {@link org.codehaus.jackson.JsonParser.Feature#AUTO_CLOSE_SOURCE} + * is enabled. + *<p> + * Note: no encoding argument is taken since it can always be + * auto-detected as suggested by Json RFC. + * + * @param in InputStream to use for reading JSON content to parse + */ + public JsonParser createJsonParser(InputStream in) + throws IOException, JsonParseException + { + IOContext ctxt = _createContext(in, false); + // [JACKSON-512]: allow wrapping with InputDecorator + if (_inputDecorator != null) { + in = _inputDecorator.decorate(ctxt, in); + } + return _createJsonParser(in, ctxt); + } + + /** + * Method for constructing parser for parsing + * the contents accessed via specified Reader. + <p> + * The read stream will <b>not be owned</b> by + * the parser, it will still be managed (i.e. closed if + * end-of-stream is reacher, or parser close method called) + * if (and only if) {@link org.codehaus.jackson.JsonParser.Feature#AUTO_CLOSE_SOURCE} + * is enabled. + *<p> + * + * @param r Reader to use for reading JSON content to parse + */ + public JsonParser createJsonParser(Reader r) + throws IOException, JsonParseException + { + // false -> we do NOT own Reader (did not create it) + IOContext ctxt = _createContext(r, false); + // [JACKSON-512]: allow wrapping with InputDecorator + if (_inputDecorator != null) { + r = _inputDecorator.decorate(ctxt, r); + } + return _createJsonParser(r, ctxt); + } + + /** + * Method for constructing parser for parsing + * the contents of given byte array. + */ + public JsonParser createJsonParser(byte[] data) + throws IOException, JsonParseException + { + IOContext ctxt = _createContext(data, true); + // [JACKSON-512]: allow wrapping with InputDecorator + if (_inputDecorator != null) { + InputStream in = _inputDecorator.decorate(ctxt, data, 0, data.length); + if (in != null) { + return _createJsonParser(in, ctxt); + } + } + return _createJsonParser(data, 0, data.length, ctxt); + } + + /** + * Method for constructing parser for parsing + * the contents of given byte array. + * + * @param data Buffer that contains data to parse + * @param offset Offset of the first data byte within buffer + * @param len Length of contents to parse within buffer + */ + public JsonParser createJsonParser(byte[] data, int offset, int len) + throws IOException, JsonParseException + { + IOContext ctxt = _createContext(data, true); + // [JACKSON-512]: allow wrapping with InputDecorator + if (_inputDecorator != null) { + InputStream in = _inputDecorator.decorate(ctxt, data, offset, len); + if (in != null) { + return _createJsonParser(in, ctxt); + } + } + return _createJsonParser(data, offset, len, ctxt); + } + + /** + * Method for constructing parser for parsing + * contens of given String. + */ + public JsonParser createJsonParser(String content) + throws IOException, JsonParseException + { + Reader r = new StringReader(content); + // true -> we own the Reader (and must close); not a big deal + IOContext ctxt = _createContext(r, true); + // [JACKSON-512]: allow wrapping with InputDecorator + if (_inputDecorator != null) { + r = _inputDecorator.decorate(ctxt, r); + } + return _createJsonParser(r, ctxt); + } + + /* + /********************************************************** + /* Generator factories + /********************************************************** + */ + + /** + * Method for constructing JSON generator for writing JSON content + * using specified output stream. + * Encoding to use must be specified, and needs to be one of available + * types (as per JSON specification). + *<p> + * Underlying stream <b>is NOT owned</b> by the generator constructed, + * so that generator will NOT close the output stream when + * {@link JsonGenerator#close} is called (unless auto-closing + * feature, + * {@link org.codehaus.jackson.JsonGenerator.Feature#AUTO_CLOSE_TARGET} + * is enabled). + * Using application needs to close it explicitly if this is the case. + *<p> + * Note: there are formats that use fixed encoding (like most binary data formats) + * and that ignore passed in encoding. + * + * @param out OutputStream to use for writing JSON content + * @param enc Character encoding to use + */ + public JsonGenerator createJsonGenerator(OutputStream out, JsonEncoding enc) + throws IOException + { + // false -> we won't manage the stream unless explicitly directed to + IOContext ctxt = _createContext(out, false); + ctxt.setEncoding(enc); + if (enc == JsonEncoding.UTF8) { + // [JACKSON-512]: allow wrapping with _outputDecorator + if (_outputDecorator != null) { + out = _outputDecorator.decorate(ctxt, out); + } + return _createUTF8JsonGenerator(out, ctxt); + } + Writer w = _createWriter(out, enc, ctxt); + // [JACKSON-512]: allow wrapping with _outputDecorator + if (_outputDecorator != null) { + w = _outputDecorator.decorate(ctxt, w); + } + return _createJsonGenerator(w, ctxt); + } + + /** + * Method for constructing JSON generator for writing JSON content + * using specified Writer. + *<p> + * Underlying stream <b>is NOT owned</b> by the generator constructed, + * so that generator will NOT close the Reader when + * {@link JsonGenerator#close} is called (unless auto-closing + * feature, + * {@link org.codehaus.jackson.JsonGenerator.Feature#AUTO_CLOSE_TARGET} is enabled). + * Using application needs to close it explicitly. + * + * @param out Writer to use for writing JSON content + */ + public JsonGenerator createJsonGenerator(Writer out) + throws IOException + { + IOContext ctxt = _createContext(out, false); + // [JACKSON-512]: allow wrapping with _outputDecorator + if (_outputDecorator != null) { + out = _outputDecorator.decorate(ctxt, out); + } + return _createJsonGenerator(out, ctxt); + } + + /** + * Convenience method for constructing generator that uses default + * encoding of the format (UTF-8 for JSON and most other data formats). + *<p> + * Note: there are formats that use fixed encoding (like most binary data formats). + * + * @since 1.8 + */ + public JsonGenerator createJsonGenerator(OutputStream out) throws IOException { + return createJsonGenerator(out, JsonEncoding.UTF8); + } + + /** + * Method for constructing JSON generator for writing JSON content + * to specified file, overwriting contents it might have (or creating + * it if such file does not yet exist). + * Encoding to use must be specified, and needs to be one of available + * types (as per JSON specification). + *<p> + * Underlying stream <b>is owned</b> by the generator constructed, + * i.e. generator will handle closing of file when + * {@link JsonGenerator#close} is called. + * + * @param f File to write contents to + * @param enc Character encoding to use + */ + public JsonGenerator createJsonGenerator(File f, JsonEncoding enc) + throws IOException + { + OutputStream out = new FileOutputStream(f); + // true -> yes, we have to manage the stream since we created it + IOContext ctxt = _createContext(out, true); + ctxt.setEncoding(enc); + if (enc == JsonEncoding.UTF8) { + // [JACKSON-512]: allow wrapping with _outputDecorator + if (_outputDecorator != null) { + out = _outputDecorator.decorate(ctxt, out); + } + return _createUTF8JsonGenerator(out, ctxt); + } + Writer w = _createWriter(out, enc, ctxt); + // [JACKSON-512]: allow wrapping with _outputDecorator + if (_outputDecorator != null) { + w = _outputDecorator.decorate(ctxt, w); + } + return _createJsonGenerator(w, ctxt); + } + + /* + /********************************************************** + /* Factory methods used by factory for creating parser instances, + /* overridable by sub-classes + /********************************************************** + */ + + /** + * Overridable factory method that actually instantiates desired parser + * given {@link InputStream} and context object. + *<p> + * This method is specifically designed to remain + * compatible between minor versions so that sub-classes can count + * on it being called as expected. That is, it is part of official + * interface from sub-class perspective, although not a public + * method available to users of factory implementations. + */ + protected JsonParser _createJsonParser(InputStream in, IOContext ctxt) + throws IOException, JsonParseException + { + return new ByteSourceBootstrapper(ctxt, in).constructParser(_parserFeatures, + _objectCodec, _rootByteSymbols, _rootCharSymbols); + } + + /** + * Overridable factory method that actually instantiates parser + * using given {@link Reader} object for reading content. + *<p> + * This method is specifically designed to remain + * compatible between minor versions so that sub-classes can count + * on it being called as expected. That is, it is part of official + * interface from sub-class perspective, although not a public + * method available to users of factory implementations. + */ + protected JsonParser _createJsonParser(Reader r, IOContext ctxt) + throws IOException, JsonParseException + { + return new ReaderBasedParser(ctxt, _parserFeatures, r, _objectCodec, + _rootCharSymbols.makeChild(isEnabled(JsonParser.Feature.CANONICALIZE_FIELD_NAMES), + isEnabled(JsonParser.Feature.INTERN_FIELD_NAMES))); + } + + /** + * Overridable factory method that actually instantiates parser + * using given {@link Reader} object for reading content + * passed as raw byte array. + *<p> + * This method is specifically designed to remain + * compatible between minor versions so that sub-classes can count + * on it being called as expected. That is, it is part of official + * interface from sub-class perspective, although not a public + * method available to users of factory implementations. + */ + protected JsonParser _createJsonParser(byte[] data, int offset, int len, IOContext ctxt) + throws IOException, JsonParseException + { + return new ByteSourceBootstrapper(ctxt, data, offset, len).constructParser(_parserFeatures, + _objectCodec, _rootByteSymbols, _rootCharSymbols); + } + + /* + /********************************************************** + /* Factory methods used by factory for creating generator instances, + /* overridable by sub-classes + /********************************************************** + */ + + /** + * Overridable factory method that actually instantiates generator for + * given {@link Writer} and context object. + *<p> + * This method is specifically designed to remain + * compatible between minor versions so that sub-classes can count + * on it being called as expected. That is, it is part of official + * interface from sub-class perspective, although not a public + * method available to users of factory implementations. + */ + protected JsonGenerator _createJsonGenerator(Writer out, IOContext ctxt) + throws IOException + { + WriterBasedGenerator gen = new WriterBasedGenerator(ctxt, _generatorFeatures, _objectCodec, out); + if (_characterEscapes != null) { + gen.setCharacterEscapes(_characterEscapes); + } + return gen; + } + + /** + * Overridable factory method that actually instantiates generator for + * given {@link OutputStream} and context object, using UTF-8 encoding. + *<p> + * This method is specifically designed to remain + * compatible between minor versions so that sub-classes can count + * on it being called as expected. That is, it is part of official + * interface from sub-class perspective, although not a public + * method available to users of factory implementations. + */ + protected JsonGenerator _createUTF8JsonGenerator(OutputStream out, IOContext ctxt) + throws IOException + { + Utf8Generator gen = new Utf8Generator(ctxt, _generatorFeatures, _objectCodec, out); + if (_characterEscapes != null) { + gen.setCharacterEscapes(_characterEscapes); + } + return gen; + } + + protected Writer _createWriter(OutputStream out, JsonEncoding enc, IOContext ctxt) throws IOException + { + // note: this should not get called any more (caller checks, dispatches) + if (enc == JsonEncoding.UTF8) { // We have optimized writer for UTF-8 + return new UTF8Writer(ctxt, out); + } + // not optimal, but should do unless we really care about UTF-16/32 encoding speed + return new OutputStreamWriter(out, enc.getJavaName()); + } + + /* + /********************************************************** + /* Internal factory methods, other + /********************************************************** + */ + + /** + * Overridable factory method that actually instantiates desired + * context object. + */ + protected IOContext _createContext(Object srcRef, boolean resourceManaged) + { + return new IOContext(_getBufferRecycler(), srcRef, resourceManaged); + } + + /** + * Method used by factory to create buffer recycler instances + * for parsers and generators. + *<p> + * Note: only public to give access for <code>ObjectMapper</code> + */ + public BufferRecycler _getBufferRecycler() + { + SoftReference<BufferRecycler> ref = _recyclerRef.get(); + BufferRecycler br = (ref == null) ? null : ref.get(); + + if (br == null) { + br = new BufferRecycler(); + _recyclerRef.set(new SoftReference<BufferRecycler>(br)); + } + return br; + } + + /** + * Helper methods used for constructing an optimal stream for + * parsers to use, when input is to be read from an URL. + * This helps when reading file content via URL. + */ + protected InputStream _optimizedStreamFromURL(URL url) + throws IOException + { + if ("file".equals(url.getProtocol())) { + /* Can not do this if the path refers + * to a network drive on windows. This fixes the problem; + * might not be needed on all platforms (NFS?), but should not + * matter a lot: performance penalty of extra wrapping is more + * relevant when accessing local file system. + */ + String host = url.getHost(); + if (host == null || host.length() == 0) { + return new FileInputStream(url.getPath()); + } + } + return url.openStream(); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/JsonGenerationException.java b/1.9.10/src/java/org/codehaus/jackson/JsonGenerationException.java new file mode 100644 index 0000000..84e6d3f --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/JsonGenerationException.java
@@ -0,0 +1,28 @@ +package org.codehaus.jackson; + +/** + * Exception type for exceptions during JSON writing, such as trying + * to output content in wrong context (non-matching end-array or end-object, + * for example). + */ +public class JsonGenerationException + extends JsonProcessingException +{ + @SuppressWarnings("hiding") + final static long serialVersionUID = 123; // Stupid eclipse... + + public JsonGenerationException(Throwable rootCause) + { + super(rootCause); + } + + public JsonGenerationException(String msg) + { + super(msg, (JsonLocation)null); + } + + public JsonGenerationException(String msg, Throwable rootCause) + { + super(msg, (JsonLocation)null, rootCause); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/JsonGenerator.java b/1.9.10/src/java/org/codehaus/jackson/JsonGenerator.java new file mode 100644 index 0000000..1d89d9e --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/JsonGenerator.java
@@ -0,0 +1,1197 @@ +/* Jackson JSON-processor. + * + * Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi + * + * Licensed under the License specified in file LICENSE, included with + * the source code and binary code bundles. + * You may not use this file except in compliance with the License. + * + * 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. + */ +package org.codehaus.jackson; + +import java.io.*; +import java.math.BigDecimal; +import java.math.BigInteger; + +import org.codehaus.jackson.io.CharacterEscapes; +import org.codehaus.jackson.io.SerializedString; + +/** + * Base class that defines public API for writing JSON content. + * Instances are created using factory methods of + * a {@link JsonFactory} instance. + * + * @author Tatu Saloranta + */ +public abstract class JsonGenerator + implements Closeable, Versioned +{ + /** + * Enumeration that defines all togglable features for generators. + */ + public enum Feature { + /** + * Feature that determines whether generator will automatically + * close underlying output target that is NOT owned by the + * generator. + * If disabled, calling application has to separately + * close the underlying {@link OutputStream} and {@link Writer} + * instances used to create the generator. If enabled, generator + * will handle closing, as long as generator itself gets closed: + * this happens when end-of-input is encountered, or generator + * is closed by a call to {@link JsonGenerator#close}. + *<p> + * Feature is enabled by default. + */ + AUTO_CLOSE_TARGET(true), + + /** + * Feature that determines what happens when the generator is + * closed while there are still unmatched + * {@link JsonToken#START_ARRAY} or {@link JsonToken#START_OBJECT} + * entries in output content. If enabled, such Array(s) and/or + * Object(s) are automatically closed; if disabled, nothing + * specific is done. + *<p> + * Feature is enabled by default. + */ + AUTO_CLOSE_JSON_CONTENT(true), + + /** + * Feature that determines whether JSON Object field names are + * quoted using double-quotes, as specified by JSON specification + * or not. Ability to disable quoting was added to support use + * cases where they are not usually expected, which most commonly + * occurs when used straight from Javascript. + */ + QUOTE_FIELD_NAMES(true), + + /** + * Feature that determines whether "exceptional" (not real number) + * float/double values are output as quoted strings. + * The values checked are Double.Nan, + * Double.POSITIVE_INFINITY and Double.NEGATIVE_INIFINTY (and + * associated Float values). + * If feature is disabled, these numbers are still output using + * associated literal values, resulting in non-conformant + * output. + *<p> + * Feature is enabled by default. + */ + QUOTE_NON_NUMERIC_NUMBERS(true), + + /** + * Feature that forces all Java numbers to be written as JSON strings. + * Default state is 'false', meaning that Java numbers are to + * be serialized using basic numeric serialization (as JSON + * numbers, integral or floating point). If enabled, all such + * numeric values are instead written out as JSON Strings. + *<p> + * One use case is to avoid problems with Javascript limitations: + * since Javascript standard specifies that all number handling + * should be done using 64-bit IEEE 754 floating point values, + * result being that some 64-bit integer values can not be + * accurately represent (as mantissa is only 51 bit wide). + *<p> + * Feature is disabled by default. + * + * @since 1.3 + */ + WRITE_NUMBERS_AS_STRINGS(false), + + /** + * Feature that specifies that calls to {@link #flush} will cause + * matching <code>flush()</code> to underlying {@link OutputStream} + * or {@link Writer}; if disabled this will not be done. + * Main reason to disable this feature is to prevent flushing at + * generator level, if it is not possible to prevent method being + * called by other code (like <code>ObjectMapper</code> or third + * party libraries). + *<p> + * Feature is enabled by default. + * + * @since 1.7 + */ + FLUSH_PASSED_TO_STREAM(true), + + /** + * Feature that specifies that all characters beyond 7-bit ASCII + * range (i.e. code points of 128 and above) need to be output + * using format-specific escapes (for JSON, backslash escapes), + * if format uses escaping mechanisms (which is generally true + * for textual formats but not for binary formats). + * + * @since 1.8 + */ + ESCAPE_NON_ASCII(false) + + ; + + final boolean _defaultState; + + final int _mask; + + /** + * Method that calculates bit set (flags) of all features that + * are enabled by default. + */ + public static int collectDefaults() + { + int flags = 0; + for (Feature f : values()) { + if (f.enabledByDefault()) { + flags |= f.getMask(); + } + } + return flags; + } + + private Feature(boolean defaultState) { + _defaultState = defaultState; + _mask = (1 << ordinal()); + } + + public boolean enabledByDefault() { return _defaultState; } + + public int getMask() { return _mask; } + } + + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + /** + * Object that handles pretty-printing (usually additional + * white space to make results more human-readable) during + * output. If null, no pretty-printing is done. + */ + protected PrettyPrinter _cfgPrettyPrinter; + + /* + /********************************************************** + /* Construction, configuration, initialization + /********************************************************** + */ + + protected JsonGenerator() { } + + /** + * Method to call to make this generator use specified schema. + * Method must be called before generating any content, right after instance + * has been created. + * Note that not all generators support schemas; and those that do usually only + * accept specific types of schemas: ones defined for data format this generator + * produces. + *<p> + * If generator does not support specified schema, {@link UnsupportedOperationException} + * is thrown. + * + * @param schema Schema to use + * + * @throws UnsupportedOperationException if generator does not support schema + * + * @since 1.8 + */ + public void setSchema(FormatSchema schema) + { + throw new UnsupportedOperationException("Generator of type "+getClass().getName()+" does not support schema of type '" + +schema.getSchemaType()+"'"); + } + + /** + * Method that can be used to verify that given schema can be used with + * this generator (using {@link #setSchema}). + * + * @param schema Schema to check + * + * @return True if this generator can use given schema; false if not + * + * @since 1.8 + */ + public boolean canUseSchema(FormatSchema schema) { + return false; + } + + /** + * @since 1.6 + */ + @Override + public Version version() { + return Version.unknownVersion(); + } + + /** + * Method that can be used to get access to object that is used + * as target for generated output; this is usually either + * {@link OutputStream} or {@link Writer}, depending on what + * generator was constructed with. + * Note that returned value may be null in some cases; including + * case where implementation does not want to exposed raw + * source to caller. + * In cases where output has been decorated, object returned here + * is the decorated version; this allows some level of interaction + * between users of generator and decorator object. + *<p> + * In general use of this accessor should be considered as + * "last effort", i.e. only used if no other mechanism is applicable. + * + * @since 1.8 + */ + public Object getOutputTarget() { + return null; + } + + /* + /********************************************************** + /* Public API, configuration + /********************************************************** + */ + + /** + * Method for enabling specified parser features: + * check {@link Feature} for list of available features. + * + * @return Generator itself (this), to allow chaining + * + * @since 1.2 + */ + public abstract JsonGenerator enable(Feature f); + + /** + * Method for disabling specified features + * (check {@link Feature} for list of features) + * + * @return Generator itself (this), to allow chaining + * + * @since 1.2 + */ + public abstract JsonGenerator disable(Feature f); + + /** + * Method for enabling or disabling specified feature: + * check {@link Feature} for list of available features. + * + * @return Generator itself (this), to allow chaining + * + * @since 1.2 + */ + public JsonGenerator configure(Feature f, boolean state) + { + if (state) { + enable(f); + } else { + disable(f); + } + return this; + } + + /** + * Method for checking whether given feature is enabled. + * Check {@link Feature} for list of available features. + * + * @since 1.2 + */ + public abstract boolean isEnabled(Feature f); + + /** + * Method that can be called to set or reset the object to + * use for writing Java objects as JsonContent + * (using method {@link #writeObject}). + * + * @return Generator itself (this), to allow chaining + */ + public abstract JsonGenerator setCodec(ObjectCodec oc); + + /** + * Method for accessing the object used for writing Java + * object as Json content + * (using method {@link #writeObject}). + */ + public abstract ObjectCodec getCodec(); + + // // // Older deprecated versions + + /** @deprecated Use {@link #enable} instead + */ + @Deprecated + public void enableFeature(Feature f) { enable(f); } + + /** @deprecated Use {@link #disable} instead + */ + @Deprecated + public void disableFeature(Feature f) { disable(f); } + + /** @deprecated Use {@link #configure} instead + */ + @Deprecated + public void setFeature(Feature f, boolean state) { configure(f, state); } + + /** @deprecated Use {@link #isEnabled} instead + */ + @Deprecated + public boolean isFeatureEnabled(Feature f) { return isEnabled(f); } + + /* + /********************************************************** + /* Configuring generator + /********************************************************** + */ + + /** + * Method for setting a custom pretty printer, which is usually + * used to add indentation for improved human readability. + * By default, generator does not do pretty printing. + *<p> + * To use the default pretty printer that comes with core + * Jackson distribution, call {@link #useDefaultPrettyPrinter} + * instead. + * + * @return Generator itself (this), to allow chaining + */ + public JsonGenerator setPrettyPrinter(PrettyPrinter pp) { + _cfgPrettyPrinter = pp; + return this; + } + + /** + * Convenience method for enabling pretty-printing using + * the default pretty printer + * ({@link org.codehaus.jackson.util.DefaultPrettyPrinter}). + * + * @return Generator itself (this), to allow chaining + */ + public abstract JsonGenerator useDefaultPrettyPrinter(); + + /** + * Method that can be called to request that generator escapes + * all character codes above specified code point (if positive value); + * or, to not escape any characters except for ones that must be + * escaped for the data format (if -1). + * To force escaping of all non-ASCII characters, for example, + * this method would be called with value of 127. + *<p> + * Note that generators are NOT required to support setting of value + * higher than 127, because there are other ways to affect quoting + * (or lack thereof) of character codes between 0 and 127. + * Not all generators support concept of escaping, either; if so, + * calling this method will have no effect. + *<p> + * Default implementation does nothing; sub-classes need to redefine + * it according to rules of supported data format. + * + * @param charCode Either -1 to indicate that no additional escaping + * is to be done; or highest code point not to escape (meaning higher + * ones will be), if positive value. + * + * @since 1.8 + */ + public JsonGenerator setHighestNonEscapedChar(int charCode) { + return this; + } + + /** + * Accessor method for testing what is the highest unescaped character + * configured for this generator. This may be either positive value + * (when escaping configuration has been set and is in effect), or + * 0 to indicate that no additional escaping is in effect. + * Some generators may not support additional escaping: for example, + * generators for binary formats that do not use escaping should + * simply return 0. + * + * @return Currently active limitation for highest non-escaped character, + * if defined; or -1 to indicate no additional escaping is performed. + */ + public int getHighestEscapedChar() { + return 0; + } + /** + * Method for accessing custom escapes factory uses for {@link JsonGenerator}s + * it creates. + * + * @since 1.8 + */ + public CharacterEscapes getCharacterEscapes() { + return null; + } + + /** + * Method for defining custom escapes factory uses for {@link JsonGenerator}s + * it creates. + * + * @since 1.8 + */ + public JsonGenerator setCharacterEscapes(CharacterEscapes esc) { + return this; + } + + /* + /********************************************************** + /* Public API, write methods, structural + /********************************************************** + */ + + /** + * Method for writing starting marker of a JSON Array value + * (character '['; plus possible white space decoration + * if pretty-printing is enabled). + *<p> + * Array values can be written in any context where values + * are allowed: meaning everywhere except for when + * a field name is expected. + */ + public abstract void writeStartArray() + throws IOException, JsonGenerationException; + + /** + * Method for writing closing marker of a JSON Array value + * (character ']'; plus possible white space decoration + * if pretty-printing is enabled). + *<p> + * Marker can be written if the innermost structured type + * is Array. + */ + public abstract void writeEndArray() + throws IOException, JsonGenerationException; + + /** + * Method for writing starting marker of a JSON Object value + * (character '{'; plus possible white space decoration + * if pretty-printing is enabled). + *<p> + * Object values can be written in any context where values + * are allowed: meaning everywhere except for when + * a field name is expected. + */ + public abstract void writeStartObject() + throws IOException, JsonGenerationException; + + /** + * Method for writing closing marker of a JSON Object value + * (character '}'; plus possible white space decoration + * if pretty-printing is enabled). + *<p> + * Marker can be written if the innermost structured type + * is Object, and the last written event was either a + * complete value, or START-OBJECT marker (see JSON specification + * for more details). + */ + public abstract void writeEndObject() + throws IOException, JsonGenerationException; + + /** + * Method for writing a field name (JSON String surrounded by + * double quotes: syntactically identical to a JSON String value), + * possibly decorated by white space if pretty-printing is enabled. + *<p> + * Field names can only be written in Object context (check out + * JSON specification for details), when field name is expected + * (field names alternate with values). + */ + public abstract void writeFieldName(String name) + throws IOException, JsonGenerationException; + + /** + * Method similar to {@link #writeFieldName(String)}, main difference + * being that it may perform better as some of processing (such as + * quoting of certain characters, or encoding into external encoding + * if supported by generator) can be done just once and reused for + * later calls. + *<p> + * Default implementation simple uses unprocessed name container in + * serialized String; implementations are strongly encouraged to make + * use of more efficient methods argument object has. + * + * @since 1.6 + */ + public void writeFieldName(SerializedString name) + throws IOException, JsonGenerationException + { + writeFieldName(name.getValue()); + } + + /** + * Method similar to {@link #writeFieldName(String)}, main difference + * being that it may perform better as some of processing (such as + * quoting of certain characters, or encoding into external encoding + * if supported by generator) can be done just once and reused for + * later calls. + *<p> + * Default implementation simple uses unprocessed name container in + * serialized String; implementations are strongly encouraged to make + * use of more efficient methods argument object has. + * + * @since 1.7 + */ + public void writeFieldName(SerializableString name) + throws IOException, JsonGenerationException + { + writeFieldName(name.getValue()); + } + + /* + /********************************************************** + /* Public API, write methods, text/String values + /********************************************************** + */ + + /** + * Method for outputting a String value. Depending on context + * this means either array element, (object) field value or + * a stand alone String; but in all cases, String will be + * surrounded in double quotes, and contents will be properly + * escaped as required by JSON specification. + */ + public abstract void writeString(String text) + throws IOException, JsonGenerationException; + + /** + * Method for outputting a String value. Depending on context + * this means either array element, (object) field value or + * a stand alone String; but in all cases, String will be + * surrounded in double quotes, and contents will be properly + * escaped as required by JSON specification. + */ + public abstract void writeString(char[] text, int offset, int len) + throws IOException, JsonGenerationException; + + /** + * Method similar to {@link #writeString(String)}, but that takes + * {@link SerializableString} which can make this potentially + * more efficient to call as generator may be able to reuse + * quoted and/or encoded representation. + *<p> + * Default implementation just calls {@link #writeString(String)}; + * sub-classes should override it with more efficient implementation + * if possible. + * + * @since 1.7 + */ + public void writeString(SerializableString text) + throws IOException, JsonGenerationException + { + writeString(text.getValue()); + } + + /** + * Method similar to {@link #writeString(String)} but that takes as + * its input a UTF-8 encoded String that is to be output as-is, without additional + * escaping (type of which depends on data format; backslashes for JSON). + * However, quoting that data format requires (like double-quotes for JSON) will be added + * around the value if and as necessary. + *<p> + * Note that some backends may choose not to support this method: for + * example, if underlying destination is a {@link java.io.Writer} + * using this method would require UTF-8 decoding. + * If so, implementation may instead choose to throw a + * {@link UnsupportedOperationException} due to ineffectiveness + * of having to decode input. + * + * @since 1.7 + */ + public abstract void writeRawUTF8String(byte[] text, int offset, int length) + throws IOException, JsonGenerationException; + + /** + * Method similar to {@link #writeString(String)} but that takes as its input + * a UTF-8 encoded String which has <b>not</b> been escaped using whatever + * escaping scheme data format requires (for JSON that is backslash-escaping + * for control characters and double-quotes; for other formats something else). + * This means that textual JSON backends need to check if value needs + * JSON escaping, but otherwise can just be copied as is to output. + * Also, quoting that data format requires (like double-quotes for JSON) will be added + * around the value if and as necessary. + *<p> + * Note that some backends may choose not to support this method: for + * example, if underlying destination is a {@link java.io.Writer} + * using this method would require UTF-8 decoding. + * In this case + * generator implementation may instead choose to throw a + * {@link UnsupportedOperationException} due to ineffectiveness + * of having to decode input. + * + * @since 1.7 + */ + public abstract void writeUTF8String(byte[] text, int offset, int length) + throws IOException, JsonGenerationException; + + /* + /********************************************************** + /* Public API, write methods, binary/raw content + /********************************************************** + */ + + /** + * Method that will force generator to copy + * input text verbatim with <b>no</b> modifications (including + * that no escaping is done and no separators are added even + * if context [array, object] would otherwise require such). + * If such separators are desired, use + * {@link #writeRawValue(String)} instead. + *<p> + * Note that not all generator implementations necessarily support + * such by-pass methods: those that do not will throw + * {@link UnsupportedOperationException}. + */ + public abstract void writeRaw(String text) + throws IOException, JsonGenerationException; + + /** + * Method that will force generator to copy + * input text verbatim with <b>no</b> modifications (including + * that no escaping is done and no separators are added even + * if context [array, object] would otherwise require such). + * If such separators are desired, use + * {@link #writeRawValue(String)} instead. + *<p> + * Note that not all generator implementations necessarily support + * such by-pass methods: those that do not will throw + * {@link UnsupportedOperationException}. + */ + public abstract void writeRaw(String text, int offset, int len) + throws IOException, JsonGenerationException; + + /** + * Method that will force generator to copy + * input text verbatim with <b>no</b> modifications (including + * that no escaping is done and no separators are added even + * if context [array, object] would otherwise require such). + * If such separators are desired, use + * {@link #writeRawValue(String)} instead. + *<p> + * Note that not all generator implementations necessarily support + * such by-pass methods: those that do not will throw + * {@link UnsupportedOperationException}. + */ + public abstract void writeRaw(char[] text, int offset, int len) + throws IOException, JsonGenerationException; + + /** + * Method that will force generator to copy + * input text verbatim with <b>no</b> modifications (including + * that no escaping is done and no separators are added even + * if context [array, object] would otherwise require such). + * If such separators are desired, use + * {@link #writeRawValue(String)} instead. + *<p> + * Note that not all generator implementations necessarily support + * such by-pass methods: those that do not will throw + * {@link UnsupportedOperationException}. + */ + public abstract void writeRaw(char c) + throws IOException, JsonGenerationException; + + /** + * Method that will force generator to copy + * input text verbatim without any modifications, but assuming + * it must constitute a single legal JSON value (number, string, + * boolean, null, Array or List). Assuming this, proper separators + * are added if and as needed (comma or colon), and generator + * state updated to reflect this. + */ + public abstract void writeRawValue(String text) + throws IOException, JsonGenerationException; + + public abstract void writeRawValue(String text, int offset, int len) + throws IOException, JsonGenerationException; + + public abstract void writeRawValue(char[] text, int offset, int len) + throws IOException, JsonGenerationException; + + /** + * Method that will output given chunk of binary data as base64 + * encoded, as a complete String value (surrounded by double quotes). + * This method defaults + *<p> + * Note: because Json Strings can not contain unescaped linefeeds, + * if linefeeds are included (as per last argument), they must be + * escaped. This adds overhead for decoding without improving + * readability. + * Alternatively if linefeeds are not included, + * resulting String value may violate the requirement of base64 + * RFC which mandates line-length of 76 characters and use of + * linefeeds. However, all {@link JsonParser} implementations + * are required to accept such "long line base64"; as do + * typical production-level base64 decoders. + * + * @param b64variant Base64 variant to use: defines details such as + * whether padding is used (and if so, using which character); + * what is the maximum line length before adding linefeed, + * and also the underlying alphabet to use. + */ + public abstract void writeBinary(Base64Variant b64variant, + byte[] data, int offset, int len) + throws IOException, JsonGenerationException; + + /** + * Similar to {@link #writeBinary(Base64Variant,byte[],int,int)}, + * but default to using the Jackson default Base64 variant + * (which is {@link Base64Variants#MIME_NO_LINEFEEDS}). + */ + public void writeBinary(byte[] data, int offset, int len) + throws IOException, JsonGenerationException + { + writeBinary(Base64Variants.getDefaultVariant(), data, offset, len); + } + + /** + * Similar to {@link #writeBinary(Base64Variant,byte[],int,int)}, + * but assumes default to using the Jackson default Base64 variant + * (which is {@link Base64Variants#MIME_NO_LINEFEEDS}). Also + * assumes that whole byte array is to be output. + */ + public void writeBinary(byte[] data) + throws IOException, JsonGenerationException + { + writeBinary(Base64Variants.getDefaultVariant(), data, 0, data.length); + } + + /* + /********************************************************** + /* Public API, write methods, other value types + /********************************************************** + */ + + /** + * Method for outputting given value as Json number. + * Can be called in any context where a value is expected + * (Array value, Object field value, root-level value). + * Additional white space may be added around the value + * if pretty-printing is enabled. + */ + public abstract void writeNumber(int v) + throws IOException, JsonGenerationException; + + /** + * Method for outputting given value as Json number. + * Can be called in any context where a value is expected + * (Array value, Object field value, root-level value). + * Additional white space may be added around the value + * if pretty-printing is enabled. + */ + public abstract void writeNumber(long v) + throws IOException, JsonGenerationException; + + /** + * Method for outputting given value as Json number. + * Can be called in any context where a value is expected + * (Array value, Object field value, root-level value). + * Additional white space may be added around the value + * if pretty-printing is enabled. + */ + public abstract void writeNumber(BigInteger v) + throws IOException, JsonGenerationException; + + /** + * Method for outputting indicate Json numeric value. + * Can be called in any context where a value is expected + * (Array value, Object field value, root-level value). + * Additional white space may be added around the value + * if pretty-printing is enabled. + */ + public abstract void writeNumber(double d) + throws IOException, JsonGenerationException; + + /** + * Method for outputting indicate Json numeric value. + * Can be called in any context where a value is expected + * (Array value, Object field value, root-level value). + * Additional white space may be added around the value + * if pretty-printing is enabled. + */ + public abstract void writeNumber(float f) + throws IOException, JsonGenerationException; + + /** + * Method for outputting indicate Json numeric value. + * Can be called in any context where a value is expected + * (Array value, Object field value, root-level value). + * Additional white space may be added around the value + * if pretty-printing is enabled. + */ + public abstract void writeNumber(BigDecimal dec) + throws IOException, JsonGenerationException; + + /** + * Write method that can be used for custom numeric types that can + * not be (easily?) converted to "standard" Java number types. + * Because numbers are not surrounded by double quotes, regular + * {@link #writeString} method can not be used; nor + * {@link #writeRaw} because that does not properly handle + * value separators needed in Array or Object contexts. + *<p> + * Note: because of lack of type safety, some generator + * implementations may not be able to implement this + * method. For example, if a binary json format is used, + * it may require type information for encoding; similarly + * for generator-wrappers around Java objects or Json nodes. + * If implementation does not implement this method, + * it needs to throw {@link UnsupportedOperationException}. + */ + public abstract void writeNumber(String encodedValue) + throws IOException, JsonGenerationException, + UnsupportedOperationException; + + /** + * Method for outputting literal Json boolean value (one of + * Strings 'true' and 'false'). + * Can be called in any context where a value is expected + * (Array value, Object field value, root-level value). + * Additional white space may be added around the value + * if pretty-printing is enabled. + */ + public abstract void writeBoolean(boolean state) + throws IOException, JsonGenerationException; + + /** + * Method for outputting literal Json null value. + * Can be called in any context where a value is expected + * (Array value, Object field value, root-level value). + * Additional white space may be added around the value + * if pretty-printing is enabled. + */ + public abstract void writeNull() + throws IOException, JsonGenerationException; + + /* + /********************************************************** + /* Public API, write methods, serializing Java objects + /********************************************************** + */ + + /** + * Method for writing given Java object (POJO) as Json. + * Exactly how the object gets written depends on object + * in question (ad on codec, its configuration); for most + * beans it will result in Json object, but for others Json + * array, or String or numeric value (and for nulls, Json + * null literal. + * <b>NOTE</b>: generator must have its <b>object codec</b> + * set to non-null value; for generators created by a mapping + * factory this is the case, for others not. + */ + public abstract void writeObject(Object pojo) + throws IOException, JsonProcessingException; + + /** + * Method for writing given JSON tree (expressed as a tree + * where given JsonNode is the root) using this generator. + * This will generally just call + * {@link #writeObject} with given node, but is added + * for convenience and to make code more explicit in cases + * where it deals specifically with trees. + */ + public abstract void writeTree(JsonNode rootNode) + throws IOException, JsonProcessingException; + + /* + /********************************************************** + /* Public API, convenience field write methods + /********************************************************** + */ + + /** + * Convenience method for outputting a field entry ("member") + * that has a String value. Equivalent to: + *<pre> + * writeFieldName(fieldName); + * writeString(value); + *</pre> + *<p> + * Note: many performance-sensitive implementations override this method + */ + public void writeStringField(String fieldName, String value) + throws IOException, JsonGenerationException + { + writeFieldName(fieldName); + writeString(value); + } + + /** + * Convenience method for outputting a field entry ("member") + * that has a boolean value. Equivalent to: + *<pre> + * writeFieldName(fieldName); + * writeBoolean(value); + *</pre> + */ + public final void writeBooleanField(String fieldName, boolean value) + throws IOException, JsonGenerationException + { + writeFieldName(fieldName); + writeBoolean(value); + } + + /** + * Convenience method for outputting a field entry ("member") + * that has JSON literal value null. Equivalent to: + *<pre> + * writeFieldName(fieldName); + * writeNull(); + *</pre> + */ + public final void writeNullField(String fieldName) + throws IOException, JsonGenerationException + { + writeFieldName(fieldName); + writeNull(); + } + /** + * Convenience method for outputting a field entry ("member") + * that has the specified numeric value. Equivalent to: + *<pre> + * writeFieldName(fieldName); + * writeNumber(value); + *</pre> + */ + public final void writeNumberField(String fieldName, int value) + throws IOException, JsonGenerationException + { + writeFieldName(fieldName); + writeNumber(value); + } + + /** + * Convenience method for outputting a field entry ("member") + * that has the specified numeric value. Equivalent to: + *<pre> + * writeFieldName(fieldName); + * writeNumber(value); + *</pre> + */ + public final void writeNumberField(String fieldName, long value) + throws IOException, JsonGenerationException + { + writeFieldName(fieldName); + writeNumber(value); + } + + /** + * Convenience method for outputting a field entry ("member") + * that has the specified numeric value. Equivalent to: + *<pre> + * writeFieldName(fieldName); + * writeNumber(value); + *</pre> + */ + public final void writeNumberField(String fieldName, double value) + throws IOException, JsonGenerationException + { + writeFieldName(fieldName); + writeNumber(value); + } + + /** + * Convenience method for outputting a field entry ("member") + * that has the specified numeric value. Equivalent to: + *<pre> + * writeFieldName(fieldName); + * writeNumber(value); + *</pre> + */ + public final void writeNumberField(String fieldName, float value) + throws IOException, JsonGenerationException + { + writeFieldName(fieldName); + writeNumber(value); + } + + /** + * Convenience method for outputting a field entry ("member") + * that has the specified numeric value. + * Equivalent to: + *<pre> + * writeFieldName(fieldName); + * writeNumber(value); + *</pre> + */ + public final void writeNumberField(String fieldName, BigDecimal value) + throws IOException, JsonGenerationException + { + writeFieldName(fieldName); + writeNumber(value); + } + + /** + * Convenience method for outputting a field entry ("member") + * that contains specified data in base64-encoded form. + * Equivalent to: + *<pre> + * writeFieldName(fieldName); + * writeBinary(value); + *</pre> + */ + public final void writeBinaryField(String fieldName, byte[] data) + throws IOException, JsonGenerationException + { + writeFieldName(fieldName); + writeBinary(data); + } + + /** + * Convenience method for outputting a field entry ("member") + * (that will contain a JSON Array value), and the START_ARRAY marker. + * Equivalent to: + *<pre> + * writeFieldName(fieldName); + * writeStartArray(); + *</pre> + *<p> + * Note: caller still has to take care to close the array + * (by calling {#link #writeEndArray}) after writing all values + * of the value Array. + */ + public final void writeArrayFieldStart(String fieldName) + throws IOException, JsonGenerationException + { + writeFieldName(fieldName); + writeStartArray(); + } + + /** + * Convenience method for outputting a field entry ("member") + * (that will contain a JSON Object value), and the START_OBJECT marker. + * Equivalent to: + *<pre> + * writeFieldName(fieldName); + * writeStartObject(); + *</pre> + *<p> + * Note: caller still has to take care to close the Object + * (by calling {#link #writeEndObject}) after writing all + * entries of the value Object. + */ + public final void writeObjectFieldStart(String fieldName) + throws IOException, JsonGenerationException + { + writeFieldName(fieldName); + writeStartObject(); + } + + /** + * Convenience method for outputting a field entry ("member") + * that has contents of specific Java object as its value. + * Equivalent to: + *<pre> + * writeFieldName(fieldName); + * writeObject(pojo); + *</pre> + */ + public final void writeObjectField(String fieldName, Object pojo) + throws IOException, JsonProcessingException + { + writeFieldName(fieldName); + writeObject(pojo); + } + + /* + /********************************************************** + /* Public API, copy-through methods + /********************************************************** + */ + + /** + * Method for copying contents of the current event that + * the given parser instance points to. + * Note that the method <b>will not</b> copy any other events, + * such as events contained within Json Array or Object structures. + *<p> + * Calling this method will not advance the given + * parser, although it may cause parser to internally process + * more data (if it lazy loads contents of value events, for example) + */ + public abstract void copyCurrentEvent(JsonParser jp) + throws IOException, JsonProcessingException; + + /** + * Method for copying contents of the current event + * <b>and following events that it encloses</b> + * the given parser instance points to. + *<p> + * So what constitutes enclosing? Here is the list of + * events that have associated enclosed events that will + * get copied: + *<ul> + * <li>{@link JsonToken#START_OBJECT}: + * all events up to and including matching (closing) + * {@link JsonToken#END_OBJECT} will be copied + * </li> + * <li>{@link JsonToken#START_ARRAY} + * all events up to and including matching (closing) + * {@link JsonToken#END_ARRAY} will be copied + * </li> + * <li>{@link JsonToken#FIELD_NAME} the logical value (which + * can consist of a single scalar value; or a sequence of related + * events for structured types (Json Arrays, Objects)) will + * be copied along with the name itself. So essentially the + * whole <b>field entry</b> (name and value) will be copied. + * </li> + *</ul> + *<p> + * After calling this method, parser will point to the + * <b>last event</b> that was copied. This will either be + * the event parser already pointed to (if there were no + * enclosed events), or the last enclosed event copied. + */ + public abstract void copyCurrentStructure(JsonParser jp) + throws IOException, JsonProcessingException; + + /* + /********************************************************** + /* Public API, context access + /********************************************************** + */ + + /** + * @return Context object that can give information about logical + * position within generated json content. + */ + public abstract JsonStreamContext getOutputContext(); + + /* + /********************************************************** + /* Public API, buffer handling + /********************************************************** + */ + + /** + * Method called to flush any buffered content to the underlying + * target (output stream, writer), and to flush the target itself + * as well. + */ + public abstract void flush() throws IOException; + + /** + * Method that can be called to determine whether this generator + * is closed or not. If it is closed, no more output can be done. + */ + public abstract boolean isClosed(); + + /* + /********************************************************** + /* Closeable implementation + /********************************************************** + */ + + /** + * Method called to close this generator, so that no more content + * can be written. + *<p> + * Whether the underlying target (stream, writer) gets closed depends + * on whether this generator either manages the target (i.e. is the + * only one with access to the target -- case if caller passes a + * reference to the resource such as File, but not stream); or + * has feature {@link Feature#AUTO_CLOSE_TARGET} enabled. + * If either of above is true, the target is also closed. Otherwise + * (not managing, feature not enabled), target is not closed. + */ + @Override + public abstract void close() + throws IOException; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/JsonLocation.java b/1.9.10/src/java/org/codehaus/jackson/JsonLocation.java new file mode 100644 index 0000000..a861b5c --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/JsonLocation.java
@@ -0,0 +1,141 @@ +package org.codehaus.jackson; + +import org.codehaus.jackson.annotate.JsonCreator; +import org.codehaus.jackson.annotate.JsonProperty; + +/** + * Object that encapsulates Location information used for reporting + * parsing (or potentially generation) errors, as well as current location + * within input streams. + */ +public class JsonLocation + implements java.io.Serializable // as per [JACKSON-168] +{ + private static final long serialVersionUID = 1L; + + /** + * Shared immutable "N/A location" that can be returned to indicate + * that no location information is available + * + * @since 1.3 + */ + public final static JsonLocation NA = new JsonLocation("N/A", -1L, -1L, -1, -1); + + final long _totalBytes; + final long _totalChars; + + final int _lineNr; + final int _columnNr; + + /** + * Displayable description for input source: file path, url + */ + final Object _sourceRef; + + public JsonLocation(Object srcRef, long totalChars, int lineNr, int colNr) + { + /* Unfortunately, none of legal encodings are straight single-byte + * encodings. Could determine offset for UTF-16/UTF-32, but the + * most important one is UTF-8... + * so for now, we'll just not report any real byte count + */ + this(srcRef, -1L, totalChars, lineNr, colNr); + } + + @JsonCreator + public JsonLocation(@JsonProperty("sourceRef") Object sourceRef, + @JsonProperty("byteOffset") long totalBytes, + @JsonProperty("charOffset") long totalChars, + @JsonProperty("lineNr") int lineNr, + @JsonProperty("columnNr") int columnNr) + { + _sourceRef = sourceRef; + _totalBytes = totalBytes; + _totalChars = totalChars; + _lineNr = lineNr; + _columnNr = columnNr; + } + + /** + * Reference to the original resource being read, if one available. + * For example, when a parser has been constructed by passing + * a {@link java.io.File} instance, this method would return + * that File. Will return null if no such reference is available, + * for example when {@link java.io.InputStream} was used to + * construct the parser instance. + */ + public Object getSourceRef() { return _sourceRef; } + + /** + * @return Line number of the location (1-based) + */ + public int getLineNr() { return _lineNr; } + + /** + * @return Column number of the location (1-based) + */ + public int getColumnNr() { return _columnNr; } + + /** + * @return Character offset within underlying stream, reader or writer, + * if available; -1 if not. + */ + public long getCharOffset() { return _totalChars; } + + /** + * @return Byte offset within underlying stream, reader or writer, + * if available; -1 if not. + */ + public long getByteOffset() + { + return _totalBytes; + } + + @Override + public String toString() + { + StringBuilder sb = new StringBuilder(80); + sb.append("[Source: "); + if (_sourceRef == null) { + sb.append("UNKNOWN"); + } else { + sb.append(_sourceRef.toString()); + } + sb.append("; line: "); + sb.append(_lineNr); + sb.append(", column: "); + sb.append(_columnNr); + sb.append(']'); + return sb.toString(); + } + + @Override + public int hashCode() + { + int hash = (_sourceRef == null) ? 1 : _sourceRef.hashCode(); + hash ^= _lineNr; + hash += _columnNr; + hash ^= (int) _totalChars; + hash += (int) _totalBytes; + return hash; + } + + @Override + public boolean equals(Object other) + { + if (other == this) return true; + if (other == null) return false; + if (!(other instanceof JsonLocation)) return false; + JsonLocation otherLoc = (JsonLocation) other; + + if (_sourceRef == null) { + if (otherLoc._sourceRef != null) return false; + } else if (!_sourceRef.equals(otherLoc._sourceRef)) return false; + + return (_lineNr == otherLoc._lineNr) + && (_columnNr == otherLoc._columnNr) + && (_totalChars == otherLoc._totalChars) + && (getByteOffset() == otherLoc.getByteOffset()) + ; + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/JsonNode.java b/1.9.10/src/java/org/codehaus/jackson/JsonNode.java new file mode 100644 index 0000000..db51828 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/JsonNode.java
@@ -0,0 +1,879 @@ +package org.codehaus.jackson; + +import java.io.IOException; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.*; + +/** + * Base class for all JSON nodes, which form the basis of JSON + * Tree Model that Jackson implements. + * One way to think of these nodes is to consider them + * similar to DOM nodes in XML DOM trees. + *<p> + * As a general design rule, most accessors ("getters") are included + * in this base class, to allow for traversing structure without + * type casts. Most mutators, however, need to be accessed through + * specific sub-classes (such as <code>org.codehaus.jackson.node.ObjectNode</code> + * and <code>org.codehaus.jackson.node.ArrayNode</code>). + * This seems sensible because proper type + * information is generally available when building or modifying + * trees, but less often when reading a tree (newly built from + * parsed JSON content). + *<p> + * Actual concrete sub-classes can be found from package + * {@link org.codehaus.jackson.node}, which is in 'mapper' jar + * (whereas this class is in 'core' jar, since it is declared as + * nominal type for operations in {@link ObjectCodec}) + */ +public abstract class JsonNode + implements Iterable<JsonNode> +{ + protected final static List<JsonNode> NO_NODES = Collections.emptyList(); + protected final static List<String> NO_STRINGS = Collections.emptyList(); + + protected JsonNode() { } + + /* + /********************************************************** + /* Public API, type introspection + /********************************************************** + */ + + // // First high-level division between values, containers and "missing" + + /** + * Method that returns true for all value nodes: ones that + * are not containers, and that do not represent "missing" nodes + * in the path. Such value nodes represent String, Number, Boolean + * and null values from JSON. + *<p> + * Note: one and only one of methods {@link #isValueNode}, + * {@link #isContainerNode} and {@link #isMissingNode} ever + * returns true for any given node. + */ + public boolean isValueNode() { return false; } + + /** + * Method that returns true for container nodes: Arrays and Objects. + *<p> + * Note: one and only one of methods {@link #isValueNode}, + * {@link #isContainerNode} and {@link #isMissingNode} ever + * returns true for any given node. + */ + public boolean isContainerNode() { return false; } + + /** + * Method that returns true for "virtual" nodes which represent + * missing entries constructed by path accessor methods when + * there is no actual node matching given criteria. + *<p> + * Note: one and only one of methods {@link #isValueNode}, + * {@link #isContainerNode} and {@link #isMissingNode} ever + * returns true for any given node. + */ + public boolean isMissingNode() { return false; } + + // // Then more specific type introspection + // // (along with defaults to be overridden) + + /** + * @return True if this node represents Json Array + */ + public boolean isArray() { return false; } + + /** + * @return True if this node represents Json Object + */ + public boolean isObject() { return false; } + + /** + * Method that can be used to check if the node is a wrapper + * for a POJO ("Plain Old Java Object" aka "bean". + * Returns true only for + * instances of {@link org.codehaus.jackson.node.POJONode}. + * + * @return True if this node wraps a POJO + */ + public boolean isPojo() { return false; } + + /** + * @return True if this node represents a numeric Json + * value + */ + public boolean isNumber() { return false; } + + /** + * @return True if this node represents an integral (integer) + * numeric Json value + */ + public boolean isIntegralNumber() { return false; } + + /** + * @return True if this node represents a non-integral + * numeric Json value + */ + public boolean isFloatingPointNumber() { return false; } + + /** + * @return True if this node represents an integral + * numeric Json value that withs in Java int value space + */ + public boolean isInt() { return false; } + + /** + * @return True if this node represents an integral + * numeric Json value that fits in Java long value space + * (but not int value space, i.e. {@link #isInt} returns false) + */ + public boolean isLong() { return false; } + + public boolean isDouble() { return false; } + public boolean isBigDecimal() { return false; } + public boolean isBigInteger() { return false; } + + public boolean isTextual() { return false; } + + /** + * Method that can be used to check if this node was created from + * Json boolean value (literals "true" and "false"). + */ + public boolean isBoolean() { return false; } + + /** + * Method that can be used to check if this node was created from + * Json liternal null value. + */ + public boolean isNull() { return false; } + + /** + * Method that can be used to check if this node represents + * binary data (Base64 encoded). Although this will be externally + * written as Json String value, {@link #isTextual} will + * return false if this method returns true. + * + * @return True if this node represents base64 encoded binary data + */ + public boolean isBinary() { return false; } + + /** + * Method that can be used for efficient type detection + * when using stream abstraction for traversing nodes. + * Will return the first {@link JsonToken} that equivalent + * stream event would produce (for most nodes there is just + * one token but for structured/container types multiple) + * + * @since 1.3 + */ + public abstract JsonToken asToken(); + + /** + * If this node is a numeric type (as per {@link #isNumber}), + * returns native type that node uses to store the numeric + * value. + */ + public abstract JsonParser.NumberType getNumberType(); + + /* + /********************************************************** + /* Public API, straight value access + /********************************************************** + */ + + /** + * Method to use for accessing String values. + * Does <b>NOT</b> do any conversions for non-String value nodes; + * for non-String values (ones for which {@link #isTextual} returns + * false) null will be returned. + * For String values, null is never returned (but empty Strings may be) + * + * @return Textual value this node contains, iff it is a textual + * json node (comes from Json String value entry) + */ + public String getTextValue() { return null; } + + /** + * Method to use for accessing binary content of binary nodes (nodes + * for which {@link #isBinary} returns true); or for Text Nodes + * (ones for which {@link #getTextValue} returns non-null value), + * to read decoded base64 data. + * For other types of nodes, returns null. + * + * @return Binary data this node contains, iff it is a binary + * node; null otherwise + */ + public byte[] getBinaryValue() throws IOException + { + return null; + } + + /** + * Method to use for accessing JSON boolean values (value + * literals 'true' and 'false'). + * For other types, always returns false. + * + * @return Textual value this node contains, iff it is a textual + * json node (comes from Json String value entry) + */ + public boolean getBooleanValue() { return false; } + + /** + * Returns numeric value for this node, <b>if and only if</b> + * this node is numeric ({@link #isNumber} returns true); otherwise + * returns null + * + * @return Number value this node contains, if any (null for non-number + * nodes). + */ + public Number getNumberValue() { return null; } + + /** + * Returns integer value for this node, <b>if and only if</b> + * this node is numeric ({@link #isNumber} returns true). For other + * types returns 0. + * For floating-point numbers, value is truncated using default + * Java coercion, similar to how cast from double to int operates. + * + * @return Integer value this node contains, if any; 0 for non-number + * nodes. + */ + public int getIntValue() { return 0; } + + public long getLongValue() { return 0L; } + public double getDoubleValue() { return 0.0; } + public BigDecimal getDecimalValue() { return BigDecimal.ZERO; } + public BigInteger getBigIntegerValue() { return BigInteger.ZERO; } + + /** + * Method for accessing value of the specified element of + * an array node. For other nodes, null is always returned. + *<p> + * For array nodes, index specifies + * exact location within array and allows for efficient iteration + * over child elements (underlying storage is guaranteed to + * be efficiently indexable, i.e. has random-access to elements). + * If index is less than 0, or equal-or-greater than + * <code>node.size()</code>, null is returned; no exception is + * thrown for any index. + * + * @return Node that represent value of the specified element, + * if this node is an array and has specified element. + * Null otherwise. + */ + public JsonNode get(int index) { return null; } + + /** + * Method for accessing value of the specified field of + * an object node. If this node is not an object (or it + * does not have a value for specified field name), or + * if there is no field with such name, null is returned. + * + * @return Node that represent value of the specified field, + * if this node is an object and has value for the specified + * field. Null otherwise. + */ + public JsonNode get(String fieldName) { return null; } + + /* + /********************************************************** + /* Public API, value access with conversion(s)/coercion(s) + /********************************************************** + */ + + /** + * Method that will return valid String representation of + * the container value, if the node is a value node + * (method {@link #isValueNode} returns true), otherwise + * empty String. + * + * @since 1.9 (replaces <code>getValueAsText</code>) + */ + public abstract String asText(); + + /** + * Method that will try to convert value of this node to a Java <b>int</b>. + * Numbers are coerced using default Java rules; booleans convert to 0 (false) + * and 1 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an int (including structured types + * like Objects and Arrays), + * default value of <b>0</b> will be returned; no exceptions are thrown. + * + * @since 1.9 (replaces <code>getValueAsInt</code>) + */ + public int asInt() { + return asInt(0); + } + + /** + * Method that will try to convert value of this node to a Java <b>int</b>. + * Numbers are coerced using default Java rules; booleans convert to 0 (false) + * and 1 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an int (including structured types + * like Objects and Arrays), + * specified <b>defaultValue</b> will be returned; no exceptions are thrown. + * + * @since 1.9 (replaces <code>getValueAsInt</code>) + */ + public int asInt(int defaultValue) { + return defaultValue; + } + + /** + * Method that will try to convert value of this node to a Java <b>long</b>. + * Numbers are coerced using default Java rules; booleans convert to 0 (false) + * and 1 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an long (including structured types + * like Objects and Arrays), + * default value of <b>0</b> will be returned; no exceptions are thrown. + * + * @since 1.9 (replaces <code>getValueAsLong</code>) + */ + public long asLong() { + return asLong(0L); + } + + /** + * Method that will try to convert value of this node to a Java <b>long</b>. + * Numbers are coerced using default Java rules; booleans convert to 0 (false) + * and 1 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an long (including structured types + * like Objects and Arrays), + * specified <b>defaultValue</b> will be returned; no exceptions are thrown. + * + * @since 1.9 (replaces <code>getValueAsLong</code>) + */ + public long asLong(long defaultValue) { + return defaultValue; + } + + /** + * Method that will try to convert value of this node to a Java <b>double</b>. + * Numbers are coerced using default Java rules; booleans convert to 0.0 (false) + * and 1.0 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an int (including structured types + * like Objects and Arrays), + * default value of <b>0.0</b> will be returned; no exceptions are thrown. + * + * @since 1.9 (replaces <code>getValueAsDouble</code>) + */ + public double asDouble() { + return asDouble(0.0); + } + + /** + * Method that will try to convert value of this node to a Java <b>double</b>. + * Numbers are coerced using default Java rules; booleans convert to 0.0 (false) + * and 1.0 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an int (including structured types + * like Objects and Arrays), + * specified <b>defaultValue</b> will be returned; no exceptions are thrown. + * + * @since 1.9 (replaces <code>getValueAsLong</code>) + */ + public double asDouble(double defaultValue) { + return defaultValue; + } + + /** + * Method that will try to convert value of this node to a Java <b>boolean</b>. + * JSON booleans map naturally; integer numbers other than 0 map to true, and + * 0 maps to false + * and Strings 'true' and 'false' map to corresponding values. + *<p> + * If representation can not be converted to a boolean value (including structured types + * like Objects and Arrays), + * default value of <b>false</b> will be returned; no exceptions are thrown. + * + * @since 1.9 (replaces <code>getValueAsBoolean</code>) + */ + public boolean asBoolean() { + return asBoolean(false); + } + + /** + * Method that will try to convert value of this node to a Java <b>boolean</b>. + * JSON booleans map naturally; integer numbers other than 0 map to true, and + * 0 maps to false + * and Strings 'true' and 'false' map to corresponding values. + *<p> + * If representation can not be converted to a boolean value (including structured types + * like Objects and Arrays), + * specified <b>defaultValue</b> will be returned; no exceptions are thrown. + * + * @since 1.9 (replaces <code>getValueAsBoolean</code>) + */ + public boolean asBoolean(boolean defaultValue) { + return defaultValue; + } + + /* + /********************************************************** + /* Public API, value access with conversion(s)/coercion(s) + /********************************************************** + */ + + /** + * Method that will return valid String representation of + * the container value, if the node is a value node + * (method {@link #isValueNode} returns true), otherwise null. + *<p> + * Note: to serialize nodes of any type, you should call + * {@link #toString} instead. + * + * @deprecated Since 1.9, use {@link #asText} instead + */ + @Deprecated + public String getValueAsText() { return asText(); } + + /** + * Method that will try to convert value of this node to a Java <b>int</b>. + * Numbers are coerced using default Java rules; booleans convert to 0 (false) + * and 1 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an int (including structured types + * like Objects and Arrays), + * default value of <b>0</b> will be returned; no exceptions are thrown. + * + * @since 1.6 + * + * @deprecated Since 1.9, use {@link #asInt} instead + */ + @Deprecated + public int getValueAsInt() { return asInt(0); } + + /** + * Method that will try to convert value of this node to a Java <b>int</b>. + * Numbers are coerced using default Java rules; booleans convert to 0 (false) + * and 1 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an int (including structured types + * like Objects and Arrays), + * specified <b>defaultValue</b> will be returned; no exceptions are thrown. + * + * @since 1.6 + * + * @deprecated Since 1.9, use {@link #asInt} instead + */ + @Deprecated + public int getValueAsInt(int defaultValue) { return asInt(defaultValue); } + + /** + * Method that will try to convert value of this node to a Java <b>long</b>. + * Numbers are coerced using default Java rules; booleans convert to 0 (false) + * and 1 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an long (including structured types + * like Objects and Arrays), + * default value of <b>0</b> will be returned; no exceptions are thrown. + * + * @since 1.6 + * + * @deprecated Since 1.9, use {@link #asLong} instead + */ + @Deprecated + public long getValueAsLong() { return asLong(0L); } + + /** + * Method that will try to convert value of this node to a Java <b>long</b>. + * Numbers are coerced using default Java rules; booleans convert to 0 (false) + * and 1 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an long (including structured types + * like Objects and Arrays), + * specified <b>defaultValue</b> will be returned; no exceptions are thrown. + * + * @since 1.6 + * + * @deprecated Since 1.9, use {@link #asLong} instead + */ + @Deprecated + public long getValueAsLong(long defaultValue) { return asLong(defaultValue); } + + /** + * Method that will try to convert value of this node to a Java <b>double</b>. + * Numbers are coerced using default Java rules; booleans convert to 0.0 (false) + * and 1.0 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an int (including structured types + * like Objects and Arrays), + * default value of <b>0.0</b> will be returned; no exceptions are thrown. + * + * @since 1.6 + * + * @deprecated Since 1.9, use {@link #asDouble} instead + */ + @Deprecated + public double getValueAsDouble() { return asDouble(0.0); } + + /** + * Method that will try to convert value of this node to a Java <b>double</b>. + * Numbers are coerced using default Java rules; booleans convert to 0.0 (false) + * and 1.0 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an int (including structured types + * like Objects and Arrays), + * specified <b>defaultValue</b> will be returned; no exceptions are thrown. + * + * @since 1.6 + * + * @deprecated Since 1.9, use {@link #asDouble} instead + */ + @Deprecated + public double getValueAsDouble(double defaultValue) { return asDouble(defaultValue); } + + /** + * Method that will try to convert value of this node to a Java <b>boolean</b>. + * JSON booleans map naturally; integer numbers other than 0 map to true, and + * 0 maps to false + * and Strings 'true' and 'false' map to corresponding values. + *<p> + * If representation can not be converted to a boolean value (including structured types + * like Objects and Arrays), + * default value of <b>false</b> will be returned; no exceptions are thrown. + * + * @since 1.7 + * + * @deprecated Since 1.9, use {@link #asBoolean} instead + */ + @Deprecated + public boolean getValueAsBoolean() { return asBoolean(false); } + + /** + * Method that will try to convert value of this node to a Java <b>boolean</b>. + * JSON booleans map naturally; integer numbers other than 0 map to true, and + * 0 maps to false + * and Strings 'true' and 'false' map to corresponding values. + *<p> + * If representation can not be converted to a boolean value (including structured types + * like Objects and Arrays), + * specified <b>defaultValue</b> will be returned; no exceptions are thrown. + * + * @since 1.7 + * + * @deprecated Since 1.9, use {@link #asBoolean} instead + */ + @Deprecated + public boolean getValueAsBoolean(boolean defaultValue) { return asBoolean(defaultValue); } + + /* + /********************************************************** + /* Public API, value find / existence check methods + /********************************************************** + */ + + /** + * Method that allows checking whether this node is JSON Object node + * and contains value for specified property. If this is the case + * (including properties with explicit null values), returns true; + * otherwise returns false. + *<p> + * This method is equivalent to: + *<pre> + * node.get(fieldName) != null + *</pre> + * (since return value of get() is node, not value node contains) + * + * @param fieldName Name of element to check + * + * @return True if this node is a JSON Object node, and has a property + * entry with specified name (with any value, including null value) + * + * @since 1.6 + */ + public boolean has(String fieldName) { + return get(fieldName) != null; + } + + /** + * Method that allows checking whether this node is JSON Array node + * and contains a value for specified index + * If this is the case + * (including case of specified indexing having null as value), returns true; + * otherwise returns false. + *<p> + * Note: array element indexes are 0-based. + *<p> + * This method is equivalent to: + *<pre> + * node.get(index) != null + *</pre> + * + * @param index Index to check + * + * @return True if this node is a JSON Object node, and has a property + * entry with specified name (with any value, including null value) + * + * @since 1.6 + */ + public boolean has(int index) { + return get(index) != null; + } + + /** + * Method for finding a JSON Object field with specified name in this + * node or its child nodes, and returning value it has. + * If no matching field is found in this node or its descendants, returns null. + * + * @param fieldName Name of field to look for + * + * @return Value of first matching node found, if any; null if none + * + * @since 1.6 + */ + public abstract JsonNode findValue(String fieldName); + + /** + * Method for finding JSON Object fields with specified name, and returning + * found ones as a List. Note that sub-tree search ends if a field is found, + * so possible children of result nodes are <b>not</b> included. + * If no matching fields are found in this node or its descendants, returns + * an empty List. + * + * @param fieldName Name of field to look for + * + * @since 1.6 + */ + public final List<JsonNode> findValues(String fieldName) + { + List<JsonNode> result = findValues(fieldName, null); + if (result == null) { + return Collections.emptyList(); + } + return result; + } + + /** + * Similar to {@link #findValues}, but will additionally convert + * values into Strings, calling {@link #getValueAsText}. + * + * @since 1.6 + */ + public final List<String> findValuesAsText(String fieldName) + { + List<String> result = findValuesAsText(fieldName, null); + if (result == null) { + return Collections.emptyList(); + } + return result; + } + + /** + * Method similar to {@link #findValue}, but that will return a + * "missing node" instead of null if no field is found. Missing node + * is a specific kind of node for which {@link #isMissingNode} + * returns true; and all value access methods return empty or + * missing value. + * + * @param fieldName Name of field to look for + * + * @return Value of first matching node found; or if not found, a + * "missing node" (non-null instance that has no value) + * + * @since 1.6 + */ + public abstract JsonNode findPath(String fieldName); + + /** + * Method for finding a JSON Object that contains specified field, + * within this node or its descendants. + * If no matching field is found in this node or its descendants, returns null. + * + * @param fieldName Name of field to look for + * + * @return Value of first matching node found, if any; null if none + * + * @since 1.6 + */ + public abstract JsonNode findParent(String fieldName); + + /** + * Method for finding a JSON Object that contains specified field, + * within this node or its descendants. + * If no matching field is found in this node or its descendants, returns null. + * + * @param fieldName Name of field to look for + * + * @return Value of first matching node found, if any; null if none + * + * @since 1.6 + */ + public final List<JsonNode> findParents(String fieldName) + { + List<JsonNode> result = findParents(fieldName, null); + if (result == null) { + return Collections.emptyList(); + } + return result; + } + + public abstract List<JsonNode> findValues(String fieldName, List<JsonNode> foundSoFar); + public abstract List<String> findValuesAsText(String fieldName, List<String> foundSoFar); + public abstract List<JsonNode> findParents(String fieldName, List<JsonNode> foundSoFar); + + /* + /********************************************************** + /* Public API, container access + /********************************************************** + */ + + /** + * Method that returns number of child nodes this node contains: + * for Array nodes, number of child elements, for Object nodes, + * number of fields, and for all other nodes 0. + * + * @return For non-container nodes returns 0; for arrays number of + * contained elements, and for objects number of fields. + */ + public int size() { return 0; } + + /** + * Same as calling {@link #getElements}; implemented so that + * convenience "for-each" loop can be used for looping over elements + * of JSON Array constructs. + */ + @Override + public final Iterator<JsonNode> iterator() { return getElements(); } + + /** + * Method for accessing all value nodes of this Node, iff + * this node is a JSON Array or Object node. In case of Object node, + * field names (keys) are not included, only values. + * For other types of nodes, returns empty iterator. + */ + public Iterator<JsonNode> getElements() { return NO_NODES.iterator(); } + + /** + * Method for accessing names of all fields for this Node, iff + * this node is a JSON Object node. + */ + public Iterator<String> getFieldNames() { return NO_STRINGS.iterator(); } + + /** + * @return Iterator that can be used to traverse all key/value pairs for + * object nodes; empty iterator (no contents) for other types + * + * @since 1.8 (although existed in ObjectNode since 1.0 or so) + */ + public Iterator<Map.Entry<String, JsonNode>> getFields() { + Collection<Map.Entry<String, JsonNode>> coll = Collections.emptyList(); + return coll.iterator(); + } + + /* + /********************************************************** + /* Public API, path handling + /********************************************************** + */ + + /** + * This method is similar to {@link #get(String)}, except + * that instead of returning null if no such value exists (due + * to this node not being an object, or object not having value + * for the specified field), + * a "missing node" (node that returns true for + * {@link #isMissingNode}) will be returned. This allows for + * convenient and safe chained access via path calls. + */ + public abstract JsonNode path(String fieldName); + + /** + * Alias of {@link #path(String)}. + * + * @deprecated Use {@link #path(String)} instead + */ + @Deprecated + public final JsonNode getPath(String fieldName) { return path(fieldName); } + + /** + * This method is similar to {@link #get(int)}, except + * that instead of returning null if no such element exists (due + * to index being out of range, or this node not being an array), + * a "missing node" (node that returns true for + * {@link #isMissingNode}) will be returned. This allows for + * convenient and safe chained access via path calls. + */ + public abstract JsonNode path(int index); + + /** + * Alias of {@link #path(int)}. + * + * @deprecated Use {@link #path(int)} instead + */ + @Deprecated + public final JsonNode getPath(int index) { return path(index); } + + /** + * Method that can be called on object nodes, to access a property + * that has object value; or if no such property exists, to create and + * return such object node. + * If node method is called on is not Object node, + * or if property exists and has value that is not object node, + * {@link UnsupportedOperationException} is thrown + * + * @since 1.8 + */ + public JsonNode with(String propertyName) { + throw new UnsupportedOperationException("JsonNode not of type ObjectNode (but " + +getClass().getName()+"), can not call with() on it"); + } + + /* + /********************************************************** + /* Public API: converting to/from Streaming API + /********************************************************** + */ + + /** + * Method for constructing a {@link JsonParser} instance for + * iterating over contents of the tree that this + * node is root of. + * Functionally equivalent to first serializing tree using + * {@link ObjectCodec} and then re-parsing but + * more efficient. + */ + public abstract JsonParser traverse(); + + /* + /********************************************************** + /* Overridden standard methods + /********************************************************** + */ + + /** + *<p> + * Note: marked as abstract to ensure all implementation + * classes define it properly. + */ + @Override + public abstract String toString(); + + /** + * Equality for node objects is defined as full (deep) value + * equality. This means that it is possible to compare complete + * JSON trees for equality by comparing equality of root nodes. + *<p> + * Note: marked as abstract to ensure all implementation + * classes define it properly and not rely on definition + * from {@link java.lang.Object}. + */ + @Override + public abstract boolean equals(Object o); +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/JsonParseException.java b/1.9.10/src/java/org/codehaus/jackson/JsonParseException.java new file mode 100644 index 0000000..6241a54 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/JsonParseException.java
@@ -0,0 +1,23 @@ +package org.codehaus.jackson; + +/** + * Exception type for parsing problems, used when non-well-formed content + * (content that does not conform to JSON syntax as per specification) + * is encountered. + */ +public class JsonParseException + extends JsonProcessingException +{ + @SuppressWarnings("hiding") + final static long serialVersionUID = 123; // Stupid eclipse... + + public JsonParseException(String msg, JsonLocation loc) + { + super(msg, loc); + } + + public JsonParseException(String msg, JsonLocation loc, Throwable root) + { + super(msg, loc, root); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/JsonParser.java b/1.9.10/src/java/org/codehaus/jackson/JsonParser.java new file mode 100644 index 0000000..e0b2dde --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/JsonParser.java
@@ -0,0 +1,1435 @@ +/* Jackson JSON-processor. + * + * Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi + * + * Licensed under the License specified in file LICENSE, included with + * the source code and binary code bundles. + * You may not use this file except in compliance with the License. + * + * 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. + */ + +package org.codehaus.jackson; + +import java.io.*; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.Iterator; + +import org.codehaus.jackson.type.TypeReference; + +/** + * Base class that defines public API for reading JSON content. + * Instances are created using factory methods of + * a {@link JsonFactory} instance. + * + * @author Tatu Saloranta + */ +public abstract class JsonParser + implements Closeable, Versioned +{ + private final static int MIN_BYTE_I = (int) Byte.MIN_VALUE; + // [JACKSON-804]: allow range up to 255 (instead of Java's 127) for better interoperability + private final static int MAX_BYTE_I = 255; + + private final static int MIN_SHORT_I = (int) Short.MIN_VALUE; + private final static int MAX_SHORT_I = (int) Short.MAX_VALUE; + + /** + * Enumeration of possible "native" (optimal) types that can be + * used for numbers. + */ + public enum NumberType { + INT, LONG, BIG_INTEGER, FLOAT, DOUBLE, BIG_DECIMAL + }; + + /** + * Enumeration that defines all togglable features for parsers. + */ + public enum Feature { + + // // // Low-level I/O handling features: + + /** + * Feature that determines whether parser will automatically + * close underlying input source that is NOT owned by the + * parser. If disabled, calling application has to separately + * close the underlying {@link InputStream} and {@link Reader} + * instances used to create the parser. If enabled, parser + * will handle closing, as long as parser itself gets closed: + * this happens when end-of-input is encountered, or parser + * is closed by a call to {@link JsonParser#close}. + *<p> + * Feature is enabled by default. + */ + AUTO_CLOSE_SOURCE(true), + + // // // Support for non-standard data format constructs + + /** + * Feature that determines whether parser will allow use + * of Java/C++ style comments (both '/'+'*' and + * '//' varieties) within parsed content or not. + *<p> + * Since JSON specification does not mention comments as legal + * construct, + * this is a non-standard feature; however, in the wild + * this is extensively used. As such, feature is + * <b>disabled by default</b> for parsers and must be + * explicitly enabled (via factory or parser instance). + *<p> + * This feature can be changed for parser instances. + */ + ALLOW_COMMENTS(false), + + /** + * Feature that determines whether parser will allow use + * of unquoted field names (which is allowed by Javascript, + * but not by JSON specification). + *<p> + * Since JSON specification requires use of double quotes for + * field names, + * this is a non-standard feature, and as such disabled by + * default. + *<p> + * This feature can be changed for parser instances. + * + * @since 1.2 + */ + ALLOW_UNQUOTED_FIELD_NAMES(false), + + /** + * Feature that determines whether parser will allow use + * of single quotes (apostrophe, character '\'') for + * quoting Strings (names and String values). If so, + * this is in addition to other acceptabl markers. + * but not by JSON specification). + *<p> + * Since JSON specification requires use of double quotes for + * field names, + * this is a non-standard feature, and as such disabled by + * default. + *<p> + * This feature can be changed for parser instances. + * + * @since 1.3 + */ + ALLOW_SINGLE_QUOTES(false), + + /** + * Feature that determines whether parser will allow + * JSON Strings to contain unquoted control characters + * (ASCII characters with value less than 32, including + * tab and line feed characters) or not. + * If feature is set false, an exception is thrown if such a + * character is encountered. + *<p> + * Since JSON specification requires quoting for all control characters, + * this is a non-standard feature, and as such disabled by default. + *<p> + * This feature can be changed for parser instances. + * + * @since 1.4 + */ + ALLOW_UNQUOTED_CONTROL_CHARS(false), + + /** + * Feature that can be enabled to accept quoting of all character + * using backslash qooting mechanism: if not enabled, only characters + * that are explicitly listed by JSON specification can be thus + * escaped (see JSON spec for small list of these characters) + *<p> + * Since JSON specification requires quoting for all control characters, + * this is a non-standard feature, and as such disabled by default. + *<p> + * This feature can be changed for parser instances. + * + * @since 1.6 + */ + ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER(false), + + /** + * Feature that determines whether parser will allow + * JSON integral numbers to start with additional (ignorable) + * zeroes (like: 000001). If enabled, no exception is thrown, and extra + * nulls are silently ignored (and not included in textual representation + * exposed via {@link JsonParser#getText}). + *<p> + * Since JSON specification does not allow leading zeroes, + * this is a non-standard feature, and as such disabled by default. + *<p> + * This feature can be changed for parser instances. + * + * @since 1.8 + */ + ALLOW_NUMERIC_LEADING_ZEROS(false), + + /** + * Feature that allows parser to recognize set of + * "Not-a-Number" (NaN) tokens as legal floating number + * values (similar to how many other data formats and + * programming language source code allows it). + * Specific subset contains values that + * <a href="http://www.w3.org/TR/xmlschema-2/">XML Schema</a> + * (see section 3.2.4.1, Lexical Representation) + * allows (tokens are quoted contents, not including quotes): + *<ul> + * <li>"INF" (for positive infinity), as well as alias of "Infinity" + * <li>"-INF" (for negative infinity), alias "-Infinity" + * <li>"NaN" (for other not-a-numbers, like result of division by zero) + *</ul> + */ + + ALLOW_NON_NUMERIC_NUMBERS(false), + + // // // Controlling canonicalization (interning etc) + + /** + * Feature that determines whether JSON object field names are + * to be canonicalized using {@link String#intern} or not: + * if enabled, all field names will be intern()ed (and caller + * can count on this being true for all such names); if disabled, + * no intern()ing is done. There may still be basic + * canonicalization (that is, same String will be used to represent + * all identical object property names for a single document). + *<p> + * Note: this setting only has effect if + * {@link #CANONICALIZE_FIELD_NAMES} is true -- otherwise no + * canonicalization of any sort is done. + * + * @since 1.3 + */ + INTERN_FIELD_NAMES(true), + + /** + * Feature that determines whether JSON object field names are + * to be canonicalized (details of how canonicalization is done + * then further specified by + * {@link #INTERN_FIELD_NAMES}). + * + * @since 1.5 + */ + CANONICALIZE_FIELD_NAMES(true), + + + ; + + final boolean _defaultState; + + /** + * Method that calculates bit set (flags) of all features that + * are enabled by default. + */ + public static int collectDefaults() + { + int flags = 0; + for (Feature f : values()) { + if (f.enabledByDefault()) { + flags |= f.getMask(); + } + } + return flags; + } + + private Feature(boolean defaultState) { + _defaultState = defaultState; + } + + public boolean enabledByDefault() { return _defaultState; } + + public boolean enabledIn(int flags) { return (flags & getMask()) != 0; } + + public int getMask() { return (1 << ordinal()); } + }; + + /* + /********************************************************** + /* Minimal configuration state + /********************************************************** + */ + + /** + * Bit flag composed of bits that indicate which + * {@link org.codehaus.jackson.JsonParser.Feature}s + * are enabled. + */ + protected int _features; + + /* + /********************************************************** + /* Minimal generic state + /********************************************************** + */ + + /** + * Last token retrieved via {@link #nextToken}, if any. + * Null before the first call to <code>nextToken()</code>, + * as well as if token has been explicitly cleared + * (by call to {@link #clearCurrentToken}) + */ + protected JsonToken _currToken; + + /** + * Last cleared token, if any: that is, value that was in + * effect when {@link #clearCurrentToken} was called. + */ + protected JsonToken _lastClearedToken; + + /* + /********************************************************** + /* Construction, configuration, initialization + /********************************************************** + */ + + protected JsonParser() { } + protected JsonParser(int features) { + _features = features; + } + + /** + * Accessor for {@link ObjectCodec} associated with this + * parser, if any. Codec is used by {@link #readValueAs(Class)} + * method (and its variants). + * + * @since 1.3 + */ + public abstract ObjectCodec getCodec(); + + /** + * Setter that allows defining {@link ObjectCodec} associated with this + * parser, if any. Codec is used by {@link #readValueAs(Class)} + * method (and its variants). + * + * @since 1.3 + */ + public abstract void setCodec(ObjectCodec c); + + /** + * Method to call to make this parser use specified schema. Method must + * be called before trying to parse any content, right after parser instance + * has been created. + * Note that not all parsers support schemas; and those that do usually only + * accept specific types of schemas: ones defined for data format parser can read. + *<p> + * If parser does not support specified schema, {@link UnsupportedOperationException} + * is thrown. + * + * @param schema Schema to use + * + * @throws UnsupportedOperationException if parser does not support schema + * + * @since 1.8 + */ + public void setSchema(FormatSchema schema) + { + throw new UnsupportedOperationException("Parser of type "+getClass().getName()+" does not support schema of type '" + +schema.getSchemaType()+"'"); + } + + /** + * Method that can be used to verify that given schema can be used with + * this parser (using {@link #setSchema}). + * + * @param schema Schema to check + * + * @return True if this parser can use given schema; false if not + * + * @since 1.8 + */ + public boolean canUseSchema(FormatSchema schema) { + return false; + } + + /** + * @since 1.6 + */ + @Override + public Version version() { + return Version.unknownVersion(); + } + + /** + * Method that can be used to get access to object that is used + * to access input being parsed; this is usually either + * {@link InputStream} or {@link Reader}, depending on what + * parser was constructed with. + * Note that returned value may be null in some cases; including + * case where parser implementation does not want to exposed raw + * source to caller. + * In cases where input has been decorated, object returned here + * is the decorated version; this allows some level of interaction + * between users of parser and decorator object. + *<p> + * In general use of this accessor should be considered as + * "last effort", i.e. only used if no other mechanism is applicable. + * + * @since 1.8 + */ + public Object getInputSource() { + return null; + } + + /* + /********************************************************** + /* Closeable implementation + /********************************************************** + */ + + /** + * Closes the parser so that no further iteration or data access + * can be made; will also close the underlying input source + * if parser either <b>owns</b> the input source, or feature + * {@link Feature#AUTO_CLOSE_SOURCE} is enabled. + * Whether parser owns the input source depends on factory + * method that was used to construct instance (so check + * {@link org.codehaus.jackson.JsonFactory} for details, + * but the general + * idea is that if caller passes in closable resource (such + * as {@link InputStream} or {@link Reader}) parser does NOT + * own the source; but if it passes a reference (such as + * {@link java.io.File} or {@link java.net.URL} and creates + * stream or reader it does own them. + */ + @Override + public abstract void close() throws IOException; + + /* + /********************************************************** + /* Buffer handling + /********************************************************** + */ + + /** + * Method that can be called to push back any content that + * has been read but not consumed by the parser. This is usually + * done after reading all content of interest using parser. + * Content is released by writing it to given stream if possible; + * if underlying input is byte-based it can released, if not (char-based) + * it can not. + * + * @return -1 if the underlying content source is not byte based + * (that is, input can not be sent to {@link OutputStream}; + * otherwise number of bytes released (0 if there was nothing to release) + * + * @throws IOException if write to stream threw exception + * + * @since 1.6 + */ + public int releaseBuffered(OutputStream out) throws IOException + { + return -1; + } + + /** + * Method that can be called to push back any content that + * has been read but not consumed by the parser. + * This is usually + * done after reading all content of interest using parser. + * Content is released by writing it to given writer if possible; + * if underlying input is char-based it can released, if not (byte-based) + * it can not. + * + * @return -1 if the underlying content source is not char-based + * (that is, input can not be sent to {@link Writer}; + * otherwise number of chars released (0 if there was nothing to release) + * + * @throws IOException if write using Writer threw exception + * + * @since 1.6 + */ + public int releaseBuffered(Writer w) throws IOException + { + return -1; + } + + /* + /*************************************************** + /* Public API, configuration + /*************************************************** + */ + + /** + * Method for enabling specified parser feature + * (check {@link Feature} for list of features) + * + * @since 1.2 + */ + public JsonParser enable(Feature f) + { + _features |= f.getMask(); + return this; + } + + /** + * Method for disabling specified feature + * (check {@link Feature} for list of features) + * + * @since 1.2 + */ + public JsonParser disable(Feature f) + { + _features &= ~f.getMask(); + return this; + } + + /** + * Method for enabling or disabling specified feature + * (check {@link Feature} for list of features) + * + * @since 1.2 + */ + public JsonParser configure(Feature f, boolean state) + { + if (state) { + enableFeature(f); + } else { + disableFeature(f); + } + return this; + } + + /** + * Method for checking whether specified {@link Feature} + * is enabled. + * + * @since 1.2 + */ + public boolean isEnabled(Feature f) { + return (_features & f.getMask()) != 0; + } + + /** @deprecated Use {@link #configure} instead + */ + @SuppressWarnings("dep-ann") + public void setFeature(Feature f, boolean state) { configure(f, state); } + + /** @deprecated Use {@link #enable(Feature)} instead + */ + @SuppressWarnings("dep-ann") + public void enableFeature(Feature f) { enable(f); } + + /** @deprecated Use {@link #disable(Feature)} instead + */ + @SuppressWarnings("dep-ann") + public void disableFeature(Feature f) { disable(f); } + + /** @deprecated Use {@link #isEnabled(Feature)} instead + */ + @SuppressWarnings("dep-ann") + public final boolean isFeatureEnabled(Feature f) { return isEnabled(f); } + + + /* + /********************************************************** + /* Public API, traversal + /********************************************************** + */ + + /** + * Main iteration method, which will advance stream enough + * to determine type of the next token, if any. If none + * remaining (stream has no content other than possible + * white space before ending), null will be returned. + * + * @return Next token from the stream, if any found, or null + * to indicate end-of-input + */ + public abstract JsonToken nextToken() + throws IOException, JsonParseException; + + /** + * Iteration method that will advance stream enough + * to determine type of the next token that is a value type + * (including JSON Array and Object start/end markers). + * Or put another way, nextToken() will be called once, + * and if {@link JsonToken#FIELD_NAME} is returned, another + * time to get the value for the field. + * Method is most useful for iterating over value entries + * of JSON objects; field name will still be available + * by calling {@link #getCurrentName} when parser points to + * the value. + * + * @return Next non-field-name token from the stream, if any found, + * or null to indicate end-of-input (or, for non-blocking + * parsers, {@link JsonToken#NOT_AVAILABLE} if no tokens were + * available yet) + */ + public JsonToken nextValue() + throws IOException, JsonParseException + { + /* Implementation should be as trivial as follows; only + * needs to change if we are to skip other tokens (for + * example, if comments were exposed as tokens) + */ + JsonToken t = nextToken(); + if (t == JsonToken.FIELD_NAME) { + t = nextToken(); + } + return t; + } + + /** + * Method that fetches next token (as if calling {@link #nextToken}) and + * verifies whether it is {@link JsonToken#FIELD_NAME} with specified name + * and returns result of that comparison. + * It is functionally equivalent to: + *<pre> + * return (nextToken() == JsonToken.FIELD_NAME) && str.getValue().equals(getCurrentName()); + *</pre> + * but may be faster for parser to verify, and can therefore be used if caller + * expects to get such a property name from input next. + * + * @param str Property name to compare next token to (if next token is <code>JsonToken.FIELD_NAME<code>) + * + * @since 1.9 + */ + public boolean nextFieldName(SerializableString str) + throws IOException, JsonParseException + { + return (nextToken() == JsonToken.FIELD_NAME) && str.getValue().equals(getCurrentName()); + } + + /** + * Method that fetches next token (as if calling {@link #nextToken}) and + * if it is {@link JsonToken#VALUE_STRING} returns contained String value; + * otherwise returns null. + * It is functionally equivalent to: + *<pre> + * return (nextToken() == JsonToken.VALUE_STRING) ? getText() : null; + *</pre> + * but may be faster for parser to process, and can therefore be used if caller + * expects to get a String value next from input. + * + * @since 1.9 + */ + public String nextTextValue() + throws IOException, JsonParseException + { + return (nextToken() == JsonToken.VALUE_STRING) ? getText() : null; + } + + /** + * Method that fetches next token (as if calling {@link #nextToken}) and + * if it is {@link JsonToken#VALUE_NUMBER_INT} returns 32-bit int value; + * otherwise returns specified default value + * It is functionally equivalent to: + *<pre> + * return (nextToken() == JsonToken.VALUE_NUMBER_INT) ? getIntValue() : defaultValue; + *</pre> + * but may be faster for parser to process, and can therefore be used if caller + * expects to get a String value next from input. + * + * @since 1.9 + */ + public int nextIntValue(int defaultValue) + throws IOException, JsonParseException + { + return (nextToken() == JsonToken.VALUE_NUMBER_INT) ? getIntValue() : defaultValue; + } + + /** + * Method that fetches next token (as if calling {@link #nextToken}) and + * if it is {@link JsonToken#VALUE_NUMBER_INT} returns 64-bit long value; + * otherwise returns specified default value + * It is functionally equivalent to: + *<pre> + * return (nextToken() == JsonToken.VALUE_NUMBER_INT) ? getLongValue() : defaultValue; + *</pre> + * but may be faster for parser to process, and can therefore be used if caller + * expects to get a String value next from input. + * + * @since 1.9 + */ + public long nextLongValue(long defaultValue) + throws IOException, JsonParseException + { + return (nextToken() == JsonToken.VALUE_NUMBER_INT) ? getLongValue() : defaultValue; + } + + /** + * Method that fetches next token (as if calling {@link #nextToken}) and + * if it is {@link JsonToken#VALUE_TRUE} or {@link JsonToken#VALUE_FALSE} + * returns matching Boolean value; otherwise return null. + * It is functionally equivalent to: + *<pre> + * JsonToken t = nextToken(); + * if (t == JsonToken.VALUE_TRUE) return Boolean.TRUE; + * if (t == JsonToken.VALUE_FALSE) return Boolean.FALSE; + * return null; + *</pre> + * but may be faster for parser to process, and can therefore be used if caller + * expects to get a String value next from input. + * + * @since 1.9 + */ + public Boolean nextBooleanValue() + throws IOException, JsonParseException + { + switch (nextToken()) { + case VALUE_TRUE: + return Boolean.TRUE; + case VALUE_FALSE: + return Boolean.FALSE; + } + return null; + } + + /** + * Method that will skip all child tokens of an array or + * object token that the parser currently points to, + * iff stream points to + * {@link JsonToken#START_OBJECT} or {@link JsonToken#START_ARRAY}. + * If not, it will do nothing. + * After skipping, stream will point to <b>matching</b> + * {@link JsonToken#END_OBJECT} or {@link JsonToken#END_ARRAY} + * (possibly skipping nested pairs of START/END OBJECT/ARRAY tokens + * as well as value tokens). + * The idea is that after calling this method, application + * will call {@link #nextToken} to point to the next + * available token, if any. + */ + public abstract JsonParser skipChildren() + throws IOException, JsonParseException; + + /** + * Method that can be called to determine whether this parser + * is closed or not. If it is closed, no new tokens can be + * retrieved by calling {@link #nextToken} (and the underlying + * stream may be closed). Closing may be due to an explicit + * call to {@link #close} or because parser has encountered + * end of input. + */ + public abstract boolean isClosed(); + + /* + /********************************************************** + /* Public API, token accessors + /********************************************************** + */ + + /** + * Accessor to find which token parser currently points to, if any; + * null will be returned if none. + * If return value is non-null, data associated with the token + * is available via other accessor methods. + * + * @return Type of the token this parser currently points to, + * if any: null before any tokens have been read, and + * after end-of-input has been encountered, as well as + * if the current token has been explicitly cleared. + */ + public JsonToken getCurrentToken() { + return _currToken; + } + + /** + * Method for checking whether parser currently points to + * a token (and data for that token is available). + * Equivalent to check for <code>parser.getCurrentToken() != null</code>. + * + * @return True if the parser just returned a valid + * token via {@link #nextToken}; false otherwise (parser + * was just constructed, encountered end-of-input + * and returned null from {@link #nextToken}, or the token + * has been consumed) + */ + public boolean hasCurrentToken() { + return _currToken != null; + } + + + /** + * Method called to "consume" the current token by effectively + * removing it so that {@link #hasCurrentToken} returns false, and + * {@link #getCurrentToken} null). + * Cleared token value can still be accessed by calling + * {@link #getLastClearedToken} (if absolutely needed), but + * usually isn't. + *<p> + * Method was added to be used by the optional data binder, since + * it has to be able to consume last token used for binding (so that + * it will not be used again). + */ + public void clearCurrentToken() { + if (_currToken != null) { + _lastClearedToken = _currToken; + _currToken = null; + } + } + + /** + * Method that can be called to get the name associated with + * the current token: for {@link JsonToken#FIELD_NAME}s it will + * be the same as what {@link #getText} returns; + * for field values it will be preceding field name; + * and for others (array values, root-level values) null. + */ + public abstract String getCurrentName() + throws IOException, JsonParseException; + + /** + * Method that can be used to access current parsing context reader + * is in. There are 3 different types: root, array and object contexts, + * with slightly different available information. Contexts are + * hierarchically nested, and can be used for example for figuring + * out part of the input document that correspond to specific + * array or object (for highlighting purposes, or error reporting). + * Contexts can also be used for simple xpath-like matching of + * input, if so desired. + */ + public abstract JsonStreamContext getParsingContext(); + + /** + * Method that return the <b>starting</b> location of the current + * token; that is, position of the first character from input + * that starts the current token. + */ + public abstract JsonLocation getTokenLocation(); + + /** + * Method that returns location of the last processed character; + * usually for error reporting purposes. + */ + public abstract JsonLocation getCurrentLocation(); + + /** + * Method that can be called to get the last token that was + * cleared using {@link #clearCurrentToken}. This is not necessarily + * the latest token read. + * Will return null if no tokens have been cleared, + * or if parser has been closed. + */ + public JsonToken getLastClearedToken() { + return _lastClearedToken; + } + + /** + * Specialized accessor that can be used to verify that the current + * token indicates start array (usually meaning that current token + * is {@link JsonToken#START_ARRAY}) when start array is expected. + * For some specialized parsers this can return true for other cases + * as well; this is usually done to emulate arrays. + *<p> + * Default implementation is equivalent to: + *<pre> + * getCurrentToken() == JsonToken.START_ARRAY + *</pre> + * but may be overridden by custom parser implementations. + * + * @return True if the current token can be considered as a + * start-array marker (such {@link JsonToken#START_ARRAY}); + * false if not. + * + * @since 1.7 + */ + public boolean isExpectedStartArrayToken() { + return getCurrentToken() == JsonToken.START_ARRAY; + } + + /* + /********************************************************** + /* Public API, access to token information, text + /********************************************************** + */ + + /** + * Method for accessing textual representation of the current token; + * if no current token (before first call to {@link #nextToken}, or + * after encountering end-of-input), returns null. + * Method can be called for any token type. + */ + public abstract String getText() + throws IOException, JsonParseException; + + /** + * Method similar to {@link #getText}, but that will return + * underlying (unmodifiable) character array that contains + * textual value, instead of constructing a String object + * to contain this information. + * Note, however, that: + *<ul> + * <li>Textual contents are not guaranteed to start at + * index 0 (rather, call {@link #getTextOffset}) to + * know the actual offset + * </li> + * <li>Length of textual contents may be less than the + * length of returned buffer: call {@link #getTextLength} + * for actual length of returned content. + * </li> + * </ul> + *<p> + * Note that caller <b>MUST NOT</b> modify the returned + * character array in any way -- doing so may corrupt + * current parser state and render parser instance useless. + *<p> + * The only reason to call this method (over {@link #getText}) + * is to avoid construction of a String object (which + * will make a copy of contents). + */ + public abstract char[] getTextCharacters() + throws IOException, JsonParseException; + + /** + * Accessor used with {@link #getTextCharacters}, to know length + * of String stored in returned buffer. + * + * @return Number of characters within buffer returned + * by {@link #getTextCharacters} that are part of + * textual content of the current token. + */ + public abstract int getTextLength() + throws IOException, JsonParseException; + + /** + * Accessor used with {@link #getTextCharacters}, to know offset + * of the first text content character within buffer. + * + * @return Offset of the first character within buffer returned + * by {@link #getTextCharacters} that is part of + * textual content of the current token. + */ + public abstract int getTextOffset() + throws IOException, JsonParseException; + + /** + * Method that can be used to determine whether calling of + * {@link #getTextCharacters} would be the most efficient + * way to access textual content for the event parser currently + * points to. + *<p> + * Default implementation simply returns false since only actual + * implementation class has knowledge of its internal buffering + * state. + * Implementations are strongly encouraged to properly override + * this method, to allow efficient copying of content by other + * code. + * + * @return True if parser currently has character array that can + * be efficiently returned via {@link #getTextCharacters}; false + * means that it may or may not exist + * + * @since 1.6 + */ + public boolean hasTextCharacters() { + return false; + } + + /* + /********************************************************** + /* Public API, access to token information, numeric + /********************************************************** + */ + + /** + * Generic number value accessor method that will work for + * all kinds of numeric values. It will return the optimal + * (simplest/smallest possible) wrapper object that can + * express the numeric value just parsed. + */ + public abstract Number getNumberValue() + throws IOException, JsonParseException; + + /** + * If current token is of type + * {@link JsonToken#VALUE_NUMBER_INT} or + * {@link JsonToken#VALUE_NUMBER_FLOAT}, returns + * one of {@link NumberType} constants; otherwise returns null. + */ + public abstract NumberType getNumberType() + throws IOException, JsonParseException; + + /** + * Numeric accessor that can be called when the current + * token is of type {@link JsonToken#VALUE_NUMBER_INT} and + * it can be expressed as a value of Java byte primitive type. + * It can also be called for {@link JsonToken#VALUE_NUMBER_FLOAT}; + * if so, it is equivalent to calling {@link #getDoubleValue} + * and then casting; except for possible overflow/underflow + * exception. + *<p> + * Note: if the resulting integer value falls outside range of + * Java byte, a {@link JsonParseException} + * will be thrown to indicate numeric overflow/underflow. + */ + public byte getByteValue() + throws IOException, JsonParseException + { + int value = getIntValue(); + // So far so good: but does it fit? + if (value < MIN_BYTE_I || value > MAX_BYTE_I) { + throw _constructError("Numeric value ("+getText()+") out of range of Java byte"); + } + return (byte) value; + } + + /** + * Numeric accessor that can be called when the current + * token is of type {@link JsonToken#VALUE_NUMBER_INT} and + * it can be expressed as a value of Java short primitive type. + * It can also be called for {@link JsonToken#VALUE_NUMBER_FLOAT}; + * if so, it is equivalent to calling {@link #getDoubleValue} + * and then casting; except for possible overflow/underflow + * exception. + *<p> + * Note: if the resulting integer value falls outside range of + * Java short, a {@link JsonParseException} + * will be thrown to indicate numeric overflow/underflow. + */ + public short getShortValue() + throws IOException, JsonParseException + { + int value = getIntValue(); + if (value < MIN_SHORT_I || value > MAX_SHORT_I) { + throw _constructError("Numeric value ("+getText()+") out of range of Java short"); + } + return (short) value; + } + + /** + * Numeric accessor that can be called when the current + * token is of type {@link JsonToken#VALUE_NUMBER_INT} and + * it can be expressed as a value of Java int primitive type. + * It can also be called for {@link JsonToken#VALUE_NUMBER_FLOAT}; + * if so, it is equivalent to calling {@link #getDoubleValue} + * and then casting; except for possible overflow/underflow + * exception. + *<p> + * Note: if the resulting integer value falls outside range of + * Java int, a {@link JsonParseException} + * may be thrown to indicate numeric overflow/underflow. + */ + public abstract int getIntValue() + throws IOException, JsonParseException; + + /** + * Numeric accessor that can be called when the current + * token is of type {@link JsonToken#VALUE_NUMBER_INT} and + * it can be expressed as a Java long primitive type. + * It can also be called for {@link JsonToken#VALUE_NUMBER_FLOAT}; + * if so, it is equivalent to calling {@link #getDoubleValue} + * and then casting to int; except for possible overflow/underflow + * exception. + *<p> + * Note: if the token is an integer, but its value falls + * outside of range of Java long, a {@link JsonParseException} + * may be thrown to indicate numeric overflow/underflow. + */ + public abstract long getLongValue() + throws IOException, JsonParseException; + + /** + * Numeric accessor that can be called when the current + * token is of type {@link JsonToken#VALUE_NUMBER_INT} and + * it can not be used as a Java long primitive type due to its + * magnitude. + * It can also be called for {@link JsonToken#VALUE_NUMBER_FLOAT}; + * if so, it is equivalent to calling {@link #getDecimalValue} + * and then constructing a {@link BigInteger} from that value. + */ + public abstract BigInteger getBigIntegerValue() + throws IOException, JsonParseException; + + /** + * Numeric accessor that can be called when the current + * token is of type {@link JsonToken#VALUE_NUMBER_FLOAT} and + * it can be expressed as a Java float primitive type. + * It can also be called for {@link JsonToken#VALUE_NUMBER_INT}; + * if so, it is equivalent to calling {@link #getLongValue} + * and then casting; except for possible overflow/underflow + * exception. + *<p> + * Note: if the value falls + * outside of range of Java float, a {@link JsonParseException} + * will be thrown to indicate numeric overflow/underflow. + */ + public abstract float getFloatValue() + throws IOException, JsonParseException; + + /** + * Numeric accessor that can be called when the current + * token is of type {@link JsonToken#VALUE_NUMBER_FLOAT} and + * it can be expressed as a Java double primitive type. + * It can also be called for {@link JsonToken#VALUE_NUMBER_INT}; + * if so, it is equivalent to calling {@link #getLongValue} + * and then casting; except for possible overflow/underflow + * exception. + *<p> + * Note: if the value falls + * outside of range of Java double, a {@link JsonParseException} + * will be thrown to indicate numeric overflow/underflow. + */ + public abstract double getDoubleValue() + throws IOException, JsonParseException; + + /** + * Numeric accessor that can be called when the current + * token is of type {@link JsonToken#VALUE_NUMBER_FLOAT} or + * {@link JsonToken#VALUE_NUMBER_INT}. No under/overflow exceptions + * are ever thrown. + */ + public abstract BigDecimal getDecimalValue() + throws IOException, JsonParseException; + + /* + /********************************************************** + /* Public API, access to token information, other + /********************************************************** + */ + + /** + * Convenience accessor that can be called when the current + * token is {@link JsonToken#VALUE_TRUE} or + * {@link JsonToken#VALUE_FALSE}. + *<p> + * Note: if the token is not of above-mentioned boolean types, + an integer, but its value falls + * outside of range of Java long, a {@link JsonParseException} + * may be thrown to indicate numeric overflow/underflow. + * + * @since 1.3 + */ + public boolean getBooleanValue() + throws IOException, JsonParseException + { + if (getCurrentToken() == JsonToken.VALUE_TRUE) return true; + if (getCurrentToken() == JsonToken.VALUE_FALSE) return false; + throw new JsonParseException("Current token ("+_currToken+") not of boolean type", getCurrentLocation()); + } + + /** + * Accessor that can be called if (and only if) the current token + * is {@link JsonToken#VALUE_EMBEDDED_OBJECT}. For other token types, + * null is returned. + *<p> + * Note: only some specialized parser implementations support + * embedding of objects (usually ones that are facades on top + * of non-streaming sources, such as object trees). + * + * @since 1.3 + */ + public Object getEmbeddedObject() + throws IOException, JsonParseException + { + // By default we will always return null + return null; + } + + /* + /********************************************************** + /* Public API, access to token information, binary + /********************************************************** + */ + + /** + * Method that can be used to read (and consume -- results + * may not be accessible using other methods after the call) + * base64-encoded binary data + * included in the current textual JSON value. + * It works similar to getting String value via {@link #getText} + * and decoding result (except for decoding part), + * but should be significantly more performant. + *<p> + * Note that non-decoded textual contents of the current token + * are not guaranteed to be accessible after this method + * is called. Current implementation, for example, clears up + * textual content during decoding. + * Decoded binary content, however, will be retained until + * parser is advanced to the next event. + * + * @param b64variant Expected variant of base64 encoded + * content (see {@link Base64Variants} for definitions + * of "standard" variants). + * + * @return Decoded binary data + */ + public abstract byte[] getBinaryValue(Base64Variant b64variant) throws IOException, JsonParseException; + + /** + * Convenience alternative to {@link #getBinaryValue(Base64Variant)} + * that defaults to using + * {@link Base64Variants#getDefaultVariant} as the default encoding. + */ + public byte[] getBinaryValue() throws IOException, JsonParseException + { + return getBinaryValue(Base64Variants.getDefaultVariant()); + } + + /* + /********************************************************** + /* Public API, access to token information, coercion/conversion + /********************************************************** + */ + + /** + * Method that will try to convert value of current token to a + * <b>int</b>. + * Numbers are coerced using default Java rules; booleans convert to 0 (false) + * and 1 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an int (including structured type + * markers like start/end Object/Array) + * default value of <b>0</b> will be returned; no exceptions are thrown. + * + * @since 1.6 + */ + public int getValueAsInt() throws IOException, JsonParseException { + return getValueAsInt(0); + } + + /** + * Method that will try to convert value of current token to a + * <b>int</b>. + * Numbers are coerced using default Java rules; booleans convert to 0 (false) + * and 1 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an int (including structured type + * markers like start/end Object/Array) + * specified <b>defaultValue</b> will be returned; no exceptions are thrown. + * + * @since 1.6 + */ + public int getValueAsInt(int defaultValue) throws IOException, JsonParseException { + return defaultValue; + } + + /** + * Method that will try to convert value of current token to a + * <b>long</b>. + * Numbers are coerced using default Java rules; booleans convert to 0 (false) + * and 1 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an int (including structured type + * markers like start/end Object/Array) + * default value of <b>0</b> will be returned; no exceptions are thrown. + * + * @since 1.6 + */ + public long getValueAsLong() throws IOException, JsonParseException { + return getValueAsLong(0L); + } + + /** + * Method that will try to convert value of current token to a + * <b>long</b>. + * Numbers are coerced using default Java rules; booleans convert to 0 (false) + * and 1 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an int (including structured type + * markers like start/end Object/Array) + * specified <b>defaultValue</b> will be returned; no exceptions are thrown. + * + * @since 1.6 + */ + public long getValueAsLong(long defaultValue) throws IOException, JsonParseException { + return defaultValue; + } + + /** + * Method that will try to convert value of current token to a Java + * <b>double</b>. + * Numbers are coerced using default Java rules; booleans convert to 0.0 (false) + * and 1.0 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an int (including structured types + * like Objects and Arrays), + * default value of <b>0.0</b> will be returned; no exceptions are thrown. + * + * @since 1.6 + */ + public double getValueAsDouble() throws IOException, JsonParseException { + return getValueAsDouble(0.0); + } + + /** + * Method that will try to convert value of current token to a + * Java <b>double</b>. + * Numbers are coerced using default Java rules; booleans convert to 0.0 (false) + * and 1.0 (true), and Strings are parsed using default Java language integer + * parsing rules. + *<p> + * If representation can not be converted to an int (including structured types + * like Objects and Arrays), + * specified <b>defaultValue</b> will be returned; no exceptions are thrown. + * + * @since 1.6 + */ + public double getValueAsDouble(double defaultValue) throws IOException, JsonParseException { + return defaultValue; + } + + /** + * Method that will try to convert value of current token to a + * <b>boolean</b>. + * JSON booleans map naturally; integer numbers other than 0 map to true, and + * 0 maps to false + * and Strings 'true' and 'false' map to corresponding values. + *<p> + * If representation can not be converted to a boolean value (including structured types + * like Objects and Arrays), + * default value of <b>false</b> will be returned; no exceptions are thrown. + * + * @since 1.7 + */ + public boolean getValueAsBoolean() throws IOException, JsonParseException { + return getValueAsBoolean(false); + } + + /** + * Method that will try to convert value of current token to a + * <b>boolean</b>. + * JSON booleans map naturally; integer numbers other than 0 map to true, and + * 0 maps to false + * and Strings 'true' and 'false' map to corresponding values. + *<p> + * If representation can not be converted to a boolean value (including structured types + * like Objects and Arrays), + * specified <b>defaultValue</b> will be returned; no exceptions are thrown. + * + * @since 1.7 + */ + public boolean getValueAsBoolean(boolean defaultValue) throws IOException, JsonParseException { + return defaultValue; + } + + /* + /********************************************************** + /* Public API, optional data binding functionality + /********************************************************** + */ + + /** + * Method to deserialize JSON content into a non-container + * type (it can be an array type, however): typically a bean, array + * or a wrapper type (like {@link java.lang.Boolean}). + * <b>Note</b>: method can only be called if the parser has + * an object codec assigned; this is true for parsers constructed + * by {@link org.codehaus.jackson.map.MappingJsonFactory} but + * not for {@link JsonFactory} (unless its <code>setCodec</code> + * method has been explicitly called). + *<p> + * This method may advance the event stream, for structured types + * the current token will be the closing end marker (END_ARRAY, + * END_OBJECT) of the bound structure. For non-structured Json types + * (and for {@link JsonToken#VALUE_EMBEDDED_OBJECT}) + * stream is not advanced. + *<p> + * Note: this method should NOT be used if the result type is a + * container ({@link java.util.Collection} or {@link java.util.Map}. + * The reason is that due to type erasure, key and value types + * can not be introspected when using this method. + */ + public <T> T readValueAs(Class<T> valueType) + throws IOException, JsonProcessingException + { + ObjectCodec codec = getCodec(); + if (codec == null) { + throw new IllegalStateException("No ObjectCodec defined for the parser, can not deserialize JSON into Java objects"); + } + return codec.readValue(this, valueType); + } + + /** + * Method to deserialize JSON content into a Java type, reference + * to which is passed as argument. Type is passed using so-called + * "super type token" + * and specifically needs to be used if the root type is a + * parameterized (generic) container type. + * <b>Note</b>: method can only be called if the parser has + * an object codec assigned; this is true for parsers constructed + * by {@link org.codehaus.jackson.map.MappingJsonFactory} but + * not for {@link JsonFactory} (unless its <code>setCodec</code> + * method has been explicitly called). + *<p> + * This method may advance the event stream, for structured types + * the current token will be the closing end marker (END_ARRAY, + * END_OBJECT) of the bound structure. For non-structured Json types + * (and for {@link JsonToken#VALUE_EMBEDDED_OBJECT}) + * stream is not advanced. + */ + @SuppressWarnings("unchecked") + public <T> T readValueAs(TypeReference<?> valueTypeRef) + throws IOException, JsonProcessingException + { + ObjectCodec codec = getCodec(); + if (codec == null) { + throw new IllegalStateException("No ObjectCodec defined for the parser, can not deserialize JSON into Java objects"); + } + /* Ugh. Stupid Java type erasure... can't just chain call,s + * must cast here also. + */ + return (T) codec.readValue(this, valueTypeRef); + } + + /** + * Method for reading sequence of Objects from parser stream, + * all with same specified value type. + * + * @since 1.9 + */ + public <T> Iterator<T> readValuesAs(Class<T> valueType) + throws IOException, JsonProcessingException + { + ObjectCodec codec = getCodec(); + if (codec == null) { + throw new IllegalStateException("No ObjectCodec defined for the parser, can not deserialize JSON into Java objects"); + } + return codec.readValues(this, valueType); + } + + /** + * Method for reading sequence of Objects from parser stream, + * all with same specified value type. + * + * @since 1.9 + */ + public <T> Iterator<T> readValuesAs(TypeReference<?> valueTypeRef) + throws IOException, JsonProcessingException + { + ObjectCodec codec = getCodec(); + if (codec == null) { + throw new IllegalStateException("No ObjectCodec defined for the parser, can not deserialize JSON into Java objects"); + } + return codec.readValues(this, valueTypeRef); + } + + /** + * Method to deserialize JSON content into equivalent "tree model", + * represented by root {@link JsonNode} of resulting model. + * For JSON Arrays it will an array node (with child nodes), + * for objects object node (with child nodes), and for other types + * matching leaf node type + */ + public JsonNode readValueAsTree() + throws IOException, JsonProcessingException + { + ObjectCodec codec = getCodec(); + if (codec == null) { + throw new IllegalStateException("No ObjectCodec defined for the parser, can not deserialize JSON into JsonNode tree"); + } + return codec.readTree(this); + } + + /* + /********************************************************** + /* Internal methods + /********************************************************** + */ + + /** + * Helper method for constructing {@link JsonParseException}s + * based on current state of the parser + */ + protected JsonParseException _constructError(String msg) + { + return new JsonParseException(msg, getCurrentLocation()); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/JsonProcessingException.java b/1.9.10/src/java/org/codehaus/jackson/JsonProcessingException.java new file mode 100644 index 0000000..329b471 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/JsonProcessingException.java
@@ -0,0 +1,80 @@ +package org.codehaus.jackson; + +/** + * Intermediate base class for all problems encountered when + * processing (parsing, generating) JSON content + * that are not pure I/O problems. + * Regular {@link java.io.IOException}s will be passed through as is. + * Sub-class of {@link java.io.IOException} for convenience. + */ +public class JsonProcessingException + extends java.io.IOException +{ + final static long serialVersionUID = 123; // Stupid eclipse... + + protected JsonLocation mLocation; + + protected JsonProcessingException(String msg, JsonLocation loc, Throwable rootCause) + { + /* Argh. IOException(Throwable,String) is only available starting + * with JDK 1.6... + */ + super(msg); + if (rootCause != null) { + initCause(rootCause); + } + mLocation = loc; + } + + protected JsonProcessingException(String msg) + { + super(msg); + } + + protected JsonProcessingException(String msg, JsonLocation loc) + { + this(msg, loc, null); + } + + protected JsonProcessingException(String msg, Throwable rootCause) + { + this(msg, null, rootCause); + } + + protected JsonProcessingException(Throwable rootCause) + { + this(null, null, rootCause); + } + + public JsonLocation getLocation() + { + return mLocation; + } + + /** + * Default method overridden so that we can add location information + */ + @Override + public String getMessage() + { + String msg = super.getMessage(); + if (msg == null) { + msg = "N/A"; + } + JsonLocation loc = getLocation(); + if (loc != null) { + StringBuilder sb = new StringBuilder(); + sb.append(msg); + sb.append('\n'); + sb.append(" at "); + sb.append(loc.toString()); + return sb.toString(); + } + return msg; + } + + @Override + public String toString() { + return getClass().getName()+": "+getMessage(); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/JsonStreamContext.java b/1.9.10/src/java/org/codehaus/jackson/JsonStreamContext.java new file mode 100644 index 0000000..d807c1d --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/JsonStreamContext.java
@@ -0,0 +1,122 @@ +/* Jackson JSON-processor. + * + * Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi + * + * Licensed under the License specified in file LICENSE, included with + * the source code and binary code bundles. + * You may not use this file except in compliance with the License. + * + * 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. + */ + +package org.codehaus.jackson; + +/** + * Shared base class for streaming processing contexts used during + * reading and writing of Json content using Streaming API. + * This context is also exposed to applications: + * context object can be used by applications to get an idea of + * relative position of the parser/generator within json content + * being processed. This allows for some contextual processing: for + * example, output within Array context can differ from that of + * Object context. + */ +public abstract class JsonStreamContext +{ + // // // Type constants used internally + + protected final static int TYPE_ROOT = 0; + protected final static int TYPE_ARRAY = 1; + protected final static int TYPE_OBJECT = 2; + + protected int _type; + + /** + * Index of the currently processed entry. Starts with -1 to signal + * that no entries have been started, and gets advanced each + * time a new entry is started, either by encountering an expected + * separator, or with new values if no separators are expected + * (the case for root context). + */ + protected int _index; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + protected JsonStreamContext() { } + + /* + /********************************************************** + /* Public API, accessors + /********************************************************** + */ + + /** + * Accessor for finding parent context of this context; will + * return null for root context. + */ + public abstract JsonStreamContext getParent(); + + /** + * Method that returns true if this context is an Array context; + * that is, content is being read from or written to a Json Array. + */ + public final boolean inArray() { return _type == TYPE_ARRAY; } + + /** + * Method that returns true if this context is a Root context; + * that is, content is being read from or written to without + * enclosing array or object structure. + */ + public final boolean inRoot() { return _type == TYPE_ROOT; } + + /** + * Method that returns true if this context is an Object context; + * that is, content is being read from or written to a Json Object. + */ + public final boolean inObject() { return _type == TYPE_OBJECT; } + + /** + * Method for accessing simple type description of current context; + * either ROOT (for root-level values), OBJECT (for field names and + * values of JSON Objects) or ARRAY (for values of JSON Arrays) + */ + public final String getTypeDesc() { + switch (_type) { + case TYPE_ROOT: return "ROOT"; + case TYPE_ARRAY: return "ARRAY"; + case TYPE_OBJECT: return "OBJECT"; + } + return "?"; + } + + /** + * @return Number of entries that are complete and started. + */ + public final int getEntryCount() + { + return _index + 1; + } + + /** + * @return Index of the currently processed entry, if any + */ + public final int getCurrentIndex() + { + return (_index < 0) ? 0 : _index; + } + + /** + * Method for accessing name associated with the current location. + * Non-null for <code>FIELD_NAME</code> and value events that directly + * follow field names; null for root level and array values. + */ + public abstract String getCurrentName(); +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/JsonToken.java b/1.9.10/src/java/org/codehaus/jackson/JsonToken.java new file mode 100644 index 0000000..268f6ca --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/JsonToken.java
@@ -0,0 +1,161 @@ +package org.codehaus.jackson; + +/** + * Enumeration for basic token types used for returning results + * of parsing JSON content. + */ +public enum JsonToken +{ + /* Some notes on implementation: + * + * - Entries are to be ordered such that start/end array/object + * markers come first, then field name marker (if any), and + * finally scalar value tokens. This is assumed by some + * typing checks. + */ + + /** + * NOT_AVAILABLE can be returned if {@link JsonParser} + * implementation can not currently return the requested + * token (usually next one), or even if any will be + * available, but that may be able to determine this in + * future. This is the case with non-blocking parsers -- + * they can not block to wait for more data to parse and + * must return something. + * + * @since 0.9.7 + */ + NOT_AVAILABLE(null), + + /** + * START_OBJECT is returned when encountering '{' + * which signals starting of an Object value. + */ + START_OBJECT("{"), + + /** + * START_OBJECT is returned when encountering '}' + * which signals ending of an Object value + */ + END_OBJECT("}"), + + /** + * START_OBJECT is returned when encountering '[' + * which signals starting of an Array value + */ + START_ARRAY("["), + + /** + * START_OBJECT is returned when encountering ']' + * which signals ending of an Array value + */ + END_ARRAY("]"), + + /** + * FIELD_NAME is returned when a String token is encountered + * as a field name (same lexical value, different function) + */ + FIELD_NAME(null), + + /** + * Placeholder token returned when the input source has a concept + * of embedded Object that are not accessible as usual structure + * (of starting with {@link #START_OBJECT}, having values, ending with + * {@link #END_OBJECT}), but as "raw" objects. + *<p> + * Note: this token is never returned by regular JSON readers, but + * only by readers that expose other kinds of source (like + * {@link JsonNode}-based JSON trees, Maps, Lists and such). + * + * @since 1.1 + */ + VALUE_EMBEDDED_OBJECT(null), + + /** + * VALUE_STRING is returned when a String token is encountered + * in value context (array element, field value, or root-level + * stand-alone value) + */ + VALUE_STRING(null), + + /** + * VALUE_NUMBER_INT is returned when an integer numeric token is + * encountered in value context: that is, a number that does + * not have floating point or exponent marker in it (consists + * only of an optional sign, followed by one or more digits) + */ + VALUE_NUMBER_INT(null), + + /** + * VALUE_NUMBER_INT is returned when a numeric token other + * that is not an integer is encountered: that is, a number that does + * have floating point or exponent marker in it, in addition + * to one or more digits. + */ + VALUE_NUMBER_FLOAT(null), + + /** + * VALUE_TRUE is returned when encountering literal "true" in + * value context + */ + VALUE_TRUE("true"), + + /** + * VALUE_FALSE is returned when encountering literal "false" in + * value context + */ + VALUE_FALSE("false"), + + /** + * VALUE_NULL is returned when encountering literal "null" in + * value context + */ + VALUE_NULL("null") + ; + + final String _serialized; + + final char[] _serializedChars; + + final byte[] _serializedBytes; + + /** + * @param Textual representation for this token, if there is a + * single static representation; null otherwise + */ + JsonToken(String token) + { + if (token == null) { + _serialized = null; + _serializedChars = null; + _serializedBytes = null; + } else { + _serialized = token; + _serializedChars = token.toCharArray(); + // It's all in ascii, can just case... + int len = _serializedChars.length; + _serializedBytes = new byte[len]; + for (int i = 0; i < len; ++i) { + _serializedBytes[i] = (byte) _serializedChars[i]; + } + } + } + + public String asString() { return _serialized; } + public char[] asCharArray() { return _serializedChars; } + public byte[] asByteArray() { return _serializedBytes; } + + public boolean isNumeric() { + return (this == VALUE_NUMBER_INT) || (this == VALUE_NUMBER_FLOAT); + } + + /** + * Method that can be used to check whether this token represents + * a valid non-structured value. This means all tokens other than + * Object/Array start/end markers all field names. + */ + public boolean isScalarValue() { + // note: up to 1.5, VALUE_EMBEDDED_OBJECT was incorrectly considered non-scalar! + return ordinal() >= VALUE_EMBEDDED_OBJECT.ordinal(); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/ObjectCodec.java b/1.9.10/src/java/org/codehaus/jackson/ObjectCodec.java new file mode 100644 index 0000000..f4ab963 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/ObjectCodec.java
@@ -0,0 +1,157 @@ +package org.codehaus.jackson; + +import java.io.IOException; +import java.util.Iterator; + +import org.codehaus.jackson.type.JavaType; +import org.codehaus.jackson.type.TypeReference; + +/** + * Abstract class that defines the interface that {@link JsonParser} and + * {@link JsonGenerator} use to serialize and deserialize regular + * Java objects (POJOs aka Beans). + *<p> + * The standard implementation of this class is + * {@link org.codehaus.jackson.map.ObjectMapper}. + */ +public abstract class ObjectCodec +{ + protected ObjectCodec() { } + + /* + /********************************************************** + /* API for de-serialization (JSON-to-Object) + /********************************************************** + */ + + /** + * Method to deserialize JSON content into a non-container + * type (it can be an array type, however): typically a bean, array + * or a wrapper type (like {@link java.lang.Boolean}). + *<p> + * Note: this method should NOT be used if the result type is a + * container ({@link java.util.Collection} or {@link java.util.Map}. + * The reason is that due to type erasure, key and value types + * can not be introspected when using this method. + */ + public abstract <T> T readValue(JsonParser jp, Class<T> valueType) + throws IOException, JsonProcessingException; + + /** + * Method to deserialize JSON content into a Java type, reference + * to which is passed as argument. Type is passed using so-called + * "super type token" + * and specifically needs to be used if the root type is a + * parameterized (generic) container type. + */ + public abstract <T> T readValue(JsonParser jp, TypeReference<?> valueTypeRef) + throws IOException, JsonProcessingException; + + /** + * Method to deserialize JSON content as tree expressed + * using set of {@link JsonNode} instances. Returns + * root of the resulting tree (where root can consist + * of just a single node if the current event is a + * value event, not container). + */ + public abstract <T> T readValue(JsonParser jp, JavaType valueType) + throws IOException, JsonProcessingException; + + /** + * Method to deserialize JSON content as tree expressed + * using set of {@link JsonNode} instances. Returns + * root of the resulting tree (where root can consist + * of just a single node if the current event is a + * value event, not container). + */ + public abstract JsonNode readTree(JsonParser jp) + throws IOException, JsonProcessingException; + + /** + * Method for reading sequence of Objects from parser stream, + * all with same specified value type. + * + * @since 1.9 + */ + public abstract <T> Iterator<T> readValues(JsonParser jp, Class<T> valueType) + throws IOException, JsonProcessingException; + + /** + * Method for reading sequence of Objects from parser stream, + * all with same specified value type. + * + * @since 1.9 + */ + public abstract <T> Iterator<T> readValues(JsonParser jp, TypeReference<?> valueTypeRef) + throws IOException, JsonProcessingException; + + /** + * Method for reading sequence of Objects from parser stream, + * all with same specified value type. + * + * @since 1.9 + */ + public abstract <T> Iterator<T> readValues(JsonParser jp, JavaType valueType) + throws IOException, JsonProcessingException; + + /* + /********************************************************** + /* API for serialization (Object-to-JSON) + /********************************************************** + */ + + /** + * Method to serialize given Java Object, using generator + * provided. + */ + public abstract void writeValue(JsonGenerator jgen, Object value) + throws IOException, JsonProcessingException; + + /** + * Method to serialize given Json Tree, using generator + * provided. + */ + public abstract void writeTree(JsonGenerator jgen, JsonNode rootNode) + throws IOException, JsonProcessingException; + + /* + /********************************************************** + /* API for Tree Model handling + /********************************************************** + */ + + /** + * Method for construct root level Object nodes + * for Tree Model instances. + * + * @since 1.2 + */ + public abstract JsonNode createObjectNode(); + + /** + * Method for construct root level Array nodes + * for Tree Model instances. + * + * @since 1.2 + */ + public abstract JsonNode createArrayNode(); + + /** + * Method for constructing a {@link JsonParser} for reading + * contents of a JSON tree, as if it was external serialized + * JSON content. + * + * @since 1.3 + */ + public abstract JsonParser treeAsTokens(JsonNode n); + + /** + * Convenience method for converting given JSON tree into instance of specified + * value type. This is equivalent to first constructing a {@link JsonParser} to + * iterate over contents of the tree, and using that parser for data binding. + * + * @since 1.3 + */ + public abstract <T> T treeToValue(JsonNode n, Class<T> valueType) + throws IOException, JsonProcessingException; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/PrettyPrinter.java b/1.9.10/src/java/org/codehaus/jackson/PrettyPrinter.java new file mode 100644 index 0000000..f02aeaa --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/PrettyPrinter.java
@@ -0,0 +1,166 @@ +package org.codehaus.jackson; + +import java.io.IOException; + +/** + * Interface for objects that implement pretty printer functionality, such + * as indentation. + * Pretty printers are used to add white space in output JSON content, + * to make results more human readable. Usually this means things like adding + * linefeeds and indentation. + */ +public interface PrettyPrinter +{ + /* + /********************************************************** + /* First methods that act both as events, and expect + /* output for correct functioning (i.e something gets + /* output even when not pretty-printing) + /********************************************************** + */ + + // // // Root-level handling: + + /** + * Method called after a root-level value has been completely + * output, and before another value is to be output. + *<p> + * Default + * handling (without pretty-printing) will output a space, to + * allow values to be parsed correctly. Pretty-printer is + * to output some other suitable and nice-looking separator + * (tab(s), space(s), linefeed(s) or any combination thereof). + */ + public void writeRootValueSeparator(JsonGenerator jg) + throws IOException, JsonGenerationException; + + // // Object handling + + /** + * Method called when an Object value is to be output, before + * any fields are output. + *<p> + * Default handling (without pretty-printing) will output + * the opening curly bracket. + * Pretty-printer is + * to output a curly bracket as well, but can surround that + * with other (white-space) decoration. + */ + public void writeStartObject(JsonGenerator jg) + throws IOException, JsonGenerationException; + + /** + * Method called after an Object value has been completely output + * (minus closing curly bracket). + *<p> + * Default handling (without pretty-printing) will output + * the closing curly bracket. + * Pretty-printer is + * to output a curly bracket as well, but can surround that + * with other (white-space) decoration. + * + * @param nrOfEntries Number of direct members of the array that + * have been output + */ + public void writeEndObject(JsonGenerator jg, int nrOfEntries) + throws IOException, JsonGenerationException; + + /** + * Method called after an object entry (field:value) has been completely + * output, and before another value is to be output. + *<p> + * Default handling (without pretty-printing) will output a single + * comma to separate the two. Pretty-printer is + * to output a comma as well, but can surround that with other + * (white-space) decoration. + */ + public void writeObjectEntrySeparator(JsonGenerator jg) + throws IOException, JsonGenerationException; + + /** + * Method called after an object field has been output, but + * before the value is output. + *<p> + * Default handling (without pretty-printing) will output a single + * colon to separate the two. Pretty-printer is + * to output a colon as well, but can surround that with other + * (white-space) decoration. + */ + public void writeObjectFieldValueSeparator(JsonGenerator jg) + throws IOException, JsonGenerationException; + + // // // Array handling + + /** + * Method called when an Array value is to be output, before + * any member/child values are output. + *<p> + * Default handling (without pretty-printing) will output + * the opening bracket. + * Pretty-printer is + * to output a bracket as well, but can surround that + * with other (white-space) decoration. + */ + public void writeStartArray(JsonGenerator jg) + throws IOException, JsonGenerationException; + + /** + * Method called after an Array value has been completely output + * (minus closing bracket). + *<p> + * Default handling (without pretty-printing) will output + * the closing bracket. + * Pretty-printer is + * to output a bracket as well, but can surround that + * with other (white-space) decoration. + * + * @param nrOfValues Number of direct members of the array that + * have been output + */ + public void writeEndArray(JsonGenerator jg, int nrOfValues) + throws IOException, JsonGenerationException; + + /** + * Method called after an array value has been completely + * output, and before another value is to be output. + *<p> + * Default handling (without pretty-printing) will output a single + * comma to separate the two. Pretty-printer is + * to output a comma as well, but can surround that with other + * (white-space) decoration. + */ + public void writeArrayValueSeparator(JsonGenerator jg) + throws IOException, JsonGenerationException; + + /* + /********************************************************** + /* Then events that by default do not produce any output + /* but that are often overridden to add white space + /* in pretty-printing mode + /********************************************************** + */ + + /** + * Method called after array start marker has been output, + * and right before the first value is to be output. + * It is <b>not</b> called for arrays with no values. + *<p> + * Default handling does not output anything, but pretty-printer + * is free to add any white space decoration. + */ + public void beforeArrayValues(JsonGenerator jg) + throws IOException, JsonGenerationException; + + /** + * Method called after object start marker has been output, + * and right before the field name of the first entry is + * to be output. + * It is <b>not</b> called for objects without entries. + *<p> + * Default handling does not output anything, but pretty-printer + * is free to add any white space decoration. + */ + public void beforeObjectEntries(JsonGenerator jg) + throws IOException, JsonGenerationException; +} +
diff --git a/1.9.10/src/java/org/codehaus/jackson/SerializableString.java b/1.9.10/src/java/org/codehaus/jackson/SerializableString.java new file mode 100644 index 0000000..de2e747 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/SerializableString.java
@@ -0,0 +1,54 @@ +package org.codehaus.jackson; + +/** + * Interface that defines how Jackson package can interact with efficient + * pre-serialized or lazily-serialized and reused String representations. + * Typically implementations store possible serialized version(s) so that + * serialization of String can be done more efficiently, especially when + * used multiple times. + * + * @since 1.7 (1.6 introduced implementation, but interface extracted later) + * + * @see org.codehaus.jackson.io.SerializedString + */ +public interface SerializableString +{ + /** + * Returns unquoted String that this object represents (and offers + * serialized forms for) + */ + public String getValue(); + + /** + * Returns length of the (unquoted) String as characters. + * Functionally equvalent to: + *<pre> + * getValue().length(); + *</pre> + */ + public int charLength(); + + /** + * Returns JSON quoted form of the String, as character array. Result + * can be embedded as-is in textual JSON as property name or JSON String. + */ + public char[] asQuotedChars(); + + /** + * Returns UTF-8 encoded version of unquoted String. + * Functionally equivalent to (but more efficient than): + *<pre> + * getValue().getBytes("UTF-8"); + *</pre> + */ + public byte[] asUnquotedUTF8(); + + /** + * Returns UTF-8 encoded version of JSON-quoted String. + * Functionally equivalent to (but more efficient than): + *<pre> + * new String(asQuotedChars()).getBytes("UTF-8"); + *</pre> + */ + public byte[] asQuotedUTF8(); +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/Version.java b/1.9.10/src/java/org/codehaus/jackson/Version.java new file mode 100644 index 0000000..f8435f2 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/Version.java
@@ -0,0 +1,90 @@ +package org.codehaus.jackson; + +/** + * Object that encapsulates version information of a component, + * and is return by {@link Versioned#version}. + * + * @since 1.6 + */ +public class Version + implements Comparable<Version> +{ + private final static Version UNKNOWN_VERSION = new Version(0, 0, 0, null); + + protected final int _majorVersion; + + protected final int _minorVersion; + + protected final int _patchLevel; + + /** + * Additional information for snapshot versions; null for non-snapshot + * (release) versions. + */ + protected final String _snapshotInfo; + + public Version(int major, int minor, int patchLevel, + String snapshotInfo) + { + _majorVersion = major; + _minorVersion = minor; + _patchLevel = patchLevel; + _snapshotInfo = snapshotInfo; + } + + /** + * Method returns canonical "not known" version, which is used as version + * in cases where actual version information is not known (instead of null). + */ + public static Version unknownVersion() { return UNKNOWN_VERSION; } + + public boolean isUknownVersion() { return (this == UNKNOWN_VERSION); } + public boolean isSnapshot() { return (_snapshotInfo != null && _snapshotInfo.length() > 0); } + + public int getMajorVersion() { return _majorVersion; } + public int getMinorVersion() { return _minorVersion; } + public int getPatchLevel() { return _patchLevel; } + + @Override + public String toString() + { + StringBuilder sb = new StringBuilder(); + sb.append(_majorVersion).append('.'); + sb.append(_minorVersion).append('.'); + sb.append(_patchLevel); + if (isSnapshot()) { + sb.append('-').append(_snapshotInfo); + } + return sb.toString(); + } + + @Override + public int hashCode() { + return _majorVersion + _minorVersion + _patchLevel; + } + + @Override + public boolean equals(Object o) + { + if (o == this) return true; + if (o == null) return false; + if (o.getClass() != getClass()) return false; + Version other = (Version) o; + return (other._majorVersion == _majorVersion) + && (other._minorVersion == _minorVersion) + && (other._patchLevel == _patchLevel); + } + + @Override + public int compareTo(Version other) + { + int diff = _majorVersion - other._majorVersion; + if (diff == 0) { + diff = _minorVersion - other._minorVersion; + if (diff == 0) { + diff = _patchLevel - other._patchLevel; + } + } + return diff; + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/Versioned.java b/1.9.10/src/java/org/codehaus/jackson/Versioned.java new file mode 100644 index 0000000..1fa39ad --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/Versioned.java
@@ -0,0 +1,20 @@ +package org.codehaus.jackson; + +/** + * Interface that those Jackson components that are explicitly versioned will implement. + * Intention is to allow both plug-in components (custom extensions) and applications and + * frameworks that use Jackson to detect exact version of Jackson in use. + * This may be useful for example for ensuring that proper Jackson version is deployed + * (beyond mechanisms that deployment system may have), as well as for possible + * workarounds. + * + * @since 1.6 + */ +public interface Versioned { + /** + * Method called to detect version of the component that implements this interface; + * returned version should never be null, but may return specific "not available" + * instance (see {@link Version} for details). + */ + public Version version(); +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JacksonAnnotation.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JacksonAnnotation.java new file mode 100644 index 0000000..25bf61e --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JacksonAnnotation.java
@@ -0,0 +1,20 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Meta-annotation (annotations used on other annotations) + * used for marking all annotations that are + * part of Jackson package. Can be used for recognizing all + * Jackson annotations generically, and in future also for + * passing other generic annotation configuration. + */ +@Target({ElementType.ANNOTATION_TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface JacksonAnnotation +{ + // for now, a pure tag annotation, no parameters +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonAnyGetter.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonAnyGetter.java new file mode 100644 index 0000000..9fc8dc7 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonAnyGetter.java
@@ -0,0 +1,25 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that can be used to define a non-static, + * no-argument method or member field as something of a reverse of + * {@link JsonAnySetter} method; basically being used like a + * getter but such that contents of the returned Map (type <b>must</b> be + * {@link java.util.Map}) are serialized as if they were actual properties + * of the bean that contains method/field with this annotations. + * As with {@link JsonAnySetter}, only one property should be annotated + * with this annotation. + * + * @since 1.6 + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonAnyGetter +{ +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonAnySetter.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonAnySetter.java new file mode 100644 index 0000000..04aa3ca --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonAnySetter.java
@@ -0,0 +1,24 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that can be used to define a non-static, + * single-argument method, to be used as a "fallback" handler + * for all otherwise unrecognized properties found from Json content. + * It is similar to {@link javax.xml.bind.annotation.XmlAnyElement} + * in behavior; and can only be used to denote a single property + * per type. + *<p> + * If used, all otherwise unmapped key-value pairs from Json Object + * structs are added to the property (of type Map or bean). + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonAnySetter +{ +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonAutoDetect.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonAutoDetect.java new file mode 100644 index 0000000..9c82265 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonAutoDetect.java
@@ -0,0 +1,148 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.lang.reflect.Member; +import java.lang.reflect.Modifier; + +/** + * Class annotation that can be used to define which kinds of Methods + * are to be detected by auto-detection. + * Auto-detection means using name conventions + * and/or signature templates to find methods to use for data binding. + * For example, so-called "getters" can be auto-detected by looking for + * public member methods that return a value, do not take argument, + * and have prefix "get" in their name. + *<p> + * Pseudo-value <code>NONE</code> means that all auto-detection is disabled + * for the <b>specific</b> class that annotation is applied to (including + * its super-types, but only when resolving that class). + * Pseudo-value <code>ALWAYS</code> means that auto-detection is enabled + * for all method types for the class in similar way. + *<p> + * The default value is <code>ALWAYS</code>: that is, by default, auto-detection + * is enabled for all classes unless instructed otherwise. + *<p> + * Starting with version 1.5, it is also possible to use more fine-grained + * definitions, to basically define minimum visibility level needed. Defaults + * are different for different types (getters need to be public; setters can + * have any access modifier, for example). + */ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonAutoDetect +{ + /** + * Enumeration for possible visibility thresholds (minimum visibility) + * that can be used to limit which methods (and fields) are + * auto-detected. + * + * @since 1.5 + */ + public enum Visibility { + /** + * Value that means that all kinds of access modifiers are acceptable, + * from private to public. + */ + ANY, + /** + * Value that means that any other access modifier other than 'private' + * is considered auto-detectable. + */ + NON_PRIVATE, + /** + * Value that means access modifiers 'protected' and 'public' are + * auto-detectable (and 'private' and "package access" == no modifiers + * are not) + */ + PROTECTED_AND_PUBLIC, + /** + * Value to indicate that only 'public' access modifier is considered + * auto-detectable. + */ + PUBLIC_ONLY, + /** + * Value that indicates that no access modifiers are auto-detectable: + * this can be used to explicitly disable auto-detection for specified + * types. + */ + NONE, + + /** + * Value that indicates that default visibility level (whatever it is, + * depends on context) is to be used. This usually means that inherited + * value (from parent visibility settings) is to be used. + */ + DEFAULT; + + public boolean isVisible(Member m) { + switch (this) { + case ANY: + return true; + case NONE: + return false; + case NON_PRIVATE: + return !Modifier.isPrivate(m.getModifiers()); + case PROTECTED_AND_PUBLIC: + if (Modifier.isProtected(m.getModifiers())) { + return true; + } + // fall through to public case: + case PUBLIC_ONLY: + return Modifier.isPublic(m.getModifiers()); + } + return false; + } + } + + /** + * Types of property elements (getters, setters, fields, creators) that + * can be auto-detected. + * NOTE: as of 1.5, it is recommended that instead of defining this property, + * distinct visibility properties are used instead. This because levels + * used with this method are not explicit, but global defaults that differ for different + * methods. As such, this property can be considered <b>deprecated</b> and + * only retained for backwards compatibility. + */ + JsonMethod[] value() default { JsonMethod.ALL }; + + /** + * Minimum visibility required for auto-detecting regular getter methods. + * + * @since 1.5 + */ + Visibility getterVisibility() default Visibility.DEFAULT; + + /** + * Minimum visibility required for auto-detecting is-getter methods. + * + * @since 1.5 + */ + Visibility isGetterVisibility() default Visibility.DEFAULT; + + /** + * Minimum visibility required for auto-detecting setter methods. + * + * @since 1.5 + */ + Visibility setterVisibility() default Visibility.DEFAULT; + + /** + * Minimum visibility required for auto-detecting Creator methods, + * except for no-argument constructors (which are always detected + * no matter what). + * + * @since 1.5 + */ + Visibility creatorVisibility() default Visibility.DEFAULT; + + /** + * Minimum visibility required for auto-detecting member fields. + * + * @since 1.5 + */ + Visibility fieldVisibility() default Visibility.DEFAULT; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonBackReference.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonBackReference.java new file mode 100644 index 0000000..d3e79cb --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonBackReference.java
@@ -0,0 +1,41 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate that associated property is part of + * two-way linkage between fields; and that its role is "child" (or "back") link. + * Value type of the property must be a bean: it can not be a Collection, Map, + * Array or enumeration. + * Linkage is handled such that the property + * annotated with this annotation is not serialized; and during deserialization, + * its value is set to instance that has the "managed" (forward) link. + *<p> + * All references have logical name to allow handling multiple linkages; typical case + * would be that where nodes have both parent/child and sibling linkages. If so, + * pairs of references should be named differently. + * It is an error for a class to have multiple back references with same name, + * even if types pointed are different. + *<p> + * Note: only methods and fields can be annotated with this annotation: constructor + * arguments should NOT be annotated, as they can not be either managed or back + * references. + * + * @author tatu + */ +@Target({ElementType.FIELD, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonBackReference +{ + /** + * Logical have for the reference property pair; used to link managed and + * back references. Default name can be used if there is just single + * reference pair (for example, node class that just has parent/child linkage, + * consisting of one managed reference and matching back reference) + */ + public String value() default "defaultReference"; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonCreator.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonCreator.java new file mode 100644 index 0000000..72feac8 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonCreator.java
@@ -0,0 +1,19 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that can be used to define constructors and factory + * methods as one to use for instantiating new instances of the associated + * class. + */ +@Target({ElementType.METHOD, ElementType.CONSTRUCTOR}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonCreator +{ + // no values, since there's no property +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonGetter.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonGetter.java new file mode 100644 index 0000000..312ac98 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonGetter.java
@@ -0,0 +1,35 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that can be used to define a non-static, + * no-argument value-returning (non-void) method to be used as a "getter" + * for a logical property, + * as an alternative to recommended + * {@link JsonProperty} annotation (which was introduced in version 1.1). + *<p> + * Getter means that when serializing Object instance of class that has + * this method (possibly inherited from a super class), a call is made + * through the method, and return value will be serialized as value of + * the property. + * + * @deprecated Use {@link JsonProperty} instead (deprecated since version 1.5) + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +@Deprecated +public @interface JsonGetter +{ + /** + * Defines name of the logical property this + * method is used to access ("get"); empty String means that + * name should be derived from the underlying method (using + * standard Bean name detection rules) + */ + String value() default ""; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonIgnore.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonIgnore.java new file mode 100644 index 0000000..bf194d7 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonIgnore.java
@@ -0,0 +1,57 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that indicates that the annotated method or field is to be + * ignored by introspection-based + * serialization and deserialization functionality. That is, it should + * not be consider a "getter", "setter" or "creator". + *<p> + * In addition, starting with Jackson 1.9, if this is the only annotation + * associated with a property, it will also cause cause the whole + * property to be ignored: that is, if setter has this annotation and + * getter has no annotations, getter is also effectively ignored. + * It is still possible for different accessors to use different + * annotations; so if only "getter" is to be ignored, other accessors + * (setter or field) would need explicit annotation to prevent + * ignoral (usually {@link JsonProperty}). + * <p> + * For example, a "getter" method that would otherwise denote + * a property (like, say, "getValue" to suggest property "value") + * to serialize, would be ignored and no such property would + * be output unless another annotation defines alternative method to use. + *<p> + * Before version 1.9, this annotation worked purely on method-by-method (or field-by-field) + * basis; annotation on one method or field does not imply ignoring other methods + * or fields. However, with version 1.9 and above, annotations associated + * with various accessors (getter, setter, field, constructor parameter) of + * a logical property are combined; meaning that annotations may be effectly + * combined. + *<p> + * Annotation is usually used just a like a marker annotation, that + * is, without explicitly defining 'value' argument (which defaults + * to <code>true</code>): but argument can be explicitly defined. + * This can be done to override an existing JsonIgnore by explictly + * defining one with 'false' argument. + *<p> + * Annotation is similar to {@link javax.xml.bind.annotation.XmlTransient} + */ +@Target({ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonIgnore +{ + /** + * Optional argument that defines whether this annotation is active + * or not. The only use for value 'false' if for overriding purposes + * (which is not needed often); most likely it is needed for use + * with "mix-in annotations" (aka "annotation overrides"). + * For most cases, however, default value of "true" is just fine + * and should be omitted. + */ + boolean value() default true; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonIgnoreProperties.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonIgnoreProperties.java new file mode 100644 index 0000000..aa825e8 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonIgnoreProperties.java
@@ -0,0 +1,48 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation that can be used to either suppress serialization of + * properties (during serialization), or ignore processing of + * JSON properties read (during deserialization). + *<p> + * Example: + *<pre> + * // to prevent specified fields from being serialized or deserialized + * // (i.e. not include in JSON output; or being set even if they were included) + * \@JsonIgnoreProperties({ "internalId", "secretKey" }) + * // To ignore any unknown properties in JSON input without exception: + * \@JsonIgnoreProperties(ignoreUnknown=true) + *</pre> + *<p> + * Only applicable to classes, not for properties (getters, setters, fields). + * + * @since 1.4 + */ +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonIgnoreProperties +{ + /** + * Names of properties to ignore. + */ + public String[] value() default { }; + + /** + * Property that defines whether it is ok to just ignore any + * unrecognized properties during deserialization. + * If true, all properties that are unrecognized -- that is, + * there are no setters or creators that accept them -- are + * ignored without warnings (although handlers for unknown + * properties, if any, will still be called) without + * exception. + *<p> + * Does not have any effect on serialization. + */ + public boolean ignoreUnknown() default false; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonIgnoreType.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonIgnoreType.java new file mode 100644 index 0000000..cd3d10e --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonIgnoreType.java
@@ -0,0 +1,33 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that indicates that all properties of annotated + * type are to be ignored during serialization and deserialization. + *<p> + * Note: annotation does have boolean 'value' property (which defaults + * to 'true'), so that it is actually possible to override value + * using mix-in annotations. + * + * @since 1.7 + */ +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonIgnoreType +{ + /** + * Optional argument that defines whether this annotation is active + * or not. The only use for value 'false' if for overriding purposes + * (which is not needed often); most likely it is needed for use + * with "mix-in annotations" ("annotation overrides"). + * For most cases, however, default value of "true" is just fine + * and should be omitted. + */ + boolean value() default true; + +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonManagedReference.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonManagedReference.java new file mode 100644 index 0000000..ddb670a --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonManagedReference.java
@@ -0,0 +1,41 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate that annotated property is part of + * two-way linkage between fields; and that its role is "parent" (or "forward") link. + * Value type (class) of property must have a single compatible property annotated with + * {@link JsonBackReference}. Linkage is handled such that the property + * annotated with this annotation is handled normally (serialized normally, no + * special handling for deserialization); it is the matching back reference + * that requires special handling + *<p> + * All references have logical name to allow handling multiple linkages; typical case + * would be that where nodes have both parent/child and sibling linkages. If so, + * pairs of references should be named differently. + * It is an error for a class too have multiple managed references with same name, + * even if types pointed are different. + *<p> + * Note: only methods and fields can be annotated with this annotation: constructor + * arguments should NOT be annotated, as they can not be either managed or back + * references. + * + * @author tatu + */ +@Target({ElementType.FIELD, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonManagedReference +{ + /** + * Logical have for the reference property pair; used to link managed and + * back references. Default name can be used if there is just single + * reference pair (for example, node class that just has parent/child linkage, + * consisting of one managed reference and matching back reference) + */ + public String value() default "defaultReference"; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonMethod.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonMethod.java new file mode 100644 index 0000000..2588b1f --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonMethod.java
@@ -0,0 +1,90 @@ +package org.codehaus.jackson.annotate; + +/** + * Enumeration used to define kinds of methods that annotations like + * {@link JsonAutoDetect} apply to. + *<p> + * In addition to actual method types (GETTER, SETTER, CREATOR; and + * sort-of-method, FIELD), 2 pseudo-types + * are defined for convenience: <code>ALWAYS</code> and <code>NONE</code>. These + * can be used to indicate, all or none of available method types (respectively), + * for use by annotations that takes <code>JsonMethod</code> argument. + */ +public enum JsonMethod +{ + /** + * Getters are methods used to get a POJO field value for serialization, + * or, under certain conditions also for de-serialization. Latter + * can be used for effectively setting Collection or Map values + * in absence of setters, iff returned value is not a copy but + * actual value of the logical property. + *<p> + * Since version 1.3, this does <b>NOT</b> include "is getters" (methods + * that return boolean and named 'isXxx' for property 'xxx'); instead, + * {@link #IS_GETTER} is used}. + */ + GETTER, + + /** + * Setters are methods used to set a POJO value for deserialization. + */ + SETTER, + + /** + * Creators are constructors and (static) factory methods used to + * construct POJO instances for deserialization + */ + CREATOR, + + /** + * Field refers to fields of regular Java objects. Although + * they are not really methods, addition of optional field-discovery + * in version 1.1 meant that there was need to enable/disable + * their auto-detection, and this is the place to add it in. + * + * @since 1.1 + */ + FIELD, + + /** + * "Is getters" are getter-like methods that are named "isXxx" + * (instead of "getXxx" for getters) and return boolean value + * (either primitive, or {@link java.lang.Boolean}). + * + * @since 1.3 + */ + IS_GETTER, + + /** + * This pseudo-type indicates that none of real types is included + */ + NONE, + + /** + * This pseudo-type indicates that all of real types are included + */ + ALL + ; + + private JsonMethod() { } + + public boolean creatorEnabled() { + return (this == CREATOR) || (this == ALL); + } + + public boolean getterEnabled() { + return (this == GETTER) || (this == ALL); + } + + public boolean isGetterEnabled() { + return (this == IS_GETTER) || (this == ALL); + } + + public boolean setterEnabled() { + return (this == SETTER) || (this == ALL); + } + + public boolean fieldEnabled() { + return (this == FIELD) || (this == ALL); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonProperty.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonProperty.java new file mode 100644 index 0000000..fdad341 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonProperty.java
@@ -0,0 +1,38 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that can be used to define a non-static + * method as a "setter" or "getter" for a logical property + * (depending on its signature), + * or non-static object field to be used (serialized, deserialized) as + * a logical property. + *<p> + * Default value ("") indicates that the field name is used + * as the property name without any modifications, but it + * can be specified to non-empty value to specify different + * name. Property name refers to name used externally, as + * the field name in Json objects. + *<p> + * NOTE: since version 1.1, annotation has also been applicable + * to fields (not with 1.0). + *<p> + * NOTE: since version 1.2, annotation has also been applicable + * to (constructor) parameters + */ +@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonProperty +{ + /** + * Defines name of the logical property, i.e. Json object field + * name to use for the property: if empty String (which is the + * default), will use name of the field that is annotated. + */ + String value() default ""; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonPropertyOrder.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonPropertyOrder.java new file mode 100644 index 0000000..b86ec16 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonPropertyOrder.java
@@ -0,0 +1,46 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation that can be used to define ordering (possibly partial) to use + * when serializing object properties. Properties included in annotation + * declaration will be serialized first (in defined order), followed by + * any properties not included in the definition. + * Annotation definition will override any implicit orderings (such as + * guarantee that Creator-properties are serialized before non-creator + * properties) + *<p> + * Examples: + *<pre> + * // ensure that "id" and "name" are output before other properties + * <div>@</div>JsonPropertyOrder({ "id", "name" }) + * // order any properties that don't have explicit setting using alphabetic order + * <div>@</div>JsonPropertyOrder(alphabetic=true) + *</pre> + *<p> + * This annotation has no effect on deserialization. + * + * @since 1.4 + */ +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonPropertyOrder +{ + /** + * Order in which properties of annotated object are to be serialized in. + */ + public String[] value() default { }; + + /** + * Property that defines what to do regarding ordering of properties + * not explicitly included in annotation instance. If set to true, + * they will be alphabetically ordered; if false, order is + * undefined (default setting) + */ + public boolean alphabetic() default false; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonRawValue.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonRawValue.java new file mode 100644 index 0000000..38bb58a --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonRawValue.java
@@ -0,0 +1,33 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that indicates that the annotated method + * or field should be serialized by including literal String value + * of the property as is, without quoting of characters. + * This can be useful for injecting values already serialized in JSON or + * passing javascript function definitions from server to a javascript client. + *<p> + * Warning: the resulting JSON stream may be invalid depending on your input value. + * + * @since 1.7.0 + */ +@Target( { ElementType.METHOD, ElementType.FIELD }) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonRawValue +{ + /** + * Optional argument that defines whether this annotation is active + * or not. The only use for value 'false' if for overriding purposes + * (which is not needed often); most likely it is needed for use + * with "mix-in annotations" (aka "annotation overrides"). + * For most cases, however, default value of "true" is just fine + * and should be omitted. + */ + boolean value() default true; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonSetter.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonSetter.java new file mode 100644 index 0000000..c96bd03 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonSetter.java
@@ -0,0 +1,33 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that can be used to define a non-static, + * single-argument method to be used as a "setter" for a logical property + * as an alternative to recommended + * {@link JsonProperty} annotation (which was introduced in version 1.1). + *<p> + * Setter means that when a property with matching name is encountered in + * JSON content, this method will be used to set value of the property. + *<p> + * NOTE: this annotation was briefly deprecated for version 1.5; but has + * since been un-deprecated to both allow for asymmetric naming (possibly + * different name when reading and writing JSON), and more importantly to + * allow multi-argument setter method in future. + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonSetter +{ + /** + * Optional default argument that defines logical property this + * method is used to modify ("set"); this is the property + * name used in JSON content. + */ + String value() default ""; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonSubTypes.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonSubTypes.java new file mode 100644 index 0000000..ae873bc --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonSubTypes.java
@@ -0,0 +1,44 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation used with {@link JsonTypeInfo} to indicate sub types of serializable + * polymorphic types, and to associate logical names used within JSON content + * (which is more portable than using physical Java class names). + * + * @since 1.5 (but available to fields, methods and constructor params only since 1.8) + */ +@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonSubTypes { + /** + * Subtypes of the annotated type (annotated class, or property value type + * associated with the annotated method). These will be checked recursively + * so that types can be defined by only including direct subtypes. + */ + public Type[] value(); + + /** + * Definition of a subtype, along with optional name. If name is missing, class + * of the type will be checked for {@link JsonTypeName} annotation; and if that + * is also missing or empty, a default + * name will be constructed by type id mechanism. + * Default name is usually based on class name. + */ + public @interface Type { + /** + * Class of the subtype + */ + public Class<?> value(); + + /** + * Logical type name used as the type identifier for the class + */ + public String name() default ""; + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonTypeInfo.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonTypeInfo.java new file mode 100644 index 0000000..244a7fe --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonTypeInfo.java
@@ -0,0 +1,236 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.*; + +/** + * Annotation used for configuring details of if and how type information is + * used with JSON serialization and deserialization, to preserve information + * about actual class of Object instances. This is necessarily for polymorphic + * types, and may also be needed to link abstract declared types and matching + * concrete implementation. + *<p> + * Some examples of typical annotations: + *<pre> + * // Include Java class name ("com.myempl.ImplClass") as JSON property "class" + * @JsonTypeInfo(use=Id.CLASS, include=As.PROPERTY, property="class") + * + * // Include logical type name (defined in impl classes) as wrapper; 2 annotations + * @JsonTypeInfo(use=Id.NAME, include=As.WRAPPER_OBJECT) + * @JsonSubTypes({com.myemp.Impl1.class, com.myempl.Impl2.class}) + *</pre> + * Alternatively you can also define fully customized type handling by using + * {@link org.codehaus.jackson.map.annotate.JsonTypeResolver} annotation. + *<p> + * NOTE: originally this annotation was only available to use with types (classes), + * but starting with 1.7, it is also allowed for properties (fields, methods, + * constructor parameters). + *<p> + * When used for properties (fields, methods), this annotation applies + * to <b>values</b>: so when applied to structure types + * (like {@link java.util.Collection}, {@link java.util.Map}, arrays), + * will apply to contained values, not the container; + * for non-structured types there is no difference. + * This is identical to how JAXB handles type information + * annotations; and is chosen since it is the dominant use case. + * There is no per-property way to force type information to be included + * for type of container (structured type); for container types one has + * to use annotation for type declaration. + * + * @see org.codehaus.jackson.map.annotate.JsonTypeResolver + * + * @since 1.5 (but available to fields, methods and constructor parameters since 1.7) + * + * @author tatu + */ +@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonTypeInfo +{ + /* + /********************************************************** + /* Value enumerations used for properties + /********************************************************** + */ + + /** + * Definition of different type identifiers that can be included in JSON + * during serialization, and used for deserialization. + */ + public enum Id { + /** + * This means that no explicit type metadata is included, and typing is + * purely done using contextual information possibly augmented with other + * annotations. + *<p> + * Note: no {@link org.codehaus.jackson.map.jsontype.TypeIdResolver} + * is constructed if this value is used. + */ + NONE(null), + + /** + * Means that fully-qualified Java class name is used as the type identifier. + */ + CLASS("@class"), + + /** + * Means that Java class name with minimal path is used as the type identifier. + * Minimal means that only the class name, and that part of preceding Java + * package name is included that is needed to construct fully-qualified name + * given fully-qualified name of the declared supertype; additionally a single + * leading dot ('.') must be used to indicate that partial class name is used. + * For example, for supertype "com.foobar.Base", and concrete type + * "com.foo.Impl", only ".Impl" would be included; and for "com.foo.impl.Impl2" + * only ".impl.Impl2" would be included.<br /> + * <b>NOTE</b>: leading dot ('.') MUST be used to denote partial (minimal) name; + * if it is missing, value is assumed to be fully-qualified name. Fully-qualified + * name is used in cases where subtypes are not in same package (or sub-package + * thereof) as base class. + *<p> + * If all related classes are in the same Java package, this option can reduce + * amount of type information overhead, especially for small types. + * However, please note that using this alternative is inherently risky since it + * assumes that the + * supertype can be reliably detected. Given that it is based on declared type + * (since ultimate supertype, <code>java.lang.Object</code> would not be very + * useful reference point), this may not always work as expected. + */ + MINIMAL_CLASS("@c"), + + /** + * Means that logical type name is used as type information; name will then need + * to be separately resolved to actual concrete type (Class). + */ + NAME("@type"), + + /** + * Means that typing mechanism uses customized handling, with possibly + * custom configuration. This means that semantics of other properties is + * not defined by Jackson package, but by the custom implementation. + */ + CUSTOM(null) + ; + + private final String _defaultPropertyName; + + private Id(String defProp) { + _defaultPropertyName = defProp; + } + + public String getDefaultPropertyName() { return _defaultPropertyName; } + } + + /** + * Definition of standard type inclusion mechanisms for type metadata. + * Used for standard metadata types, except for {@link Id#NONE}. + * May or may not be used for custom types ({@link Id#CUSTOM}). + */ + public enum As { + /** + * Inclusion mechanism that uses a single configurable property, included + * along with actual data (POJO properties) as a separate meta-property. + * <p> + * Default choice for inclusion. + */ + PROPERTY, + + /** + * Inclusion mechanism that wraps typed JSON value (POJO + * serialized as JSON) in + * a JSON Object that has a single entry, + * where field name is serialized type identifier, + * and value is the actual JSON value. + *<p> + * Note: can only be used if type information can be serialized as + * String. This is true for standard type metadata types, but not + * necessarily for custom types. + */ + WRAPPER_OBJECT, + + /** + * Inclusion mechanism that wraps typed JSON value (POJO + * serialized as JSON) in + * a 2-element JSON array: first element is the serialized + * type identifier, and second element the serialized POJO + * as JSON Object. + */ + WRAPPER_ARRAY, + + /** + * Inclusion mechanism similar to <code>PROPERTY</code>, except that + * property is included one-level higher in hierarchy, i.e. as sibling + * property at same level as JSON Object to type. + * Note that this choice <b>can only be used for properties</b>, not + * for types (classes). Trying to use it for classes will result in + * inclusion strategy of basic <code>PROPERTY</code> instead. + * + * @since 1.9 + */ + EXTERNAL_PROPERTY + ; + } + + /* + /********************************************************** + /* Annotation properties + /********************************************************** + */ + + /** + * What kind of type metadata is to be used for serializing and deserializing + * type information for instances of annotated type (and its subtypes + * unless overridden) + */ + public Id use(); + + /** + * What mechanism is used for including type metadata (if any; for + * {@link Id#NONE} nothing is included). Default + *<p> + * Note that for type metadata type of {@link Id#CUSTOM}, + * this setting may or may not have any effect. + */ + public As include() default As.PROPERTY; + + /** + * Property names used when type inclusion method ({@link As#PROPERTY}) is used + * (or possibly when using type metadata of type {@link Id#CUSTOM}). + *<p> + * Default property name used if this property is not explicitly defined + * (or is set to empty String) is based on + * type metadata type ({@link #use}) used. + */ + public String property() default ""; + + /** + * Optional property that can be used to specify default implementation + * class to use if type identifier is either not present, or can not + * be mapped to a registered type (which can occur for ids, but not when + * specifying explicit class to use). + *<p> + * Note that while this property allows specification of the default + * implementation to use, it does not help with structural issues that + * may arise if type information is missing. This means that most often + * this is used with type-name -based resolution, to cover cases + * where new sub-types are added, but base type is not changed to + * reference new sub-types. + * + * @since 1.9 + */ + public Class<?> defaultImpl() default None.class; + + /* + /********************************************************** + /* Helper classes + /********************************************************** + */ + + /** + * This marker class that is only to be used with <code>defaultImpl</code> + * annotation property, to indicate that there is no default implementation + * specified. + * + * @since 1.9 + */ + public abstract static class None { } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonTypeName.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonTypeName.java new file mode 100644 index 0000000..228fbcf --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonTypeName.java
@@ -0,0 +1,28 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + + +/** + * Annotation used for binding logical name that the annotated class + * has. Used with {@link JsonTypeInfo} (and specifically its + * {@link JsonTypeInfo#use} property) to establish relationship + * between type names and types. + * + * @since 1.5 + * + * @author tatu + */ +@Target({ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonTypeName { + /** + * Logical type name for annotated type. If missing (or defined as Empty String), + * defaults to using non-qualified class name as the type. + */ + public String value() default ""; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonUnwrapped.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonUnwrapped.java new file mode 100644 index 0000000..779361a --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonUnwrapped.java
@@ -0,0 +1,76 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate that a property should be serialized + * "unwrapped"; that is, if it would be serialized as JSON Object, its + * properties are instead included as properties of its containing + * Object. For example, consider case of POJO like: + * + *<pre> + * public class Parent { + * public int age; + * public Name name; + * } + * public class Name { + * public String first, last; + * } + *</pre> + * which would normally be serialized as follows (assuming @JsonUnwrapped + * had no effect): + *<pre> + * { + * "age" : 18, + * "name" : { + * "first" : "Joey", + * "last" : "Sixpack" + * } + * } + *</pre> + * can be changed to this: + *<pre> + * { + * "age" : 18, + * "first" : "Joey", + * "last" : "Sixpack" + * } + *</pre> + * by changing Parent class to: + *<pre> + * public class Parent { + * public int age; + * \@JsonUnwrapped + * public Name name; + * } + *</pre> + * Annotation can only be added to properties, and not classes, as it is contextual. + *<p> + * Also note that annotation only applies if + *<ul> + * <li>Value is serialized as JSON Object + * </li> + * <li>Serialization is done using <code>BeanSerializer</code>, not a custom serializer + * </li> + * <li>No type information is added; if type information needs to be added, structure can + * not be altered regardless of inclusion strategy; so annotation is basically ignored. + * </li> + * </ul> + * + * @since 1.9 + */ +@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonUnwrapped +{ + /** + * Property that is usually only used when overriding (masking) annotations, + * using mix-in annotations. Otherwise default value of 'true' is fine, and + * value need not be explicitly included. + */ + boolean enabled() default true; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonValue.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonValue.java new file mode 100644 index 0000000..53b1be5 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonValue.java
@@ -0,0 +1,46 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation similar to + * {@link javax.xml.bind.annotation.XmlValue} + * that indicates that results of the annotated "getter" method + * (which means signature must be that of getters; non-void return + * type, no args) is to be used as the single value to serialize + * for the instance. Usually value will be of a simple scalar type + * (String or Number), but it can be any serializable type (Collection, + * Map or Bean). + *<p> + * At most one method of a Class can be annotated with this annotation; + * if more than one is found, an exception may be thrown. + * Also, if method signature is not compatible with Getters, an exception + * may be thrown. + * Whether exception is thrown or not is an implementation detail (due + * to filtering during introspection, some annotations may be skipped) + * and applications should not rely on specific behavior. + *<p> + * A typical use case is that of annotating <code>toString()</code> + * method so that returned String value is Object's Json serialization. + *<p> + * Boolean argument is only used so that sub-classes can "disable" + * annotation if necessary. + */ +@Target({ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonValue +{ + /** + * Optional argument that defines whether this annotation is active + * or not. The only use for value 'false' if for overriding purposes. + * Overriding may be necessary when used + * with "mix-in annotations" (aka "annotation overrides"). + * For most cases, however, default value of "true" is just fine + * and should be omitted. + */ + boolean value() default true; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/JsonWriteNullProperties.java b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonWriteNullProperties.java new file mode 100644 index 0000000..40e1bd7 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/JsonWriteNullProperties.java
@@ -0,0 +1,34 @@ +package org.codehaus.jackson.annotate; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation that can be used to define whether object properties + * that have null values are to be written out when serializing + * content as JSON. This affects Bean and Map serialization. + *<p> + * Annotation can be used with Classes (all instances of + * given class) and Methods. + *<p> + * Default value for this property is 'true', meaning that null + * properties are written. + *<p> + * @deprecated (since 1.6) Currently recommended annotation to use is + * {@link org.codehaus.jackson.map.annotate.JsonSerialize#include()} + * (with values <code>ALWAYS</code> or <code>NON_NULL</code>) + */ +@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +@Deprecated +public @interface JsonWriteNullProperties +{ + /** + * Whether properties for beans of annotated type will always be + * written (true), or only if not null (false). + */ + boolean value() default true; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/annotate/package-info.java b/1.9.10/src/java/org/codehaus/jackson/annotate/package-info.java new file mode 100644 index 0000000..75abfd2 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/annotate/package-info.java
@@ -0,0 +1,16 @@ +/** + * Public core annotations, most of which are used to configure how + * Data Mapping/Binding works. Annotations in this package can only + * have dependencies to non-annotation classes in Core package; + * annotations that have dependencies to Mapper classes are included + * in Mapper module (under <code>org.codehaus.jackson.map.annotate</code>). + * Also contains parameter types (mostly enums) needed by annotations. + *<p> + * In future (version 2.0?), this package will probably be split off + * as a separate jar/module, to allow use of annotations without + * including core module. This would be useful for third party value + * classes that themselves do not depend on Jackson, but may want to + * be annotated to be automatically and conveniently serializable by + * Jackson. + */ +package org.codehaus.jackson.annotate;
diff --git a/1.9.10/src/java/org/codehaus/jackson/format/DataFormatDetector.java b/1.9.10/src/java/org/codehaus/jackson/format/DataFormatDetector.java new file mode 100644 index 0000000..5c3a507 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/format/DataFormatDetector.java
@@ -0,0 +1,176 @@ +package org.codehaus.jackson.format; + +import java.io.*; +import java.util.*; + +import org.codehaus.jackson.*; + +/** + * Simple helper class that allows data format (content type) auto-detection, + * given an ordered set of {@link JsonFactory} instances to use for actual low-level + * detection. + * + * @since 1.7 + */ +public class DataFormatDetector +{ + /** + * By default we will look ahead at most 64 bytes; in most cases, + * much less (4 bytes or so) is needed, but we will allow bit more + * leniency to support data formats that need more complex heuristics. + */ + public final static int DEFAULT_MAX_INPUT_LOOKAHEAD = 64; + + /** + * Ordered list of factories which both represent data formats to + * detect (in precedence order, starting with highest) and are used + * for actual detection. + */ + protected final JsonFactory[] _detectors; + + /** + * Strength of match we consider to be good enough to be used + * without checking any other formats. + * Default value is {@link MatchStrength#SOLID_MATCH}, + */ + protected final MatchStrength _optimalMatch; + + /** + * Strength of minimal match we accept as the answer, unless + * better matches are found. + * Default value is {@link MatchStrength#WEAK_MATCH}, + */ + protected final MatchStrength _minimalMatch; + + /** + * Maximum number of leading bytes of the input that we can read + * to determine data format. + *<p> + * Default value is {@link #DEFAULT_MAX_INPUT_LOOKAHEAD}. + */ + protected final int _maxInputLookahead; + + /* + /********************************************************** + /* Construction + /********************************************************** + */ + + public DataFormatDetector(JsonFactory... detectors) { + this(detectors, MatchStrength.SOLID_MATCH, MatchStrength.WEAK_MATCH, + DEFAULT_MAX_INPUT_LOOKAHEAD); + } + + public DataFormatDetector(Collection<JsonFactory> detectors) { + this(detectors.toArray(new JsonFactory[detectors.size()])); + } + + /** + * Method that will return a detector instance that uses given + * optimal match level (match that is considered sufficient to return, without + * trying to find stronger matches with other formats). + */ + public DataFormatDetector withOptimalMatch(MatchStrength optMatch) { + if (optMatch == _optimalMatch) { + return this; + } + return new DataFormatDetector(_detectors, optMatch, _minimalMatch, _maxInputLookahead); + } + /** + * Method that will return a detector instance that uses given + * minimal match level; match that may be returned unless a stronger match + * is found with other format detectors. + */ + public DataFormatDetector withMinimalMatch(MatchStrength minMatch) { + if (minMatch == _minimalMatch) { + return this; + } + return new DataFormatDetector(_detectors, _optimalMatch, minMatch, _maxInputLookahead); + } + + /** + * Method that will return a detector instance that allows detectors to + * read up to specified number of bytes when determining format match strength. + */ + public DataFormatDetector withMaxInputLookahead(int lookaheadBytes) + { + if (lookaheadBytes == _maxInputLookahead) { + return this; + } + return new DataFormatDetector(_detectors, _optimalMatch, _minimalMatch, lookaheadBytes); + } + + private DataFormatDetector(JsonFactory[] detectors, + MatchStrength optMatch, MatchStrength minMatch, + int maxInputLookahead) + { + _detectors = detectors; + _optimalMatch = optMatch; + _minimalMatch = minMatch; + _maxInputLookahead = maxInputLookahead; + } + + /* + /********************************************************** + /* Public API + /********************************************************** + */ + + /** + * Method to call to find format that content (accessible via given + * {@link InputStream}) given has, as per configuration of this detector + * instance. + * + * @return Matcher object which contains result; never null, even in cases + * where no match (with specified minimal match strength) is found. + */ + public DataFormatMatcher findFormat(InputStream in) throws IOException + { + return _findFormat(new InputAccessor.Std(in, new byte[_maxInputLookahead])); + } + + /** + * Method to call to find format that given content (full document) + * has, as per configuration of this detector instance. + * + * @return Matcher object which contains result; never null, even in cases + * where no match (with specified minimal match strength) is found. + */ + public DataFormatMatcher findFormat(byte[] fullInputData) throws IOException + { + return _findFormat(new InputAccessor.Std(fullInputData)); + } + + /* + /********************************************************** + /* Internal methods + /********************************************************** + */ + + private DataFormatMatcher _findFormat(InputAccessor.Std acc) throws IOException + { + JsonFactory bestMatch = null; + MatchStrength bestMatchStrength = null; + for (JsonFactory f : _detectors) { + acc.reset(); + MatchStrength strength = f.hasFormat(acc); + // if not better than what we have so far (including minimal level limit), skip + if (strength == null || strength.ordinal() < _minimalMatch.ordinal()) { + continue; + } + // also, needs to better match than before + if (bestMatch != null) { + if (bestMatchStrength.ordinal() >= strength.ordinal()) { + continue; + } + } + // finally: if it's good enough match, we are done + bestMatch = f; + bestMatchStrength = strength; + if (strength.ordinal() >= _optimalMatch.ordinal()) { + break; + } + } + return acc.createMatcher(bestMatch, bestMatchStrength); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/format/DataFormatMatcher.java b/1.9.10/src/java/org/codehaus/jackson/format/DataFormatMatcher.java new file mode 100644 index 0000000..c152904 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/format/DataFormatMatcher.java
@@ -0,0 +1,117 @@ +package org.codehaus.jackson.format; + +import java.io.*; + +import org.codehaus.jackson.JsonFactory; +import org.codehaus.jackson.JsonParser; +import org.codehaus.jackson.io.MergedStream; + +/** + * Result object constructed by {@link DataFormatDetector} when requested + * to detect format of given input data. + */ +public class DataFormatMatcher +{ + protected final InputStream _originalStream; + + /** + * Content read during format matching process + */ + protected final byte[] _bufferedData; + + /** + * Number of bytes in {@link #_bufferedData} that were read. + */ + protected final int _bufferedLength; + + /** + * Factory that produced sufficient match (if any) + */ + protected final JsonFactory _match; + + /** + * Strength of match with {@link #_match} + */ + protected final MatchStrength _matchStrength; + + protected DataFormatMatcher(InputStream in, byte[] buffered, int bufferedLength, + JsonFactory match, MatchStrength strength) + { + _originalStream = in; + _bufferedData = buffered; + _bufferedLength = bufferedLength; + _match = match; + _matchStrength = strength; + } + + /* + /********************************************************** + /* Public API, simple accessors + /********************************************************** + */ + + /** + * Accessor to use to see if any formats matched well enough with + * the input data. + */ + public boolean hasMatch() { return _match != null; } + + /** + * Method for accessing strength of the match, if any; if no match, + * will return {@link MatchStrength#INCONCLUSIVE}. + */ + public MatchStrength getMatchStrength() { + return (_matchStrength == null) ? MatchStrength.INCONCLUSIVE : _matchStrength; + } + + /** + * Accessor for {@link JsonFactory} that represents format that data matched. + */ + public JsonFactory getMatch() { return _match; } + + /** + * Accessor for getting brief textual name of matched format if any (null + * if none). Equivalent to: + *<pre> + * return hasMatch() ? getMatch().getFormatName() : null; + *</pre> + */ + public String getMatchedFormatName() { + return _match.getFormatName(); + } + + /* + /********************************************************** + /* Public API, factory methods + /********************************************************** + */ + + /** + * Convenience method for trying to construct a {@link JsonParser} for + * parsing content which is assumed to be in detected data format. + * If no match was found, returns null. + */ + public JsonParser createParserWithMatch() throws IOException { + if (_match == null) { + return null; + } + if (_originalStream == null) { + return _match.createJsonParser(_bufferedData, 0, _bufferedLength); + } + return _match.createJsonParser(getDataStream()); + } + + /** + * Method to use for accessing input for which format detection has been done. + * This <b>must</b> be used instead of using stream passed to detector + * unless given stream itself can do buffering. + * Stream will return all content that was read during matching process, as well + * as remaining contents of the underlying stream. + */ + public InputStream getDataStream() { + if (_originalStream == null) { + return new ByteArrayInputStream(_bufferedData, 0, _bufferedLength); + } + return new MergedStream(null, _originalStream, _bufferedData, 0, _bufferedLength); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/format/InputAccessor.java b/1.9.10/src/java/org/codehaus/jackson/format/InputAccessor.java new file mode 100644 index 0000000..e99d2a5 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/format/InputAccessor.java
@@ -0,0 +1,130 @@ +package org.codehaus.jackson.format; + +import java.io.*; + +import org.codehaus.jackson.JsonFactory; + +/** + * Interface used to expose beginning of a data file to data format + * detection code. + * + * @since 1.8 + */ +public interface InputAccessor +{ + /** + * Method to call to check if more input is available. + * Since this may result in more content to be read (at least + * one more byte), a {@link IOException} may get thrown. + */ + public boolean hasMoreBytes() throws IOException; + + /** + * Returns next byte available, if any; if no more bytes are + * available, will throw {@link java.io.EOFException}. + */ + public byte nextByte() throws IOException; + + /** + * Method that can be called to reset accessor to read from beginning + * of input. + */ + public void reset(); + + /* + /********************************************************** + /* Standard implementation + /********************************************************** + */ + + /** + * Basic implementation that reads data from given + * {@link InputStream} and buffers it as necessary. + */ + public class Std implements InputAccessor + { + protected final InputStream _in; + + protected final byte[] _buffer; + + /** + * Number of bytes in {@link #_buffer} that are valid + * buffered content. + */ + protected int _bufferedAmount; + + /** + * Pointer to next available buffered byte in {@link #_buffer}. + */ + protected int _ptr; + + /** + * Constructor used when content to check is available via + * input stream and must be read. + */ + public Std(InputStream in, byte[] buffer) + { + _in = in; + _buffer = buffer; + _bufferedAmount = 0; + } + + /** + * Constructor used when the full input (or at least enough leading bytes + * of full input) is available. + */ + public Std(byte[] inputDocument) + { + _in = null; + _buffer = inputDocument; + // we have it all: + _bufferedAmount = inputDocument.length; + } + + @Override + public boolean hasMoreBytes() throws IOException + { + if (_ptr < _bufferedAmount) { // already got more + return true; + } + int amount = _buffer.length - _ptr; + if (amount < 1) { // can not load any more + return false; + } + int count = _in.read(_buffer, _ptr, amount); + if (count <= 0) { // EOF + return false; + } + _bufferedAmount += count; + return true; + } + + @Override + public byte nextByte() throws IOException + { + // should we just try loading more automatically? + if (_ptr >- _bufferedAmount) { + if (!hasMoreBytes()) { + throw new EOFException("Could not read more than "+_ptr+" bytes (max buffer size: "+_buffer.length+")"); + } + } + return _buffer[_ptr++]; + } + + @Override + public void reset() { + _ptr = 0; + } + + /* + /********************************************************** + /* Extended API for DataFormatDetector/Matcher + /********************************************************** + */ + + public DataFormatMatcher createMatcher(JsonFactory match, MatchStrength matchStrength) + { + return new DataFormatMatcher(_in, _buffer, _bufferedAmount, match, matchStrength); + } + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/format/MatchStrength.java b/1.9.10/src/java/org/codehaus/jackson/format/MatchStrength.java new file mode 100644 index 0000000..02cbba4 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/format/MatchStrength.java
@@ -0,0 +1,64 @@ +package org.codehaus.jackson.format; + +/** + * Enumeration used to indicate strength of match between data format + * and piece of data (typically beginning of a data file). + * Values are in increasing match strength; and detectors should return + * "strongest" value: that is, it should start with strongest match + * criteria, and downgrading if criteria is not fulfilled. + * + * @since 1.8 + */ +public enum MatchStrength +{ + /** + * Value that indicates that given data can not be in given format. + */ + NO_MATCH, + + /** + * Value that indicates that detector can not find out whether could + * be a match or not. + * This can occur for example for textual data formats t + * when there are so many leading spaces that detector can not + * find the first data byte (because detectors typically limit lookahead + * to some smallish value). + */ + INCONCLUSIVE, + + /** + * Value that indicates that given data could be of specified format (i.e. + * it can not be ruled out). This can occur for example when seen data + * is both not in canonical formats (for example: JSON data should be a JSON Array or Object + * not a scalar value, as per JSON specification) and there are known use case + * where a format detected is actually used (plain JSON Strings are actually used, even + * though specification does not indicate that as valid usage: as such, seeing a leading + * double-quote could indicate a JSON String, which plausibly <b>could</b> indicate + * non-standard JSON usage). + */ + WEAK_MATCH, + + /** + * Value that indicates that given data conforms to (one of) canonical form(s) of + * the data format. + *<p> + * For example, when testing for XML data format, + * seeing a less-than character ("<") alone (with possible leading spaces) + * would be a strong indication that data could + * be in xml format (but see below for {@link #FULL_MATCH} description for more) + */ + SOLID_MATCH, + + /** + * Value that indicates that given data contains a signature that is deemed + * specific enough to uniquely indicate data format used. + *<p> + * For example, when testing for XML data format, + * seing "<xml" as the first data bytes ("XML declaration", as per XML specification) + * could give full confidence that data is indeed in XML format. + * Not all data formats have unique leading identifiers to allow full matches; for example, + * JSON only has heuristic matches and can have at most {@link #SOLID_MATCH}) match. + */ + FULL_MATCH + ; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/format/package-info.java b/1.9.10/src/java/org/codehaus/jackson/format/package-info.java new file mode 100644 index 0000000..0862f9e --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/format/package-info.java
@@ -0,0 +1,8 @@ +/** + * Package that contains interfaces needed for dynamic, pluggable + * format (auto)detection; as well as basic utility classes for + * simple format detection functionality. + * + * @since 1.8 + */ +package org.codehaus.jackson.format;
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/ByteSourceBootstrapper.java b/1.9.10/src/java/org/codehaus/jackson/impl/ByteSourceBootstrapper.java new file mode 100644 index 0000000..50094b0 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/ByteSourceBootstrapper.java
@@ -0,0 +1,518 @@ +package org.codehaus.jackson.impl; + +import java.io.*; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.format.InputAccessor; +import org.codehaus.jackson.format.MatchStrength; +import org.codehaus.jackson.io.*; +import org.codehaus.jackson.sym.BytesToNameCanonicalizer; +import org.codehaus.jackson.sym.CharsToNameCanonicalizer; + +/** + * This class is used to determine the encoding of byte stream + * that is to contain JSON content. Rules are fairly simple, and + * defined in JSON specification (RFC-4627 or newer), except + * for BOM handling, which is a property of underlying + * streams. + */ +public final class ByteSourceBootstrapper +{ + final static byte UTF8_BOM_1 = (byte) 0xEF; + final static byte UTF8_BOM_2 = (byte) 0xBB; + final static byte UTF8_BOM_3 = (byte) 0xBF; + + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + protected final IOContext _context; + + protected final InputStream _in; + + /* + /********************************************************** + /* Input buffering + /********************************************************** + */ + + protected final byte[] _inputBuffer; + + private int _inputPtr; + + private int _inputEnd; + + /** + * Flag that indicates whether buffer above is to be recycled + * after being used or not. + */ + private final boolean _bufferRecyclable; + + /* + /********************************************************** + /* Input location + /********************************************************** + */ + + /** + * Current number of input units (bytes or chars) that were processed in + * previous blocks, + * before contents of current input buffer. + *<p> + * Note: includes possible BOMs, if those were part of the input. + */ + protected int _inputProcessed; + + /* + /********************************************************** + /* Data gathered + /********************************************************** + */ + + protected boolean _bigEndian = true; + + protected int _bytesPerChar = 0; // 0 means "dunno yet" + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + public ByteSourceBootstrapper(IOContext ctxt, InputStream in) + { + _context = ctxt; + _in = in; + _inputBuffer = ctxt.allocReadIOBuffer(); + _inputEnd = _inputPtr = 0; + _inputProcessed = 0; + _bufferRecyclable = true; + } + + public ByteSourceBootstrapper(IOContext ctxt, byte[] inputBuffer, int inputStart, int inputLen) + { + _context = ctxt; + _in = null; + _inputBuffer = inputBuffer; + _inputPtr = inputStart; + _inputEnd = (inputStart + inputLen); + // Need to offset this for correct location info + _inputProcessed = -inputStart; + _bufferRecyclable = false; + } + + /* + /********************************************************** + /* Encoding detection during bootstrapping + /********************************************************** + */ + + /** + * Method that should be called after constructing an instace. + * It will figure out encoding that content uses, to allow + * for instantiating a proper scanner object. + */ + public JsonEncoding detectEncoding() + throws IOException, JsonParseException + { + boolean foundEncoding = false; + + // First things first: BOM handling + /* Note: we can require 4 bytes to be read, since no + * combination of BOM + valid JSON content can have + * shorter length (shortest valid JSON content is single + * digit char, but BOMs are chosen such that combination + * is always at least 4 chars long) + */ + if (ensureLoaded(4)) { + int quad = (_inputBuffer[_inputPtr] << 24) + | ((_inputBuffer[_inputPtr+1] & 0xFF) << 16) + | ((_inputBuffer[_inputPtr+2] & 0xFF) << 8) + | (_inputBuffer[_inputPtr+3] & 0xFF); + + if (handleBOM(quad)) { + foundEncoding = true; + } else { + /* If no BOM, need to auto-detect based on first char; + * this works since it must be 7-bit ascii (wrt. unicode + * compatible encodings, only ones JSON can be transferred + * over) + */ + // UTF-32? + if (checkUTF32(quad)) { + foundEncoding = true; + } else if (checkUTF16(quad >>> 16)) { + foundEncoding = true; + } + } + } else if (ensureLoaded(2)) { + int i16 = ((_inputBuffer[_inputPtr] & 0xFF) << 8) + | (_inputBuffer[_inputPtr+1] & 0xFF); + if (checkUTF16(i16)) { + foundEncoding = true; + } + } + + JsonEncoding enc; + + /* Not found yet? As per specs, this means it must be UTF-8. */ + if (!foundEncoding) { + enc = JsonEncoding.UTF8; + } else { + switch (_bytesPerChar) { + case 1: + enc = JsonEncoding.UTF8; + break; + case 2: + enc = _bigEndian ? JsonEncoding.UTF16_BE : JsonEncoding.UTF16_LE; + break; + case 4: + enc = _bigEndian ? JsonEncoding.UTF32_BE : JsonEncoding.UTF32_LE; + break; + default: + throw new RuntimeException("Internal error"); // should never get here + } + } + _context.setEncoding(enc); + return enc; + } + + /* + /********************************************************** + /* Constructing a Reader + /********************************************************** + */ + + public Reader constructReader() + throws IOException + { + JsonEncoding enc = _context.getEncoding(); + switch (enc) { + case UTF32_BE: + case UTF32_LE: + return new UTF32Reader(_context, _in, _inputBuffer, _inputPtr, _inputEnd, + _context.getEncoding().isBigEndian()); + + case UTF16_BE: + case UTF16_LE: + case UTF8: // only in non-common case where we don't want to do direct mapping + { + // First: do we have a Stream? If not, need to create one: + InputStream in = _in; + + if (in == null) { + in = new ByteArrayInputStream(_inputBuffer, _inputPtr, _inputEnd); + } else { + /* Also, if we have any read but unused input (usually true), + * need to merge that input in: + */ + if (_inputPtr < _inputEnd) { + in = new MergedStream(_context, in, _inputBuffer, _inputPtr, _inputEnd); + } + } + return new InputStreamReader(in, enc.getJavaName()); + } + } + throw new RuntimeException("Internal error"); // should never get here + } + + public JsonParser constructParser(int features, ObjectCodec codec, BytesToNameCanonicalizer rootByteSymbols, CharsToNameCanonicalizer rootCharSymbols) + throws IOException, JsonParseException + { + JsonEncoding enc = detectEncoding(); + + // As per [JACKSON-259], may want to fully disable canonicalization: + boolean canonicalize = JsonParser.Feature.CANONICALIZE_FIELD_NAMES.enabledIn(features); + boolean intern = JsonParser.Feature.INTERN_FIELD_NAMES.enabledIn(features); + if (enc == JsonEncoding.UTF8) { + /* and without canonicalization, byte-based approach is not performance; just use std UTF-8 reader + * (which is ok for larger input; not so hot for smaller; but this is not a common case) + */ + if (canonicalize) { + BytesToNameCanonicalizer can = rootByteSymbols.makeChild(canonicalize, intern); + return new Utf8StreamParser(_context, features, _in, codec, can, _inputBuffer, _inputPtr, _inputEnd, _bufferRecyclable); + } + } + return new ReaderBasedParser(_context, features, constructReader(), codec, rootCharSymbols.makeChild(canonicalize, intern)); + } + + /* + /********************************************************** + /* Encoding detection for data format auto-detection + /********************************************************** + */ + + /** + * Current implementation is not as thorough as other functionality + * ({@link org.codehaus.jackson.impl.ByteSourceBootstrapper}); + * supports UTF-8, for example. But it should work, for now, and can + * be improved as necessary. + * + * @since 1.8 + */ + public static MatchStrength hasJSONFormat(InputAccessor acc) throws IOException + { + // Ideally we should see "[" or "{"; but if not, we'll accept double-quote (String) + // in future could also consider accepting non-standard matches? + + if (!acc.hasMoreBytes()) { + return MatchStrength.INCONCLUSIVE; + } + byte b = acc.nextByte(); + // Very first thing, a UTF-8 BOM? + if (b == UTF8_BOM_1) { // yes, looks like UTF-8 BOM + if (!acc.hasMoreBytes()) { + return MatchStrength.INCONCLUSIVE; + } + if (acc.nextByte() != UTF8_BOM_2) { + return MatchStrength.NO_MATCH; + } + if (!acc.hasMoreBytes()) { + return MatchStrength.INCONCLUSIVE; + } + if (acc.nextByte() != UTF8_BOM_3) { + return MatchStrength.NO_MATCH; + } + if (!acc.hasMoreBytes()) { + return MatchStrength.INCONCLUSIVE; + } + b = acc.nextByte(); + } + // Then possible leading space + int ch = skipSpace(acc, b); + if (ch < 0) { + return MatchStrength.INCONCLUSIVE; + } + // First, let's see if it looks like a structured type: + if (ch == '{') { // JSON object? + // Ideally we need to find either double-quote or closing bracket + ch = skipSpace(acc); + if (ch < 0) { + return MatchStrength.INCONCLUSIVE; + } + if (ch == '"' || ch == '}') { + return MatchStrength.SOLID_MATCH; + } + // ... should we allow non-standard? Let's not yet... can add if need be + return MatchStrength.NO_MATCH; + } + MatchStrength strength; + + if (ch == '[') { + ch = skipSpace(acc); + if (ch < 0) { + return MatchStrength.INCONCLUSIVE; + } + // closing brackets is easy; but for now, let's also accept opening... + if (ch == ']' || ch == '[') { + return MatchStrength.SOLID_MATCH; + } + return MatchStrength.SOLID_MATCH; + } else { + // plain old value is not very convincing... + strength = MatchStrength.WEAK_MATCH; + } + + if (ch == '"') { // string value + return strength; + } + if (ch <= '9' && ch >= '0') { // number + return strength; + } + if (ch == '-') { // negative number + ch = skipSpace(acc); + if (ch < 0) { + return MatchStrength.INCONCLUSIVE; + } + return (ch <= '9' && ch >= '0') ? strength : MatchStrength.NO_MATCH; + } + // or one of literals + if (ch == 'n') { // null + return tryMatch(acc, "ull", strength); + } + if (ch == 't') { // true + return tryMatch(acc, "rue", strength); + } + if (ch == 'f') { // false + return tryMatch(acc, "alse", strength); + } + return MatchStrength.NO_MATCH; + } + + private final static MatchStrength tryMatch(InputAccessor acc, String matchStr, MatchStrength fullMatchStrength) + throws IOException + { + for (int i = 0, len = matchStr.length(); i < len; ++i) { + if (!acc.hasMoreBytes()) { + return MatchStrength.INCONCLUSIVE; + } + if (acc.nextByte() != matchStr.charAt(i)) { + return MatchStrength.NO_MATCH; + } + } + return fullMatchStrength; + } + + private final static int skipSpace(InputAccessor acc) throws IOException + { + if (!acc.hasMoreBytes()) { + return -1; + } + return skipSpace(acc, acc.nextByte()); + } + + private final static int skipSpace(InputAccessor acc, byte b) throws IOException + { + while (true) { + int ch = (int) b & 0xFF; + if (!(ch == ' ' || ch == '\r' || ch == '\n' || ch == '\t')) { + return ch; + } + if (!acc.hasMoreBytes()) { + return -1; + } + b = acc.nextByte(); + ch = (int) b & 0xFF; + } + } + + /* + /********************************************************** + /* Internal methods, parsing + /********************************************************** + */ + + /** + * @return True if a BOM was succesfully found, and encoding + * thereby recognized. + */ + private boolean handleBOM(int quad) + throws IOException + { + /* Handling of (usually) optional BOM (required for + * multi-byte formats); first 32-bit charsets: + */ + switch (quad) { + case 0x0000FEFF: + _bigEndian = true; + _inputPtr += 4; + _bytesPerChar = 4; + return true; + case 0xFFFE0000: // UCS-4, LE? + _inputPtr += 4; + _bytesPerChar = 4; + _bigEndian = false; + return true; + case 0x0000FFFE: // UCS-4, in-order... + reportWeirdUCS4("2143"); // throws exception + case 0xFEFF0000: // UCS-4, in-order... + reportWeirdUCS4("3412"); // throws exception + } + // Ok, if not, how about 16-bit encoding BOMs? + int msw = quad >>> 16; + if (msw == 0xFEFF) { // UTF-16, BE + _inputPtr += 2; + _bytesPerChar = 2; + _bigEndian = true; + return true; + } + if (msw == 0xFFFE) { // UTF-16, LE + _inputPtr += 2; + _bytesPerChar = 2; + _bigEndian = false; + return true; + } + // And if not, then UTF-8 BOM? + if ((quad >>> 8) == 0xEFBBBF) { // UTF-8 + _inputPtr += 3; + _bytesPerChar = 1; + _bigEndian = true; // doesn't really matter + return true; + } + return false; + } + + private boolean checkUTF32(int quad) + throws IOException + { + /* Handling of (usually) optional BOM (required for + * multi-byte formats); first 32-bit charsets: + */ + if ((quad >> 8) == 0) { // 0x000000?? -> UTF32-BE + _bigEndian = true; + } else if ((quad & 0x00FFFFFF) == 0) { // 0x??000000 -> UTF32-LE + _bigEndian = false; + } else if ((quad & ~0x00FF0000) == 0) { // 0x00??0000 -> UTF32-in-order + reportWeirdUCS4("3412"); + } else if ((quad & ~0x0000FF00) == 0) { // 0x0000??00 -> UTF32-in-order + reportWeirdUCS4("2143"); + } else { + // Can not be valid UTF-32 encoded JSON... + return false; + } + // Not BOM (just regular content), nothing to skip past: + //_inputPtr += 4; + _bytesPerChar = 4; + return true; + } + + private boolean checkUTF16(int i16) + { + if ((i16 & 0xFF00) == 0) { // UTF-16BE + _bigEndian = true; + } else if ((i16 & 0x00FF) == 0) { // UTF-16LE + _bigEndian = false; + } else { // nope, not UTF-16 + return false; + } + // Not BOM (just regular content), nothing to skip past: + //_inputPtr += 2; + _bytesPerChar = 2; + return true; + } + + /* + /********************************************************** + /* Internal methods, problem reporting + /********************************************************** + */ + + private void reportWeirdUCS4(String type) + throws IOException + { + throw new CharConversionException("Unsupported UCS-4 endianness ("+type+") detected"); + } + + /* + /********************************************************** + /* Internal methods, raw input access + /********************************************************** + */ + + protected boolean ensureLoaded(int minimum) + throws IOException + { + /* Let's assume here buffer has enough room -- this will always + * be true for the limited used this method gets + */ + int gotten = (_inputEnd - _inputPtr); + while (gotten < minimum) { + int count; + + if (_in == null) { // block source + count = -1; + } else { + count = _in.read(_inputBuffer, _inputEnd, _inputBuffer.length - _inputEnd); + } + if (count < 1) { + return false; + } + _inputEnd += count; + gotten += count; + } + return true; + } +} +
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/DefaultPrettyPrinter.java b/1.9.10/src/java/org/codehaus/jackson/impl/DefaultPrettyPrinter.java new file mode 100644 index 0000000..7b12d3a --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/DefaultPrettyPrinter.java
@@ -0,0 +1,13 @@ +package org.codehaus.jackson.impl; + +/** + * Deprecated version of the default pretty printer. + * + * @deprecated Moved to {@link org.codehaus.jackson.util.DefaultPrettyPrinter}; will be removed in Jackson 2.0 + */ +@Deprecated +public class DefaultPrettyPrinter + extends org.codehaus.jackson.util.DefaultPrettyPrinter +{ + +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/Indenter.java b/1.9.10/src/java/org/codehaus/jackson/impl/Indenter.java new file mode 100644 index 0000000..6249f55 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/Indenter.java
@@ -0,0 +1,23 @@ +package org.codehaus.jackson.impl; + +import java.io.IOException; + +import org.codehaus.jackson.*; + +/** + * Interface that defines objects that can produce indentation used + * to separate object entries and array values. Indentation in this + * context just means insertion of white space, independent of whether + * linefeeds are output. + */ +public interface Indenter +{ + public void writeIndentation(JsonGenerator jg, int level) + throws IOException, JsonGenerationException; + + /** + * @return True if indenter is considered inline (does not add linefeeds), + * false otherwise + */ + public boolean isInline(); +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/JsonGeneratorBase.java b/1.9.10/src/java/org/codehaus/jackson/impl/JsonGeneratorBase.java new file mode 100644 index 0000000..3db4260 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/JsonGeneratorBase.java
@@ -0,0 +1,570 @@ +package org.codehaus.jackson.impl; + +import java.io.*; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.util.DefaultPrettyPrinter; +import org.codehaus.jackson.util.VersionUtil; + +/** + * This base class implements part of API that a JSON generator exposes + * to applications, adds shared internal methods that sub-classes + * can use and adds some abstract methods sub-classes must implement. + */ +public abstract class JsonGeneratorBase + extends JsonGenerator +{ + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + protected ObjectCodec _objectCodec; + + /** + * Bit flag composed of bits that indicate which + * {@link org.codehaus.jackson.JsonGenerator.Feature}s + * are enabled. + */ + protected int _features; + + /** + * Flag set to indicate that implicit conversion from number + * to JSON String is needed (as per + * {@link org.codehaus.jackson.JsonGenerator.Feature#WRITE_NUMBERS_AS_STRINGS}). + */ + protected boolean _cfgNumbersAsStrings; + + /* + /********************************************************** + /* State + /********************************************************** + */ + + /** + * Object that keeps track of the current contextual state + * of the generator. + */ + protected JsonWriteContext _writeContext; + + /** + * Flag that indicates whether generator is closed or not. Gets + * set when it is closed by an explicit call + * ({@link #close}). + */ + protected boolean _closed; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + protected JsonGeneratorBase(int features, ObjectCodec codec) + { + super(); + _features = features; + _writeContext = JsonWriteContext.createRootContext(); + _objectCodec = codec; + _cfgNumbersAsStrings = isEnabled(Feature.WRITE_NUMBERS_AS_STRINGS); + } + + @Override + public Version version() { + return VersionUtil.versionFor(getClass()); + } + + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + @Override + public JsonGenerator enable(Feature f) { + _features |= f.getMask(); + if (f == Feature.WRITE_NUMBERS_AS_STRINGS) { + _cfgNumbersAsStrings = true; + } else if (f == Feature.ESCAPE_NON_ASCII) { + setHighestNonEscapedChar(127); + } + return this; + } + + @Override + public JsonGenerator disable(Feature f) { + _features &= ~f.getMask(); + if (f == Feature.WRITE_NUMBERS_AS_STRINGS) { + _cfgNumbersAsStrings = false; + } else if (f == Feature.ESCAPE_NON_ASCII) { + setHighestNonEscapedChar(0); + } + return this; + } + + //public JsonGenerator configure(Feature f, boolean state) { } + + @Override + public final boolean isEnabled(Feature f) { + return (_features & f.getMask()) != 0; + } + + @Override + public JsonGenerator useDefaultPrettyPrinter() { + return setPrettyPrinter(new DefaultPrettyPrinter()); + } + + @Override + public JsonGenerator setCodec(ObjectCodec oc) { + _objectCodec = oc; + return this; + } + + @Override + public final ObjectCodec getCodec() { return _objectCodec; } + + /* + /********************************************************** + /* Public API, accessors + /********************************************************** + */ + + /** + * Note: co-variant return type. + */ + @Override + public final JsonWriteContext getOutputContext() { return _writeContext; } + + /* + /********************************************************** + /* Public API, write methods, structural + /********************************************************** + */ + + @Override + public void writeStartArray() throws IOException, JsonGenerationException + { + // Array is a value, need to verify it's allowed + _verifyValueWrite("start an array"); + _writeContext = _writeContext.createChildArrayContext(); + if (_cfgPrettyPrinter != null) { + _cfgPrettyPrinter.writeStartArray(this); + } else { + _writeStartArray(); + } + } + + /** + * @deprecated since 1.7, should just override {@link #writeStartArray} instead + * of defining this method + */ + @Deprecated + protected void _writeStartArray() throws IOException, JsonGenerationException { + } + + @Override + public void writeEndArray() throws IOException, JsonGenerationException + { + if (!_writeContext.inArray()) { + _reportError("Current context not an ARRAY but "+_writeContext.getTypeDesc()); + } + if (_cfgPrettyPrinter != null) { + _cfgPrettyPrinter.writeEndArray(this, _writeContext.getEntryCount()); + } else { + _writeEndArray(); + } + _writeContext = _writeContext.getParent(); + } + + /** + * @deprecated since 1.7, should just override {@link #writeEndArray} instead + * of defining this method + */ + @Deprecated + protected void _writeEndArray() throws IOException, JsonGenerationException { + } + + @Override + public void writeStartObject() throws IOException, JsonGenerationException + { + _verifyValueWrite("start an object"); + _writeContext = _writeContext.createChildObjectContext(); + if (_cfgPrettyPrinter != null) { + _cfgPrettyPrinter.writeStartObject(this); + } else { + _writeStartObject(); + } + } + + /** + * @deprecated since 1.7, should just override {@link #writeStartObject} instead + * of defining this method + */ + @Deprecated + protected void _writeStartObject() throws IOException, JsonGenerationException { + } + + @Override + public void writeEndObject() throws IOException, JsonGenerationException + { + if (!_writeContext.inObject()) { + _reportError("Current context not an object but "+_writeContext.getTypeDesc()); + } + _writeContext = _writeContext.getParent(); + if (_cfgPrettyPrinter != null) { + _cfgPrettyPrinter.writeEndObject(this, _writeContext.getEntryCount()); + } else { + _writeEndObject(); + } + } + + /** + * @deprecated since 1.7, should just override {@link #writeEndObject} instead + * of defining this method + */ + @Deprecated + protected void _writeEndObject() throws IOException, JsonGenerationException { + } + + /* + /********************************************************** + /* Public API, write methods, textual + /********************************************************** + */ + + //public abstract void writeString(String text) throws IOException, JsonGenerationException; + + //public abstract void writeString(char[] text, int offset, int len) throws IOException, JsonGenerationException; + + //public abstract void writeRaw(String text) throws IOException, JsonGenerationException; + + //public abstract void writeRaw(char[] text, int offset, int len) throws IOException, JsonGenerationException; + + @Override + public void writeRawValue(String text) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write raw value"); + writeRaw(text); + } + + @Override + public void writeRawValue(String text, int offset, int len) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write raw value"); + writeRaw(text, offset, len); + } + + @Override + public void writeRawValue(char[] text, int offset, int len) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write raw value"); + writeRaw(text, offset, len); + } + + //public abstract void writeBinary(byte[] data, int offset, int len, boolean includeLFs) throws IOException, JsonGenerationException; + + + /* + /********************************************************** + /* Public API, write methods, primitive + /********************************************************** + */ + + // Not implemented at this level, added as placeholders + + /* + public abstract void writeNumber(int i) + public abstract void writeNumber(long l) + public abstract void writeNumber(double d) + public abstract void writeNumber(float f) + public abstract void writeNumber(BigDecimal dec) + public abstract void writeBoolean(boolean state) + public abstract void writeNull() + */ + + /* + /********************************************************** + /* Public API, write methods, POJOs, trees + /********************************************************** + */ + + @Override + public void writeObject(Object value) + throws IOException, JsonProcessingException + { + if (value == null) { + // important: call method that does check value write: + writeNull(); + } else { + /* 02-Mar-2009, tatu: we are NOT to call _verifyValueWrite here, + * because that will be done when codec actually serializes + * contained POJO. If we did call it it would advance state + * causing exception later on + */ + if (_objectCodec != null) { + _objectCodec.writeValue(this, value); + return; + } + _writeSimpleObject(value); + } + } + + @Override + public void writeTree(JsonNode rootNode) + throws IOException, JsonProcessingException + { + // As with 'writeObject()', we are not check if write would work + if (rootNode == null) { + writeNull(); + } else { + if (_objectCodec == null) { + throw new IllegalStateException("No ObjectCodec defined for the generator, can not serialize JsonNode-based trees"); + } + _objectCodec.writeTree(this, rootNode); + } + } + + /* + /********************************************************** + /* Public API, low-level output handling + /********************************************************** + */ + + @Override + public abstract void flush() throws IOException; + + @Override + public void close() throws IOException + { + _closed = true; + } + + @Override + public boolean isClosed() { return _closed; } + + /* + /********************************************************** + /* Public API, copy-through methods + /********************************************************** + */ + + @Override + public final void copyCurrentEvent(JsonParser jp) + throws IOException, JsonProcessingException + { + JsonToken t = jp.getCurrentToken(); + // sanity check; what to do? + if (t == null) { + _reportError("No current event to copy"); + } + switch(t) { + case START_OBJECT: + writeStartObject(); + break; + case END_OBJECT: + writeEndObject(); + break; + case START_ARRAY: + writeStartArray(); + break; + case END_ARRAY: + writeEndArray(); + break; + case FIELD_NAME: + writeFieldName(jp.getCurrentName()); + break; + case VALUE_STRING: + if (jp.hasTextCharacters()) { + writeString(jp.getTextCharacters(), jp.getTextOffset(), jp.getTextLength()); + } else { + writeString(jp.getText()); + } + break; + case VALUE_NUMBER_INT: + switch (jp.getNumberType()) { + case INT: + writeNumber(jp.getIntValue()); + break; + case BIG_INTEGER: + writeNumber(jp.getBigIntegerValue()); + break; + default: + writeNumber(jp.getLongValue()); + } + break; + case VALUE_NUMBER_FLOAT: + switch (jp.getNumberType()) { + case BIG_DECIMAL: + writeNumber(jp.getDecimalValue()); + break; + case FLOAT: + writeNumber(jp.getFloatValue()); + break; + default: + writeNumber(jp.getDoubleValue()); + } + break; + case VALUE_TRUE: + writeBoolean(true); + break; + case VALUE_FALSE: + writeBoolean(false); + break; + case VALUE_NULL: + writeNull(); + break; + case VALUE_EMBEDDED_OBJECT: + writeObject(jp.getEmbeddedObject()); + break; + default: + _cantHappen(); + } + } + + @Override + public final void copyCurrentStructure(JsonParser jp) + throws IOException, JsonProcessingException + { + JsonToken t = jp.getCurrentToken(); + + // Let's handle field-name separately first + if (t == JsonToken.FIELD_NAME) { + writeFieldName(jp.getCurrentName()); + t = jp.nextToken(); + // fall-through to copy the associated value + } + + switch (t) { + case START_ARRAY: + writeStartArray(); + while (jp.nextToken() != JsonToken.END_ARRAY) { + copyCurrentStructure(jp); + } + writeEndArray(); + break; + case START_OBJECT: + writeStartObject(); + while (jp.nextToken() != JsonToken.END_OBJECT) { + copyCurrentStructure(jp); + } + writeEndObject(); + break; + default: // others are simple: + copyCurrentEvent(jp); + } + } + + /* + /********************************************************** + /* Package methods for this, sub-classes + /********************************************************** + */ + + protected abstract void _releaseBuffers(); + + protected abstract void _verifyValueWrite(String typeMsg) + throws IOException, JsonGenerationException; + + protected void _reportError(String msg) + throws JsonGenerationException + { + throw new JsonGenerationException(msg); + } + + protected void _cantHappen() + { + throw new RuntimeException("Internal error: should never end up through this code path"); + } + + /** + * Helper method to try to call appropriate write method for given + * untyped Object. At this point, no structural conversions should be done, + * only simple basic types are to be coerced as necessary. + * + * @param value Non-null value to write + */ + protected void _writeSimpleObject(Object value) + throws IOException, JsonGenerationException + { + /* 31-Dec-2009, tatu: Actually, we could just handle some basic + * types even without codec. This can improve interoperability, + * and specifically help with TokenBuffer. + */ + if (value == null) { + writeNull(); + return; + } + if (value instanceof String) { + writeString((String) value); + return; + } + if (value instanceof Number) { + Number n = (Number) value; + if (n instanceof Integer) { + writeNumber(n.intValue()); + return; + } else if (n instanceof Long) { + writeNumber(n.longValue()); + return; + } else if (n instanceof Double) { + writeNumber(n.doubleValue()); + return; + } else if (n instanceof Float) { + writeNumber(n.floatValue()); + return; + } else if (n instanceof Short) { + writeNumber(n.shortValue()); + return; + } else if (n instanceof Byte) { + writeNumber(n.byteValue()); + return; + } else if (n instanceof BigInteger) { + writeNumber((BigInteger) n); + return; + } else if (n instanceof BigDecimal) { + writeNumber((BigDecimal) n); + return; + + // then Atomic types + + } else if (n instanceof AtomicInteger) { + writeNumber(((AtomicInteger) n).get()); + return; + } else if (n instanceof AtomicLong) { + writeNumber(((AtomicLong) n).get()); + return; + } + } else if (value instanceof byte[]) { + writeBinary((byte[]) value); + return; + } else if (value instanceof Boolean) { + writeBoolean(((Boolean) value).booleanValue()); + return; + } else if (value instanceof AtomicBoolean) { + writeBoolean(((AtomicBoolean) value).get()); + return; + } + throw new IllegalStateException("No ObjectCodec defined for the generator, can only serialize simple wrapper types (type passed " + +value.getClass().getName()+")"); + } + + protected final void _throwInternal() { + throw new RuntimeException("Internal error: this code path should never get executed"); + } + + /** + * @since 1.7 + */ + protected void _reportUnsupportedOperation() { + throw new UnsupportedOperationException("Operation not supported by generator of type "+getClass().getName()); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/JsonNumericParserBase.java b/1.9.10/src/java/org/codehaus/jackson/impl/JsonNumericParserBase.java new file mode 100644 index 0000000..6dd062d --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/JsonNumericParserBase.java
@@ -0,0 +1,20 @@ +package org.codehaus.jackson.impl; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.io.IOContext; + +/** + * Another intermediate base class used by all Jackson {@link JsonParser} + * implementations. Contains shared functionality for dealing with + * number parsing aspects, independent of input source decoding. + * + * @deprecated Since 1.9.0: functionality demoted down to JsonParserBase + */ +@Deprecated +public abstract class JsonNumericParserBase + extends JsonParserBase +{ + protected JsonNumericParserBase(IOContext ctxt, int features) { + super(ctxt, features); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/JsonParserBase.java b/1.9.10/src/java/org/codehaus/jackson/impl/JsonParserBase.java new file mode 100644 index 0000000..4103677 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/JsonParserBase.java
@@ -0,0 +1,1079 @@ +package org.codehaus.jackson.impl; + +import java.io.*; +import java.math.BigDecimal; +import java.math.BigInteger; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.io.IOContext; +import org.codehaus.jackson.io.NumberInput; +import org.codehaus.jackson.util.ByteArrayBuilder; +import org.codehaus.jackson.util.TextBuffer; +import org.codehaus.jackson.util.VersionUtil; + +/** + * Intermediate base class used by all Jackson {@link JsonParser} + * implementations. Contains most common things that are independent + * of actual underlying input source + * + * @author Tatu Saloranta + */ +public abstract class JsonParserBase + extends JsonParserMinimalBase +{ + /* + /********************************************************** + /* Generic I/O state + /********************************************************** + */ + + /** + * I/O context for this reader. It handles buffer allocation + * for the reader. + */ + final protected IOContext _ioContext; + + /** + * Flag that indicates whether parser is closed or not. Gets + * set when parser is either closed by explicit call + * ({@link #close}) or when end-of-input is reached. + */ + protected boolean _closed; + + /* + /********************************************************** + /* Current input data + /********************************************************** + */ + + // Note: type of actual buffer depends on sub-class, can't include + + /** + * Pointer to next available character in buffer + */ + protected int _inputPtr = 0; + + /** + * Index of character after last available one in the buffer. + */ + protected int _inputEnd = 0; + + /* + /********************************************************** + /* Current input location information + /********************************************************** + */ + + /** + * Number of characters/bytes that were contained in previous blocks + * (blocks that were already processed prior to the current buffer). + */ + protected long _currInputProcessed = 0L; + + /** + * Current row location of current point in input buffer, starting + * from 1, if available. + */ + protected int _currInputRow = 1; + + /** + * Current index of the first character of the current row in input + * buffer. Needed to calculate column position, if necessary; benefit + * of not having column itself is that this only has to be updated + * once per line. + */ + protected int _currInputRowStart = 0; + + /* + /********************************************************** + /* Information about starting location of event + /* Reader is pointing to; updated on-demand + /********************************************************** + */ + + // // // Location info at point when current token was started + + /** + * Total number of bytes/characters read before start of current token. + * For big (gigabyte-sized) sizes are possible, needs to be long, + * unlike pointers and sizes related to in-memory buffers. + */ + protected long _tokenInputTotal = 0; + + /** + * Input row on which current token starts, 1-based + */ + protected int _tokenInputRow = 1; + + /** + * Column on input row that current token starts; 0-based (although + * in the end it'll be converted to 1-based) + */ + protected int _tokenInputCol = 0; + + /* + /********************************************************** + /* Parsing state + /********************************************************** + */ + + /** + * Information about parser context, context in which + * the next token is to be parsed (root, array, object). + */ + protected JsonReadContext _parsingContext; + + /** + * Secondary token related to the next token after current one; + * used if its type is known. This may be value token that + * follows FIELD_NAME, for example. + */ + protected JsonToken _nextToken; + + /* + /********************************************************** + /* Buffer(s) for local name(s) and text content + /********************************************************** + */ + + /** + * Buffer that contains contents of String values, including + * field names if necessary (name split across boundary, + * contains escape sequence, or access needed to char array) + */ + protected final TextBuffer _textBuffer; + + /** + * Temporary buffer that is needed if field name is accessed + * using {@link #getTextCharacters} method (instead of String + * returning alternatives) + */ + protected char[] _nameCopyBuffer = null; + + /** + * Flag set to indicate whether the field name is available + * from the name copy buffer or not (in addition to its String + * representation being available via read context) + */ + protected boolean _nameCopied = false; + + /** + * ByteArrayBuilder is needed if 'getBinaryValue' is called. If so, + * we better reuse it for remainder of content. + */ + protected ByteArrayBuilder _byteArrayBuilder = null; + + /** + * We will hold on to decoded binary data, for duration of + * current event, so that multiple calls to + * {@link #getBinaryValue} will not need to decode data more + * than once. + */ + protected byte[] _binaryValue; + + /* + /********************************************************** + /* Constants and fields of former 'JsonNumericParserBase' + /********************************************************** + */ + + final protected static int NR_UNKNOWN = 0; + + // First, integer types + + final protected static int NR_INT = 0x0001; + final protected static int NR_LONG = 0x0002; + final protected static int NR_BIGINT = 0x0004; + + // And then floating point types + + final protected static int NR_DOUBLE = 0x008; + final protected static int NR_BIGDECIMAL = 0x0010; + + // Also, we need some numeric constants + + final static BigInteger BI_MIN_INT = BigInteger.valueOf(Integer.MIN_VALUE); + final static BigInteger BI_MAX_INT = BigInteger.valueOf(Integer.MAX_VALUE); + + final static BigInteger BI_MIN_LONG = BigInteger.valueOf(Long.MIN_VALUE); + final static BigInteger BI_MAX_LONG = BigInteger.valueOf(Long.MAX_VALUE); + + final static BigDecimal BD_MIN_LONG = new BigDecimal(BI_MIN_LONG); + final static BigDecimal BD_MAX_LONG = new BigDecimal(BI_MAX_LONG); + + final static BigDecimal BD_MIN_INT = new BigDecimal(BI_MIN_INT); + final static BigDecimal BD_MAX_INT = new BigDecimal(BI_MAX_INT); + + final static long MIN_INT_L = (long) Integer.MIN_VALUE; + final static long MAX_INT_L = (long) Integer.MAX_VALUE; + + // These are not very accurate, but have to do... (for bounds checks) + + final static double MIN_LONG_D = (double) Long.MIN_VALUE; + final static double MAX_LONG_D = (double) Long.MAX_VALUE; + + final static double MIN_INT_D = (double) Integer.MIN_VALUE; + final static double MAX_INT_D = (double) Integer.MAX_VALUE; + + + // Digits, numeric + final protected static int INT_0 = '0'; + final protected static int INT_1 = '1'; + final protected static int INT_2 = '2'; + final protected static int INT_3 = '3'; + final protected static int INT_4 = '4'; + final protected static int INT_5 = '5'; + final protected static int INT_6 = '6'; + final protected static int INT_7 = '7'; + final protected static int INT_8 = '8'; + final protected static int INT_9 = '9'; + + final protected static int INT_MINUS = '-'; + final protected static int INT_PLUS = '+'; + final protected static int INT_DECIMAL_POINT = '.'; + + final protected static int INT_e = 'e'; + final protected static int INT_E = 'E'; + + final protected static char CHAR_NULL = '\0'; + + // Numeric value holders: multiple fields used for + // for efficiency + + /** + * Bitfield that indicates which numeric representations + * have been calculated for the current type + */ + protected int _numTypesValid = NR_UNKNOWN; + + // First primitives + + protected int _numberInt; + + protected long _numberLong; + + protected double _numberDouble; + + // And then object types + + protected BigInteger _numberBigInt; + + protected BigDecimal _numberBigDecimal; + + // And then other information about value itself + + /** + * Flag that indicates whether numeric value has a negative + * value. That is, whether its textual representation starts + * with minus character. + */ + protected boolean _numberNegative; + + /** + * Length of integer part of the number, in characters + */ + protected int _intLength; + + /** + * Length of the fractional part (not including decimal + * point or exponent), in characters. + * Not used for pure integer values. + */ + protected int _fractLength; + + /** + * Length of the exponent part of the number, if any, not + * including 'e' marker or sign, just digits. + * Not used for pure integer values. + */ + protected int _expLength; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + protected JsonParserBase(IOContext ctxt, int features) + { + super(); + _features = features; + _ioContext = ctxt; + _textBuffer = ctxt.constructTextBuffer(); + _parsingContext = JsonReadContext.createRootContext(); + } + + @Override + public Version version() { + return VersionUtil.versionFor(getClass()); + } + + /* + /********************************************************** + /* JsonParser impl + /********************************************************** + */ + + /** + * Method that can be called to get the name associated with + * the current event. + */ + @Override + public String getCurrentName() + throws IOException, JsonParseException + { + // [JACKSON-395]: start markers require information from parent + if (_currToken == JsonToken.START_OBJECT || _currToken == JsonToken.START_ARRAY) { + JsonReadContext parent = _parsingContext.getParent(); + return parent.getCurrentName(); + } + return _parsingContext.getCurrentName(); + } + + @Override + public void close() throws IOException + { + if (!_closed) { + _closed = true; + try { + _closeInput(); + } finally { + // as per [JACKSON-324], do in finally block + // Also, internal buffer(s) can now be released as well + _releaseBuffers(); + } + } + } + + @Override + public boolean isClosed() { return _closed; } + + @Override + public JsonReadContext getParsingContext() + { + return _parsingContext; + } + + /** + * Method that return the <b>starting</b> location of the current + * token; that is, position of the first character from input + * that starts the current token. + */ + @Override + public JsonLocation getTokenLocation() + { + return new JsonLocation(_ioContext.getSourceReference(), + getTokenCharacterOffset(), + getTokenLineNr(), + getTokenColumnNr()); + } + + /** + * Method that returns location of the last processed character; + * usually for error reporting purposes + */ + @Override + public JsonLocation getCurrentLocation() + { + int col = _inputPtr - _currInputRowStart + 1; // 1-based + return new JsonLocation(_ioContext.getSourceReference(), + _currInputProcessed + _inputPtr - 1, + _currInputRow, col); + } + + /* + /********************************************************** + /* Public API, access to token information, text + /********************************************************** + */ + + @Override + public boolean hasTextCharacters() + { + if (_currToken == JsonToken.VALUE_STRING) { + return true; // usually true + } + if (_currToken == JsonToken.FIELD_NAME) { + return _nameCopied; + } + return false; + } + + /* + /********************************************************** + /* Public low-level accessors + /********************************************************** + */ + + public final long getTokenCharacterOffset() { return _tokenInputTotal; } + public final int getTokenLineNr() { return _tokenInputRow; } + public final int getTokenColumnNr() { + // note: value of -1 means "not available"; otherwise convert from 0-based to 1-based + int col = _tokenInputCol; + return (col < 0) ? col : (col + 1); + } + + /* + /********************************************************** + /* Low-level reading, other + /********************************************************** + */ + + protected final void loadMoreGuaranteed() + throws IOException + { + if (!loadMore()) { + _reportInvalidEOF(); + } + } + + /* + /********************************************************** + /* Abstract methods needed from sub-classes + /********************************************************** + */ + + protected abstract boolean loadMore() throws IOException; + + protected abstract void _finishString() throws IOException, JsonParseException; + + protected abstract void _closeInput() throws IOException; + + /* + /********************************************************** + /* Low-level reading, other + /********************************************************** + */ + + /** + * Method called to release internal buffers owned by the base + * reader. This may be called along with {@link #_closeInput} (for + * example, when explicitly closing this reader instance), or + * separately (if need be). + */ + protected void _releaseBuffers() throws IOException + { + _textBuffer.releaseBuffers(); + char[] buf = _nameCopyBuffer; + if (buf != null) { + _nameCopyBuffer = null; + _ioContext.releaseNameCopyBuffer(buf); + } + } + + /** + * Method called when an EOF is encountered between tokens. + * If so, it may be a legitimate EOF, but only iff there + * is no open non-root context. + */ + @Override + protected void _handleEOF() throws JsonParseException + { + if (!_parsingContext.inRoot()) { + _reportInvalidEOF(": expected close marker for "+_parsingContext.getTypeDesc()+" (from "+_parsingContext.getStartLocation(_ioContext.getSourceReference())+")"); + } + } + + /* + /********************************************************** + /* Internal/package methods: Error reporting + /********************************************************** + */ + + protected void _reportMismatchedEndMarker(int actCh, char expCh) + throws JsonParseException + { + String startDesc = ""+_parsingContext.getStartLocation(_ioContext.getSourceReference()); + _reportError("Unexpected close marker '"+((char) actCh)+"': expected '"+expCh+"' (for "+_parsingContext.getTypeDesc()+" starting at "+startDesc+")"); + } + + /* + /********************************************************** + /* Internal/package methods: shared/reusable builders + /********************************************************** + */ + + public ByteArrayBuilder _getByteArrayBuilder() + { + if (_byteArrayBuilder == null) { + _byteArrayBuilder = new ByteArrayBuilder(); + } else { + _byteArrayBuilder.reset(); + } + return _byteArrayBuilder; + } + + /* + /********************************************************** + /* Methods from former JsonNumericParserBase + /********************************************************** + */ + + // // // Life-cycle of number-parsing + + protected final JsonToken reset(boolean negative, int intLen, int fractLen, int expLen) + { + if (fractLen < 1 && expLen < 1) { // integer + return resetInt(negative, intLen); + } + return resetFloat(negative, intLen, fractLen, expLen); + } + + protected final JsonToken resetInt(boolean negative, int intLen) + { + _numberNegative = negative; + _intLength = intLen; + _fractLength = 0; + _expLength = 0; + _numTypesValid = NR_UNKNOWN; // to force parsing + return JsonToken.VALUE_NUMBER_INT; + } + + protected final JsonToken resetFloat(boolean negative, int intLen, int fractLen, int expLen) + { + _numberNegative = negative; + _intLength = intLen; + _fractLength = fractLen; + _expLength = expLen; + _numTypesValid = NR_UNKNOWN; // to force parsing + return JsonToken.VALUE_NUMBER_FLOAT; + } + + protected final JsonToken resetAsNaN(String valueStr, double value) + { + _textBuffer.resetWithString(valueStr); + _numberDouble = value; + _numTypesValid = NR_DOUBLE; + return JsonToken.VALUE_NUMBER_FLOAT; + } + + /* + /********************************************************** + /* Numeric accessors of public API + /********************************************************** + */ + + @Override + public Number getNumberValue() throws IOException, JsonParseException + { + if (_numTypesValid == NR_UNKNOWN) { + _parseNumericValue(NR_UNKNOWN); // will also check event type + } + // Separate types for int types + if (_currToken == JsonToken.VALUE_NUMBER_INT) { + if ((_numTypesValid & NR_INT) != 0) { + return Integer.valueOf(_numberInt); + } + if ((_numTypesValid & NR_LONG) != 0) { + return Long.valueOf(_numberLong); + } + if ((_numTypesValid & NR_BIGINT) != 0) { + return _numberBigInt; + } + // Shouldn't get this far but if we do + return _numberBigDecimal; + } + + /* And then floating point types. But here optimal type + * needs to be big decimal, to avoid losing any data? + */ + if ((_numTypesValid & NR_BIGDECIMAL) != 0) { + return _numberBigDecimal; + } + if ((_numTypesValid & NR_DOUBLE) == 0) { // sanity check + _throwInternal(); + } + return Double.valueOf(_numberDouble); + } + + @Override + public NumberType getNumberType() throws IOException, JsonParseException + { + if (_numTypesValid == NR_UNKNOWN) { + _parseNumericValue(NR_UNKNOWN); // will also check event type + } + if (_currToken == JsonToken.VALUE_NUMBER_INT) { + if ((_numTypesValid & NR_INT) != 0) { + return NumberType.INT; + } + if ((_numTypesValid & NR_LONG) != 0) { + return NumberType.LONG; + } + return NumberType.BIG_INTEGER; + } + + /* And then floating point types. Here optimal type + * needs to be big decimal, to avoid losing any data? + * However... using BD is slow, so let's allow returning + * double as type if no explicit call has been made to access + * data as BD? + */ + if ((_numTypesValid & NR_BIGDECIMAL) != 0) { + return NumberType.BIG_DECIMAL; + } + return NumberType.DOUBLE; + } + + @Override + public int getIntValue() throws IOException, JsonParseException + { + if ((_numTypesValid & NR_INT) == 0) { + if (_numTypesValid == NR_UNKNOWN) { // not parsed at all + _parseNumericValue(NR_INT); // will also check event type + } + if ((_numTypesValid & NR_INT) == 0) { // wasn't an int natively? + convertNumberToInt(); // let's make it so, if possible + } + } + return _numberInt; + } + + @Override + public long getLongValue() throws IOException, JsonParseException + { + if ((_numTypesValid & NR_LONG) == 0) { + if (_numTypesValid == NR_UNKNOWN) { + _parseNumericValue(NR_LONG); + } + if ((_numTypesValid & NR_LONG) == 0) { + convertNumberToLong(); + } + } + return _numberLong; + } + + @Override + public BigInteger getBigIntegerValue() throws IOException, JsonParseException + { + if ((_numTypesValid & NR_BIGINT) == 0) { + if (_numTypesValid == NR_UNKNOWN) { + _parseNumericValue(NR_BIGINT); + } + if ((_numTypesValid & NR_BIGINT) == 0) { + convertNumberToBigInteger(); + } + } + return _numberBigInt; + } + + @Override + public float getFloatValue() throws IOException, JsonParseException + { + double value = getDoubleValue(); + /* 22-Jan-2009, tatu: Bounds/range checks would be tricky + * here, so let's not bother even trying... + */ + /* + if (value < -Float.MAX_VALUE || value > MAX_FLOAT_D) { + _reportError("Numeric value ("+getText()+") out of range of Java float"); + } + */ + return (float) value; + } + + @Override + public double getDoubleValue() throws IOException, JsonParseException + { + if ((_numTypesValid & NR_DOUBLE) == 0) { + if (_numTypesValid == NR_UNKNOWN) { + _parseNumericValue(NR_DOUBLE); + } + if ((_numTypesValid & NR_DOUBLE) == 0) { + convertNumberToDouble(); + } + } + return _numberDouble; + } + + @Override + public BigDecimal getDecimalValue() throws IOException, JsonParseException + { + if ((_numTypesValid & NR_BIGDECIMAL) == 0) { + if (_numTypesValid == NR_UNKNOWN) { + _parseNumericValue(NR_BIGDECIMAL); + } + if ((_numTypesValid & NR_BIGDECIMAL) == 0) { + convertNumberToBigDecimal(); + } + } + return _numberBigDecimal; + } + + /* + /********************************************************** + /* Conversion from textual to numeric representation + /********************************************************** + */ + + /** + * Method that will parse actual numeric value out of a syntactically + * valid number value. Type it will parse into depends on whether + * it is a floating point number, as well as its magnitude: smallest + * legal type (of ones available) is used for efficiency. + * + * @param expType Numeric type that we will immediately need, if any; + * mostly necessary to optimize handling of floating point numbers + */ + protected void _parseNumericValue(int expType) + throws IOException, JsonParseException + { + // Int or float? + if (_currToken == JsonToken.VALUE_NUMBER_INT) { + char[] buf = _textBuffer.getTextBuffer(); + int offset = _textBuffer.getTextOffset(); + int len = _intLength; + if (_numberNegative) { + ++offset; + } + if (len <= 9) { // definitely fits in int + int i = NumberInput.parseInt(buf, offset, len); + _numberInt = _numberNegative ? -i : i; + _numTypesValid = NR_INT; + return; + } + if (len <= 18) { // definitely fits AND is easy to parse using 2 int parse calls + long l = NumberInput.parseLong(buf, offset, len); + if (_numberNegative) { + l = -l; + } + // [JACKSON-230] Could still fit in int, need to check + if (len == 10) { + if (_numberNegative) { + if (l >= MIN_INT_L) { + _numberInt = (int) l; + _numTypesValid = NR_INT; + return; + } + } else { + if (l <= MAX_INT_L) { + _numberInt = (int) l; + _numTypesValid = NR_INT; + return; + } + } + } + _numberLong = l; + _numTypesValid = NR_LONG; + return; + } + _parseSlowIntValue(expType, buf, offset, len); + return; + } + if (_currToken == JsonToken.VALUE_NUMBER_FLOAT) { + _parseSlowFloatValue(expType); + return; + } + _reportError("Current token ("+_currToken+") not numeric, can not use numeric value accessors"); + } + + private final void _parseSlowFloatValue(int expType) + throws IOException, JsonParseException + { + /* Nope: floating point. Here we need to be careful to get + * optimal parsing strategy: choice is between accurate but + * slow (BigDecimal) and lossy but fast (Double). For now + * let's only use BD when explicitly requested -- it can + * still be constructed correctly at any point since we do + * retain textual representation + */ + try { + if (expType == NR_BIGDECIMAL) { + _numberBigDecimal = _textBuffer.contentsAsDecimal(); + _numTypesValid = NR_BIGDECIMAL; + } else { + // Otherwise double has to do + _numberDouble = _textBuffer.contentsAsDouble(); + _numTypesValid = NR_DOUBLE; + } + } catch (NumberFormatException nex) { + // Can this ever occur? Due to overflow, maybe? + _wrapError("Malformed numeric value '"+_textBuffer.contentsAsString()+"'", nex); + } + } + + private final void _parseSlowIntValue(int expType, char[] buf, int offset, int len) + throws IOException, JsonParseException + { + String numStr = _textBuffer.contentsAsString(); + try { + // [JACKSON-230] Some long cases still... + if (NumberInput.inLongRange(buf, offset, len, _numberNegative)) { + // Probably faster to construct a String, call parse, than to use BigInteger + _numberLong = Long.parseLong(numStr); + _numTypesValid = NR_LONG; + } else { + // nope, need the heavy guns... (rare case) + _numberBigInt = new BigInteger(numStr); + _numTypesValid = NR_BIGINT; + } + } catch (NumberFormatException nex) { + // Can this ever occur? Due to overflow, maybe? + _wrapError("Malformed numeric value '"+numStr+"'", nex); + } + } + + /* + /********************************************************** + /* Numeric conversions + /********************************************************** + */ + + protected void convertNumberToInt() + throws IOException, JsonParseException + { + // First, converting from long ought to be easy + if ((_numTypesValid & NR_LONG) != 0) { + // Let's verify it's lossless conversion by simple roundtrip + int result = (int) _numberLong; + if (((long) result) != _numberLong) { + _reportError("Numeric value ("+getText()+") out of range of int"); + } + _numberInt = result; + } else if ((_numTypesValid & NR_BIGINT) != 0) { + if (BI_MIN_INT.compareTo(_numberBigInt) > 0 + || BI_MAX_INT.compareTo(_numberBigInt) < 0) { + reportOverflowInt(); + } + _numberInt = _numberBigInt.intValue(); + } else if ((_numTypesValid & NR_DOUBLE) != 0) { + // Need to check boundaries + if (_numberDouble < MIN_INT_D || _numberDouble > MAX_INT_D) { + reportOverflowInt(); + } + _numberInt = (int) _numberDouble; + } else if ((_numTypesValid & NR_BIGDECIMAL) != 0) { + if (BD_MIN_INT.compareTo(_numberBigDecimal) > 0 + || BD_MAX_INT.compareTo(_numberBigDecimal) < 0) { + reportOverflowInt(); + } + _numberInt = _numberBigDecimal.intValue(); + } else { + _throwInternal(); // should never get here + } + + _numTypesValid |= NR_INT; + } + + protected void convertNumberToLong() + throws IOException, JsonParseException + { + if ((_numTypesValid & NR_INT) != 0) { + _numberLong = (long) _numberInt; + } else if ((_numTypesValid & NR_BIGINT) != 0) { + if (BI_MIN_LONG.compareTo(_numberBigInt) > 0 + || BI_MAX_LONG.compareTo(_numberBigInt) < 0) { + reportOverflowLong(); + } + _numberLong = _numberBigInt.longValue(); + } else if ((_numTypesValid & NR_DOUBLE) != 0) { + // Need to check boundaries + if (_numberDouble < MIN_LONG_D || _numberDouble > MAX_LONG_D) { + reportOverflowLong(); + } + _numberLong = (long) _numberDouble; + } else if ((_numTypesValid & NR_BIGDECIMAL) != 0) { + if (BD_MIN_LONG.compareTo(_numberBigDecimal) > 0 + || BD_MAX_LONG.compareTo(_numberBigDecimal) < 0) { + reportOverflowLong(); + } + _numberLong = _numberBigDecimal.longValue(); + } else { + _throwInternal(); // should never get here + } + + _numTypesValid |= NR_LONG; + } + + protected void convertNumberToBigInteger() + throws IOException, JsonParseException + { + if ((_numTypesValid & NR_BIGDECIMAL) != 0) { + // here it'll just get truncated, no exceptions thrown + _numberBigInt = _numberBigDecimal.toBigInteger(); + } else if ((_numTypesValid & NR_LONG) != 0) { + _numberBigInt = BigInteger.valueOf(_numberLong); + } else if ((_numTypesValid & NR_INT) != 0) { + _numberBigInt = BigInteger.valueOf(_numberInt); + } else if ((_numTypesValid & NR_DOUBLE) != 0) { + _numberBigInt = BigDecimal.valueOf(_numberDouble).toBigInteger(); + } else { + _throwInternal(); // should never get here + } + _numTypesValid |= NR_BIGINT; + } + + protected void convertNumberToDouble() + throws IOException, JsonParseException + { + /* 05-Aug-2008, tatus: Important note: this MUST start with + * more accurate representations, since we don't know which + * value is the original one (others get generated when + * requested) + */ + + if ((_numTypesValid & NR_BIGDECIMAL) != 0) { + _numberDouble = _numberBigDecimal.doubleValue(); + } else if ((_numTypesValid & NR_BIGINT) != 0) { + _numberDouble = _numberBigInt.doubleValue(); + } else if ((_numTypesValid & NR_LONG) != 0) { + _numberDouble = (double) _numberLong; + } else if ((_numTypesValid & NR_INT) != 0) { + _numberDouble = (double) _numberInt; + } else { + _throwInternal(); // should never get here + } + + _numTypesValid |= NR_DOUBLE; + } + + protected void convertNumberToBigDecimal() + throws IOException, JsonParseException + { + /* 05-Aug-2008, tatus: Important note: this MUST start with + * more accurate representations, since we don't know which + * value is the original one (others get generated when + * requested) + */ + + if ((_numTypesValid & NR_DOUBLE) != 0) { + /* Let's actually parse from String representation, + * to avoid rounding errors that non-decimal floating operations + * would incur + */ + _numberBigDecimal = new BigDecimal(getText()); + } else if ((_numTypesValid & NR_BIGINT) != 0) { + _numberBigDecimal = new BigDecimal(_numberBigInt); + } else if ((_numTypesValid & NR_LONG) != 0) { + _numberBigDecimal = BigDecimal.valueOf(_numberLong); + } else if ((_numTypesValid & NR_INT) != 0) { + _numberBigDecimal = BigDecimal.valueOf((long) _numberInt); + } else { + _throwInternal(); // should never get here + } + _numTypesValid |= NR_BIGDECIMAL; + } + + /* + /********************************************************** + /* Number handling exceptions + /********************************************************** + */ + + protected void reportUnexpectedNumberChar(int ch, String comment) + throws JsonParseException + { + String msg = "Unexpected character ("+_getCharDesc(ch)+") in numeric value"; + if (comment != null) { + msg += ": "+comment; + } + _reportError(msg); + } + + protected void reportInvalidNumber(String msg) + throws JsonParseException + { + _reportError("Invalid numeric value: "+msg); + } + + protected void reportOverflowInt() + throws IOException, JsonParseException + { + _reportError("Numeric value ("+getText()+") out of range of int ("+Integer.MIN_VALUE+" - "+Integer.MAX_VALUE+")"); + } + + protected void reportOverflowLong() + throws IOException, JsonParseException + { + _reportError("Numeric value ("+getText()+") out of range of long ("+Long.MIN_VALUE+" - "+Long.MAX_VALUE+")"); + } + + /* + /********************************************************** + /* Base64 handling support + /********************************************************** + */ + + /** + * Method that sub-classes must implement to support escaped sequences + * in base64-encoded sections. + * Sub-classes that do not need base64 support can leave this as is + */ + protected char _decodeEscaped() + throws IOException, JsonParseException { + throw new UnsupportedOperationException(); + } + + protected final int _decodeBase64Escape(Base64Variant b64variant, int ch, int index) + throws IOException, JsonParseException + { + // 17-May-2011, tatu: As per [JACKSON-xxx], need to handle escaped chars + if (ch != '\\') { + throw reportInvalidBase64Char(b64variant, ch, index); + } + int unescaped = _decodeEscaped(); + // if white space, skip if first triplet; otherwise errors + if (unescaped <= INT_SPACE) { + if (index == 0) { // whitespace only allowed to be skipped between triplets + return -1; + } + } + // otherwise try to find actual triplet value + int bits = b64variant.decodeBase64Char(unescaped); + if (bits < 0) { + throw reportInvalidBase64Char(b64variant, unescaped, index); + } + return bits; + } + + protected final int _decodeBase64Escape(Base64Variant b64variant, char ch, int index) + throws IOException, JsonParseException + { + // 17-May-2011, tatu: As per [JACKSON-xxx], need to handle escaped chars + if (ch != '\\') { + throw reportInvalidBase64Char(b64variant, ch, index); + } + char unescaped = _decodeEscaped(); + // if white space, skip if first triplet; otherwise errors + if (unescaped <= INT_SPACE) { + if (index == 0) { // whitespace only allowed to be skipped between triplets + return -1; + } + } + // otherwise try to find actual triplet value + int bits = b64variant.decodeBase64Char(unescaped); + if (bits < 0) { + throw reportInvalidBase64Char(b64variant, unescaped, index); + } + return bits; + } + + protected IllegalArgumentException reportInvalidBase64Char(Base64Variant b64variant, int ch, int bindex) + throws IllegalArgumentException + { + return reportInvalidBase64Char(b64variant, ch, bindex, null); + } + + /** + * @param bindex Relative index within base64 character unit; between 0 + * and 3 (as unit has exactly 4 characters) + */ + protected IllegalArgumentException reportInvalidBase64Char(Base64Variant b64variant, int ch, int bindex, String msg) + throws IllegalArgumentException + { + String base; + if (ch <= INT_SPACE) { + base = "Illegal white space character (code 0x"+Integer.toHexString(ch)+") as character #"+(bindex+1)+" of 4-char base64 unit: can only used between units"; + } else if (b64variant.usesPaddingChar(ch)) { + base = "Unexpected padding character ('"+b64variant.getPaddingChar()+"') as character #"+(bindex+1)+" of 4-char base64 unit: padding only legal as 3rd or 4th character"; + } else if (!Character.isDefined(ch) || Character.isISOControl(ch)) { + // Not sure if we can really get here... ? (most illegal xml chars are caught at lower level) + base = "Illegal character (code 0x"+Integer.toHexString(ch)+") in base64 content"; + } else { + base = "Illegal character '"+((char)ch)+"' (code 0x"+Integer.toHexString(ch)+") in base64 content"; + } + if (msg != null) { + base = base + ": " + msg; + } + return new IllegalArgumentException(base); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/JsonParserMinimalBase.java b/1.9.10/src/java/org/codehaus/jackson/impl/JsonParserMinimalBase.java new file mode 100644 index 0000000..1e5f6d0 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/JsonParserMinimalBase.java
@@ -0,0 +1,539 @@ +package org.codehaus.jackson.impl; + +import java.io.IOException; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.JsonParser.Feature; +import org.codehaus.jackson.io.NumberInput; +import org.codehaus.jackson.util.ByteArrayBuilder; + +/** + * Intermediate base class used by all Jackson {@link JsonParser} + * implementations, but does not add any additional fields that depend + * on particular method of obtaining input. + *<p> + * Note that 'minimal' here mostly refers to minimal number of fields + * (size) and functionality that is specific to certain types + * of parser implementations; but not necessarily to number of methods. + * + * @since 1.6 + * + * @author Tatu Saloranta + */ +public abstract class JsonParserMinimalBase + extends JsonParser +{ + // Control chars: + protected final static int INT_TAB = '\t'; + protected final static int INT_LF = '\n'; + protected final static int INT_CR = '\r'; + protected final static int INT_SPACE = 0x0020; + + // Markup + protected final static int INT_LBRACKET = '['; + protected final static int INT_RBRACKET = ']'; + protected final static int INT_LCURLY = '{'; + protected final static int INT_RCURLY = '}'; + protected final static int INT_QUOTE = '"'; + protected final static int INT_BACKSLASH = '\\'; + protected final static int INT_SLASH = '/'; + protected final static int INT_COLON = ':'; + protected final static int INT_COMMA = ','; + protected final static int INT_ASTERISK = '*'; + protected final static int INT_APOSTROPHE = '\''; + + // Letters we need + protected final static int INT_b = 'b'; + protected final static int INT_f = 'f'; + protected final static int INT_n = 'n'; + protected final static int INT_r = 'r'; + protected final static int INT_t = 't'; + protected final static int INT_u = 'u'; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + protected JsonParserMinimalBase() { } + protected JsonParserMinimalBase(int features) { + super(features); + } + + /* + /********************************************************** + /* Configuration overrides if any + /********************************************************** + */ + + // from base class: + + //public void enableFeature(Feature f) + //public void disableFeature(Feature f) + //public void setFeature(Feature f, boolean state) + //public boolean isFeatureEnabled(Feature f) + + /* + /********************************************************** + /* JsonParser impl + /********************************************************** + */ + + @Override + public abstract JsonToken nextToken() throws IOException, JsonParseException; + + //public final JsonToken nextValue() + + @Override + public JsonParser skipChildren() throws IOException, JsonParseException + { + if (_currToken != JsonToken.START_OBJECT + && _currToken != JsonToken.START_ARRAY) { + return this; + } + int open = 1; + + /* Since proper matching of start/end markers is handled + * by nextToken(), we'll just count nesting levels here + */ + while (true) { + JsonToken t = nextToken(); + if (t == null) { + _handleEOF(); + /* given constraints, above should never return; + * however, FindBugs doesn't know about it and + * complains... so let's add dummy break here + */ + return this; + } + switch (t) { + case START_OBJECT: + case START_ARRAY: + ++open; + break; + case END_OBJECT: + case END_ARRAY: + if (--open == 0) { + return this; + } + break; + } + } + } + + /** + * Method sub-classes need to implement + */ + protected abstract void _handleEOF() throws JsonParseException; + + //public JsonToken getCurrentToken() + + //public boolean hasCurrentToken() + + @Override + public abstract String getCurrentName() throws IOException, JsonParseException; + + @Override + public abstract void close() throws IOException; + + @Override + public abstract boolean isClosed(); + + @Override + public abstract JsonStreamContext getParsingContext(); + +// public abstract JsonLocation getTokenLocation(); + +// public abstract JsonLocation getCurrentLocation(); + + /* + /********************************************************** + /* Public API, access to token information, text + /********************************************************** + */ + + @Override + public abstract String getText() throws IOException, JsonParseException; + + @Override + public abstract char[] getTextCharacters() throws IOException, JsonParseException; + + @Override + public abstract boolean hasTextCharacters(); + + @Override + public abstract int getTextLength() throws IOException, JsonParseException; + + @Override + public abstract int getTextOffset() throws IOException, JsonParseException; + + /* + /********************************************************** + /* Public API, access to token information, binary + /********************************************************** + */ + + @Override + public abstract byte[] getBinaryValue(Base64Variant b64variant) + throws IOException, JsonParseException; + + /* + /********************************************************** + /* Public API, access with conversion/coercion + /********************************************************** + */ + + @Override + public boolean getValueAsBoolean(boolean defaultValue) throws IOException, JsonParseException + { + if (_currToken != null) { + switch (_currToken) { + case VALUE_NUMBER_INT: + return getIntValue() != 0; + case VALUE_TRUE: + return true; + case VALUE_FALSE: + case VALUE_NULL: + return false; + case VALUE_EMBEDDED_OBJECT: + { + Object value = this.getEmbeddedObject(); + if (value instanceof Boolean) { + return ((Boolean) value).booleanValue(); + } + } + case VALUE_STRING: + String str = getText().trim(); + if ("true".equals(str)) { + return true; + } + break; + } + } + return defaultValue; + } + + @Override + public int getValueAsInt(int defaultValue) throws IOException, JsonParseException + { + if (_currToken != null) { + switch (_currToken) { + case VALUE_NUMBER_INT: + case VALUE_NUMBER_FLOAT: + return getIntValue(); + case VALUE_TRUE: + return 1; + case VALUE_FALSE: + case VALUE_NULL: + return 0; + case VALUE_STRING: + return NumberInput.parseAsInt(getText(), defaultValue); + case VALUE_EMBEDDED_OBJECT: + { + Object value = this.getEmbeddedObject(); + if (value instanceof Number) { + return ((Number) value).intValue(); + } + } + } + } + return defaultValue; + } + + @Override + public long getValueAsLong(long defaultValue) throws IOException, JsonParseException + { + if (_currToken != null) { + switch (_currToken) { + case VALUE_NUMBER_INT: + case VALUE_NUMBER_FLOAT: + return getLongValue(); + case VALUE_TRUE: + return 1; + case VALUE_FALSE: + case VALUE_NULL: + return 0; + case VALUE_STRING: + return NumberInput.parseAsLong(getText(), defaultValue); + case VALUE_EMBEDDED_OBJECT: + { + Object value = this.getEmbeddedObject(); + if (value instanceof Number) { + return ((Number) value).longValue(); + } + } + } + } + return defaultValue; + } + + @Override + public double getValueAsDouble(double defaultValue) throws IOException, JsonParseException + { + if (_currToken != null) { + switch (_currToken) { + case VALUE_NUMBER_INT: + case VALUE_NUMBER_FLOAT: + return getDoubleValue(); + case VALUE_TRUE: + return 1; + case VALUE_FALSE: + case VALUE_NULL: + return 0; + case VALUE_STRING: + return NumberInput.parseAsDouble(getText(), defaultValue); + case VALUE_EMBEDDED_OBJECT: + { + Object value = this.getEmbeddedObject(); + if (value instanceof Number) { + return ((Number) value).doubleValue(); + } + } + } + } + return defaultValue; + } + + /* + /********************************************************** + /* Base64 decoding + /********************************************************** + */ + + /** + * Helper method that can be used for base64 decoding in cases where + * encoded content has already been read as a String. + * + * @since 1.9.3 + */ + protected void _decodeBase64(String str, ByteArrayBuilder builder, Base64Variant b64variant) + throws IOException, JsonParseException + { + int ptr = 0; + int len = str.length(); + + main_loop: + while (ptr < len) { + // first, we'll skip preceding white space, if any + char ch; + do { + ch = str.charAt(ptr++); + if (ptr >= len) { + break main_loop; + } + } while (ch <= INT_SPACE); + int bits = b64variant.decodeBase64Char(ch); + if (bits < 0) { + _reportInvalidBase64(b64variant, ch, 0, null); + } + int decodedData = bits; + // then second base64 char; can't get padding yet, nor ws + if (ptr >= len) { + _reportBase64EOF(); + } + ch = str.charAt(ptr++); + bits = b64variant.decodeBase64Char(ch); + if (bits < 0) { + _reportInvalidBase64(b64variant, ch, 1, null); + } + decodedData = (decodedData << 6) | bits; + // third base64 char; can be padding, but not ws + if (ptr >= len) { + // but as per [JACKSON-631] can be end-of-input, iff not using padding + if (!b64variant.usesPadding()) { + decodedData >>= 4; + builder.append(decodedData); + break; + } + _reportBase64EOF(); + } + ch = str.charAt(ptr++); + bits = b64variant.decodeBase64Char(ch); + + // First branch: can get padding (-> 1 byte) + if (bits < 0) { + if (bits != Base64Variant.BASE64_VALUE_PADDING) { + _reportInvalidBase64(b64variant, ch, 2, null); + } + // Ok, must get padding + if (ptr >= len) { + _reportBase64EOF(); + } + ch = str.charAt(ptr++); + if (!b64variant.usesPaddingChar(ch)) { + _reportInvalidBase64(b64variant, ch, 3, "expected padding character '"+b64variant.getPaddingChar()+"'"); + } + // Got 12 bits, only need 8, need to shift + decodedData >>= 4; + builder.append(decodedData); + continue; + } + // Nope, 2 or 3 bytes + decodedData = (decodedData << 6) | bits; + // fourth and last base64 char; can be padding, but not ws + if (ptr >= len) { + // but as per [JACKSON-631] can be end-of-input, iff not using padding + if (!b64variant.usesPadding()) { + decodedData >>= 2; + builder.appendTwoBytes(decodedData); + break; + } + _reportBase64EOF(); + } + ch = str.charAt(ptr++); + bits = b64variant.decodeBase64Char(ch); + if (bits < 0) { + if (bits != Base64Variant.BASE64_VALUE_PADDING) { + _reportInvalidBase64(b64variant, ch, 3, null); + } + decodedData >>= 2; + builder.appendTwoBytes(decodedData); + } else { + // otherwise, our triple is now complete + decodedData = (decodedData << 6) | bits; + builder.appendThreeBytes(decodedData); + } + } + } + + /** + * @param bindex Relative index within base64 character unit; between 0 + * and 3 (as unit has exactly 4 characters) + */ + protected void _reportInvalidBase64(Base64Variant b64variant, char ch, int bindex, String msg) + throws JsonParseException + { + String base; + if (ch <= INT_SPACE) { + base = "Illegal white space character (code 0x"+Integer.toHexString(ch)+") as character #"+(bindex+1)+" of 4-char base64 unit: can only used between units"; + } else if (b64variant.usesPaddingChar(ch)) { + base = "Unexpected padding character ('"+b64variant.getPaddingChar()+"') as character #"+(bindex+1)+" of 4-char base64 unit: padding only legal as 3rd or 4th character"; + } else if (!Character.isDefined(ch) || Character.isISOControl(ch)) { + // Not sure if we can really get here... ? (most illegal xml chars are caught at lower level) + base = "Illegal character (code 0x"+Integer.toHexString(ch)+") in base64 content"; + } else { + base = "Illegal character '"+ch+"' (code 0x"+Integer.toHexString(ch)+") in base64 content"; + } + if (msg != null) { + base = base + ": " + msg; + } + throw _constructError(base); + } + + protected void _reportBase64EOF() throws JsonParseException { + throw _constructError("Unexpected end-of-String in base64 content"); + } + + + /* + /********************************************************** + /* Error reporting + /********************************************************** + */ + + protected void _reportUnexpectedChar(int ch, String comment) + throws JsonParseException + { + String msg = "Unexpected character ("+_getCharDesc(ch)+")"; + if (comment != null) { + msg += ": "+comment; + } + _reportError(msg); + } + + protected void _reportInvalidEOF() + throws JsonParseException + { + _reportInvalidEOF(" in "+_currToken); + } + + protected void _reportInvalidEOF(String msg) + throws JsonParseException + { + _reportError("Unexpected end-of-input"+msg); + } + + protected void _reportInvalidEOFInValue() throws JsonParseException + { + _reportInvalidEOF(" in a value"); + } + + protected void _throwInvalidSpace(int i) + throws JsonParseException + { + char c = (char) i; + String msg = "Illegal character ("+_getCharDesc(c)+"): only regular white space (\\r, \\n, \\t) is allowed between tokens"; + _reportError(msg); + } + + /** + * Method called to report a problem with unquoted control character. + * Note: starting with version 1.4, it is possible to suppress + * exception by enabling {@link Feature#ALLOW_UNQUOTED_CONTROL_CHARS}. + */ + protected void _throwUnquotedSpace(int i, String ctxtDesc) + throws JsonParseException + { + // JACKSON-208; possible to allow unquoted control chars: + if (!isEnabled(Feature.ALLOW_UNQUOTED_CONTROL_CHARS) || i >= INT_SPACE) { + char c = (char) i; + String msg = "Illegal unquoted character ("+_getCharDesc(c)+"): has to be escaped using backslash to be included in "+ctxtDesc; + _reportError(msg); + } + } + + protected char _handleUnrecognizedCharacterEscape(char ch) throws JsonProcessingException + { + // as per [JACKSON-300] + if (isEnabled(Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER)) { + return ch; + } + // and [JACKSON-548] + if (ch == '\'' && isEnabled(Feature.ALLOW_SINGLE_QUOTES)) { + return ch; + } + _reportError("Unrecognized character escape "+_getCharDesc(ch)); + return ch; + } + + /* + /********************************************************** + /* Error reporting, generic + /********************************************************** + */ + + protected final static String _getCharDesc(int ch) + { + char c = (char) ch; + if (Character.isISOControl(c)) { + return "(CTRL-CHAR, code "+ch+")"; + } + if (ch > 255) { + return "'"+c+"' (code "+ch+" / 0x"+Integer.toHexString(ch)+")"; + } + return "'"+c+"' (code "+ch+")"; + } + + protected final void _reportError(String msg) + throws JsonParseException + { + throw _constructError(msg); + } + + protected final void _wrapError(String msg, Throwable t) + throws JsonParseException + { + throw _constructError(msg, t); + } + + protected final void _throwInternal() + { + throw new RuntimeException("Internal error: this code path should never get executed"); + } + + protected final JsonParseException _constructError(String msg, Throwable t) + { + return new JsonParseException(msg, getCurrentLocation(), t); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/JsonReadContext.java b/1.9.10/src/java/org/codehaus/jackson/impl/JsonReadContext.java new file mode 100644 index 0000000..7904cc3 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/JsonReadContext.java
@@ -0,0 +1,188 @@ +package org.codehaus.jackson.impl; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.util.CharTypes; + +/** + * Extension of {@link JsonStreamContext}, which implements + * core methods needed, and also exposes + * more complete API to parser implementation classes. + */ +public final class JsonReadContext + extends JsonStreamContext +{ + // // // Configuration + + protected final JsonReadContext _parent; + + // // // Location information (minus source reference) + + protected int _lineNr; + protected int _columnNr; + + protected String _currentName; + + /* + /********************************************************** + /* Simple instance reuse slots; speeds up things + /* a bit (10-15%) for docs with lots of small + /* arrays/objects (for which allocation was + /* visible in profile stack frames) + /********************************************************** + */ + + protected JsonReadContext _child = null; + + /* + /********************************************************** + /* Instance construction, reuse + /********************************************************** + */ + + public JsonReadContext(JsonReadContext parent, int type, int lineNr, int colNr) + { + super(); + _type = type; + _parent = parent; + _lineNr = lineNr; + _columnNr = colNr; + _index = -1; + } + + protected final void reset(int type, int lineNr, int colNr) + { + _type = type; + _index = -1; + _lineNr = lineNr; + _columnNr = colNr; + _currentName = null; + } + + // // // Factory methods + + public static JsonReadContext createRootContext(int lineNr, int colNr) + { + return new JsonReadContext(null, TYPE_ROOT, lineNr, colNr); + } + + /** + * @since 1.9 + */ + public static JsonReadContext createRootContext() + { + return new JsonReadContext(null, TYPE_ROOT, 1, 0); + } + + public final JsonReadContext createChildArrayContext(int lineNr, int colNr) + { + JsonReadContext ctxt = _child; + if (ctxt == null) { + _child = ctxt = new JsonReadContext(this, TYPE_ARRAY, lineNr, colNr); + return ctxt; + } + ctxt.reset(TYPE_ARRAY, lineNr, colNr); + return ctxt; + } + + public final JsonReadContext createChildObjectContext(int lineNr, int colNr) + { + JsonReadContext ctxt = _child; + if (ctxt == null) { + _child = ctxt = new JsonReadContext(this, TYPE_OBJECT, lineNr, colNr); + return ctxt; + } + ctxt.reset(TYPE_OBJECT, lineNr, colNr); + return ctxt; + } + + /* + /********************************************************** + /* Abstract method implementation + /********************************************************** + */ + + @Override + public final String getCurrentName() { return _currentName; } + + @Override + public final JsonReadContext getParent() { return _parent; } + + /* + /********************************************************** + /* Extended API + /********************************************************** + */ + + /** + * @return Location pointing to the point where the context + * start marker was found + */ + public final JsonLocation getStartLocation(Object srcRef) + { + /* We don't keep track of offsets at this level (only + * reader does) + */ + long totalChars = -1L; + + return new JsonLocation(srcRef, totalChars, _lineNr, _columnNr); + } + + /* + /********************************************************** + /* State changes + /********************************************************** + */ + + public final boolean expectComma() + { + /* Assumption here is that we will be getting a value (at least + * before calling this method again), and + * so will auto-increment index to avoid having to do another call + */ + int ix = ++_index; // starts from -1 + return (_type != TYPE_ROOT && ix > 0); + } + + public void setCurrentName(String name) + { + _currentName = name; + } + + /* + /********************************************************** + /* Overridden standard methods + /********************************************************** + */ + + /** + * Overridden to provide developer readable "JsonPath" representation + * of the context. + */ + @Override + public final String toString() + { + StringBuilder sb = new StringBuilder(64); + switch (_type) { + case TYPE_ROOT: + sb.append("/"); + break; + case TYPE_ARRAY: + sb.append('['); + sb.append(getCurrentIndex()); + sb.append(']'); + break; + case TYPE_OBJECT: + sb.append('{'); + if (_currentName != null) { + sb.append('"'); + CharTypes.appendQuoted(sb, _currentName); + sb.append('"'); + } else { + sb.append('?'); + } + sb.append('}'); + break; + } + return sb.toString(); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/JsonWriteContext.java b/1.9.10/src/java/org/codehaus/jackson/impl/JsonWriteContext.java new file mode 100644 index 0000000..ef73916 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/JsonWriteContext.java
@@ -0,0 +1,178 @@ +package org.codehaus.jackson.impl; + +import org.codehaus.jackson.*; + +/** + * Extension of {@link JsonStreamContext}, which implements + * core methods needed, and also exposes + * more complete API to generator implementation classes. + */ +public class JsonWriteContext + extends JsonStreamContext +{ + // // // Return values for writeValue() + + public final static int STATUS_OK_AS_IS = 0; + public final static int STATUS_OK_AFTER_COMMA = 1; + public final static int STATUS_OK_AFTER_COLON = 2; + public final static int STATUS_OK_AFTER_SPACE = 3; // in root context + public final static int STATUS_EXPECT_VALUE = 4; + public final static int STATUS_EXPECT_NAME = 5; + + protected final JsonWriteContext _parent; + + /** + * Name of the field of which value is to be parsed; only + * used for OBJECT contexts + */ + protected String _currentName; + + /* + /********************************************************** + /* Simple instance reuse slots; speed up things + /* a bit (10-15%) for docs with lots of small + /* arrays/objects + /********************************************************** + */ + + protected JsonWriteContext _child = null; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + protected JsonWriteContext(int type, JsonWriteContext parent) + { + super(); + _type = type; + _parent = parent; + _index = -1; + } + + // // // Factory methods + + public static JsonWriteContext createRootContext() + { + return new JsonWriteContext(TYPE_ROOT, null); + } + + private final JsonWriteContext reset(int type) { + _type = type; + _index = -1; + _currentName = null; + return this; + } + + public final JsonWriteContext createChildArrayContext() + { + JsonWriteContext ctxt = _child; + if (ctxt == null) { + _child = ctxt = new JsonWriteContext(TYPE_ARRAY, this); + return ctxt; + } + return ctxt.reset(TYPE_ARRAY); + } + + public final JsonWriteContext createChildObjectContext() + { + JsonWriteContext ctxt = _child; + if (ctxt == null) { + _child = ctxt = new JsonWriteContext(TYPE_OBJECT, this); + return ctxt; + } + return ctxt.reset(TYPE_OBJECT); + } + + // // // Shared API + + @Override + public final JsonWriteContext getParent() { return _parent; } + + @Override + public final String getCurrentName() { return _currentName; } + + // // // API sub-classes are to implement + + /** + * Method that writer is to call before it writes a field name. + * + * @return Index of the field entry (0-based) + */ + public final int writeFieldName(String name) + { + if (_type == TYPE_OBJECT) { + if (_currentName != null) { // just wrote a name... + return STATUS_EXPECT_VALUE; + } + _currentName = name; + return (_index < 0) ? STATUS_OK_AS_IS : STATUS_OK_AFTER_COMMA; + } + return STATUS_EXPECT_VALUE; + } + + public final int writeValue() + { + // Most likely, object: + if (_type == TYPE_OBJECT) { + if (_currentName == null) { + return STATUS_EXPECT_NAME; + } + _currentName = null; + ++_index; + return STATUS_OK_AFTER_COLON; + } + + // Ok, array? + if (_type == TYPE_ARRAY) { + int ix = _index; + ++_index; + return (ix < 0) ? STATUS_OK_AS_IS : STATUS_OK_AFTER_COMMA; + } + + // Nope, root context + // No commas within root context, but need space + ++_index; + return (_index == 0) ? STATUS_OK_AS_IS : STATUS_OK_AFTER_SPACE; + } + + // // // Internally used abstract methods + + protected final void appendDesc(StringBuilder sb) + { + if (_type == TYPE_OBJECT) { + sb.append('{'); + if (_currentName != null) { + sb.append('"'); + // !!! TODO: Name chars should be escaped? + sb.append(_currentName); + sb.append('"'); + } else { + sb.append('?'); + } + sb.append('}'); + } else if (_type == TYPE_ARRAY) { + sb.append('['); + sb.append(getCurrentIndex()); + sb.append(']'); + } else { + // nah, ROOT: + sb.append("/"); + } + } + + // // // Overridden standard methods + + /** + * Overridden to provide developer writeable "JsonPath" representation + * of the context. + */ + @Override + public final String toString() + { + StringBuilder sb = new StringBuilder(64); + appendDesc(sb); + return sb.toString(); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/ReaderBasedParser.java b/1.9.10/src/java/org/codehaus/jackson/impl/ReaderBasedParser.java new file mode 100644 index 0000000..091f4fb --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/ReaderBasedParser.java
@@ -0,0 +1,1814 @@ +package org.codehaus.jackson.impl; + +import java.io.*; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.io.IOContext; +import org.codehaus.jackson.sym.CharsToNameCanonicalizer; +import org.codehaus.jackson.util.*; + +/** + * This is a concrete implementation of {@link JsonParser}, which is + * based on a {@link java.io.Reader} to handle low-level character + * conversion tasks. + */ +public final class ReaderBasedParser + extends JsonParserBase +{ + /* + /********************************************************** + /* Input configuration + /********************************************************** + */ + + /** + * Reader that can be used for reading more content, if one + * buffer from input source, but in some cases pre-loaded buffer + * is handed to the parser. + */ + protected Reader _reader; + + /** + * Current buffer from which data is read; generally data is read into + * buffer from input source. + */ + protected char[] _inputBuffer; + + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + protected ObjectCodec _objectCodec; + + final protected CharsToNameCanonicalizer _symbols; + + /* + /********************************************************** + /* Parsing state + /********************************************************** + */ + + /** + * Flag that indicates that the current token has not yet + * been fully processed, and needs to be finished for + * some access (or skipped to obtain the next token) + */ + protected boolean _tokenIncomplete = false; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + public ReaderBasedParser(IOContext ctxt, int features, Reader r, + ObjectCodec codec, CharsToNameCanonicalizer st) + { + super(ctxt, features); + _reader = r; + _inputBuffer = ctxt.allocTokenBuffer(); + _objectCodec = codec; + _symbols = st; + } + + /* + /********************************************************** + /* Base method defs, overrides + /********************************************************** + */ + + @Override + public ObjectCodec getCodec() { + return _objectCodec; + } + + @Override + public void setCodec(ObjectCodec c) { + _objectCodec = c; + } + + @Override + public int releaseBuffered(Writer w) throws IOException + { + int count = _inputEnd - _inputPtr; + if (count < 1) { + return 0; + } + // let's just advance ptr to end + int origPtr = _inputPtr; + w.write(_inputBuffer, origPtr, count); + return count; + } + + @Override + public Object getInputSource() { + return _reader; + } + + @Override + protected final boolean loadMore() throws IOException + { + _currInputProcessed += _inputEnd; + _currInputRowStart -= _inputEnd; + + if (_reader != null) { + int count = _reader.read(_inputBuffer, 0, _inputBuffer.length); + if (count > 0) { + _inputPtr = 0; + _inputEnd = count; + return true; + } + // End of input + _closeInput(); + // Should never return 0, so let's fail + if (count == 0) { + throw new IOException("Reader returned 0 characters when trying to read "+_inputEnd); + } + } + return false; + } + + protected char getNextChar(String eofMsg) + throws IOException, JsonParseException + { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(eofMsg); + } + } + return _inputBuffer[_inputPtr++]; + } + + @Override + protected void _closeInput() throws IOException + { + /* 25-Nov-2008, tatus: As per [JACKSON-16] we are not to call close() + * on the underlying Reader, unless we "own" it, or auto-closing + * feature is enabled. + * One downside is that when using our optimized + * Reader (granted, we only do that for UTF-32...) this + * means that buffer recycling won't work correctly. + */ + if (_reader != null) { + if (_ioContext.isResourceManaged() || isEnabled(Feature.AUTO_CLOSE_SOURCE)) { + _reader.close(); + } + _reader = null; + } + } + + /** + * Method called to release internal buffers owned by the base + * reader. This may be called along with {@link #_closeInput} (for + * example, when explicitly closing this reader instance), or + * separately (if need be). + */ + @Override + protected void _releaseBuffers() + throws IOException + { + super._releaseBuffers(); + char[] buf = _inputBuffer; + if (buf != null) { + _inputBuffer = null; + _ioContext.releaseTokenBuffer(buf); + } + } + + /* + /********************************************************** + /* Public API, data access + /********************************************************** + */ + + /** + * Method for accessing textual representation of the current event; + * if no current event (before first call to {@link #nextToken}, or + * after encountering end-of-input), returns null. + * Method can be called for any event. + */ + @Override + public final String getText() + throws IOException, JsonParseException + { + JsonToken t = _currToken; + if (t == JsonToken.VALUE_STRING) { + if (_tokenIncomplete) { + _tokenIncomplete = false; + _finishString(); // only strings can be incomplete + } + return _textBuffer.contentsAsString(); + } + return _getText2(t); + } + + protected final String _getText2(JsonToken t) + { + if (t == null) { + return null; + } + switch (t) { + case FIELD_NAME: + return _parsingContext.getCurrentName(); + + case VALUE_STRING: + // fall through + case VALUE_NUMBER_INT: + case VALUE_NUMBER_FLOAT: + return _textBuffer.contentsAsString(); + } + return t.asString(); + } + + @Override + public char[] getTextCharacters() + throws IOException, JsonParseException + { + if (_currToken != null) { // null only before/after document + switch (_currToken) { + + case FIELD_NAME: + if (!_nameCopied) { + String name = _parsingContext.getCurrentName(); + int nameLen = name.length(); + if (_nameCopyBuffer == null) { + _nameCopyBuffer = _ioContext.allocNameCopyBuffer(nameLen); + } else if (_nameCopyBuffer.length < nameLen) { + _nameCopyBuffer = new char[nameLen]; + } + name.getChars(0, nameLen, _nameCopyBuffer, 0); + _nameCopied = true; + } + return _nameCopyBuffer; + + case VALUE_STRING: + if (_tokenIncomplete) { + _tokenIncomplete = false; + _finishString(); // only strings can be incomplete + } + // fall through + case VALUE_NUMBER_INT: + case VALUE_NUMBER_FLOAT: + return _textBuffer.getTextBuffer(); + + default: + return _currToken.asCharArray(); + } + } + return null; + } + + @Override + public int getTextLength() + throws IOException, JsonParseException + { + if (_currToken != null) { // null only before/after document + switch (_currToken) { + + case FIELD_NAME: + return _parsingContext.getCurrentName().length(); + case VALUE_STRING: + if (_tokenIncomplete) { + _tokenIncomplete = false; + _finishString(); // only strings can be incomplete + } + // fall through + case VALUE_NUMBER_INT: + case VALUE_NUMBER_FLOAT: + return _textBuffer.size(); + + default: + return _currToken.asCharArray().length; + } + } + return 0; + } + + @Override + public int getTextOffset() throws IOException, JsonParseException + { + // Most have offset of 0, only some may have other values: + if (_currToken != null) { + switch (_currToken) { + case FIELD_NAME: + return 0; + case VALUE_STRING: + if (_tokenIncomplete) { + _tokenIncomplete = false; + _finishString(); // only strings can be incomplete + } + // fall through + case VALUE_NUMBER_INT: + case VALUE_NUMBER_FLOAT: + return _textBuffer.getTextOffset(); + } + } + return 0; + } + + @Override + public byte[] getBinaryValue(Base64Variant b64variant) + throws IOException, JsonParseException + { + if (_currToken != JsonToken.VALUE_STRING && + (_currToken != JsonToken.VALUE_EMBEDDED_OBJECT || _binaryValue == null)) { + _reportError("Current token ("+_currToken+") not VALUE_STRING or VALUE_EMBEDDED_OBJECT, can not access as binary"); + } + /* To ensure that we won't see inconsistent data, better clear up + * state... + */ + if (_tokenIncomplete) { + try { + _binaryValue = _decodeBase64(b64variant); + } catch (IllegalArgumentException iae) { + throw _constructError("Failed to decode VALUE_STRING as base64 ("+b64variant+"): "+iae.getMessage()); + } + /* let's clear incomplete only now; allows for accessing other + * textual content in error cases + */ + _tokenIncomplete = false; + } else { // may actually require conversion... + if (_binaryValue == null) { + ByteArrayBuilder builder = _getByteArrayBuilder(); + _decodeBase64(getText(), builder, b64variant); + _binaryValue = builder.toByteArray(); + } + } + return _binaryValue; + } + + /* + /********************************************************** + /* Public API, traversal + /********************************************************** + */ + + /** + * @return Next token from the stream, if any found, or null + * to indicate end-of-input + */ + @Override + public JsonToken nextToken() + throws IOException, JsonParseException + { + _numTypesValid = NR_UNKNOWN; + + /* First: field names are special -- we will always tokenize + * (part of) value along with field name to simplify + * state handling. If so, can and need to use secondary token: + */ + if (_currToken == JsonToken.FIELD_NAME) { + return _nextAfterName(); + } + if (_tokenIncomplete) { + _skipString(); // only strings can be partial + } + int i = _skipWSOrEnd(); + if (i < 0) { // end-of-input + /* 19-Feb-2009, tatu: Should actually close/release things + * like input source, symbol table and recyclable buffers now. + */ + close(); + return (_currToken = null); + } + + /* First, need to ensure we know the starting location of token + * after skipping leading white space + */ + _tokenInputTotal = _currInputProcessed + _inputPtr - 1; + _tokenInputRow = _currInputRow; + _tokenInputCol = _inputPtr - _currInputRowStart - 1; + + // finally: clear any data retained so far + _binaryValue = null; + + // Closing scope? + if (i == INT_RBRACKET) { + if (!_parsingContext.inArray()) { + _reportMismatchedEndMarker(i, '}'); + } + _parsingContext = _parsingContext.getParent(); + return (_currToken = JsonToken.END_ARRAY); + } + if (i == INT_RCURLY) { + if (!_parsingContext.inObject()) { + _reportMismatchedEndMarker(i, ']'); + } + _parsingContext = _parsingContext.getParent(); + return (_currToken = JsonToken.END_OBJECT); + } + + // Nope: do we then expect a comma? + if (_parsingContext.expectComma()) { + if (i != INT_COMMA) { + _reportUnexpectedChar(i, "was expecting comma to separate "+_parsingContext.getTypeDesc()+" entries"); + } + i = _skipWS(); + } + + /* And should we now have a name? Always true for + * Object contexts, since the intermediate 'expect-value' + * state is never retained. + */ + boolean inObject = _parsingContext.inObject(); + if (inObject) { + // First, field name itself: + String name = _parseFieldName(i); + _parsingContext.setCurrentName(name); + _currToken = JsonToken.FIELD_NAME; + i = _skipWS(); + if (i != INT_COLON) { + _reportUnexpectedChar(i, "was expecting a colon to separate field name and value"); + } + i = _skipWS(); + } + + // Ok: we must have a value... what is it? + + JsonToken t; + + switch (i) { + case INT_QUOTE: + _tokenIncomplete = true; + t = JsonToken.VALUE_STRING; + break; + case INT_LBRACKET: + if (!inObject) { + _parsingContext = _parsingContext.createChildArrayContext(_tokenInputRow, _tokenInputCol); + } + t = JsonToken.START_ARRAY; + break; + case INT_LCURLY: + if (!inObject) { + _parsingContext = _parsingContext.createChildObjectContext(_tokenInputRow, _tokenInputCol); + } + t = JsonToken.START_OBJECT; + break; + case INT_RBRACKET: + case INT_RCURLY: + // Error: neither is valid at this point; valid closers have + // been handled earlier + _reportUnexpectedChar(i, "expected a value"); + case INT_t: + _matchToken("true", 1); + t = JsonToken.VALUE_TRUE; + break; + case INT_f: + _matchToken("false", 1); + t = JsonToken.VALUE_FALSE; + break; + case INT_n: + _matchToken("null", 1); + t = JsonToken.VALUE_NULL; + break; + + case INT_MINUS: + /* Should we have separate handling for plus? Although + * it is not allowed per se, it may be erroneously used, + * and could be indicate by a more specific error message. + */ + case INT_0: + case INT_1: + case INT_2: + case INT_3: + case INT_4: + case INT_5: + case INT_6: + case INT_7: + case INT_8: + case INT_9: + t = parseNumberText(i); + break; + default: + t = _handleUnexpectedValue(i); + break; + } + + if (inObject) { + _nextToken = t; + return _currToken; + } + _currToken = t; + return t; + } + + private final JsonToken _nextAfterName() + { + _nameCopied = false; // need to invalidate if it was copied + JsonToken t = _nextToken; + _nextToken = null; + // Also: may need to start new context? + if (t == JsonToken.START_ARRAY) { + _parsingContext = _parsingContext.createChildArrayContext(_tokenInputRow, _tokenInputCol); + } else if (t == JsonToken.START_OBJECT) { + _parsingContext = _parsingContext.createChildObjectContext(_tokenInputRow, _tokenInputCol); + } + return (_currToken = t); + } + + /* + @Override + public boolean nextFieldName(SerializableString str) + throws IOException, JsonParseException + */ + + // note: identical to one in Utf8StreamParser + @Override + public String nextTextValue() + throws IOException, JsonParseException + { + if (_currToken == JsonToken.FIELD_NAME) { // mostly copied from '_nextAfterName' + _nameCopied = false; + JsonToken t = _nextToken; + _nextToken = null; + _currToken = t; + if (t == JsonToken.VALUE_STRING) { + if (_tokenIncomplete) { + _tokenIncomplete = false; + _finishString(); + } + return _textBuffer.contentsAsString(); + } + if (t == JsonToken.START_ARRAY) { + _parsingContext = _parsingContext.createChildArrayContext(_tokenInputRow, _tokenInputCol); + } else if (t == JsonToken.START_OBJECT) { + _parsingContext = _parsingContext.createChildObjectContext(_tokenInputRow, _tokenInputCol); + } + return null; + } + // !!! TODO: optimize this case as well + return (nextToken() == JsonToken.VALUE_STRING) ? getText() : null; + } + + // note: identical to one in Utf8StreamParser + @Override + public int nextIntValue(int defaultValue) + throws IOException, JsonParseException + { + if (_currToken == JsonToken.FIELD_NAME) { + _nameCopied = false; + JsonToken t = _nextToken; + _nextToken = null; + _currToken = t; + if (t == JsonToken.VALUE_NUMBER_INT) { + return getIntValue(); + } + if (t == JsonToken.START_ARRAY) { + _parsingContext = _parsingContext.createChildArrayContext(_tokenInputRow, _tokenInputCol); + } else if (t == JsonToken.START_OBJECT) { + _parsingContext = _parsingContext.createChildObjectContext(_tokenInputRow, _tokenInputCol); + } + return defaultValue; + } + // !!! TODO: optimize this case as well + return (nextToken() == JsonToken.VALUE_NUMBER_INT) ? getIntValue() : defaultValue; + } + + // note: identical to one in Utf8StreamParser + @Override + public long nextLongValue(long defaultValue) + throws IOException, JsonParseException + { + if (_currToken == JsonToken.FIELD_NAME) { // mostly copied from '_nextAfterName' + _nameCopied = false; + JsonToken t = _nextToken; + _nextToken = null; + _currToken = t; + if (t == JsonToken.VALUE_NUMBER_INT) { + return getLongValue(); + } + if (t == JsonToken.START_ARRAY) { + _parsingContext = _parsingContext.createChildArrayContext(_tokenInputRow, _tokenInputCol); + } else if (t == JsonToken.START_OBJECT) { + _parsingContext = _parsingContext.createChildObjectContext(_tokenInputRow, _tokenInputCol); + } + return defaultValue; + } + // !!! TODO: optimize this case as well + return (nextToken() == JsonToken.VALUE_NUMBER_INT) ? getLongValue() : defaultValue; + } + + // note: identical to one in Utf8StreamParser + @Override + public Boolean nextBooleanValue() + throws IOException, JsonParseException + { + if (_currToken == JsonToken.FIELD_NAME) { // mostly copied from '_nextAfterName' + _nameCopied = false; + JsonToken t = _nextToken; + _nextToken = null; + _currToken = t; + if (t == JsonToken.VALUE_TRUE) { + return Boolean.TRUE; + } + if (t == JsonToken.VALUE_FALSE) { + return Boolean.FALSE; + } + if (t == JsonToken.START_ARRAY) { + _parsingContext = _parsingContext.createChildArrayContext(_tokenInputRow, _tokenInputCol); + } else if (t == JsonToken.START_OBJECT) { + _parsingContext = _parsingContext.createChildObjectContext(_tokenInputRow, _tokenInputCol); + } + return null; + } + switch (nextToken()) { + case VALUE_TRUE: + return Boolean.TRUE; + case VALUE_FALSE: + return Boolean.FALSE; + } + return null; + } + + @Override + public void close() throws IOException + { + super.close(); + _symbols.release(); + } + + /* + /********************************************************** + /* Internal methods, number parsing + /* (note: in 1.8 and prior, part of "ReaderBasedNumericParser" + /********************************************************** + */ + + /** + * Initial parsing method for number values. It needs to be able + * to parse enough input to be able to determine whether the + * value is to be considered a simple integer value, or a more + * generic decimal value: latter of which needs to be expressed + * as a floating point number. The basic rule is that if the number + * has no fractional or exponential part, it is an integer; otherwise + * a floating point number. + *<p> + * Because much of input has to be processed in any case, no partial + * parsing is done: all input text will be stored for further + * processing. However, actual numeric value conversion will be + * deferred, since it is usually the most complicated and costliest + * part of processing. + */ + protected final JsonToken parseNumberText(int ch) + throws IOException, JsonParseException + { + /* Although we will always be complete with respect to textual + * representation (that is, all characters will be parsed), + * actual conversion to a number is deferred. Thus, need to + * note that no representations are valid yet + */ + boolean negative = (ch == INT_MINUS); + int ptr = _inputPtr; + int startPtr = ptr-1; // to include sign/digit already read + final int inputLen = _inputEnd; + + dummy_loop: + do { // dummy loop, to be able to break out + if (negative) { // need to read the next digit + if (ptr >= _inputEnd) { + break dummy_loop; + } + ch = _inputBuffer[ptr++]; + // First check: must have a digit to follow minus sign + if (ch > INT_9 || ch < INT_0) { + _inputPtr = ptr; + return _handleInvalidNumberStart(ch, true); + } + /* (note: has been checked for non-negative already, in + * the dispatching code that determined it should be + * a numeric value) + */ + } + // One special case, leading zero(es): + if (ch == INT_0) { + break dummy_loop; + } + + /* First, let's see if the whole number is contained within + * the input buffer unsplit. This should be the common case; + * and to simplify processing, we will just reparse contents + * in the alternative case (number split on buffer boundary) + */ + + int intLen = 1; // already got one + + // First let's get the obligatory integer part: + + int_loop: + while (true) { + if (ptr >= _inputEnd) { + break dummy_loop; + } + ch = (int) _inputBuffer[ptr++]; + if (ch < INT_0 || ch > INT_9) { + break int_loop; + } + ++intLen; + } + + int fractLen = 0; + + // And then see if we get other parts + if (ch == INT_DECIMAL_POINT) { // yes, fraction + fract_loop: + while (true) { + if (ptr >= inputLen) { + break dummy_loop; + } + ch = (int) _inputBuffer[ptr++]; + if (ch < INT_0 || ch > INT_9) { + break fract_loop; + } + ++fractLen; + } + // must be followed by sequence of ints, one minimum + if (fractLen == 0) { + reportUnexpectedNumberChar(ch, "Decimal point not followed by a digit"); + } + } + + int expLen = 0; + if (ch == INT_e || ch == INT_E) { // and/or exponent + if (ptr >= inputLen) { + break dummy_loop; + } + // Sign indicator? + ch = (int) _inputBuffer[ptr++]; + if (ch == INT_MINUS || ch == INT_PLUS) { // yup, skip for now + if (ptr >= inputLen) { + break dummy_loop; + } + ch = (int) _inputBuffer[ptr++]; + } + while (ch <= INT_9 && ch >= INT_0) { + ++expLen; + if (ptr >= inputLen) { + break dummy_loop; + } + ch = (int) _inputBuffer[ptr++]; + } + // must be followed by sequence of ints, one minimum + if (expLen == 0) { + reportUnexpectedNumberChar(ch, "Exponent indicator not followed by a digit"); + } + } + + // Got it all: let's add to text buffer for parsing, access + --ptr; // need to push back following separator + _inputPtr = ptr; + int len = ptr-startPtr; + _textBuffer.resetWithShared(_inputBuffer, startPtr, len); + return reset(negative, intLen, fractLen, expLen); + } while (false); + + _inputPtr = negative ? (startPtr+1) : startPtr; + return parseNumberText2(negative); + } + + /** + * Method called to parse a number, when the primary parse + * method has failed to parse it, due to it being split on + * buffer boundary. As a result code is very similar, except + * that it has to explicitly copy contents to the text buffer + * instead of just sharing the main input buffer. + */ + private final JsonToken parseNumberText2(boolean negative) + throws IOException, JsonParseException + { + char[] outBuf = _textBuffer.emptyAndGetCurrentSegment(); + int outPtr = 0; + + // Need to prepend sign? + if (negative) { + outBuf[outPtr++] = '-'; + } + + // This is the place to do leading-zero check(s) too: + int intLen = 0; + char c = (_inputPtr < _inputEnd) ? _inputBuffer[_inputPtr++] : getNextChar("No digit following minus sign"); + if (c == '0') { + c = _verifyNoLeadingZeroes(); + } + boolean eof = false; + + // Ok, first the obligatory integer part: + int_loop: + while (c >= '0' && c <= '9') { + ++intLen; + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + outBuf[outPtr++] = c; + if (_inputPtr >= _inputEnd && !loadMore()) { + // EOF is legal for main level int values + c = CHAR_NULL; + eof = true; + break int_loop; + } + c = _inputBuffer[_inputPtr++]; + } + // Also, integer part is not optional + if (intLen == 0) { + reportInvalidNumber("Missing integer part (next char "+_getCharDesc(c)+")"); + } + + int fractLen = 0; + // And then see if we get other parts + if (c == '.') { // yes, fraction + outBuf[outPtr++] = c; + + fract_loop: + while (true) { + if (_inputPtr >= _inputEnd && !loadMore()) { + eof = true; + break fract_loop; + } + c = _inputBuffer[_inputPtr++]; + if (c < INT_0 || c > INT_9) { + break fract_loop; + } + ++fractLen; + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + outBuf[outPtr++] = c; + } + // must be followed by sequence of ints, one minimum + if (fractLen == 0) { + reportUnexpectedNumberChar(c, "Decimal point not followed by a digit"); + } + } + + int expLen = 0; + if (c == 'e' || c == 'E') { // exponent? + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + outBuf[outPtr++] = c; + // Not optional, can require that we get one more char + c = (_inputPtr < _inputEnd) ? _inputBuffer[_inputPtr++] + : getNextChar("expected a digit for number exponent"); + // Sign indicator? + if (c == '-' || c == '+') { + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + outBuf[outPtr++] = c; + // Likewise, non optional: + c = (_inputPtr < _inputEnd) ? _inputBuffer[_inputPtr++] + : getNextChar("expected a digit for number exponent"); + } + + exp_loop: + while (c <= INT_9 && c >= INT_0) { + ++expLen; + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + outBuf[outPtr++] = c; + if (_inputPtr >= _inputEnd && !loadMore()) { + eof = true; + break exp_loop; + } + c = _inputBuffer[_inputPtr++]; + } + // must be followed by sequence of ints, one minimum + if (expLen == 0) { + reportUnexpectedNumberChar(c, "Exponent indicator not followed by a digit"); + } + } + + // Ok; unless we hit end-of-input, need to push last char read back + if (!eof) { + --_inputPtr; + } + _textBuffer.setCurrentLength(outPtr); + // And there we have it! + return reset(negative, intLen, fractLen, expLen); + } + + /** + * Method called when we have seen one zero, and want to ensure + * it is not followed by another + */ + private final char _verifyNoLeadingZeroes() + throws IOException, JsonParseException + { + // Ok to have plain "0" + if (_inputPtr >= _inputEnd && !loadMore()) { + return '0'; + } + char ch = _inputBuffer[_inputPtr]; + // if not followed by a number (probably '.'); return zero as is, to be included + if (ch < '0' || ch > '9') { + return '0'; + } + if (!isEnabled(Feature.ALLOW_NUMERIC_LEADING_ZEROS)) { + reportInvalidNumber("Leading zeroes not allowed"); + } + // if so, just need to skip either all zeroes (if followed by number); or all but one (if non-number) + ++_inputPtr; // Leading zero to be skipped + if (ch == INT_0) { + while (_inputPtr < _inputEnd || loadMore()) { + ch = _inputBuffer[_inputPtr]; + if (ch < '0' || ch > '9') { // followed by non-number; retain one zero + return '0'; + } + ++_inputPtr; // skip previous zero + if (ch != '0') { // followed by other number; return + break; + } + } + } + return ch; + } + + /** + * Method called if expected numeric value (due to leading sign) does not + * look like a number + */ + protected JsonToken _handleInvalidNumberStart(int ch, boolean negative) + throws IOException, JsonParseException + { + if (ch == 'I') { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOFInValue(); + } + } + ch = _inputBuffer[_inputPtr++]; + if (ch == 'N') { + String match = negative ? "-INF" :"+INF"; + _matchToken(match, 3); + if (isEnabled(Feature.ALLOW_NON_NUMERIC_NUMBERS)) { + return resetAsNaN(match, negative ? Double.NEGATIVE_INFINITY : Double.POSITIVE_INFINITY); + } + _reportError("Non-standard token '"+match+"': enable JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS to allow"); + } else if (ch == 'n') { + String match = negative ? "-Infinity" :"+Infinity"; + _matchToken(match, 3); + if (isEnabled(Feature.ALLOW_NON_NUMERIC_NUMBERS)) { + return resetAsNaN(match, negative ? Double.NEGATIVE_INFINITY : Double.POSITIVE_INFINITY); + } + _reportError("Non-standard token '"+match+"': enable JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS to allow"); + } + } + reportUnexpectedNumberChar(ch, "expected digit (0-9) to follow minus sign, for valid numeric value"); + return null; + } + + /* + /********************************************************** + /* Internal methods, secondary parsing + /********************************************************** + */ + + protected final String _parseFieldName(int i) + throws IOException, JsonParseException + { + if (i != INT_QUOTE) { + return _handleUnusualFieldName(i); + } + /* First: let's try to see if we have a simple name: one that does + * not cross input buffer boundary, and does not contain escape + * sequences. + */ + int ptr = _inputPtr; + int hash = 0; + final int inputLen = _inputEnd; + + if (ptr < inputLen) { + final int[] codes = CharTypes.getInputCodeLatin1(); + final int maxCode = codes.length; + + do { + int ch = _inputBuffer[ptr]; + if (ch < maxCode && codes[ch] != 0) { + if (ch == '"') { + int start = _inputPtr; + _inputPtr = ptr+1; // to skip the quote + return _symbols.findSymbol(_inputBuffer, start, ptr - start, hash); + } + break; + } + hash = (hash * 31) + ch; + ++ptr; + } while (ptr < inputLen); + } + + int start = _inputPtr; + _inputPtr = ptr; + return _parseFieldName2(start, hash, INT_QUOTE); + } + + private String _parseFieldName2(int startPtr, int hash, int endChar) + throws IOException, JsonParseException + { + _textBuffer.resetWithShared(_inputBuffer, startPtr, (_inputPtr - startPtr)); + + /* Output pointers; calls will also ensure that the buffer is + * not shared and has room for at least one more char. + */ + char[] outBuf = _textBuffer.getCurrentSegment(); + int outPtr = _textBuffer.getCurrentSegmentSize(); + + while (true) { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(": was expecting closing '"+((char) endChar)+"' for name"); + } + } + char c = _inputBuffer[_inputPtr++]; + int i = (int) c; + if (i <= INT_BACKSLASH) { + if (i == INT_BACKSLASH) { + /* Although chars outside of BMP are to be escaped as + * an UTF-16 surrogate pair, does that affect decoding? + * For now let's assume it does not. + */ + c = _decodeEscaped(); + } else if (i <= endChar) { + if (i == endChar) { + break; + } + if (i < INT_SPACE) { + _throwUnquotedSpace(i, "name"); + } + } + } + hash = (hash * 31) + i; + // Ok, let's add char to output: + outBuf[outPtr++] = c; + + // Need more room? + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + } + _textBuffer.setCurrentLength(outPtr); + { + TextBuffer tb = _textBuffer; + char[] buf = tb.getTextBuffer(); + int start = tb.getTextOffset(); + int len = tb.size(); + + return _symbols.findSymbol(buf, start, len, hash); + } + } + + /** + * Method called when we see non-white space character other + * than double quote, when expecting a field name. + * In standard mode will just throw an expection; but + * in non-standard modes may be able to parse name. + * + * @since 1.2 + */ + protected final String _handleUnusualFieldName(int i) + throws IOException, JsonParseException + { + // [JACKSON-173]: allow single quotes + if (i == INT_APOSTROPHE && isEnabled(Feature.ALLOW_SINGLE_QUOTES)) { + return _parseApostropheFieldName(); + } + // [JACKSON-69]: allow unquoted names if feature enabled: + if (!isEnabled(Feature.ALLOW_UNQUOTED_FIELD_NAMES)) { + _reportUnexpectedChar(i, "was expecting double-quote to start field name"); + } + final int[] codes = CharTypes.getInputCodeLatin1JsNames(); + final int maxCode = codes.length; + + // Also: first char must be a valid name char, but NOT be number + boolean firstOk; + + if (i < maxCode) { // identifier, and not a number + firstOk = (codes[i] == 0) && (i < INT_0 || i > INT_9); + } else { + firstOk = Character.isJavaIdentifierPart((char) i); + } + if (!firstOk) { + _reportUnexpectedChar(i, "was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name"); + } + int ptr = _inputPtr; + int hash = 0; + final int inputLen = _inputEnd; + + if (ptr < inputLen) { + do { + int ch = _inputBuffer[ptr]; + if (ch < maxCode) { + if (codes[ch] != 0) { + int start = _inputPtr-1; // -1 to bring back first char + _inputPtr = ptr; + return _symbols.findSymbol(_inputBuffer, start, ptr - start, hash); + } + } else if (!Character.isJavaIdentifierPart((char) ch)) { + int start = _inputPtr-1; // -1 to bring back first char + _inputPtr = ptr; + return _symbols.findSymbol(_inputBuffer, start, ptr - start, hash); + } + hash = (hash * 31) + ch; + ++ptr; + } while (ptr < inputLen); + } + int start = _inputPtr-1; + _inputPtr = ptr; + return _parseUnusualFieldName2(start, hash, codes); + } + + protected final String _parseApostropheFieldName() + throws IOException, JsonParseException + { + // Note: mostly copy of_parseFieldName + int ptr = _inputPtr; + int hash = 0; + final int inputLen = _inputEnd; + + if (ptr < inputLen) { + final int[] codes = CharTypes.getInputCodeLatin1(); + final int maxCode = codes.length; + + do { + int ch = _inputBuffer[ptr]; + if (ch == '\'') { + int start = _inputPtr; + _inputPtr = ptr+1; // to skip the quote + return _symbols.findSymbol(_inputBuffer, start, ptr - start, hash); + } + if (ch < maxCode && codes[ch] != 0) { + break; + } + hash = (hash * 31) + ch; + ++ptr; + } while (ptr < inputLen); + } + + int start = _inputPtr; + _inputPtr = ptr; + + return _parseFieldName2(start, hash, INT_APOSTROPHE); + } + + /** + * Method for handling cases where first non-space character + * of an expected value token is not legal for standard JSON content. + * + * @since 1.3 + */ + protected final JsonToken _handleUnexpectedValue(int i) + throws IOException, JsonParseException + { + // Most likely an error, unless we are to allow single-quote-strings + switch (i) { + case '\'': + /* [JACKSON-173]: allow single quotes. Unlike with regular + * Strings, we'll eagerly parse contents; this so that there's + * no need to store information on quote char used. + * + * Also, no separation to fast/slow parsing; we'll just do + * one regular (~= slowish) parsing, to keep code simple + */ + if (isEnabled(Feature.ALLOW_SINGLE_QUOTES)) { + return _handleApostropheValue(); + } + break; + case 'N': + _matchToken("NaN", 1); + if (isEnabled(Feature.ALLOW_NON_NUMERIC_NUMBERS)) { + return resetAsNaN("NaN", Double.NaN); + } + _reportError("Non-standard token 'NaN': enable JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS to allow"); + break; + case '+': // note: '-' is taken as number + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOFInValue(); + } + } + return _handleInvalidNumberStart(_inputBuffer[_inputPtr++], false); + } + _reportUnexpectedChar(i, "expected a valid value (number, String, array, object, 'true', 'false' or 'null')"); + return null; + } + + /** + * @since 1.8 + */ + protected final JsonToken _handleApostropheValue() + throws IOException, JsonParseException + { + char[] outBuf = _textBuffer.emptyAndGetCurrentSegment(); + int outPtr = _textBuffer.getCurrentSegmentSize(); + + while (true) { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(": was expecting closing quote for a string value"); + } + } + char c = _inputBuffer[_inputPtr++]; + int i = (int) c; + if (i <= INT_BACKSLASH) { + if (i == INT_BACKSLASH) { + /* Although chars outside of BMP are to be escaped as + * an UTF-16 surrogate pair, does that affect decoding? + * For now let's assume it does not. + */ + c = _decodeEscaped(); + } else if (i <= INT_APOSTROPHE) { + if (i == INT_APOSTROPHE) { + break; + } + if (i < INT_SPACE) { + _throwUnquotedSpace(i, "string value"); + } + } + } + // Need more room? + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + // Ok, let's add char to output: + outBuf[outPtr++] = c; + } + _textBuffer.setCurrentLength(outPtr); + return JsonToken.VALUE_STRING; + } + + /** + * @since 1.2 + */ + private String _parseUnusualFieldName2(int startPtr, int hash, int[] codes) + throws IOException, JsonParseException + { + _textBuffer.resetWithShared(_inputBuffer, startPtr, (_inputPtr - startPtr)); + char[] outBuf = _textBuffer.getCurrentSegment(); + int outPtr = _textBuffer.getCurrentSegmentSize(); + final int maxCode = codes.length; + + while (true) { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { // acceptable for now (will error out later) + break; + } + } + char c = _inputBuffer[_inputPtr]; + int i = (int) c; + if (i <= maxCode) { + if (codes[i] != 0) { + break; + } + } else if (!Character.isJavaIdentifierPart(c)) { + break; + } + ++_inputPtr; + hash = (hash * 31) + i; + // Ok, let's add char to output: + outBuf[outPtr++] = c; + + // Need more room? + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + } + _textBuffer.setCurrentLength(outPtr); + { + TextBuffer tb = _textBuffer; + char[] buf = tb.getTextBuffer(); + int start = tb.getTextOffset(); + int len = tb.size(); + + return _symbols.findSymbol(buf, start, len, hash); + } + } + + @Override + protected void _finishString() + throws IOException, JsonParseException + { + /* First: let's try to see if we have simple String value: one + * that does not cross input buffer boundary, and does not + * contain escape sequences. + */ + int ptr = _inputPtr; + final int inputLen = _inputEnd; + + if (ptr < inputLen) { + final int[] codes = CharTypes.getInputCodeLatin1(); + final int maxCode = codes.length; + + do { + int ch = _inputBuffer[ptr]; + if (ch < maxCode && codes[ch] != 0) { + if (ch == '"') { + _textBuffer.resetWithShared(_inputBuffer, _inputPtr, (ptr-_inputPtr)); + _inputPtr = ptr+1; + // Yes, we got it all + return; + } + break; + } + ++ptr; + } while (ptr < inputLen); + } + + /* Either ran out of input, or bumped into an escape + * sequence... + */ + _textBuffer.resetWithCopy(_inputBuffer, _inputPtr, (ptr-_inputPtr)); + _inputPtr = ptr; + _finishString2(); + } + + protected void _finishString2() + throws IOException, JsonParseException + { + char[] outBuf = _textBuffer.getCurrentSegment(); + int outPtr = _textBuffer.getCurrentSegmentSize(); + + while (true) { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(": was expecting closing quote for a string value"); + } + } + char c = _inputBuffer[_inputPtr++]; + int i = (int) c; + if (i <= INT_BACKSLASH) { + if (i == INT_BACKSLASH) { + /* Although chars outside of BMP are to be escaped as + * an UTF-16 surrogate pair, does that affect decoding? + * For now let's assume it does not. + */ + c = _decodeEscaped(); + } else if (i <= INT_QUOTE) { + if (i == INT_QUOTE) { + break; + } + if (i < INT_SPACE) { + _throwUnquotedSpace(i, "string value"); + } + } + } + // Need more room? + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + // Ok, let's add char to output: + outBuf[outPtr++] = c; + } + _textBuffer.setCurrentLength(outPtr); + } + + /** + * Method called to skim through rest of unparsed String value, + * if it is not needed. This can be done bit faster if contents + * need not be stored for future access. + */ + protected void _skipString() + throws IOException, JsonParseException + { + _tokenIncomplete = false; + + int inputPtr = _inputPtr; + int inputLen = _inputEnd; + char[] inputBuffer = _inputBuffer; + + while (true) { + if (inputPtr >= inputLen) { + _inputPtr = inputPtr; + if (!loadMore()) { + _reportInvalidEOF(": was expecting closing quote for a string value"); + } + inputPtr = _inputPtr; + inputLen = _inputEnd; + } + char c = inputBuffer[inputPtr++]; + int i = (int) c; + if (i <= INT_BACKSLASH) { + if (i == INT_BACKSLASH) { + /* Although chars outside of BMP are to be escaped as + * an UTF-16 surrogate pair, does that affect decoding? + * For now let's assume it does not. + */ + _inputPtr = inputPtr; + c = _decodeEscaped(); + inputPtr = _inputPtr; + inputLen = _inputEnd; + } else if (i <= INT_QUOTE) { + if (i == INT_QUOTE) { + _inputPtr = inputPtr; + break; + } + if (i < INT_SPACE) { + _inputPtr = inputPtr; + _throwUnquotedSpace(i, "string value"); + } + } + } + } + } + + /* + /********************************************************** + /* Internal methods, other parsing + /********************************************************** + */ + + /** + * We actually need to check the character value here + * (to see if we have \n following \r). + */ + protected final void _skipCR() throws IOException + { + if (_inputPtr < _inputEnd || loadMore()) { + if (_inputBuffer[_inputPtr] == '\n') { + ++_inputPtr; + } + } + ++_currInputRow; + _currInputRowStart = _inputPtr; + } + + protected final void _skipLF() throws IOException + { + ++_currInputRow; + _currInputRowStart = _inputPtr; + } + + private final int _skipWS() + throws IOException, JsonParseException + { + while (_inputPtr < _inputEnd || loadMore()) { + int i = (int) _inputBuffer[_inputPtr++]; + if (i > INT_SPACE) { + if (i != INT_SLASH) { + return i; + } + _skipComment(); + } else if (i != INT_SPACE) { + if (i == INT_LF) { + _skipLF(); + } else if (i == INT_CR) { + _skipCR(); + } else if (i != INT_TAB) { + _throwInvalidSpace(i); + } + } + } + throw _constructError("Unexpected end-of-input within/between "+_parsingContext.getTypeDesc()+" entries"); + } + + private final int _skipWSOrEnd() + throws IOException, JsonParseException + { + while ((_inputPtr < _inputEnd) || loadMore()) { + int i = (int) _inputBuffer[_inputPtr++]; + if (i > INT_SPACE) { + if (i == INT_SLASH) { + _skipComment(); + continue; + } + return i; + } + if (i != INT_SPACE) { + if (i == INT_LF) { + _skipLF(); + } else if (i == INT_CR) { + _skipCR(); + } else if (i != INT_TAB) { + _throwInvalidSpace(i); + } + } + } + // We ran out of input... + _handleEOF(); + return -1; + } + + private final void _skipComment() + throws IOException, JsonParseException + { + if (!isEnabled(Feature.ALLOW_COMMENTS)) { + _reportUnexpectedChar('/', "maybe a (non-standard) comment? (not recognized as one since Feature 'ALLOW_COMMENTS' not enabled for parser)"); + } + // First: check which comment (if either) it is: + if (_inputPtr >= _inputEnd && !loadMore()) { + _reportInvalidEOF(" in a comment"); + } + char c = _inputBuffer[_inputPtr++]; + if (c == '/') { + _skipCppComment(); + } else if (c == '*') { + _skipCComment(); + } else { + _reportUnexpectedChar(c, "was expecting either '*' or '/' for a comment"); + } + } + + private final void _skipCComment() + throws IOException, JsonParseException + { + // Ok: need the matching '*/' + main_loop: + while ((_inputPtr < _inputEnd) || loadMore()) { + int i = (int) _inputBuffer[_inputPtr++]; + if (i <= INT_ASTERISK) { + if (i == INT_ASTERISK) { // end? + if ((_inputPtr >= _inputEnd) && !loadMore()) { + break main_loop; + } + if (_inputBuffer[_inputPtr] == INT_SLASH) { + ++_inputPtr; + return; + } + continue; + } + if (i < INT_SPACE) { + if (i == INT_LF) { + _skipLF(); + } else if (i == INT_CR) { + _skipCR(); + } else if (i != INT_TAB) { + _throwInvalidSpace(i); + } + } + } + } + _reportInvalidEOF(" in a comment"); + } + + private final void _skipCppComment() + throws IOException, JsonParseException + { + // Ok: need to find EOF or linefeed + while ((_inputPtr < _inputEnd) || loadMore()) { + int i = (int) _inputBuffer[_inputPtr++]; + if (i < INT_SPACE) { + if (i == INT_LF) { + _skipLF(); + break; + } else if (i == INT_CR) { + _skipCR(); + break; + } else if (i != INT_TAB) { + _throwInvalidSpace(i); + } + } + } + } + + @Override + protected final char _decodeEscaped() + throws IOException, JsonParseException + { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(" in character escape sequence"); + } + } + char c = _inputBuffer[_inputPtr++]; + + switch ((int) c) { + // First, ones that are mapped + case INT_b: + return '\b'; + case INT_t: + return '\t'; + case INT_n: + return '\n'; + case INT_f: + return '\f'; + case INT_r: + return '\r'; + + // And these are to be returned as they are + case INT_QUOTE: + case INT_SLASH: + case INT_BACKSLASH: + return c; + + case INT_u: // and finally hex-escaped + break; + + default: + return _handleUnrecognizedCharacterEscape(c); + } + + // Ok, a hex escape. Need 4 characters + int value = 0; + for (int i = 0; i < 4; ++i) { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(" in character escape sequence"); + } + } + int ch = (int) _inputBuffer[_inputPtr++]; + int digit = CharTypes.charToHex(ch); + if (digit < 0) { + _reportUnexpectedChar(ch, "expected a hex-digit for character escape sequence"); + } + value = (value << 4) | digit; + } + return (char) value; + } + + /** + * Helper method for checking whether input matches expected token + * + * @since 1.8 + */ + protected final void _matchToken(String matchStr, int i) + throws IOException, JsonParseException + { + final int len = matchStr.length(); + + do { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOFInValue(); + } + } + if (_inputBuffer[_inputPtr] != matchStr.charAt(i)) { + _reportInvalidToken(matchStr.substring(0, i), "'null', 'true', 'false' or NaN"); + } + ++_inputPtr; + } while (++i < len); + + // but let's also ensure we either get EOF, or non-alphanum char... + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + return; + } + } + char c = _inputBuffer[_inputPtr]; + if (c < '0' || c == ']' || c == '}') { // expected/allowed chars + return; + } + // if Java letter, it's a problem tho + if (Character.isJavaIdentifierPart(c)) { + _reportInvalidToken(matchStr.substring(0, i), "'null', 'true', 'false' or NaN"); + } + return; + } + + /* + /********************************************************** + /* Binary access + /********************************************************** + */ + + /** + * Efficient handling for incremental parsing of base64-encoded + * textual content. + */ + protected byte[] _decodeBase64(Base64Variant b64variant) + throws IOException, JsonParseException + { + ByteArrayBuilder builder = _getByteArrayBuilder(); + + //main_loop: + while (true) { + // first, we'll skip preceding white space, if any + char ch; + do { + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + ch = _inputBuffer[_inputPtr++]; + } while (ch <= INT_SPACE); + int bits = b64variant.decodeBase64Char(ch); + if (bits < 0) { + if (ch == '"') { // reached the end, fair and square? + return builder.toByteArray(); + } + bits = _decodeBase64Escape(b64variant, ch, 0); + if (bits < 0) { // white space to skip + continue; + } + } + int decodedData = bits; + + // then second base64 char; can't get padding yet, nor ws + + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + ch = _inputBuffer[_inputPtr++]; + bits = b64variant.decodeBase64Char(ch); + if (bits < 0) { + bits = _decodeBase64Escape(b64variant, ch, 1); + } + decodedData = (decodedData << 6) | bits; + + // third base64 char; can be padding, but not ws + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + ch = _inputBuffer[_inputPtr++]; + bits = b64variant.decodeBase64Char(ch); + + // First branch: can get padding (-> 1 byte) + if (bits < 0) { + if (bits != Base64Variant.BASE64_VALUE_PADDING) { + // as per [JACKSON-631], could also just be 'missing' padding + if (ch == '"' && !b64variant.usesPadding()) { + decodedData >>= 4; + builder.append(decodedData); + return builder.toByteArray(); + } + bits = _decodeBase64Escape(b64variant, ch, 2); + } + if (bits == Base64Variant.BASE64_VALUE_PADDING) { + // Ok, must get more padding chars, then + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + ch = _inputBuffer[_inputPtr++]; + if (!b64variant.usesPaddingChar(ch)) { + throw reportInvalidBase64Char(b64variant, ch, 3, "expected padding character '"+b64variant.getPaddingChar()+"'"); + } + // Got 12 bits, only need 8, need to shift + decodedData >>= 4; + builder.append(decodedData); + continue; + } + // otherwise we got escaped other char, to be processed below + } + // Nope, 2 or 3 bytes + decodedData = (decodedData << 6) | bits; + // fourth and last base64 char; can be padding, but not ws + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + ch = _inputBuffer[_inputPtr++]; + bits = b64variant.decodeBase64Char(ch); + if (bits < 0) { + if (bits != Base64Variant.BASE64_VALUE_PADDING) { + // as per [JACKSON-631], could also just be 'missing' padding + if (ch == '"' && !b64variant.usesPadding()) { + decodedData >>= 2; + builder.appendTwoBytes(decodedData); + return builder.toByteArray(); + } + bits = _decodeBase64Escape(b64variant, ch, 3); + } + if (bits == Base64Variant.BASE64_VALUE_PADDING) { + // With padding we only get 2 bytes; but we have + // to shift it a bit so it is identical to triplet + // case with partial output. + // 3 chars gives 3x6 == 18 bits, of which 2 are + // dummies, need to discard: + decodedData >>= 2; + builder.appendTwoBytes(decodedData); + continue; + } + // otherwise we got escaped other char, to be processed below + } + // otherwise, our triplet is now complete + decodedData = (decodedData << 6) | bits; + builder.appendThreeBytes(decodedData); + } + } + + /* + /********************************************************** + /* Error reporting + /********************************************************** + */ + + protected void _reportInvalidToken(String matchedPart, String msg) + throws IOException, JsonParseException + { + StringBuilder sb = new StringBuilder(matchedPart); + /* Let's just try to find what appears to be the token, using + * regular Java identifier character rules. It's just a heuristic, + * nothing fancy here. + */ + while (true) { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + break; + } + } + char c = _inputBuffer[_inputPtr]; + if (!Character.isJavaIdentifierPart(c)) { + break; + } + ++_inputPtr; + sb.append(c); + } + _reportError("Unrecognized token '"+sb.toString()+"': was expecting "); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/ReaderBasedParserBase.java b/1.9.10/src/java/org/codehaus/jackson/impl/ReaderBasedParserBase.java new file mode 100644 index 0000000..8771bc9 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/ReaderBasedParserBase.java
@@ -0,0 +1,228 @@ +package org.codehaus.jackson.impl; + +import java.io.*; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.io.IOContext; + +/** + * This is a simple low-level input reader base class, used by + * JSON parser. + * The reason for sub-classing (over composition) + * is due to need for direct access to character buffers + * and positions. + * + * @author Tatu Saloranta + * + * @deprecated Since 1.9 sub-classes should just include code + * from here as is. + */ +@Deprecated +public abstract class ReaderBasedParserBase + extends JsonParserBase +{ + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + /** + * Reader that can be used for reading more content, if one + * buffer from input source, but in some cases pre-loaded buffer + * is handed to the parser. + */ + protected Reader _reader; + + /* + /********************************************************** + /* Current input data + /********************************************************** + */ + + /** + * Current buffer from which data is read; generally data is read into + * buffer from input source. + */ + protected char[] _inputBuffer; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + protected ReaderBasedParserBase(IOContext ctxt, int features, Reader r) + { + super(ctxt, features); + _reader = r; + _inputBuffer = ctxt.allocTokenBuffer(); + } + + /* + /********************************************************** + /* Overrides + /********************************************************** + */ + + @Override + public int releaseBuffered(Writer w) throws IOException + { + int count = _inputEnd - _inputPtr; + if (count < 1) { + return 0; + } + // let's just advance ptr to end + int origPtr = _inputPtr; + w.write(_inputBuffer, origPtr, count); + return count; + } + + @Override + public Object getInputSource() { + return _reader; + } + + /* + /********************************************************** + /* Low-level reading, other + /********************************************************** + */ + + @Override + protected final boolean loadMore() throws IOException + { + _currInputProcessed += _inputEnd; + _currInputRowStart -= _inputEnd; + + if (_reader != null) { + int count = _reader.read(_inputBuffer, 0, _inputBuffer.length); + if (count > 0) { + _inputPtr = 0; + _inputEnd = count; + return true; + } + // End of input + _closeInput(); + // Should never return 0, so let's fail + if (count == 0) { + throw new IOException("Reader returned 0 characters when trying to read "+_inputEnd); + } + } + return false; + } + + protected char getNextChar(String eofMsg) + throws IOException, JsonParseException + { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(eofMsg); + } + } + return _inputBuffer[_inputPtr++]; + } + + @Override + protected void _closeInput() throws IOException + { + /* 25-Nov-2008, tatus: As per [JACKSON-16] we are not to call close() + * on the underlying Reader, unless we "own" it, or auto-closing + * feature is enabled. + * One downside is that when using our optimized + * Reader (granted, we only do that for UTF-32...) this + * means that buffer recycling won't work correctly. + */ + if (_reader != null) { + if (_ioContext.isResourceManaged() || isEnabled(Feature.AUTO_CLOSE_SOURCE)) { + _reader.close(); + } + _reader = null; + } + } + + /** + * Method called to release internal buffers owned by the base + * reader. This may be called along with {@link #_closeInput} (for + * example, when explicitly closing this reader instance), or + * separately (if need be). + */ + @Override + protected void _releaseBuffers() + throws IOException + { + super._releaseBuffers(); + char[] buf = _inputBuffer; + if (buf != null) { + _inputBuffer = null; + _ioContext.releaseTokenBuffer(buf); + } + } + + /* + /********************************************************** + /* Helper methods for subclasses + /********************************************************** + */ + + /** + * Helper method for checking whether input matches expected token + * + * @since 1.8 + */ + protected final boolean _matchToken(String matchStr, int i) + throws IOException, JsonParseException + { + final int len = matchStr.length(); + + do { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOFInValue(); + } + } + if (_inputBuffer[_inputPtr] != matchStr.charAt(i)) { + _reportInvalidToken(matchStr.substring(0, i), "'null', 'true', 'false' or NaN"); + } + ++_inputPtr; + } while (++i < len); + + // but let's also ensure we either get EOF, or non-alphanum char... + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + return true; + } + } + char c = _inputBuffer[_inputPtr]; + // if Java letter, it's a problem tho + if (Character.isJavaIdentifierPart(c)) { + ++_inputPtr; + _reportInvalidToken(matchStr.substring(0, i), "'null', 'true', 'false' or NaN"); + } + return true; + } + + protected void _reportInvalidToken(String matchedPart, String msg) + throws IOException, JsonParseException + { + StringBuilder sb = new StringBuilder(matchedPart); + /* Let's just try to find what appears to be the token, using + * regular Java identifier character rules. It's just a heuristic, + * nothing fancy here. + */ + while (true) { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + break; + } + } + char c = _inputBuffer[_inputPtr]; + if (!Character.isJavaIdentifierPart(c)) { + break; + } + ++_inputPtr; + sb.append(c); + } + _reportError("Unrecognized token '"+sb.toString()+"': was expecting "); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/StreamBasedParserBase.java b/1.9.10/src/java/org/codehaus/jackson/impl/StreamBasedParserBase.java new file mode 100644 index 0000000..ea42033 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/StreamBasedParserBase.java
@@ -0,0 +1,197 @@ +package org.codehaus.jackson.impl; + +import java.io.*; + +import org.codehaus.jackson.io.IOContext; + +/** + * This is a simple low-level input reader base class, used by + * JSON parser. It is used when underlying input source is + * a byte stream such as {@link InputStream}. + * The reason for sub-classing (over composition) + * is due to need for direct access to low-level byte buffers + * and positions. + * + * @author Tatu Saloranta + * + * @deprecated Since 1.9, sub-classes should just embed code from here + */ +@Deprecated +public abstract class StreamBasedParserBase + extends JsonParserBase +{ + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + /** + * Input stream that can be used for reading more content, if one + * in use. May be null, if input comes just as a full buffer, + * or if the stream has been closed. + */ + protected InputStream _inputStream; + + /* + /********************************************************** + /* Current input data + /********************************************************** + */ + + /** + * Current buffer from which data is read; generally data is read into + * buffer from input source, but in some cases pre-loaded buffer + * is handed to the parser. + */ + protected byte[] _inputBuffer; + + /** + * Flag that indicates whether the input buffer is recycable (and + * needs to be returned to recycler once we are done) or not. + *<p> + * If it is not, it also means that parser can NOT modify underlying + * buffer. + */ + protected boolean _bufferRecyclable; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + protected StreamBasedParserBase(IOContext ctxt, int features, + InputStream in, byte[] inputBuffer, int start, int end, + boolean bufferRecyclable) + { + super(ctxt, features); + _inputStream = in; + _inputBuffer = inputBuffer; + _inputPtr = start; + _inputEnd = end; + _bufferRecyclable = bufferRecyclable; + } + + /* + /********************************************************** + /* Overrides + /********************************************************** + */ + + @Override + public int releaseBuffered(OutputStream out) throws IOException + { + int count = _inputEnd - _inputPtr; + if (count < 1) { + return 0; + } + // let's just advance ptr to end + int origPtr = _inputPtr; + out.write(_inputBuffer, origPtr, count); + return count; + } + + @Override + public Object getInputSource() { + return _inputStream; + } + + /* + /********************************************************** + /* Low-level reading, other + /********************************************************** + */ + + @Override + protected final boolean loadMore() + throws IOException + { + _currInputProcessed += _inputEnd; + _currInputRowStart -= _inputEnd; + + if (_inputStream != null) { + int count = _inputStream.read(_inputBuffer, 0, _inputBuffer.length); + if (count > 0) { + _inputPtr = 0; + _inputEnd = count; + return true; + } + // End of input + _closeInput(); + // Should never return 0, so let's fail + if (count == 0) { + throw new IOException("InputStream.read() returned 0 characters when trying to read "+_inputBuffer.length+" bytes"); + } + } + return false; + } + + /** + * Helper method that will try to load at least specified number bytes in + * input buffer, possible moving existing data around if necessary + * + * @since 1.6 + */ + protected final boolean _loadToHaveAtLeast(int minAvailable) + throws IOException + { + // No input stream, no leading (either we are closed, or have non-stream input source) + if (_inputStream == null) { + return false; + } + // Need to move remaining data in front? + int amount = _inputEnd - _inputPtr; + if (amount > 0 && _inputPtr > 0) { + _currInputProcessed += _inputPtr; + _currInputRowStart -= _inputPtr; + System.arraycopy(_inputBuffer, _inputPtr, _inputBuffer, 0, amount); + _inputEnd = amount; + } else { + _inputEnd = 0; + } + _inputPtr = 0; + while (_inputEnd < minAvailable) { + int count = _inputStream.read(_inputBuffer, _inputEnd, _inputBuffer.length - _inputEnd); + if (count < 1) { + // End of input + _closeInput(); + // Should never return 0, so let's fail + if (count == 0) { + throw new IOException("InputStream.read() returned 0 characters when trying to read "+amount+" bytes"); + } + return false; + } + _inputEnd += count; + } + return true; + } + + @Override + protected void _closeInput() throws IOException + { + /* 25-Nov-2008, tatus: As per [JACKSON-16] we are not to call close() + * on the underlying InputStream, unless we "own" it, or auto-closing + * feature is enabled. + */ + if (_inputStream != null) { + if (_ioContext.isResourceManaged() || isEnabled(Feature.AUTO_CLOSE_SOURCE)) { + _inputStream.close(); + } + _inputStream = null; + } + } + + @Override + protected void _releaseBuffers() throws IOException + { + super._releaseBuffers(); + if (_bufferRecyclable) { + byte[] buf = _inputBuffer; + if (buf != null) { + _inputBuffer = null; + _ioContext.releaseReadIOBuffer(buf); + } + } + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/Utf8Generator.java b/1.9.10/src/java/org/codehaus/jackson/impl/Utf8Generator.java new file mode 100644 index 0000000..ccc25cd --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/Utf8Generator.java
@@ -0,0 +1,1757 @@ +package org.codehaus.jackson.impl; + +import java.io.*; +import java.math.BigDecimal; +import java.math.BigInteger; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.io.CharacterEscapes; +import org.codehaus.jackson.io.IOContext; +import org.codehaus.jackson.io.NumberOutput; +import org.codehaus.jackson.io.SerializedString; +import org.codehaus.jackson.util.CharTypes; + +public class Utf8Generator + extends JsonGeneratorBase +{ + private final static byte BYTE_u = (byte) 'u'; + + private final static byte BYTE_0 = (byte) '0'; + + private final static byte BYTE_LBRACKET = (byte) '['; + private final static byte BYTE_RBRACKET = (byte) ']'; + private final static byte BYTE_LCURLY = (byte) '{'; + private final static byte BYTE_RCURLY = (byte) '}'; + + private final static byte BYTE_BACKSLASH = (byte) '\\'; + private final static byte BYTE_SPACE = (byte) ' '; + private final static byte BYTE_COMMA = (byte) ','; + private final static byte BYTE_COLON = (byte) ':'; + private final static byte BYTE_QUOTE = (byte) '"'; + + protected final static int SURR1_FIRST = 0xD800; + protected final static int SURR1_LAST = 0xDBFF; + protected final static int SURR2_FIRST = 0xDC00; + protected final static int SURR2_LAST = 0xDFFF; + + // intermediate copies only made up to certain length... + private final static int MAX_BYTES_TO_BUFFER = 512; + + final static byte[] HEX_CHARS = CharTypes.copyHexBytes(); + + private final static byte[] NULL_BYTES = { 'n', 'u', 'l', 'l' }; + private final static byte[] TRUE_BYTES = { 't', 'r', 'u', 'e' }; + private final static byte[] FALSE_BYTES = { 'f', 'a', 'l', 's', 'e' }; + + /** + * This is the default set of escape codes, over 7-bit ASCII range + * (first 128 character codes), used for single-byte UTF-8 characters. + */ + protected final static int[] sOutputEscapes = CharTypes.get7BitOutputEscapes(); + + /* + /********************************************************** + /* Configuration, basic I/O + /********************************************************** + */ + + final protected IOContext _ioContext; + + /** + * Underlying output stream used for writing JSON content. + */ + final protected OutputStream _outputStream; + + /* + /********************************************************** + /* Configuration, output escaping + /********************************************************** + */ + + /** + * Currently active set of output escape code definitions (whether + * and how to escape or not) for 7-bit ASCII range (first 128 + * character codes). Defined separately to make potentially + * customizable + */ + protected int[] _outputEscapes = sOutputEscapes; + + /** + * Value between 128 (0x80) and 65535 (0xFFFF) that indicates highest + * Unicode code point that will not need escaping; or 0 to indicate + * that all characters can be represented without escaping. + * Typically used to force escaping of some portion of character set; + * for example to always escape non-ASCII characters (if value was 127). + *<p> + * NOTE: not all sub-classes make use of this setting. + */ + protected int _maximumNonEscapedChar; + + /** + * Definition of custom character escapes to use for generators created + * by this factory, if any. If null, standard data format specific + * escapes are used. + * + * @since 1.8 + */ + protected CharacterEscapes _characterEscapes; + + /* + /********************************************************** + /* Output buffering + /********************************************************** + */ + + /** + * Intermediate buffer in which contents are buffered before + * being written using {@link #_outputStream}. + */ + protected byte[] _outputBuffer; + + /** + * Pointer to the position right beyond the last character to output + * (end marker; may be past the buffer) + */ + protected int _outputTail = 0; + + /** + * End marker of the output buffer; one past the last valid position + * within the buffer. + */ + protected final int _outputEnd; + + /** + * Maximum number of <code>char</code>s that we know will always fit + * in the output buffer after escaping + */ + protected final int _outputMaxContiguous; + + /** + * Intermediate buffer in which characters of a String are copied + * before being encoded. + */ + protected char[] _charBuffer; + + /** + * Length of <code>_charBuffer</code> + */ + protected final int _charBufferLength; + + /** + * 6 character temporary buffer allocated if needed, for constructing + * escape sequences + */ + protected byte[] _entityBuffer; + + /** + * Flag that indicates whether the output buffer is recycable (and + * needs to be returned to recycler once we are done) or not. + */ + protected boolean _bufferRecyclable; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + public Utf8Generator(IOContext ctxt, int features, ObjectCodec codec, + OutputStream out) + { + + super(features, codec); + _ioContext = ctxt; + _outputStream = out; + _bufferRecyclable = true; + _outputBuffer = ctxt.allocWriteEncodingBuffer(); + _outputEnd = _outputBuffer.length; + /* To be exact, each char can take up to 6 bytes when escaped (Unicode + * escape with backslash, 'u' and 4 hex digits); but to avoid fluctuation, + * we will actually round down to only do up to 1/8 number of chars + */ + _outputMaxContiguous = _outputEnd >> 3; + _charBuffer = ctxt.allocConcatBuffer(); + _charBufferLength = _charBuffer.length; + + // By default we use this feature to determine additional quoting + if (isEnabled(Feature.ESCAPE_NON_ASCII)) { + setHighestNonEscapedChar(127); + } + } + + public Utf8Generator(IOContext ctxt, int features, ObjectCodec codec, + OutputStream out, byte[] outputBuffer, int outputOffset, boolean bufferRecyclable) + { + + super(features, codec); + _ioContext = ctxt; + _outputStream = out; + _bufferRecyclable = bufferRecyclable; + _outputTail = outputOffset; + _outputBuffer = outputBuffer; + _outputEnd = _outputBuffer.length; + // up to 6 bytes per char (see above), rounded up to 1/8 + _outputMaxContiguous = _outputEnd >> 3; + _charBuffer = ctxt.allocConcatBuffer(); + _charBufferLength = _charBuffer.length; + + if (isEnabled(Feature.ESCAPE_NON_ASCII)) { + setHighestNonEscapedChar(127); + } + } + + /* + /********************************************************** + /* Overridden configuration methods + /********************************************************** + */ + + @Override + public JsonGenerator setHighestNonEscapedChar(int charCode) { + _maximumNonEscapedChar = (charCode < 0) ? 0 : charCode; + return this; + } + + @Override + public int getHighestEscapedChar() { + return _maximumNonEscapedChar; + } + + @Override + public JsonGenerator setCharacterEscapes(CharacterEscapes esc) + { + _characterEscapes = esc; + if (esc == null) { // revert to standard escapes + _outputEscapes = sOutputEscapes; + } else { + _outputEscapes = esc.getEscapeCodesForAscii(); + } + return this; + } + + /** + * Method for accessing custom escapes factory uses for {@link JsonGenerator}s + * it creates. + * + * @since 1.8 + */ + @Override + public CharacterEscapes getCharacterEscapes() { + return _characterEscapes; + } + + @Override + public Object getOutputTarget() { + return _outputStream; + } + + /* + /********************************************************** + /* Overridden methods + /********************************************************** + */ + + /* Most overrides in this section are just to make methods final, + * to allow better inlining... + */ + @Override + public final void writeStringField(String fieldName, String value) + throws IOException, JsonGenerationException + { + writeFieldName(fieldName); + writeString(value); + } + + @Override + public final void writeFieldName(String name) throws IOException, JsonGenerationException + { + int status = _writeContext.writeFieldName(name); + if (status == JsonWriteContext.STATUS_EXPECT_VALUE) { + _reportError("Can not write a field name, expecting a value"); + } + if (_cfgPrettyPrinter != null) { + _writePPFieldName(name, (status == JsonWriteContext.STATUS_OK_AFTER_COMMA)); + return; + } + if (status == JsonWriteContext.STATUS_OK_AFTER_COMMA) { // need comma + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_COMMA; + } + _writeFieldName(name); + } + + @Override + public final void writeFieldName(SerializedString name) + throws IOException, JsonGenerationException + { + // Object is a value, need to verify it's allowed + int status = _writeContext.writeFieldName(name.getValue()); + if (status == JsonWriteContext.STATUS_EXPECT_VALUE) { + _reportError("Can not write a field name, expecting a value"); + } + if (_cfgPrettyPrinter != null) { + _writePPFieldName(name, (status == JsonWriteContext.STATUS_OK_AFTER_COMMA)); + return; + } + if (status == JsonWriteContext.STATUS_OK_AFTER_COMMA) { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_COMMA; + } + _writeFieldName(name); + } + + @Override + public final void writeFieldName(SerializableString name) + throws IOException, JsonGenerationException + { + // Object is a value, need to verify it's allowed + int status = _writeContext.writeFieldName(name.getValue()); + if (status == JsonWriteContext.STATUS_EXPECT_VALUE) { + _reportError("Can not write a field name, expecting a value"); + } + if (_cfgPrettyPrinter != null) { + _writePPFieldName(name, (status == JsonWriteContext.STATUS_OK_AFTER_COMMA)); + return; + } + if (status == JsonWriteContext.STATUS_OK_AFTER_COMMA) { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_COMMA; + } + _writeFieldName(name); + } + + /* + /********************************************************** + /* Output method implementations, structural + /********************************************************** + */ + + @Override + public final void writeStartArray() throws IOException, JsonGenerationException + { + _verifyValueWrite("start an array"); + _writeContext = _writeContext.createChildArrayContext(); + if (_cfgPrettyPrinter != null) { + _cfgPrettyPrinter.writeStartArray(this); + } else { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_LBRACKET; + } + } + + @Override + public final void writeEndArray() throws IOException, JsonGenerationException + { + if (!_writeContext.inArray()) { + _reportError("Current context not an ARRAY but "+_writeContext.getTypeDesc()); + } + if (_cfgPrettyPrinter != null) { + _cfgPrettyPrinter.writeEndArray(this, _writeContext.getEntryCount()); + } else { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_RBRACKET; + } + _writeContext = _writeContext.getParent(); + } + + @Override + public final void writeStartObject() throws IOException, JsonGenerationException + { + _verifyValueWrite("start an object"); + _writeContext = _writeContext.createChildObjectContext(); + if (_cfgPrettyPrinter != null) { + _cfgPrettyPrinter.writeStartObject(this); + } else { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_LCURLY; + } + } + + @Override + public final void writeEndObject() throws IOException, JsonGenerationException + { + if (!_writeContext.inObject()) { + _reportError("Current context not an object but "+_writeContext.getTypeDesc()); + } + if (_cfgPrettyPrinter != null) { + _cfgPrettyPrinter.writeEndObject(this, _writeContext.getEntryCount()); + } else { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_RCURLY; + } + _writeContext = _writeContext.getParent(); + } + + protected final void _writeFieldName(String name) + throws IOException, JsonGenerationException + { + /* To support [JACKSON-46], we'll do this: + * (Question: should quoting of spaces (etc) still be enabled?) + */ + if (!isEnabled(Feature.QUOTE_FIELD_NAMES)) { + _writeStringSegments(name); + return; + } + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + // The beef: + final int len = name.length(); + if (len <= _charBufferLength) { // yes, fits right in + name.getChars(0, len, _charBuffer, 0); + // But as one segment, or multiple? + if (len <= _outputMaxContiguous) { + if ((_outputTail + len) > _outputEnd) { // caller must ensure enough space + _flushBuffer(); + } + _writeStringSegment(_charBuffer, 0, len); + } else { + _writeStringSegments(_charBuffer, 0, len); + } + } else { + _writeStringSegments(name); + } + + // and closing quotes; need room for one more char: + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + + protected final void _writeFieldName(SerializableString name) + throws IOException, JsonGenerationException + { + byte[] raw = name.asQuotedUTF8(); + if (!isEnabled(Feature.QUOTE_FIELD_NAMES)) { + _writeBytes(raw); + return; + } + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + + // Can do it all in buffer? + final int len = raw.length; + if ((_outputTail + len + 1) < _outputEnd) { // yup + System.arraycopy(raw, 0, _outputBuffer, _outputTail, len); + _outputTail += len; + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } else { + _writeBytes(raw); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + } + + /** + * Specialized version of <code>_writeFieldName</code>, off-lined + * to keep the "fast path" as simple (and hopefully fast) as possible. + */ + protected final void _writePPFieldName(String name, boolean commaBefore) + throws IOException, JsonGenerationException + { + if (commaBefore) { + _cfgPrettyPrinter.writeObjectEntrySeparator(this); + } else { + _cfgPrettyPrinter.beforeObjectEntries(this); + } + + if (isEnabled(Feature.QUOTE_FIELD_NAMES)) { // standard + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + final int len = name.length(); + if (len <= _charBufferLength) { // yes, fits right in + name.getChars(0, len, _charBuffer, 0); + // But as one segment, or multiple? + if (len <= _outputMaxContiguous) { + if ((_outputTail + len) > _outputEnd) { // caller must ensure enough space + _flushBuffer(); + } + _writeStringSegment(_charBuffer, 0, len); + } else { + _writeStringSegments(_charBuffer, 0, len); + } + } else { + _writeStringSegments(name); + } + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } else { // non-standard, omit quotes + _writeStringSegments(name); + } + } + + protected final void _writePPFieldName(SerializableString name, boolean commaBefore) + throws IOException, JsonGenerationException + { + if (commaBefore) { + _cfgPrettyPrinter.writeObjectEntrySeparator(this); + } else { + _cfgPrettyPrinter.beforeObjectEntries(this); + } + + boolean addQuotes = isEnabled(Feature.QUOTE_FIELD_NAMES); // standard + if (addQuotes) { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + _writeBytes(name.asQuotedUTF8()); + if (addQuotes) { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + } + + /* + /********************************************************** + /* Output method implementations, textual + /********************************************************** + */ + + @Override + public void writeString(String text) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write text value"); + if (text == null) { + _writeNull(); + return; + } + // First: can we make a local copy of chars that make up text? + final int len = text.length(); + if (len > _charBufferLength) { // nope: off-line handling + _writeLongString(text); + return; + } + // yes: good. + text.getChars(0, len, _charBuffer, 0); + // Output: if we can't guarantee it fits in output buffer, off-line as well: + if (len > _outputMaxContiguous) { + _writeLongString(_charBuffer, 0, len); + return; + } + if ((_outputTail + len) >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + _writeStringSegment(_charBuffer, 0, len); // we checked space already above + /* [JACKSON-462] But that method may have had to expand multi-byte Unicode + * chars, so we must check again + */ + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + + private final void _writeLongString(String text) + throws IOException, JsonGenerationException + { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + _writeStringSegments(text); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + + private final void _writeLongString(char[] text, int offset, int len) + throws IOException, JsonGenerationException + { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + _writeStringSegments(_charBuffer, 0, len); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + + @Override + public void writeString(char[] text, int offset, int len) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write text value"); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + // One or multiple segments? + if (len <= _outputMaxContiguous) { + if ((_outputTail + len) > _outputEnd) { // caller must ensure enough space + _flushBuffer(); + } + _writeStringSegment(text, offset, len); + } else { + _writeStringSegments(text, offset, len); + } + // And finally, closing quotes + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + + @Override + public final void writeString(SerializableString text) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write text value"); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + _writeBytes(text.asQuotedUTF8()); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + + @Override + public void writeRawUTF8String(byte[] text, int offset, int length) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write text value"); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + _writeBytes(text, offset, length); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + + @Override + public void writeUTF8String(byte[] text, int offset, int len) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write text value"); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + // One or multiple segments? + if (len <= _outputMaxContiguous) { + _writeUTF8Segment(text, offset, len); + } else { + _writeUTF8Segments(text, offset, len); + } + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + + /* + /********************************************************** + /* Output method implementations, unprocessed ("raw") + /********************************************************** + */ + + @Override + public void writeRaw(String text) + throws IOException, JsonGenerationException + { + int start = 0; + int len = text.length(); + while (len > 0) { + char[] buf = _charBuffer; + final int blen = buf.length; + final int len2 = (len < blen) ? len : blen; + text.getChars(start, start+len2, buf, 0); + writeRaw(buf, 0, len2); + start += len2; + len -= len2; + } + } + + @Override + public void writeRaw(String text, int offset, int len) + throws IOException, JsonGenerationException + { + while (len > 0) { + char[] buf = _charBuffer; + final int blen = buf.length; + final int len2 = (len < blen) ? len : blen; + text.getChars(offset, offset+len2, buf, 0); + writeRaw(buf, 0, len2); + offset += len2; + len -= len2; + } + } + + // @TODO: rewrite for speed... + @Override + public final void writeRaw(char[] cbuf, int offset, int len) + throws IOException, JsonGenerationException + { + // First: if we have 3 x charCount spaces, we know it'll fit just fine + { + int len3 = len+len+len; + if ((_outputTail + len3) > _outputEnd) { + // maybe we could flush? + if (_outputEnd < len3) { // wouldn't be enough... + _writeSegmentedRaw(cbuf, offset, len); + return; + } + // yes, flushing brings enough space + _flushBuffer(); + } + } + len += offset; // now marks the end + + // Note: here we know there is enough room, hence no output boundary checks + main_loop: + while (offset < len) { + inner_loop: + while (true) { + int ch = (int) cbuf[offset]; + if (ch > 0x7F) { + break inner_loop; + } + _outputBuffer[_outputTail++] = (byte) ch; + if (++offset >= len) { + break main_loop; + } + } + char ch = cbuf[offset++]; + if (ch < 0x800) { // 2-byte? + _outputBuffer[_outputTail++] = (byte) (0xc0 | (ch >> 6)); + _outputBuffer[_outputTail++] = (byte) (0x80 | (ch & 0x3f)); + } else { + _outputRawMultiByteChar(ch, cbuf, offset, len); + } + } + } + + @Override + public void writeRaw(char ch) + throws IOException, JsonGenerationException + { + if ((_outputTail + 3) >= _outputEnd) { + _flushBuffer(); + } + final byte[] bbuf = _outputBuffer; + if (ch <= 0x7F) { + bbuf[_outputTail++] = (byte) ch; + } else if (ch < 0x800) { // 2-byte? + bbuf[_outputTail++] = (byte) (0xc0 | (ch >> 6)); + bbuf[_outputTail++] = (byte) (0x80 | (ch & 0x3f)); + } else { + _outputRawMultiByteChar(ch, null, 0, 0); + } + } + + /** + * Helper method called when it is possible that output of raw section + * to output may cross buffer boundary + */ + private final void _writeSegmentedRaw(char[] cbuf, int offset, int len) + throws IOException, JsonGenerationException + { + final int end = _outputEnd; + final byte[] bbuf = _outputBuffer; + + main_loop: + while (offset < len) { + inner_loop: + while (true) { + int ch = (int) cbuf[offset]; + if (ch >= 0x80) { + break inner_loop; + } + // !!! TODO: fast(er) writes (roll input, output checks in one) + if (_outputTail >= end) { + _flushBuffer(); + } + bbuf[_outputTail++] = (byte) ch; + if (++offset >= len) { + break main_loop; + } + } + if ((_outputTail + 3) >= _outputEnd) { + _flushBuffer(); + } + char ch = cbuf[offset++]; + if (ch < 0x800) { // 2-byte? + bbuf[_outputTail++] = (byte) (0xc0 | (ch >> 6)); + bbuf[_outputTail++] = (byte) (0x80 | (ch & 0x3f)); + } else { + _outputRawMultiByteChar(ch, cbuf, offset, len); + } + } + } + + /* + /********************************************************** + /* Output method implementations, base64-encoded binary + /********************************************************** + */ + + @Override + public void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write binary value"); + // Starting quotes + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + _writeBinary(b64variant, data, offset, offset+len); + // and closing quotes + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + + /* + /********************************************************** + /* Output method implementations, primitive + /********************************************************** + */ + + @Override + public void writeNumber(int i) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write number"); + // up to 10 digits and possible minus sign + if ((_outputTail + 11) >= _outputEnd) { + _flushBuffer(); + } + if (_cfgNumbersAsStrings) { + _writeQuotedInt(i); + return; + } + _outputTail = NumberOutput.outputInt(i, _outputBuffer, _outputTail); + } + + private final void _writeQuotedInt(int i) throws IOException { + if ((_outputTail + 13) >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + _outputTail = NumberOutput.outputInt(i, _outputBuffer, _outputTail); + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + + @Override + public void writeNumber(long l) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write number"); + if (_cfgNumbersAsStrings) { + _writeQuotedLong(l); + return; + } + if ((_outputTail + 21) >= _outputEnd) { + // up to 20 digits, minus sign + _flushBuffer(); + } + _outputTail = NumberOutput.outputLong(l, _outputBuffer, _outputTail); + } + + private final void _writeQuotedLong(long l) throws IOException { + if ((_outputTail + 23) >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + _outputTail = NumberOutput.outputLong(l, _outputBuffer, _outputTail); + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + + @Override + public void writeNumber(BigInteger value) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write number"); + if (value == null) { + _writeNull(); + } else if (_cfgNumbersAsStrings) { + _writeQuotedRaw(value); + } else { + writeRaw(value.toString()); + } + } + + + @Override + public void writeNumber(double d) + throws IOException, JsonGenerationException + { + if (_cfgNumbersAsStrings || + // [JACKSON-139] + (((Double.isNaN(d) || Double.isInfinite(d)) + && isEnabled(Feature.QUOTE_NON_NUMERIC_NUMBERS)))) { + writeString(String.valueOf(d)); + return; + } + // What is the max length for doubles? 40 chars? + _verifyValueWrite("write number"); + writeRaw(String.valueOf(d)); + } + + @Override + public void writeNumber(float f) + throws IOException, JsonGenerationException + { + if (_cfgNumbersAsStrings || + // [JACKSON-139] + (((Float.isNaN(f) || Float.isInfinite(f)) + && isEnabled(Feature.QUOTE_NON_NUMERIC_NUMBERS)))) { + writeString(String.valueOf(f)); + return; + } + // What is the max length for floats? + _verifyValueWrite("write number"); + writeRaw(String.valueOf(f)); + } + + @Override + public void writeNumber(BigDecimal value) + throws IOException, JsonGenerationException + { + // Don't really know max length for big decimal, no point checking + _verifyValueWrite("write number"); + if (value == null) { + _writeNull(); + } else if (_cfgNumbersAsStrings) { + _writeQuotedRaw(value); + } else { + writeRaw(value.toString()); + } + } + + @Override + public void writeNumber(String encodedValue) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write number"); + if (_cfgNumbersAsStrings) { + _writeQuotedRaw(encodedValue); + } else { + writeRaw(encodedValue); + } + } + + private final void _writeQuotedRaw(Object value) throws IOException + { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + writeRaw(value.toString()); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = BYTE_QUOTE; + } + + @Override + public void writeBoolean(boolean state) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write boolean value"); + if ((_outputTail + 5) >= _outputEnd) { + _flushBuffer(); + } + byte[] keyword = state ? TRUE_BYTES : FALSE_BYTES; + int len = keyword.length; + System.arraycopy(keyword, 0, _outputBuffer, _outputTail, len); + _outputTail += len; + } + + @Override + public void writeNull() + throws IOException, JsonGenerationException + { + _verifyValueWrite("write null value"); + _writeNull(); + } + + /* + /********************************************************** + /* Implementations for other methods + /********************************************************** + */ + + @Override + protected final void _verifyValueWrite(String typeMsg) + throws IOException, JsonGenerationException + { + int status = _writeContext.writeValue(); + if (status == JsonWriteContext.STATUS_EXPECT_NAME) { + _reportError("Can not "+typeMsg+", expecting field name"); + } + if (_cfgPrettyPrinter == null) { + byte b; + switch (status) { + case JsonWriteContext.STATUS_OK_AFTER_COMMA: + b = BYTE_COMMA; + break; + case JsonWriteContext.STATUS_OK_AFTER_COLON: + b = BYTE_COLON; + break; + case JsonWriteContext.STATUS_OK_AFTER_SPACE: + b = BYTE_SPACE; + break; + case JsonWriteContext.STATUS_OK_AS_IS: + default: + return; + } + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail] = b; + ++_outputTail; + return; + } + // Otherwise, pretty printer knows what to do... + _verifyPrettyValueWrite(typeMsg, status); + } + + protected final void _verifyPrettyValueWrite(String typeMsg, int status) + throws IOException, JsonGenerationException + { + // If we have a pretty printer, it knows what to do: + switch (status) { + case JsonWriteContext.STATUS_OK_AFTER_COMMA: // array + _cfgPrettyPrinter.writeArrayValueSeparator(this); + break; + case JsonWriteContext.STATUS_OK_AFTER_COLON: + _cfgPrettyPrinter.writeObjectFieldValueSeparator(this); + break; + case JsonWriteContext.STATUS_OK_AFTER_SPACE: + _cfgPrettyPrinter.writeRootValueSeparator(this); + break; + case JsonWriteContext.STATUS_OK_AS_IS: + // First entry, but of which context? + if (_writeContext.inArray()) { + _cfgPrettyPrinter.beforeArrayValues(this); + } else if (_writeContext.inObject()) { + _cfgPrettyPrinter.beforeObjectEntries(this); + } + break; + default: + _cantHappen(); + break; + } + } + + /* + /********************************************************** + /* Low-level output handling + /********************************************************** + */ + + @Override + public final void flush() + throws IOException + { + _flushBuffer(); + if (_outputStream != null) { + if (isEnabled(Feature.FLUSH_PASSED_TO_STREAM)) { + _outputStream.flush(); + } + } + } + + @Override + public void close() + throws IOException + { + super.close(); + + /* 05-Dec-2008, tatu: To add [JACKSON-27], need to close open + * scopes. + */ + // First: let's see that we still have buffers... + if (_outputBuffer != null + && isEnabled(Feature.AUTO_CLOSE_JSON_CONTENT)) { + while (true) { + JsonStreamContext ctxt = getOutputContext(); + if (ctxt.inArray()) { + writeEndArray(); + } else if (ctxt.inObject()) { + writeEndObject(); + } else { + break; + } + } + } + _flushBuffer(); + + /* 25-Nov-2008, tatus: As per [JACKSON-16] we are not to call close() + * on the underlying Reader, unless we "own" it, or auto-closing + * feature is enabled. + * One downside: when using UTF8Writer, underlying buffer(s) + * may not be properly recycled if we don't close the writer. + */ + if (_outputStream != null) { + if (_ioContext.isResourceManaged() || isEnabled(Feature.AUTO_CLOSE_TARGET)) { + _outputStream.close(); + } else if (isEnabled(Feature.FLUSH_PASSED_TO_STREAM)) { + // If we can't close it, we should at least flush + _outputStream.flush(); + } + } + // Internal buffer(s) generator has can now be released as well + _releaseBuffers(); + } + + @Override + protected void _releaseBuffers() + { + byte[] buf = _outputBuffer; + if (buf != null && _bufferRecyclable) { + _outputBuffer = null; + _ioContext.releaseWriteEncodingBuffer(buf); + } + char[] cbuf = _charBuffer; + if (cbuf != null) { + _charBuffer = null; + _ioContext.releaseConcatBuffer(cbuf); + } + } + + /* + /********************************************************** + /* Internal methods, low-level writing, raw bytes + /********************************************************** + */ + + private final void _writeBytes(byte[] bytes) throws IOException + { + final int len = bytes.length; + if ((_outputTail + len) > _outputEnd) { + _flushBuffer(); + // still not enough? + if (len > MAX_BYTES_TO_BUFFER) { + _outputStream.write(bytes, 0, len); + return; + } + } + System.arraycopy(bytes, 0, _outputBuffer, _outputTail, len); + _outputTail += len; + } + + private final void _writeBytes(byte[] bytes, int offset, int len) throws IOException + { + if ((_outputTail + len) > _outputEnd) { + _flushBuffer(); + // still not enough? + if (len > MAX_BYTES_TO_BUFFER) { + _outputStream.write(bytes, offset, len); + return; + } + } + System.arraycopy(bytes, offset, _outputBuffer, _outputTail, len); + _outputTail += len; + } + + /* + /********************************************************** + /* Internal methods, mid-level writing, String segments + /********************************************************** + */ + + /** + * Method called when String to write is long enough not to fit + * completely in temporary copy buffer. If so, we will actually + * copy it in small enough chunks so it can be directly fed + * to single-segment writes (instead of maximum slices that + * would fit in copy buffer) + */ + private final void _writeStringSegments(String text) + throws IOException, JsonGenerationException + { + int left = text.length(); + int offset = 0; + final char[] cbuf = _charBuffer; + + while (left > 0) { + int len = Math.min(_outputMaxContiguous, left); + text.getChars(offset, offset+len, cbuf, 0); + if ((_outputTail + len) > _outputEnd) { // caller must ensure enough space + _flushBuffer(); + } + _writeStringSegment(cbuf, 0, len); + offset += len; + left -= len; + } + } + + /** + * Method called when character sequence to write is long enough that + * its maximum encoded and escaped form is not guaranteed to fit in + * the output buffer. If so, we will need to choose smaller output + * chunks to write at a time. + */ + private final void _writeStringSegments(char[] cbuf, int offset, int totalLen) + throws IOException, JsonGenerationException + { + do { + int len = Math.min(_outputMaxContiguous, totalLen); + if ((_outputTail + len) > _outputEnd) { // caller must ensure enough space + _flushBuffer(); + } + _writeStringSegment(cbuf, offset, len); + offset += len; + totalLen -= len; + } while (totalLen > 0); + } + + /* + /********************************************************** + /* Internal methods, low-level writing, text segments + /********************************************************** + */ + + /** + * This method called when the string content is already in + * a char buffer, and its maximum total encoded and escaped length + * can not exceed size of the output buffer. + * Caller must ensure that there is enough space in output buffer, + * assuming case of all non-escaped ASCII characters, as well as + * potentially enough space for other cases (but not necessarily flushed) + */ + private final void _writeStringSegment(char[] cbuf, int offset, int len) + throws IOException, JsonGenerationException + { + // note: caller MUST ensure (via flushing) there's room for ASCII only + + // Fast+tight loop for ASCII-only, no-escaping-needed output + len += offset; // becomes end marker, then + + int outputPtr = _outputTail; + final byte[] outputBuffer = _outputBuffer; + final int[] escCodes = _outputEscapes; + + while (offset < len) { + int ch = cbuf[offset]; + // note: here we know that (ch > 0x7F) will cover case of escaping non-ASCII too: + if (ch > 0x7F || escCodes[ch] != 0) { + break; + } + outputBuffer[outputPtr++] = (byte) ch; + ++offset; + } + _outputTail = outputPtr; + if (offset < len) { + // [JACKSON-106] + if (_characterEscapes != null) { + _writeCustomStringSegment2(cbuf, offset, len); + // [JACKSON-102] + } else if (_maximumNonEscapedChar == 0) { + _writeStringSegment2(cbuf, offset, len); + } else { + _writeStringSegmentASCII2(cbuf, offset, len); + } + + } + } + + /** + * Secondary method called when content contains characters to escape, + * and/or multi-byte UTF-8 characters. + */ + private final void _writeStringSegment2(final char[] cbuf, int offset, final int end) + throws IOException, JsonGenerationException + { + // Ok: caller guarantees buffer can have room; but that may require flushing: + if ((_outputTail + 6 * (end - offset)) > _outputEnd) { + _flushBuffer(); + } + + int outputPtr = _outputTail; + + final byte[] outputBuffer = _outputBuffer; + final int[] escCodes = _outputEscapes; + + while (offset < end) { + int ch = cbuf[offset++]; + if (ch <= 0x7F) { + if (escCodes[ch] == 0) { + outputBuffer[outputPtr++] = (byte) ch; + continue; + } + int escape = escCodes[ch]; + if (escape > 0) { // 2-char escape, fine + outputBuffer[outputPtr++] = BYTE_BACKSLASH; + outputBuffer[outputPtr++] = (byte) escape; + } else { + // ctrl-char, 6-byte escape... + outputPtr = _writeGenericEscape(ch, outputPtr); + } + continue; + } + if (ch <= 0x7FF) { // fine, just needs 2 byte output + outputBuffer[outputPtr++] = (byte) (0xc0 | (ch >> 6)); + outputBuffer[outputPtr++] = (byte) (0x80 | (ch & 0x3f)); + } else { + outputPtr = _outputMultiByteChar(ch, outputPtr); + } + } + _outputTail = outputPtr; + } + + /* + /********************************************************** + /* Internal methods, low-level writing, text segment + /* with additional escaping (ASCII or such) + /* (since 1.8; see [JACKSON-102]) + /********************************************************** + */ + + /** + * Same as <code>_writeStringSegment2(char[], ...)</code., but with + * additional escaping for high-range code points + * + * @since 1.8 + */ + private final void _writeStringSegmentASCII2(final char[] cbuf, int offset, final int end) + throws IOException, JsonGenerationException + { + // Ok: caller guarantees buffer can have room; but that may require flushing: + if ((_outputTail + 6 * (end - offset)) > _outputEnd) { + _flushBuffer(); + } + + int outputPtr = _outputTail; + + final byte[] outputBuffer = _outputBuffer; + final int[] escCodes = _outputEscapes; + final int maxUnescaped = _maximumNonEscapedChar; + + while (offset < end) { + int ch = cbuf[offset++]; + if (ch <= 0x7F) { + if (escCodes[ch] == 0) { + outputBuffer[outputPtr++] = (byte) ch; + continue; + } + int escape = escCodes[ch]; + if (escape > 0) { // 2-char escape, fine + outputBuffer[outputPtr++] = BYTE_BACKSLASH; + outputBuffer[outputPtr++] = (byte) escape; + } else { + // ctrl-char, 6-byte escape... + outputPtr = _writeGenericEscape(ch, outputPtr); + } + continue; + } + if (ch > maxUnescaped) { // [JACKSON-102] Allow forced escaping if non-ASCII (etc) chars: + outputPtr = _writeGenericEscape(ch, outputPtr); + continue; + } + if (ch <= 0x7FF) { // fine, just needs 2 byte output + outputBuffer[outputPtr++] = (byte) (0xc0 | (ch >> 6)); + outputBuffer[outputPtr++] = (byte) (0x80 | (ch & 0x3f)); + } else { + outputPtr = _outputMultiByteChar(ch, outputPtr); + } + } + _outputTail = outputPtr; + } + + /* + /********************************************************** + /* Internal methods, low-level writing, text segment + /* with fully custom escaping (and possibly escaping of non-ASCII + /********************************************************** + */ + + /** + * Same as <code>_writeStringSegmentASCII2(char[], ...)</code., but with + * additional checking for completely custom escapes + * + * @since 1.8 + */ + private final void _writeCustomStringSegment2(final char[] cbuf, int offset, final int end) + throws IOException, JsonGenerationException + { + // Ok: caller guarantees buffer can have room; but that may require flushing: + if ((_outputTail + 6 * (end - offset)) > _outputEnd) { + _flushBuffer(); + } + int outputPtr = _outputTail; + + final byte[] outputBuffer = _outputBuffer; + final int[] escCodes = _outputEscapes; + // may or may not have this limit + final int maxUnescaped = (_maximumNonEscapedChar <= 0) ? 0xFFFF : _maximumNonEscapedChar; + final CharacterEscapes customEscapes = _characterEscapes; // non-null + + while (offset < end) { + int ch = cbuf[offset++]; + if (ch <= 0x7F) { + if (escCodes[ch] == 0) { + outputBuffer[outputPtr++] = (byte) ch; + continue; + } + int escape = escCodes[ch]; + if (escape > 0) { // 2-char escape, fine + outputBuffer[outputPtr++] = BYTE_BACKSLASH; + outputBuffer[outputPtr++] = (byte) escape; + } else if (escape == CharacterEscapes.ESCAPE_CUSTOM) { + SerializableString esc = customEscapes.getEscapeSequence(ch); + if (esc == null) { + throw new JsonGenerationException("Invalid custom escape definitions; custom escape not found for character code 0x" + +Integer.toHexString(ch)+", although was supposed to have one"); + } + outputPtr = _writeCustomEscape(outputBuffer, outputPtr, esc, end-offset); + } else { + // ctrl-char, 6-byte escape... + outputPtr = _writeGenericEscape(ch, outputPtr); + } + continue; + } + if (ch > maxUnescaped) { // [JACKSON-102] Allow forced escaping if non-ASCII (etc) chars: + outputPtr = _writeGenericEscape(ch, outputPtr); + continue; + } + SerializableString esc = customEscapes.getEscapeSequence(ch); + if (esc != null) { + outputPtr = _writeCustomEscape(outputBuffer, outputPtr, esc, end-offset); + continue; + } + if (ch <= 0x7FF) { // fine, just needs 2 byte output + outputBuffer[outputPtr++] = (byte) (0xc0 | (ch >> 6)); + outputBuffer[outputPtr++] = (byte) (0x80 | (ch & 0x3f)); + } else { + outputPtr = _outputMultiByteChar(ch, outputPtr); + } + } + _outputTail = outputPtr; + } + + private int _writeCustomEscape(byte[] outputBuffer, int outputPtr, SerializableString esc, int remainingChars) + throws IOException, JsonGenerationException + { + byte[] raw = esc.asUnquotedUTF8(); // must be escaped at this point, shouldn't double-quote + int len = raw.length; + if (len > 6) { // may violate constraints we have, do offline + return _handleLongCustomEscape(outputBuffer, outputPtr, _outputEnd, raw, remainingChars); + } + // otherwise will fit without issues, so: + System.arraycopy(raw, 0, outputBuffer, outputPtr, len); + return (outputPtr + len); + } + + private int _handleLongCustomEscape(byte[] outputBuffer, int outputPtr, int outputEnd, byte[] raw, + int remainingChars) + throws IOException, JsonGenerationException + { + int len = raw.length; + if ((outputPtr + len) > outputEnd) { + _outputTail = outputPtr; + _flushBuffer(); + outputPtr = _outputTail; + if (len > outputBuffer.length) { // very unlikely, but possible... + _outputStream.write(raw, 0, len); + return outputPtr; + } + System.arraycopy(raw, 0, outputBuffer, outputPtr, len); + outputPtr += len; + } + // but is the invariant still obeyed? If not, flush once more + if ((outputPtr + 6 * remainingChars) > outputEnd) { + _flushBuffer(); + return _outputTail; + } + return outputPtr; + } + + /* + /********************************************************** + /* Internal methods, low-level writing, "raw UTF-8" segments + /********************************************************** + */ + + /** + * Method called when UTF-8 encoded (but NOT yet escaped!) content is not guaranteed + * to fit in the output buffer after escaping; as such, we just need to + * chunk writes. + */ + private final void _writeUTF8Segments(byte[] utf8, int offset, int totalLen) + throws IOException, JsonGenerationException + { + do { + int len = Math.min(_outputMaxContiguous, totalLen); + _writeUTF8Segment(utf8, offset, len); + offset += len; + totalLen -= len; + } while (totalLen > 0); + } + + private final void _writeUTF8Segment(byte[] utf8, final int offset, final int len) + throws IOException, JsonGenerationException + { + // fast loop to see if escaping is needed; don't copy, just look + final int[] escCodes = _outputEscapes; + + for (int ptr = offset, end = offset + len; ptr < end; ) { + // 28-Feb-2011, tatu: escape codes just cover 7-bit range, so: + int ch = utf8[ptr++]; + if ((ch >= 0) && escCodes[ch] != 0) { + _writeUTF8Segment2(utf8, offset, len); + return; + } + } + + // yes, fine, just copy the sucker + if ((_outputTail + len) > _outputEnd) { // enough room or need to flush? + _flushBuffer(); // but yes once we flush (caller guarantees length restriction) + } + System.arraycopy(utf8, offset, _outputBuffer, _outputTail, len); + _outputTail += len; + } + + private final void _writeUTF8Segment2(final byte[] utf8, int offset, int len) + throws IOException, JsonGenerationException + { + int outputPtr = _outputTail; + + // Ok: caller guarantees buffer can have room; but that may require flushing: + if ((outputPtr + (len * 6)) > _outputEnd) { + _flushBuffer(); + outputPtr = _outputTail; + } + + final byte[] outputBuffer = _outputBuffer; + final int[] escCodes = _outputEscapes; + len += offset; // so 'len' becomes 'end' + + while (offset < len) { + byte b = utf8[offset++]; + int ch = b; + if (ch < 0 || escCodes[ch] == 0) { + outputBuffer[outputPtr++] = b; + continue; + } + int escape = escCodes[ch]; + if (escape > 0) { // 2-char escape, fine + outputBuffer[outputPtr++] = BYTE_BACKSLASH; + outputBuffer[outputPtr++] = (byte) escape; + } else { + // ctrl-char, 6-byte escape... + outputPtr = _writeGenericEscape(ch, outputPtr); + } + } + _outputTail = outputPtr; + } + + /* + /********************************************************** + /* Internal methods, low-level writing, base64 encoded + /********************************************************** + */ + + protected void _writeBinary(Base64Variant b64variant, byte[] input, int inputPtr, final int inputEnd) + throws IOException, JsonGenerationException + { + // Encoding is by chunks of 3 input, 4 output chars, so: + int safeInputEnd = inputEnd - 3; + // Let's also reserve room for possible (and quoted) lf char each round + int safeOutputEnd = _outputEnd - 6; + int chunksBeforeLF = b64variant.getMaxLineLength() >> 2; + + // Ok, first we loop through all full triplets of data: + while (inputPtr <= safeInputEnd) { + if (_outputTail > safeOutputEnd) { // need to flush + _flushBuffer(); + } + // First, mash 3 bytes into lsb of 32-bit int + int b24 = ((int) input[inputPtr++]) << 8; + b24 |= ((int) input[inputPtr++]) & 0xFF; + b24 = (b24 << 8) | (((int) input[inputPtr++]) & 0xFF); + _outputTail = b64variant.encodeBase64Chunk(b24, _outputBuffer, _outputTail); + if (--chunksBeforeLF <= 0) { + // note: must quote in JSON value + _outputBuffer[_outputTail++] = '\\'; + _outputBuffer[_outputTail++] = 'n'; + chunksBeforeLF = b64variant.getMaxLineLength() >> 2; + } + } + + // And then we may have 1 or 2 leftover bytes to encode + int inputLeft = inputEnd - inputPtr; // 0, 1 or 2 + if (inputLeft > 0) { // yes, but do we have room for output? + if (_outputTail > safeOutputEnd) { // don't really need 6 bytes but... + _flushBuffer(); + } + int b24 = ((int) input[inputPtr++]) << 16; + if (inputLeft == 2) { + b24 |= (((int) input[inputPtr++]) & 0xFF) << 8; + } + _outputTail = b64variant.encodeBase64Partial(b24, inputLeft, _outputBuffer, _outputTail); + } + } + + /* + /********************************************************** + /* Internal methods, character escapes/encoding + /********************************************************** + */ + + /** + * Method called to output a character that is beyond range of + * 1- and 2-byte UTF-8 encodings, when outputting "raw" + * text (meaning it is not to be escaped or quoted) + */ + private final int _outputRawMultiByteChar(int ch, char[] cbuf, int inputOffset, int inputLen) + throws IOException + { + // Let's handle surrogates gracefully (as 4 byte output): + if (ch >= SURR1_FIRST) { + if (ch <= SURR2_LAST) { // yes, outside of BMP + // Do we have second part? + if (inputOffset >= inputLen) { // nope... have to note down + _reportError("Split surrogate on writeRaw() input (last character)"); + } + _outputSurrogates(ch, cbuf[inputOffset]); + return (inputOffset+1); + } + } + final byte[] bbuf = _outputBuffer; + bbuf[_outputTail++] = (byte) (0xe0 | (ch >> 12)); + bbuf[_outputTail++] = (byte) (0x80 | ((ch >> 6) & 0x3f)); + bbuf[_outputTail++] = (byte) (0x80 | (ch & 0x3f)); + return inputOffset; + } + + protected final void _outputSurrogates(int surr1, int surr2) + throws IOException + { + int c = _decodeSurrogate(surr1, surr2); + if ((_outputTail + 4) > _outputEnd) { + _flushBuffer(); + } + final byte[] bbuf = _outputBuffer; + bbuf[_outputTail++] = (byte) (0xf0 | (c >> 18)); + bbuf[_outputTail++] = (byte) (0x80 | ((c >> 12) & 0x3f)); + bbuf[_outputTail++] = (byte) (0x80 | ((c >> 6) & 0x3f)); + bbuf[_outputTail++] = (byte) (0x80 | (c & 0x3f)); + } + + /** + * + * @param ch + * @param outputPtr Position within output buffer to append multi-byte in + * + * @return New output position after appending + * + * @throws IOException + */ + private final int _outputMultiByteChar(int ch, int outputPtr) + throws IOException + { + byte[] bbuf = _outputBuffer; + if (ch >= SURR1_FIRST && ch <= SURR2_LAST) { // yes, outside of BMP; add an escape + bbuf[outputPtr++] = BYTE_BACKSLASH; + bbuf[outputPtr++] = BYTE_u; + + bbuf[outputPtr++] = HEX_CHARS[(ch >> 12) & 0xF]; + bbuf[outputPtr++] = HEX_CHARS[(ch >> 8) & 0xF]; + bbuf[outputPtr++] = HEX_CHARS[(ch >> 4) & 0xF]; + bbuf[outputPtr++] = HEX_CHARS[ch & 0xF]; + } else { + bbuf[outputPtr++] = (byte) (0xe0 | (ch >> 12)); + bbuf[outputPtr++] = (byte) (0x80 | ((ch >> 6) & 0x3f)); + bbuf[outputPtr++] = (byte) (0x80 | (ch & 0x3f)); + } + return outputPtr; + } + + protected final int _decodeSurrogate(int surr1, int surr2) throws IOException + { + // First is known to be valid, but how about the other? + if (surr2 < SURR2_FIRST || surr2 > SURR2_LAST) { + String msg = "Incomplete surrogate pair: first char 0x"+Integer.toHexString(surr1)+", second 0x"+Integer.toHexString(surr2); + _reportError(msg); + } + int c = 0x10000 + ((surr1 - SURR1_FIRST) << 10) + (surr2 - SURR2_FIRST); + return c; + } + + private final void _writeNull() throws IOException + { + if ((_outputTail + 4) >= _outputEnd) { + _flushBuffer(); + } + System.arraycopy(NULL_BYTES, 0, _outputBuffer, _outputTail, 4); + _outputTail += 4; + } + + /** + * Method called to write a generic Unicode escape for given character. + * + * @param charToEscape Character to escape using escape sequence (\\uXXXX) + */ + private int _writeGenericEscape(int charToEscape, int outputPtr) + throws IOException + { + final byte[] bbuf = _outputBuffer; + bbuf[outputPtr++] = BYTE_BACKSLASH; + bbuf[outputPtr++] = BYTE_u; + if (charToEscape > 0xFF) { + int hi = (charToEscape >> 8) & 0xFF; + bbuf[outputPtr++] = HEX_CHARS[hi >> 4]; + bbuf[outputPtr++] = HEX_CHARS[hi & 0xF]; + charToEscape &= 0xFF; + } else { + bbuf[outputPtr++] = BYTE_0; + bbuf[outputPtr++] = BYTE_0; + } + // We know it's a control char, so only the last 2 chars are non-0 + bbuf[outputPtr++] = HEX_CHARS[charToEscape >> 4]; + bbuf[outputPtr++] = HEX_CHARS[charToEscape & 0xF]; + return outputPtr; + } + + protected final void _flushBuffer() throws IOException + { + int len = _outputTail; + if (len > 0) { + _outputTail = 0; + _outputStream.write(_outputBuffer, 0, len); + } + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/Utf8StreamParser.java b/1.9.10/src/java/org/codehaus/jackson/impl/Utf8StreamParser.java new file mode 100644 index 0000000..981001c --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/Utf8StreamParser.java
@@ -0,0 +1,2969 @@ +package org.codehaus.jackson.impl; + +import java.io.*; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.io.IOContext; +import org.codehaus.jackson.sym.*; +import org.codehaus.jackson.util.*; + +/** + * This is a concrete implementation of {@link JsonParser}, which is + * based on a {@link java.io.InputStream} as the input source. + */ +public final class Utf8StreamParser + extends JsonParserBase +{ + final static byte BYTE_LF = (byte) '\n'; + + private final static int[] sInputCodesUtf8 = CharTypes.getInputCodeUtf8(); + + /** + * Latin1 encoding is not supported, but we do use 8-bit subset for + * pre-processing task, to simplify first pass, keep it fast. + */ + private final static int[] sInputCodesLatin1 = CharTypes.getInputCodeLatin1(); + + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + /** + * Codec used for data binding when (if) requested; typically full + * <code>ObjectMapper</code>, but that abstract is not part of core + * package. + */ + protected ObjectCodec _objectCodec; + + /** + * Symbol table that contains field names encountered so far + */ + final protected BytesToNameCanonicalizer _symbols; + + /* + /********************************************************** + /* Parsing state + /********************************************************** + */ + + /** + * Temporary buffer used for name parsing. + */ + protected int[] _quadBuffer = new int[16]; + + /** + * Flag that indicates that the current token has not yet + * been fully processed, and needs to be finished for + * some access (or skipped to obtain the next token) + */ + protected boolean _tokenIncomplete = false; + + /** + * Temporary storage for partially parsed name bytes. + */ + private int _quad1; + + /* + /********************************************************** + /* Input buffering (from former 'StreamBasedParserBase') + /********************************************************** + */ + + protected InputStream _inputStream; + + /* + /********************************************************** + /* Current input data + /********************************************************** + */ + + /** + * Current buffer from which data is read; generally data is read into + * buffer from input source, but in some cases pre-loaded buffer + * is handed to the parser. + */ + protected byte[] _inputBuffer; + + /** + * Flag that indicates whether the input buffer is recycable (and + * needs to be returned to recycler once we are done) or not. + *<p> + * If it is not, it also means that parser can NOT modify underlying + * buffer. + */ + protected boolean _bufferRecyclable; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + public Utf8StreamParser(IOContext ctxt, int features, InputStream in, + ObjectCodec codec, BytesToNameCanonicalizer sym, + byte[] inputBuffer, int start, int end, + boolean bufferRecyclable) + { + super(ctxt, features); + _inputStream = in; + _objectCodec = codec; + _symbols = sym; + _inputBuffer = inputBuffer; + _inputPtr = start; + _inputEnd = end; + _bufferRecyclable = bufferRecyclable; + // 12-Mar-2010, tatus: Sanity check, related to [JACKSON-259]: + if (!JsonParser.Feature.CANONICALIZE_FIELD_NAMES.enabledIn(features)) { + // should never construct non-canonical UTF-8/byte parser (instead, use Reader) + _throwInternal(); + } + } + + @Override + public ObjectCodec getCodec() { + return _objectCodec; + } + + @Override + public void setCodec(ObjectCodec c) { + _objectCodec = c; + } + + /* + /********************************************************** + /* Former StreamBasedParserBase methods + /********************************************************** + */ + + @Override + public int releaseBuffered(OutputStream out) throws IOException + { + int count = _inputEnd - _inputPtr; + if (count < 1) { + return 0; + } + // let's just advance ptr to end + int origPtr = _inputPtr; + out.write(_inputBuffer, origPtr, count); + return count; + } + + @Override + public Object getInputSource() { + return _inputStream; + } + + /* + /********************************************************** + /* Low-level reading, other + /********************************************************** + */ + + @Override + protected final boolean loadMore() + throws IOException + { + _currInputProcessed += _inputEnd; + _currInputRowStart -= _inputEnd; + + if (_inputStream != null) { + int count = _inputStream.read(_inputBuffer, 0, _inputBuffer.length); + if (count > 0) { + _inputPtr = 0; + _inputEnd = count; + return true; + } + // End of input + _closeInput(); + // Should never return 0, so let's fail + if (count == 0) { + throw new IOException("InputStream.read() returned 0 characters when trying to read "+_inputBuffer.length+" bytes"); + } + } + return false; + } + + /** + * Helper method that will try to load at least specified number bytes in + * input buffer, possible moving existing data around if necessary + * + * @since 1.6 + */ + protected final boolean _loadToHaveAtLeast(int minAvailable) + throws IOException + { + // No input stream, no leading (either we are closed, or have non-stream input source) + if (_inputStream == null) { + return false; + } + // Need to move remaining data in front? + int amount = _inputEnd - _inputPtr; + if (amount > 0 && _inputPtr > 0) { + _currInputProcessed += _inputPtr; + _currInputRowStart -= _inputPtr; + System.arraycopy(_inputBuffer, _inputPtr, _inputBuffer, 0, amount); + _inputEnd = amount; + } else { + _inputEnd = 0; + } + _inputPtr = 0; + while (_inputEnd < minAvailable) { + int count = _inputStream.read(_inputBuffer, _inputEnd, _inputBuffer.length - _inputEnd); + if (count < 1) { + // End of input + _closeInput(); + // Should never return 0, so let's fail + if (count == 0) { + throw new IOException("InputStream.read() returned 0 characters when trying to read "+amount+" bytes"); + } + return false; + } + _inputEnd += count; + } + return true; + } + + @Override + protected void _closeInput() throws IOException + { + /* 25-Nov-2008, tatus: As per [JACKSON-16] we are not to call close() + * on the underlying InputStream, unless we "own" it, or auto-closing + * feature is enabled. + */ + if (_inputStream != null) { + if (_ioContext.isResourceManaged() || isEnabled(Feature.AUTO_CLOSE_SOURCE)) { + _inputStream.close(); + } + _inputStream = null; + } + } + + /** + * Method called to release internal buffers owned by the base + * reader. This may be called along with {@link #_closeInput} (for + * example, when explicitly closing this reader instance), or + * separately (if need be). + */ + @Override + protected void _releaseBuffers() throws IOException + { + super._releaseBuffers(); + if (_bufferRecyclable) { + byte[] buf = _inputBuffer; + if (buf != null) { + _inputBuffer = null; + _ioContext.releaseReadIOBuffer(buf); + } + } + } + + /* + /********************************************************** + /* Public API, data access + /********************************************************** + */ + + @Override + public String getText() + throws IOException, JsonParseException + { + JsonToken t = _currToken; + if (t == JsonToken.VALUE_STRING) { + if (_tokenIncomplete) { + _tokenIncomplete = false; + _finishString(); // only strings can be incomplete + } + return _textBuffer.contentsAsString(); + } + return _getText2(t); + } + + protected final String _getText2(JsonToken t) + { + if (t == null) { + return null; + } + switch (t) { + case FIELD_NAME: + return _parsingContext.getCurrentName(); + + case VALUE_STRING: + // fall through + case VALUE_NUMBER_INT: + case VALUE_NUMBER_FLOAT: + return _textBuffer.contentsAsString(); + } + return t.asString(); + } + + @Override + public char[] getTextCharacters() + throws IOException, JsonParseException + { + if (_currToken != null) { // null only before/after document + switch (_currToken) { + + case FIELD_NAME: + if (!_nameCopied) { + String name = _parsingContext.getCurrentName(); + int nameLen = name.length(); + if (_nameCopyBuffer == null) { + _nameCopyBuffer = _ioContext.allocNameCopyBuffer(nameLen); + } else if (_nameCopyBuffer.length < nameLen) { + _nameCopyBuffer = new char[nameLen]; + } + name.getChars(0, nameLen, _nameCopyBuffer, 0); + _nameCopied = true; + } + return _nameCopyBuffer; + + case VALUE_STRING: + if (_tokenIncomplete) { + _tokenIncomplete = false; + _finishString(); // only strings can be incomplete + } + // fall through + case VALUE_NUMBER_INT: + case VALUE_NUMBER_FLOAT: + return _textBuffer.getTextBuffer(); + + default: + return _currToken.asCharArray(); + } + } + return null; + } + + @Override + public int getTextLength() + throws IOException, JsonParseException + { + if (_currToken != null) { // null only before/after document + switch (_currToken) { + + case FIELD_NAME: + return _parsingContext.getCurrentName().length(); + case VALUE_STRING: + if (_tokenIncomplete) { + _tokenIncomplete = false; + _finishString(); // only strings can be incomplete + } + // fall through + case VALUE_NUMBER_INT: + case VALUE_NUMBER_FLOAT: + return _textBuffer.size(); + + default: + return _currToken.asCharArray().length; + } + } + return 0; + } + + @Override + public int getTextOffset() throws IOException, JsonParseException + { + // Most have offset of 0, only some may have other values: + if (_currToken != null) { + switch (_currToken) { + case FIELD_NAME: + return 0; + case VALUE_STRING: + if (_tokenIncomplete) { + _tokenIncomplete = false; + _finishString(); // only strings can be incomplete + } + // fall through + case VALUE_NUMBER_INT: + case VALUE_NUMBER_FLOAT: + return _textBuffer.getTextOffset(); + } + } + return 0; + } + + @Override + public byte[] getBinaryValue(Base64Variant b64variant) + throws IOException, JsonParseException + { + if (_currToken != JsonToken.VALUE_STRING && + (_currToken != JsonToken.VALUE_EMBEDDED_OBJECT || _binaryValue == null)) { + _reportError("Current token ("+_currToken+") not VALUE_STRING or VALUE_EMBEDDED_OBJECT, can not access as binary"); + } + /* To ensure that we won't see inconsistent data, better clear up + * state... + */ + if (_tokenIncomplete) { + try { + _binaryValue = _decodeBase64(b64variant); + } catch (IllegalArgumentException iae) { + throw _constructError("Failed to decode VALUE_STRING as base64 ("+b64variant+"): "+iae.getMessage()); + } + /* let's clear incomplete only now; allows for accessing other + * textual content in error cases + */ + _tokenIncomplete = false; + } else { // may actually require conversion... + if (_binaryValue == null) { + ByteArrayBuilder builder = _getByteArrayBuilder(); + _decodeBase64(getText(), builder, b64variant); + _binaryValue = builder.toByteArray(); + } + } + return _binaryValue; + } + + /* + /********************************************************** + /* Public API, traversal, basic + /********************************************************** + */ + + /** + * @return Next token from the stream, if any found, or null + * to indicate end-of-input + */ + @Override + public JsonToken nextToken() + throws IOException, JsonParseException + { + _numTypesValid = NR_UNKNOWN; + /* First: field names are special -- we will always tokenize + * (part of) value along with field name to simplify + * state handling. If so, can and need to use secondary token: + */ + if (_currToken == JsonToken.FIELD_NAME) { + return _nextAfterName(); + } + if (_tokenIncomplete) { + _skipString(); // only strings can be partial + } + + int i = _skipWSOrEnd(); + if (i < 0) { // end-of-input + /* 19-Feb-2009, tatu: Should actually close/release things + * like input source, symbol table and recyclable buffers now. + */ + close(); + return (_currToken = null); + } + + /* First, need to ensure we know the starting location of token + * after skipping leading white space + */ + _tokenInputTotal = _currInputProcessed + _inputPtr - 1; + _tokenInputRow = _currInputRow; + _tokenInputCol = _inputPtr - _currInputRowStart - 1; + + // finally: clear any data retained so far + _binaryValue = null; + + // Closing scope? + if (i == INT_RBRACKET) { + if (!_parsingContext.inArray()) { + _reportMismatchedEndMarker(i, '}'); + } + _parsingContext = _parsingContext.getParent(); + return (_currToken = JsonToken.END_ARRAY); + } + if (i == INT_RCURLY) { + if (!_parsingContext.inObject()) { + _reportMismatchedEndMarker(i, ']'); + } + _parsingContext = _parsingContext.getParent(); + return (_currToken = JsonToken.END_OBJECT); + } + + // Nope: do we then expect a comma? + if (_parsingContext.expectComma()) { + if (i != INT_COMMA) { + _reportUnexpectedChar(i, "was expecting comma to separate "+_parsingContext.getTypeDesc()+" entries"); + } + i = _skipWS(); + } + + /* And should we now have a name? Always true for + * Object contexts, since the intermediate 'expect-value' + * state is never retained. + */ + if (!_parsingContext.inObject()) { + return _nextTokenNotInObject(i); + } + // So first parse the field name itself: + Name n = _parseFieldName(i); + _parsingContext.setCurrentName(n.getName()); + _currToken = JsonToken.FIELD_NAME; + i = _skipWS(); + if (i != INT_COLON) { + _reportUnexpectedChar(i, "was expecting a colon to separate field name and value"); + } + i = _skipWS(); + + // Ok: we must have a value... what is it? Strings are very common, check first: + if (i == INT_QUOTE) { + _tokenIncomplete = true; + _nextToken = JsonToken.VALUE_STRING; + return _currToken; + } + JsonToken t; + + switch (i) { + case INT_LBRACKET: + t = JsonToken.START_ARRAY; + break; + case INT_LCURLY: + t = JsonToken.START_OBJECT; + break; + case INT_RBRACKET: + case INT_RCURLY: + // Error: neither is valid at this point; valid closers have + // been handled earlier + _reportUnexpectedChar(i, "expected a value"); + case INT_t: + _matchToken("true", 1); + t = JsonToken.VALUE_TRUE; + break; + case INT_f: + _matchToken("false", 1); + t = JsonToken.VALUE_FALSE; + break; + case INT_n: + _matchToken("null", 1); + t = JsonToken.VALUE_NULL; + break; + + case INT_MINUS: + /* Should we have separate handling for plus? Although + * it is not allowed per se, it may be erroneously used, + * and could be indicate by a more specific error message. + */ + case INT_0: + case INT_1: + case INT_2: + case INT_3: + case INT_4: + case INT_5: + case INT_6: + case INT_7: + case INT_8: + case INT_9: + t = parseNumberText(i); + break; + default: + t = _handleUnexpectedValue(i); + } + _nextToken = t; + return _currToken; + } + + private final JsonToken _nextTokenNotInObject(int i) + throws IOException, JsonParseException + { + if (i == INT_QUOTE) { + _tokenIncomplete = true; + return (_currToken = JsonToken.VALUE_STRING); + } + switch (i) { + case INT_LBRACKET: + _parsingContext = _parsingContext.createChildArrayContext(_tokenInputRow, _tokenInputCol); + return (_currToken = JsonToken.START_ARRAY); + case INT_LCURLY: + _parsingContext = _parsingContext.createChildObjectContext(_tokenInputRow, _tokenInputCol); + return (_currToken = JsonToken.START_OBJECT); + case INT_RBRACKET: + case INT_RCURLY: + // Error: neither is valid at this point; valid closers have + // been handled earlier + _reportUnexpectedChar(i, "expected a value"); + case INT_t: + _matchToken("true", 1); + return (_currToken = JsonToken.VALUE_TRUE); + case INT_f: + _matchToken("false", 1); + return (_currToken = JsonToken.VALUE_FALSE); + case INT_n: + _matchToken("null", 1); + return (_currToken = JsonToken.VALUE_NULL); + case INT_MINUS: + /* Should we have separate handling for plus? Although + * it is not allowed per se, it may be erroneously used, + * and could be indicate by a more specific error message. + */ + case INT_0: + case INT_1: + case INT_2: + case INT_3: + case INT_4: + case INT_5: + case INT_6: + case INT_7: + case INT_8: + case INT_9: + return (_currToken = parseNumberText(i)); + } + return (_currToken = _handleUnexpectedValue(i)); + } + + private final JsonToken _nextAfterName() + { + _nameCopied = false; // need to invalidate if it was copied + JsonToken t = _nextToken; + _nextToken = null; + // Also: may need to start new context? + if (t == JsonToken.START_ARRAY) { + _parsingContext = _parsingContext.createChildArrayContext(_tokenInputRow, _tokenInputCol); + } else if (t == JsonToken.START_OBJECT) { + _parsingContext = _parsingContext.createChildObjectContext(_tokenInputRow, _tokenInputCol); + } + return (_currToken = t); + } + + @Override + public void close() throws IOException + { + super.close(); + // Merge found symbols, if any: + _symbols.release(); + } + + /* + /********************************************************** + /* Public API, traversal, nextXxxValue/nextFieldName + /********************************************************** + */ + + @Override + public boolean nextFieldName(SerializableString str) + throws IOException, JsonParseException + { + // // // Note: most of code below is copied from nextToken() + + _numTypesValid = NR_UNKNOWN; + if (_currToken == JsonToken.FIELD_NAME) { // can't have name right after name + _nextAfterName(); + return false; + } + if (_tokenIncomplete) { + _skipString(); + } + int i = _skipWSOrEnd(); + if (i < 0) { // end-of-input + close(); + _currToken = null; + return false; + } + _tokenInputTotal = _currInputProcessed + _inputPtr - 1; + _tokenInputRow = _currInputRow; + _tokenInputCol = _inputPtr - _currInputRowStart - 1; + + // finally: clear any data retained so far + _binaryValue = null; + + // Closing scope? + if (i == INT_RBRACKET) { + if (!_parsingContext.inArray()) { + _reportMismatchedEndMarker(i, '}'); + } + _parsingContext = _parsingContext.getParent(); + _currToken = JsonToken.END_ARRAY; + return false; + } + if (i == INT_RCURLY) { + if (!_parsingContext.inObject()) { + _reportMismatchedEndMarker(i, ']'); + } + _parsingContext = _parsingContext.getParent(); + _currToken = JsonToken.END_OBJECT; + return false; + } + + // Nope: do we then expect a comma? + if (_parsingContext.expectComma()) { + if (i != INT_COMMA) { + _reportUnexpectedChar(i, "was expecting comma to separate "+_parsingContext.getTypeDesc()+" entries"); + } + i = _skipWS(); + } + + if (!_parsingContext.inObject()) { + _nextTokenNotInObject(i); + return false; + } + + // // // This part differs, name parsing + if (i == INT_QUOTE) { + // when doing literal match, must consider escaping: + byte[] nameBytes = str.asQuotedUTF8(); + final int len = nameBytes.length; + if ((_inputPtr + len) < _inputEnd) { // maybe... + // first check length match by + final int end = _inputPtr+len; + if (_inputBuffer[end] == INT_QUOTE) { + int offset = 0; + final int ptr = _inputPtr; + while (true) { + if (offset == len) { // yes, match! + _inputPtr = end+1; // skip current value first + // First part is simple; setting of name + _parsingContext.setCurrentName(str.getValue()); + _currToken = JsonToken.FIELD_NAME; + // But then we also must handle following value etc + _isNextTokenNameYes(); + return true; + } + if (nameBytes[offset] != _inputBuffer[ptr+offset]) { + break; + } + ++offset; + } + } + } + } + _isNextTokenNameNo(i); + return false; + } + + private final void _isNextTokenNameYes() + throws IOException, JsonParseException + { + // very first thing: common case, colon, value, no white space + int i; + if (_inputPtr < _inputEnd && _inputBuffer[_inputPtr] == INT_COLON) { // fast case first + ++_inputPtr; + i = _inputBuffer[_inputPtr++]; + if (i == INT_QUOTE) { + _tokenIncomplete = true; + _nextToken = JsonToken.VALUE_STRING; + return; + } + if (i == INT_LCURLY) { + _nextToken = JsonToken.START_OBJECT; + return; + } + if (i == INT_LBRACKET) { + _nextToken = JsonToken.START_ARRAY; + return; + } + i &= 0xFF; + if (i <= INT_SPACE || i == INT_SLASH) { + --_inputPtr; + i = _skipWS(); + } + } else { + i = _skipColon(); + } + switch (i) { + case INT_QUOTE: + _tokenIncomplete = true; + _nextToken = JsonToken.VALUE_STRING; + return; + case INT_LBRACKET: + _nextToken = JsonToken.START_ARRAY; + return; + case INT_LCURLY: + _nextToken = JsonToken.START_OBJECT; + return; + case INT_RBRACKET: + case INT_RCURLY: + _reportUnexpectedChar(i, "expected a value"); + case INT_t: + _matchToken("true", 1); + _nextToken = JsonToken.VALUE_TRUE; + return; + case INT_f: + _matchToken("false", 1); + _nextToken = JsonToken.VALUE_FALSE; + return; + case INT_n: + _matchToken("null", 1); + _nextToken = JsonToken.VALUE_NULL; + return; + case INT_MINUS: + case INT_0: + case INT_1: + case INT_2: + case INT_3: + case INT_4: + case INT_5: + case INT_6: + case INT_7: + case INT_8: + case INT_9: + _nextToken = parseNumberText(i); + return; + } + _nextToken = _handleUnexpectedValue(i); + } + + private final void _isNextTokenNameNo(int i) + throws IOException, JsonParseException + { + // // // and this is back to standard nextToken() + + Name n = _parseFieldName(i); + _parsingContext.setCurrentName(n.getName()); + _currToken = JsonToken.FIELD_NAME; + i = _skipWS(); + if (i != INT_COLON) { + _reportUnexpectedChar(i, "was expecting a colon to separate field name and value"); + } + i = _skipWS(); + + // Ok: we must have a value... what is it? Strings are very common, check first: + if (i == INT_QUOTE) { + _tokenIncomplete = true; + _nextToken = JsonToken.VALUE_STRING; + return; + } + JsonToken t; + + switch (i) { + case INT_LBRACKET: + t = JsonToken.START_ARRAY; + break; + case INT_LCURLY: + t = JsonToken.START_OBJECT; + break; + case INT_RBRACKET: + case INT_RCURLY: + _reportUnexpectedChar(i, "expected a value"); + case INT_t: + _matchToken("true", 1); + t = JsonToken.VALUE_TRUE; + break; + case INT_f: + _matchToken("false", 1); + t = JsonToken.VALUE_FALSE; + break; + case INT_n: + _matchToken("null", 1); + t = JsonToken.VALUE_NULL; + break; + + case INT_MINUS: + case INT_0: + case INT_1: + case INT_2: + case INT_3: + case INT_4: + case INT_5: + case INT_6: + case INT_7: + case INT_8: + case INT_9: + t = parseNumberText(i); + break; + default: + t = _handleUnexpectedValue(i); + } + _nextToken = t; + } + + @Override + public String nextTextValue() + throws IOException, JsonParseException + { + // two distinct cases; either got name and we know next type, or 'other' + if (_currToken == JsonToken.FIELD_NAME) { // mostly copied from '_nextAfterName' + _nameCopied = false; + JsonToken t = _nextToken; + _nextToken = null; + _currToken = t; + if (t == JsonToken.VALUE_STRING) { + if (_tokenIncomplete) { + _tokenIncomplete = false; + _finishString(); + } + return _textBuffer.contentsAsString(); + } + if (t == JsonToken.START_ARRAY) { + _parsingContext = _parsingContext.createChildArrayContext(_tokenInputRow, _tokenInputCol); + } else if (t == JsonToken.START_OBJECT) { + _parsingContext = _parsingContext.createChildObjectContext(_tokenInputRow, _tokenInputCol); + } + return null; + } + // !!! TODO: optimize this case as well + return (nextToken() == JsonToken.VALUE_STRING) ? getText() : null; + } + + @Override + public int nextIntValue(int defaultValue) + throws IOException, JsonParseException + { + // two distinct cases; either got name and we know next type, or 'other' + if (_currToken == JsonToken.FIELD_NAME) { // mostly copied from '_nextAfterName' + _nameCopied = false; + JsonToken t = _nextToken; + _nextToken = null; + _currToken = t; + if (t == JsonToken.VALUE_NUMBER_INT) { + return getIntValue(); + } + if (t == JsonToken.START_ARRAY) { + _parsingContext = _parsingContext.createChildArrayContext(_tokenInputRow, _tokenInputCol); + } else if (t == JsonToken.START_OBJECT) { + _parsingContext = _parsingContext.createChildObjectContext(_tokenInputRow, _tokenInputCol); + } + return defaultValue; + } + // !!! TODO: optimize this case as well + return (nextToken() == JsonToken.VALUE_NUMBER_INT) ? getIntValue() : defaultValue; + } + + @Override + public long nextLongValue(long defaultValue) + throws IOException, JsonParseException + { + // two distinct cases; either got name and we know next type, or 'other' + if (_currToken == JsonToken.FIELD_NAME) { // mostly copied from '_nextAfterName' + _nameCopied = false; + JsonToken t = _nextToken; + _nextToken = null; + _currToken = t; + if (t == JsonToken.VALUE_NUMBER_INT) { + return getLongValue(); + } + if (t == JsonToken.START_ARRAY) { + _parsingContext = _parsingContext.createChildArrayContext(_tokenInputRow, _tokenInputCol); + } else if (t == JsonToken.START_OBJECT) { + _parsingContext = _parsingContext.createChildObjectContext(_tokenInputRow, _tokenInputCol); + } + return defaultValue; + } + // !!! TODO: optimize this case as well + return (nextToken() == JsonToken.VALUE_NUMBER_INT) ? getLongValue() : defaultValue; + } + + @Override + public Boolean nextBooleanValue() + throws IOException, JsonParseException + { + // two distinct cases; either got name and we know next type, or 'other' + if (_currToken == JsonToken.FIELD_NAME) { // mostly copied from '_nextAfterName' + _nameCopied = false; + JsonToken t = _nextToken; + _nextToken = null; + _currToken = t; + if (t == JsonToken.VALUE_TRUE) { + return Boolean.TRUE; + } + if (t == JsonToken.VALUE_FALSE) { + return Boolean.FALSE; + } + if (t == JsonToken.START_ARRAY) { + _parsingContext = _parsingContext.createChildArrayContext(_tokenInputRow, _tokenInputCol); + } else if (t == JsonToken.START_OBJECT) { + _parsingContext = _parsingContext.createChildObjectContext(_tokenInputRow, _tokenInputCol); + } + return null; + } + switch (nextToken()) { + case VALUE_TRUE: + return Boolean.TRUE; + case VALUE_FALSE: + return Boolean.FALSE; + } + return null; + } + + /* + /********************************************************** + /* Internal methods, number parsing + /* (note: in 1.6 and prior, part of "Utf8NumericParser" + /********************************************************** + */ + + /** + * Initial parsing method for number values. It needs to be able + * to parse enough input to be able to determine whether the + * value is to be considered a simple integer value, or a more + * generic decimal value: latter of which needs to be expressed + * as a floating point number. The basic rule is that if the number + * has no fractional or exponential part, it is an integer; otherwise + * a floating point number. + *<p> + * Because much of input has to be processed in any case, no partial + * parsing is done: all input text will be stored for further + * processing. However, actual numeric value conversion will be + * deferred, since it is usually the most complicated and costliest + * part of processing. + */ + protected final JsonToken parseNumberText(int c) + throws IOException, JsonParseException + { + char[] outBuf = _textBuffer.emptyAndGetCurrentSegment(); + int outPtr = 0; + boolean negative = (c == INT_MINUS); + + // Need to prepend sign? + if (negative) { + outBuf[outPtr++] = '-'; + // Must have something after sign too + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + c = (int) _inputBuffer[_inputPtr++] & 0xFF; + // Note: must be followed by a digit + if (c < INT_0 || c > INT_9) { + return _handleInvalidNumberStart(c, true); + } + } + + // One special case: if first char is 0, must not be followed by a digit + if (c == INT_0) { + c = _verifyNoLeadingZeroes(); + } + + // Ok: we can first just add digit we saw first: + outBuf[outPtr++] = (char) c; + int intLen = 1; + + // And then figure out how far we can read without further checks: + int end = _inputPtr + outBuf.length; + if (end > _inputEnd) { + end = _inputEnd; + } + + // With this, we have a nice and tight loop: + while (true) { + if (_inputPtr >= end) { + // Long enough to be split across boundary, so: + return _parserNumber2(outBuf, outPtr, negative, intLen); + } + c = (int) _inputBuffer[_inputPtr++] & 0xFF; + if (c < INT_0 || c > INT_9) { + break; + } + ++intLen; + outBuf[outPtr++] = (char) c; + } + if (c == '.' || c == 'e' || c == 'E') { + return _parseFloatText(outBuf, outPtr, c, negative, intLen); + } + + --_inputPtr; // to push back trailing char (comma etc) + _textBuffer.setCurrentLength(outPtr); + + // And there we have it! + return resetInt(negative, intLen); + } + + /** + * Method called to handle parsing when input is split across buffer boundary + * (or output is longer than segment used to store it) + */ + private final JsonToken _parserNumber2(char[] outBuf, int outPtr, boolean negative, + int intPartLength) + throws IOException, JsonParseException + { + // Ok, parse the rest + while (true) { + if (_inputPtr >= _inputEnd && !loadMore()) { + _textBuffer.setCurrentLength(outPtr); + return resetInt(negative, intPartLength); + } + int c = (int) _inputBuffer[_inputPtr++] & 0xFF; + if (c > INT_9 || c < INT_0) { + if (c == '.' || c == 'e' || c == 'E') { + return _parseFloatText(outBuf, outPtr, c, negative, intPartLength); + } + break; + } + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + outBuf[outPtr++] = (char) c; + ++intPartLength; + } + --_inputPtr; // to push back trailing char (comma etc) + _textBuffer.setCurrentLength(outPtr); + + // And there we have it! + return resetInt(negative, intPartLength); + + } + + /** + * Method called when we have seen one zero, and want to ensure + * it is not followed by another + */ + private final int _verifyNoLeadingZeroes() + throws IOException, JsonParseException + { + // Ok to have plain "0" + if (_inputPtr >= _inputEnd && !loadMore()) { + return INT_0; + } + int ch = _inputBuffer[_inputPtr] & 0xFF; + // if not followed by a number (probably '.'); return zero as is, to be included + if (ch < INT_0 || ch > INT_9) { + return INT_0; + } + // [JACKSON-358]: we may want to allow them, after all... + if (!isEnabled(Feature.ALLOW_NUMERIC_LEADING_ZEROS)) { + reportInvalidNumber("Leading zeroes not allowed"); + } + // if so, just need to skip either all zeroes (if followed by number); or all but one (if non-number) + ++_inputPtr; // Leading zero to be skipped + if (ch == INT_0) { + while (_inputPtr < _inputEnd || loadMore()) { + ch = _inputBuffer[_inputPtr] & 0xFF; + if (ch < INT_0 || ch > INT_9) { // followed by non-number; retain one zero + return INT_0; + } + ++_inputPtr; // skip previous zeroes + if (ch != INT_0) { // followed by other number; return + break; + } + } + } + return ch; + } + + private final JsonToken _parseFloatText(char[] outBuf, int outPtr, int c, + boolean negative, int integerPartLength) + throws IOException, JsonParseException + { + int fractLen = 0; + boolean eof = false; + + // And then see if we get other parts + if (c == '.') { // yes, fraction + outBuf[outPtr++] = (char) c; + + fract_loop: + while (true) { + if (_inputPtr >= _inputEnd && !loadMore()) { + eof = true; + break fract_loop; + } + c = (int) _inputBuffer[_inputPtr++] & 0xFF; + if (c < INT_0 || c > INT_9) { + break fract_loop; + } + ++fractLen; + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + outBuf[outPtr++] = (char) c; + } + // must be followed by sequence of ints, one minimum + if (fractLen == 0) { + reportUnexpectedNumberChar(c, "Decimal point not followed by a digit"); + } + } + + int expLen = 0; + if (c == 'e' || c == 'E') { // exponent? + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + outBuf[outPtr++] = (char) c; + // Not optional, can require that we get one more char + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + c = (int) _inputBuffer[_inputPtr++] & 0xFF; + // Sign indicator? + if (c == '-' || c == '+') { + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + outBuf[outPtr++] = (char) c; + // Likewise, non optional: + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + c = (int) _inputBuffer[_inputPtr++] & 0xFF; + } + + exp_loop: + while (c <= INT_9 && c >= INT_0) { + ++expLen; + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + outBuf[outPtr++] = (char) c; + if (_inputPtr >= _inputEnd && !loadMore()) { + eof = true; + break exp_loop; + } + c = (int) _inputBuffer[_inputPtr++] & 0xFF; + } + // must be followed by sequence of ints, one minimum + if (expLen == 0) { + reportUnexpectedNumberChar(c, "Exponent indicator not followed by a digit"); + } + } + + // Ok; unless we hit end-of-input, need to push last char read back + if (!eof) { + --_inputPtr; + } + _textBuffer.setCurrentLength(outPtr); + + // And there we have it! + return resetFloat(negative, integerPartLength, fractLen, expLen); + } + + /* + /********************************************************** + /* Internal methods, secondary parsing + /********************************************************** + */ + + protected final Name _parseFieldName(int i) + throws IOException, JsonParseException + { + if (i != INT_QUOTE) { + return _handleUnusualFieldName(i); + } + // First: can we optimize out bounds checks? + if ((_inputPtr + 9) > _inputEnd) { // Need 8 chars, plus one trailing (quote) + return slowParseFieldName(); + } + + // If so, can also unroll loops nicely + /* 25-Nov-2008, tatu: This may seem weird, but here we do + * NOT want to worry about UTF-8 decoding. Rather, we'll + * assume that part is ok (if not it will get caught + * later on), and just handle quotes and backslashes here. + */ + final byte[] input = _inputBuffer; + final int[] codes = sInputCodesLatin1; + + int q = input[_inputPtr++] & 0xFF; + + if (codes[q] == 0) { + i = input[_inputPtr++] & 0xFF; + if (codes[i] == 0) { + q = (q << 8) | i; + i = input[_inputPtr++] & 0xFF; + if (codes[i] == 0) { + q = (q << 8) | i; + i = input[_inputPtr++] & 0xFF; + if (codes[i] == 0) { + q = (q << 8) | i; + i = input[_inputPtr++] & 0xFF; + if (codes[i] == 0) { + _quad1 = q; + return parseMediumFieldName(i, codes); + } + if (i == INT_QUOTE) { // one byte/char case or broken + return findName(q, 4); + } + return parseFieldName(q, i, 4); + } + if (i == INT_QUOTE) { // one byte/char case or broken + return findName(q, 3); + } + return parseFieldName(q, i, 3); + } + if (i == INT_QUOTE) { // one byte/char case or broken + return findName(q, 2); + } + return parseFieldName(q, i, 2); + } + if (i == INT_QUOTE) { // one byte/char case or broken + return findName(q, 1); + } + return parseFieldName(q, i, 1); + } + if (q == INT_QUOTE) { // special case, "" + return BytesToNameCanonicalizer.getEmptyName(); + } + return parseFieldName(0, q, 0); // quoting or invalid char + } + + protected final Name parseMediumFieldName(int q2, final int[] codes) + throws IOException, JsonParseException + { + // Ok, got 5 name bytes so far + int i = _inputBuffer[_inputPtr++] & 0xFF; + if (codes[i] != 0) { + if (i == INT_QUOTE) { // 5 bytes + return findName(_quad1, q2, 1); + } + return parseFieldName(_quad1, q2, i, 1); // quoting or invalid char + } + q2 = (q2 << 8) | i; + i = _inputBuffer[_inputPtr++] & 0xFF; + if (codes[i] != 0) { + if (i == INT_QUOTE) { // 6 bytes + return findName(_quad1, q2, 2); + } + return parseFieldName(_quad1, q2, i, 2); + } + q2 = (q2 << 8) | i; + i = _inputBuffer[_inputPtr++] & 0xFF; + if (codes[i] != 0) { + if (i == INT_QUOTE) { // 7 bytes + return findName(_quad1, q2, 3); + } + return parseFieldName(_quad1, q2, i, 3); + } + q2 = (q2 << 8) | i; + i = _inputBuffer[_inputPtr++] & 0xFF; + if (codes[i] != 0) { + if (i == INT_QUOTE) { // 8 bytes + return findName(_quad1, q2, 4); + } + return parseFieldName(_quad1, q2, i, 4); + } + _quadBuffer[0] = _quad1; + _quadBuffer[1] = q2; + return parseLongFieldName(i); + } + + protected Name parseLongFieldName(int q) + throws IOException, JsonParseException + { + // As explained above, will ignore UTF-8 encoding at this point + final int[] codes = sInputCodesLatin1; + int qlen = 2; + + while (true) { + /* Let's offline if we hit buffer boundary (otherwise would + * need to [try to] align input, which is bit complicated + * and may not always be possible) + */ + if ((_inputEnd - _inputPtr) < 4) { + return parseEscapedFieldName(_quadBuffer, qlen, 0, q, 0); + } + // Otherwise can skip boundary checks for 4 bytes in loop + + int i = _inputBuffer[_inputPtr++] & 0xFF; + if (codes[i] != 0) { + if (i == INT_QUOTE) { + return findName(_quadBuffer, qlen, q, 1); + } + return parseEscapedFieldName(_quadBuffer, qlen, q, i, 1); + } + + q = (q << 8) | i; + i = _inputBuffer[_inputPtr++] & 0xFF; + if (codes[i] != 0) { + if (i == INT_QUOTE) { + return findName(_quadBuffer, qlen, q, 2); + } + return parseEscapedFieldName(_quadBuffer, qlen, q, i, 2); + } + + q = (q << 8) | i; + i = _inputBuffer[_inputPtr++] & 0xFF; + if (codes[i] != 0) { + if (i == INT_QUOTE) { + return findName(_quadBuffer, qlen, q, 3); + } + return parseEscapedFieldName(_quadBuffer, qlen, q, i, 3); + } + + q = (q << 8) | i; + i = _inputBuffer[_inputPtr++] & 0xFF; + if (codes[i] != 0) { + if (i == INT_QUOTE) { + return findName(_quadBuffer, qlen, q, 4); + } + return parseEscapedFieldName(_quadBuffer, qlen, q, i, 4); + } + + // Nope, no end in sight. Need to grow quad array etc + if (qlen >= _quadBuffer.length) { + _quadBuffer = growArrayBy(_quadBuffer, qlen); + } + _quadBuffer[qlen++] = q; + q = i; + } + } + + /** + * Method called when not even first 8 bytes are guaranteed + * to come consequtively. Happens rarely, so this is offlined; + * plus we'll also do full checks for escaping etc. + */ + protected Name slowParseFieldName() + throws IOException, JsonParseException + { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(": was expecting closing '\"' for name"); + } + } + int i = _inputBuffer[_inputPtr++] & 0xFF; + if (i == INT_QUOTE) { // special case, "" + return BytesToNameCanonicalizer.getEmptyName(); + } + return parseEscapedFieldName(_quadBuffer, 0, 0, i, 0); + } + + private final Name parseFieldName(int q1, int ch, int lastQuadBytes) + throws IOException, JsonParseException + { + return parseEscapedFieldName(_quadBuffer, 0, q1, ch, lastQuadBytes); + } + + private final Name parseFieldName(int q1, int q2, int ch, int lastQuadBytes) + throws IOException, JsonParseException + { + _quadBuffer[0] = q1; + return parseEscapedFieldName(_quadBuffer, 1, q2, ch, lastQuadBytes); + } + + /** + * Slower parsing method which is generally branched to when + * an escape sequence is detected (or alternatively for long + * names, or ones crossing input buffer boundary). In any case, + * needs to be able to handle more exceptional cases, gets + * slower, and hance is offlined to a separate method. + */ + protected Name parseEscapedFieldName(int[] quads, int qlen, int currQuad, int ch, + int currQuadBytes) + throws IOException, JsonParseException + { + /* 25-Nov-2008, tatu: This may seem weird, but here we do + * NOT want to worry about UTF-8 decoding. Rather, we'll + * assume that part is ok (if not it will get caught + * later on), and just handle quotes and backslashes here. + */ + final int[] codes = sInputCodesLatin1; + + while (true) { + if (codes[ch] != 0) { + if (ch == INT_QUOTE) { // we are done + break; + } + // Unquoted white space? + if (ch != INT_BACKSLASH) { + // As per [JACKSON-208], call can now return: + _throwUnquotedSpace(ch, "name"); + } else { + // Nope, escape sequence + ch = _decodeEscaped(); + } + /* Oh crap. May need to UTF-8 (re-)encode it, if it's + * beyond 7-bit ascii. Gets pretty messy. + * If this happens often, may want to use different name + * canonicalization to avoid these hits. + */ + if (ch > 127) { + // Ok, we'll need room for first byte right away + if (currQuadBytes >= 4) { + if (qlen >= quads.length) { + _quadBuffer = quads = growArrayBy(quads, quads.length); + } + quads[qlen++] = currQuad; + currQuad = 0; + currQuadBytes = 0; + } + if (ch < 0x800) { // 2-byte + currQuad = (currQuad << 8) | (0xc0 | (ch >> 6)); + ++currQuadBytes; + // Second byte gets output below: + } else { // 3 bytes; no need to worry about surrogates here + currQuad = (currQuad << 8) | (0xe0 | (ch >> 12)); + ++currQuadBytes; + // need room for middle byte? + if (currQuadBytes >= 4) { + if (qlen >= quads.length) { + _quadBuffer = quads = growArrayBy(quads, quads.length); + } + quads[qlen++] = currQuad; + currQuad = 0; + currQuadBytes = 0; + } + currQuad = (currQuad << 8) | (0x80 | ((ch >> 6) & 0x3f)); + ++currQuadBytes; + } + // And same last byte in both cases, gets output below: + ch = 0x80 | (ch & 0x3f); + } + } + // Ok, we have one more byte to add at any rate: + if (currQuadBytes < 4) { + ++currQuadBytes; + currQuad = (currQuad << 8) | ch; + } else { + if (qlen >= quads.length) { + _quadBuffer = quads = growArrayBy(quads, quads.length); + } + quads[qlen++] = currQuad; + currQuad = ch; + currQuadBytes = 1; + } + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(" in field name"); + } + } + ch = _inputBuffer[_inputPtr++] & 0xFF; + } + + if (currQuadBytes > 0) { + if (qlen >= quads.length) { + _quadBuffer = quads = growArrayBy(quads, quads.length); + } + quads[qlen++] = currQuad; + } + Name name = _symbols.findName(quads, qlen); + if (name == null) { + name = addName(quads, qlen, currQuadBytes); + } + return name; + } + + /** + * Method called when we see non-white space character other + * than double quote, when expecting a field name. + * In standard mode will just throw an expection; but + * in non-standard modes may be able to parse name. + */ + protected final Name _handleUnusualFieldName(int ch) + throws IOException, JsonParseException + { + // [JACKSON-173]: allow single quotes + if (ch == INT_APOSTROPHE && isEnabled(Feature.ALLOW_SINGLE_QUOTES)) { + return _parseApostropheFieldName(); + } + // [JACKSON-69]: allow unquoted names if feature enabled: + if (!isEnabled(Feature.ALLOW_UNQUOTED_FIELD_NAMES)) { + _reportUnexpectedChar(ch, "was expecting double-quote to start field name"); + } + /* Also: note that although we use a different table here, + * it does NOT handle UTF-8 decoding. It'll just pass those + * high-bit codes as acceptable for later decoding. + */ + final int[] codes = CharTypes.getInputCodeUtf8JsNames(); + // Also: must start with a valid character... + if (codes[ch] != 0) { + _reportUnexpectedChar(ch, "was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name"); + } + + /* Ok, now; instead of ultra-optimizing parsing here (as with + * regular JSON names), let's just use the generic "slow" + * variant. Can measure its impact later on if need be + */ + int[] quads = _quadBuffer; + int qlen = 0; + int currQuad = 0; + int currQuadBytes = 0; + + while (true) { + // Ok, we have one more byte to add at any rate: + if (currQuadBytes < 4) { + ++currQuadBytes; + currQuad = (currQuad << 8) | ch; + } else { + if (qlen >= quads.length) { + _quadBuffer = quads = growArrayBy(quads, quads.length); + } + quads[qlen++] = currQuad; + currQuad = ch; + currQuadBytes = 1; + } + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(" in field name"); + } + } + ch = _inputBuffer[_inputPtr] & 0xFF; + if (codes[ch] != 0) { + break; + } + ++_inputPtr; + } + + if (currQuadBytes > 0) { + if (qlen >= quads.length) { + _quadBuffer = quads = growArrayBy(quads, quads.length); + } + quads[qlen++] = currQuad; + } + Name name = _symbols.findName(quads, qlen); + if (name == null) { + name = addName(quads, qlen, currQuadBytes); + } + return name; + } + + /* Parsing to support [JACKSON-173]. Plenty of duplicated code; + * main reason being to try to avoid slowing down fast path + * for valid JSON -- more alternatives, more code, generally + * bit slower execution. + */ + protected final Name _parseApostropheFieldName() + throws IOException, JsonParseException + { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(": was expecting closing '\'' for name"); + } + } + int ch = _inputBuffer[_inputPtr++] & 0xFF; + if (ch == INT_APOSTROPHE) { // special case, '' + return BytesToNameCanonicalizer.getEmptyName(); + } + int[] quads = _quadBuffer; + int qlen = 0; + int currQuad = 0; + int currQuadBytes = 0; + + // Copied from parseEscapedFieldName, with minor mods: + + final int[] codes = sInputCodesLatin1; + + while (true) { + if (ch == INT_APOSTROPHE) { + break; + } + // additional check to skip handling of double-quotes + if (ch != INT_QUOTE && codes[ch] != 0) { + if (ch != INT_BACKSLASH) { + // Unquoted white space? + // As per [JACKSON-208], call can now return: + _throwUnquotedSpace(ch, "name"); + } else { + // Nope, escape sequence + ch = _decodeEscaped(); + } + /* Oh crap. May need to UTF-8 (re-)encode it, if it's + * beyond 7-bit ascii. Gets pretty messy. + * If this happens often, may want to use different name + * canonicalization to avoid these hits. + */ + if (ch > 127) { + // Ok, we'll need room for first byte right away + if (currQuadBytes >= 4) { + if (qlen >= quads.length) { + _quadBuffer = quads = growArrayBy(quads, quads.length); + } + quads[qlen++] = currQuad; + currQuad = 0; + currQuadBytes = 0; + } + if (ch < 0x800) { // 2-byte + currQuad = (currQuad << 8) | (0xc0 | (ch >> 6)); + ++currQuadBytes; + // Second byte gets output below: + } else { // 3 bytes; no need to worry about surrogates here + currQuad = (currQuad << 8) | (0xe0 | (ch >> 12)); + ++currQuadBytes; + // need room for middle byte? + if (currQuadBytes >= 4) { + if (qlen >= quads.length) { + _quadBuffer = quads = growArrayBy(quads, quads.length); + } + quads[qlen++] = currQuad; + currQuad = 0; + currQuadBytes = 0; + } + currQuad = (currQuad << 8) | (0x80 | ((ch >> 6) & 0x3f)); + ++currQuadBytes; + } + // And same last byte in both cases, gets output below: + ch = 0x80 | (ch & 0x3f); + } + } + // Ok, we have one more byte to add at any rate: + if (currQuadBytes < 4) { + ++currQuadBytes; + currQuad = (currQuad << 8) | ch; + } else { + if (qlen >= quads.length) { + _quadBuffer = quads = growArrayBy(quads, quads.length); + } + quads[qlen++] = currQuad; + currQuad = ch; + currQuadBytes = 1; + } + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(" in field name"); + } + } + ch = _inputBuffer[_inputPtr++] & 0xFF; + } + + if (currQuadBytes > 0) { + if (qlen >= quads.length) { + _quadBuffer = quads = growArrayBy(quads, quads.length); + } + quads[qlen++] = currQuad; + } + Name name = _symbols.findName(quads, qlen); + if (name == null) { + name = addName(quads, qlen, currQuadBytes); + } + return name; + } + + /* + /********************************************************** + /* Internal methods, symbol (name) handling + /********************************************************** + */ + + private final Name findName(int q1, int lastQuadBytes) + throws JsonParseException + { + // Usually we'll find it from the canonical symbol table already + Name name = _symbols.findName(q1); + if (name != null) { + return name; + } + // If not, more work. We'll need add stuff to buffer + _quadBuffer[0] = q1; + return addName(_quadBuffer, 1, lastQuadBytes); + } + + private final Name findName(int q1, int q2, int lastQuadBytes) + throws JsonParseException + { + // Usually we'll find it from the canonical symbol table already + Name name = _symbols.findName(q1, q2); + if (name != null) { + return name; + } + // If not, more work. We'll need add stuff to buffer + _quadBuffer[0] = q1; + _quadBuffer[1] = q2; + return addName(_quadBuffer, 2, lastQuadBytes); + } + + private final Name findName(int[] quads, int qlen, int lastQuad, int lastQuadBytes) + throws JsonParseException + { + if (qlen >= quads.length) { + _quadBuffer = quads = growArrayBy(quads, quads.length); + } + quads[qlen++] = lastQuad; + Name name = _symbols.findName(quads, qlen); + if (name == null) { + return addName(quads, qlen, lastQuadBytes); + } + return name; + } + + /** + * This is the main workhorse method used when we take a symbol + * table miss. It needs to demultiplex individual bytes, decode + * multi-byte chars (if any), and then construct Name instance + * and add it to the symbol table. + */ + private final Name addName(int[] quads, int qlen, int lastQuadBytes) + throws JsonParseException + { + /* Ok: must decode UTF-8 chars. No other validation is + * needed, since unescaping has been done earlier as necessary + * (as well as error reporting for unescaped control chars) + */ + // 4 bytes per quad, except last one maybe less + int byteLen = (qlen << 2) - 4 + lastQuadBytes; + + /* And last one is not correctly aligned (leading zero bytes instead + * need to shift a bit, instead of trailing). Only need to shift it + * for UTF-8 decoding; need revert for storage (since key will not + * be aligned, to optimize lookup speed) + */ + int lastQuad; + + if (lastQuadBytes < 4) { + lastQuad = quads[qlen-1]; + // 8/16/24 bit left shift + quads[qlen-1] = (lastQuad << ((4 - lastQuadBytes) << 3)); + } else { + lastQuad = 0; + } + + // Need some working space, TextBuffer works well: + char[] cbuf = _textBuffer.emptyAndGetCurrentSegment(); + int cix = 0; + + for (int ix = 0; ix < byteLen; ) { + int ch = quads[ix >> 2]; // current quad, need to shift+mask + int byteIx = (ix & 3); + ch = (ch >> ((3 - byteIx) << 3)) & 0xFF; + ++ix; + + if (ch > 127) { // multi-byte + int needed; + if ((ch & 0xE0) == 0xC0) { // 2 bytes (0x0080 - 0x07FF) + ch &= 0x1F; + needed = 1; + } else if ((ch & 0xF0) == 0xE0) { // 3 bytes (0x0800 - 0xFFFF) + ch &= 0x0F; + needed = 2; + } else if ((ch & 0xF8) == 0xF0) { // 4 bytes; double-char with surrogates and all... + ch &= 0x07; + needed = 3; + } else { // 5- and 6-byte chars not valid xml chars + _reportInvalidInitial(ch); + needed = ch = 1; // never really gets this far + } + if ((ix + needed) > byteLen) { + _reportInvalidEOF(" in field name"); + } + + // Ok, always need at least one more: + int ch2 = quads[ix >> 2]; // current quad, need to shift+mask + byteIx = (ix & 3); + ch2 = (ch2 >> ((3 - byteIx) << 3)); + ++ix; + + if ((ch2 & 0xC0) != 0x080) { + _reportInvalidOther(ch2); + } + ch = (ch << 6) | (ch2 & 0x3F); + if (needed > 1) { + ch2 = quads[ix >> 2]; + byteIx = (ix & 3); + ch2 = (ch2 >> ((3 - byteIx) << 3)); + ++ix; + + if ((ch2 & 0xC0) != 0x080) { + _reportInvalidOther(ch2); + } + ch = (ch << 6) | (ch2 & 0x3F); + if (needed > 2) { // 4 bytes? (need surrogates on output) + ch2 = quads[ix >> 2]; + byteIx = (ix & 3); + ch2 = (ch2 >> ((3 - byteIx) << 3)); + ++ix; + if ((ch2 & 0xC0) != 0x080) { + _reportInvalidOther(ch2 & 0xFF); + } + ch = (ch << 6) | (ch2 & 0x3F); + } + } + if (needed > 2) { // surrogate pair? once again, let's output one here, one later on + ch -= 0x10000; // to normalize it starting with 0x0 + if (cix >= cbuf.length) { + cbuf = _textBuffer.expandCurrentSegment(); + } + cbuf[cix++] = (char) (0xD800 + (ch >> 10)); + ch = 0xDC00 | (ch & 0x03FF); + } + } + if (cix >= cbuf.length) { + cbuf = _textBuffer.expandCurrentSegment(); + } + cbuf[cix++] = (char) ch; + } + + // Ok. Now we have the character array, and can construct the String + String baseName = new String(cbuf, 0, cix); + // And finally, un-align if necessary + if (lastQuadBytes < 4) { + quads[qlen-1] = lastQuad; + } + return _symbols.addName(baseName, quads, qlen); + } + + /* + /********************************************************** + /* Internal methods, String value parsing + /********************************************************** + */ + + @Override + protected void _finishString() + throws IOException, JsonParseException + { + // First, single tight loop for ASCII content, not split across input buffer boundary: + int ptr = _inputPtr; + if (ptr >= _inputEnd) { + loadMoreGuaranteed(); + ptr = _inputPtr; + } + int outPtr = 0; + char[] outBuf = _textBuffer.emptyAndGetCurrentSegment(); + final int[] codes = sInputCodesUtf8; + + final int max = Math.min(_inputEnd, (ptr + outBuf.length)); + final byte[] inputBuffer = _inputBuffer; + while (ptr < max) { + int c = (int) inputBuffer[ptr] & 0xFF; + if (codes[c] != 0) { + if (c == INT_QUOTE) { + _inputPtr = ptr+1; + _textBuffer.setCurrentLength(outPtr); + return; + } + break; + } + ++ptr; + outBuf[outPtr++] = (char) c; + } + _inputPtr = ptr; + _finishString2(outBuf, outPtr); + } + + private final void _finishString2(char[] outBuf, int outPtr) + throws IOException, JsonParseException + { + int c; + + // Here we do want to do full decoding, hence: + final int[] codes = sInputCodesUtf8; + final byte[] inputBuffer = _inputBuffer; + + main_loop: + while (true) { + // Then the tight ASCII non-funny-char loop: + ascii_loop: + while (true) { + int ptr = _inputPtr; + if (ptr >= _inputEnd) { + loadMoreGuaranteed(); + ptr = _inputPtr; + } + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + final int max = Math.min(_inputEnd, (ptr + (outBuf.length - outPtr))); + while (ptr < max) { + c = (int) inputBuffer[ptr++] & 0xFF; + if (codes[c] != 0) { + _inputPtr = ptr; + break ascii_loop; + } + outBuf[outPtr++] = (char) c; + } + _inputPtr = ptr; + } + // Ok: end marker, escape or multi-byte? + if (c == INT_QUOTE) { + break main_loop; + } + + switch (codes[c]) { + case 1: // backslash + c = _decodeEscaped(); + break; + case 2: // 2-byte UTF + c = _decodeUtf8_2(c); + break; + case 3: // 3-byte UTF + if ((_inputEnd - _inputPtr) >= 2) { + c = _decodeUtf8_3fast(c); + } else { + c = _decodeUtf8_3(c); + } + break; + case 4: // 4-byte UTF + c = _decodeUtf8_4(c); + // Let's add first part right away: + outBuf[outPtr++] = (char) (0xD800 | (c >> 10)); + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + c = 0xDC00 | (c & 0x3FF); + // And let the other char output down below + break; + default: + if (c < INT_SPACE) { + // As per [JACKSON-208], call can now return: + _throwUnquotedSpace(c, "string value"); + } else { + // Is this good enough error message? + _reportInvalidChar(c); + } + } + // Need more room? + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + // Ok, let's add char to output: + outBuf[outPtr++] = (char) c; + } + _textBuffer.setCurrentLength(outPtr); + } + + /** + * Method called to skim through rest of unparsed String value, + * if it is not needed. This can be done bit faster if contents + * need not be stored for future access. + */ + protected void _skipString() + throws IOException, JsonParseException + { + _tokenIncomplete = false; + + // Need to be fully UTF-8 aware here: + final int[] codes = sInputCodesUtf8; + final byte[] inputBuffer = _inputBuffer; + + main_loop: + while (true) { + int c; + + ascii_loop: + while (true) { + int ptr = _inputPtr; + int max = _inputEnd; + if (ptr >= max) { + loadMoreGuaranteed(); + ptr = _inputPtr; + max = _inputEnd; + } + while (ptr < max) { + c = (int) inputBuffer[ptr++] & 0xFF; + if (codes[c] != 0) { + _inputPtr = ptr; + break ascii_loop; + } + } + _inputPtr = ptr; + } + // Ok: end marker, escape or multi-byte? + if (c == INT_QUOTE) { + break main_loop; + } + + switch (codes[c]) { + case 1: // backslash + _decodeEscaped(); + break; + case 2: // 2-byte UTF + _skipUtf8_2(c); + break; + case 3: // 3-byte UTF + _skipUtf8_3(c); + break; + case 4: // 4-byte UTF + _skipUtf8_4(c); + break; + default: + if (c < INT_SPACE) { + // As per [JACKSON-208], call can now return: + _throwUnquotedSpace(c, "string value"); + } else { + // Is this good enough error message? + _reportInvalidChar(c); + } + } + } + } + + /** + * Method for handling cases where first non-space character + * of an expected value token is not legal for standard JSON content. + * + * @since 1.3 + */ + protected JsonToken _handleUnexpectedValue(int c) + throws IOException, JsonParseException + { + // Most likely an error, unless we are to allow single-quote-strings + switch (c) { + case '\'': + if (isEnabled(Feature.ALLOW_SINGLE_QUOTES)) { + return _handleApostropheValue(); + } + break; + case 'N': + _matchToken("NaN", 1); + if (isEnabled(Feature.ALLOW_NON_NUMERIC_NUMBERS)) { + return resetAsNaN("NaN", Double.NaN); + } + _reportError("Non-standard token 'NaN': enable JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS to allow"); + break; + case '+': // note: '-' is taken as number + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOFInValue(); + } + } + return _handleInvalidNumberStart(_inputBuffer[_inputPtr++] & 0xFF, false); + } + + _reportUnexpectedChar(c, "expected a valid value (number, String, array, object, 'true', 'false' or 'null')"); + return null; + } + + protected JsonToken _handleApostropheValue() + throws IOException, JsonParseException + { + int c = 0; + // Otherwise almost verbatim copy of _finishString() + int outPtr = 0; + char[] outBuf = _textBuffer.emptyAndGetCurrentSegment(); + + // Here we do want to do full decoding, hence: + final int[] codes = sInputCodesUtf8; + final byte[] inputBuffer = _inputBuffer; + + main_loop: + while (true) { + // Then the tight ascii non-funny-char loop: + ascii_loop: + while (true) { + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + int max = _inputEnd; + { + int max2 = _inputPtr + (outBuf.length - outPtr); + if (max2 < max) { + max = max2; + } + } + while (_inputPtr < max) { + c = (int) inputBuffer[_inputPtr++] & 0xFF; + if (c == INT_APOSTROPHE || codes[c] != 0) { + break ascii_loop; + } + outBuf[outPtr++] = (char) c; + } + } + + // Ok: end marker, escape or multi-byte? + if (c == INT_APOSTROPHE) { + break main_loop; + } + + switch (codes[c]) { + case 1: // backslash + if (c != INT_QUOTE) { // marked as special, isn't here + c = _decodeEscaped(); + } + break; + case 2: // 2-byte UTF + c = _decodeUtf8_2(c); + break; + case 3: // 3-byte UTF + if ((_inputEnd - _inputPtr) >= 2) { + c = _decodeUtf8_3fast(c); + } else { + c = _decodeUtf8_3(c); + } + break; + case 4: // 4-byte UTF + c = _decodeUtf8_4(c); + // Let's add first part right away: + outBuf[outPtr++] = (char) (0xD800 | (c >> 10)); + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + c = 0xDC00 | (c & 0x3FF); + // And let the other char output down below + break; + default: + if (c < INT_SPACE) { + _throwUnquotedSpace(c, "string value"); + } + // Is this good enough error message? + _reportInvalidChar(c); + } + // Need more room? + if (outPtr >= outBuf.length) { + outBuf = _textBuffer.finishCurrentSegment(); + outPtr = 0; + } + // Ok, let's add char to output: + outBuf[outPtr++] = (char) c; + } + _textBuffer.setCurrentLength(outPtr); + + return JsonToken.VALUE_STRING; + } + + /** + * Method called if expected numeric value (due to leading sign) does not + * look like a number + */ + protected JsonToken _handleInvalidNumberStart(int ch, boolean negative) + throws IOException, JsonParseException + { + if (ch == 'I') { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOFInValue(); + } + } + ch = _inputBuffer[_inputPtr++]; + if (ch == 'N') { + String match = negative ? "-INF" :"+INF"; + _matchToken(match, 3); + if (isEnabled(Feature.ALLOW_NON_NUMERIC_NUMBERS)) { + return resetAsNaN(match, negative ? Double.NEGATIVE_INFINITY : Double.POSITIVE_INFINITY); + } + _reportError("Non-standard token '"+match+"': enable JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS to allow"); + } else if (ch == 'n') { + String match = negative ? "-Infinity" :"+Infinity"; + _matchToken(match, 3); + if (isEnabled(Feature.ALLOW_NON_NUMERIC_NUMBERS)) { + return resetAsNaN(match, negative ? Double.NEGATIVE_INFINITY : Double.POSITIVE_INFINITY); + } + _reportError("Non-standard token '"+match+"': enable JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS to allow"); + } + } + reportUnexpectedNumberChar(ch, "expected digit (0-9) to follow minus sign, for valid numeric value"); + return null; + } + + protected final void _matchToken(String matchStr, int i) + throws IOException, JsonParseException + { + final int len = matchStr.length(); + + do { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(" in a value"); + } + } + if (_inputBuffer[_inputPtr] != matchStr.charAt(i)) { + _reportInvalidToken(matchStr.substring(0, i), "'null', 'true', 'false' or NaN"); + } + ++_inputPtr; + } while (++i < len); + + // but let's also ensure we either get EOF, or non-alphanum char... + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + return; + } + } + int ch = _inputBuffer[_inputPtr] & 0xFF; + if (ch < '0' || ch == ']' || ch == '}') { // expected/allowed chars + return; + } + // but actually only alphanums are problematic + char c = (char) _decodeCharForError(ch); + if (Character.isJavaIdentifierPart(c)) { + ++_inputPtr; + _reportInvalidToken(matchStr.substring(0, i), "'null', 'true', 'false' or NaN"); + } + } + + protected void _reportInvalidToken(String matchedPart, String msg) + throws IOException, JsonParseException + { + StringBuilder sb = new StringBuilder(matchedPart); + /* Let's just try to find what appears to be the token, using + * regular Java identifier character rules. It's just a heuristic, + * nothing fancy here (nor fast). + */ + while (true) { + if (_inputPtr >= _inputEnd && !loadMore()) { + break; + } + int i = (int) _inputBuffer[_inputPtr++]; + char c = (char) _decodeCharForError(i); + if (!Character.isJavaIdentifierPart(c)) { + break; + } + sb.append(c); + } + _reportError("Unrecognized token '"+sb.toString()+"': was expecting "+msg); + } + + /* + /********************************************************** + /* Internal methods, ws skipping, escape/unescape + /********************************************************** + */ + + private final int _skipWS() + throws IOException, JsonParseException + { + while (_inputPtr < _inputEnd || loadMore()) { + int i = _inputBuffer[_inputPtr++] & 0xFF; + if (i > INT_SPACE) { + if (i != INT_SLASH) { + return i; + } + _skipComment(); + } else if (i != INT_SPACE) { + if (i == INT_LF) { + _skipLF(); + } else if (i == INT_CR) { + _skipCR(); + } else if (i != INT_TAB) { + _throwInvalidSpace(i); + } + } + } + throw _constructError("Unexpected end-of-input within/between "+_parsingContext.getTypeDesc()+" entries"); + } + + private final int _skipWSOrEnd() + throws IOException, JsonParseException + { + while ((_inputPtr < _inputEnd) || loadMore()) { + int i = _inputBuffer[_inputPtr++] & 0xFF; + if (i > INT_SPACE) { + if (i != INT_SLASH) { + return i; + } + _skipComment(); + } else if (i != INT_SPACE) { + if (i == INT_LF) { + _skipLF(); + } else if (i == INT_CR) { + _skipCR(); + } else if (i != INT_TAB) { + _throwInvalidSpace(i); + } + } + } + // We ran out of input... + _handleEOF(); + return -1; + } + + /** + * Helper method for matching and skipping a colon character, + * optionally surrounded by white space + * + * @since 1.9 + */ + private final int _skipColon() + throws IOException, JsonParseException + { + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + // first fast case: we just got a colon without white space: + int i = _inputBuffer[_inputPtr++]; + if (i == INT_COLON) { + if (_inputPtr < _inputEnd) { + i = _inputBuffer[_inputPtr] & 0xFF; + if (i > INT_SPACE && i != INT_SLASH) { + ++_inputPtr; + return i; + } + } + } else { + // need to skip potential leading space + i &= 0xFF; + + space_loop: + while (true) { + switch (i) { + case INT_SPACE: + case INT_TAB: + case INT_CR: + _skipCR(); + break; + case INT_LF: + _skipLF(); + break; + case INT_SLASH: + _skipComment(); + break; + default: + if (i < INT_SPACE) { + _throwInvalidSpace(i); + } + break space_loop; + } + } + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + i = _inputBuffer[_inputPtr++] & 0xFF; + if (i != INT_COLON) { + _reportUnexpectedChar(i, "was expecting a colon to separate field name and value"); + } + } + + // either way, found colon, skip through trailing WS + while (_inputPtr < _inputEnd || loadMore()) { + i = _inputBuffer[_inputPtr++] & 0xFF; + if (i > INT_SPACE) { + if (i != INT_SLASH) { + return i; + } + _skipComment(); + } else if (i != INT_SPACE) { + if (i == INT_LF) { + _skipLF(); + } else if (i == INT_CR) { + _skipCR(); + } else if (i != INT_TAB) { + _throwInvalidSpace(i); + } + } + } + throw _constructError("Unexpected end-of-input within/between "+_parsingContext.getTypeDesc()+" entries"); + } + + private final void _skipComment() + throws IOException, JsonParseException + { + if (!isEnabled(Feature.ALLOW_COMMENTS)) { + _reportUnexpectedChar('/', "maybe a (non-standard) comment? (not recognized as one since Feature 'ALLOW_COMMENTS' not enabled for parser)"); + } + // First: check which comment (if either) it is: + if (_inputPtr >= _inputEnd && !loadMore()) { + _reportInvalidEOF(" in a comment"); + } + int c = _inputBuffer[_inputPtr++] & 0xFF; + if (c == INT_SLASH) { + _skipCppComment(); + } else if (c == INT_ASTERISK) { + _skipCComment(); + } else { + _reportUnexpectedChar(c, "was expecting either '*' or '/' for a comment"); + } + } + + private final void _skipCComment() + throws IOException, JsonParseException + { + // Need to be UTF-8 aware here to decode content (for skipping) + final int[] codes = CharTypes.getInputCodeComment(); + + // Ok: need the matching '*/' + main_loop: + while ((_inputPtr < _inputEnd) || loadMore()) { + int i = (int) _inputBuffer[_inputPtr++] & 0xFF; + int code = codes[i]; + if (code != 0) { + switch (code) { + case INT_ASTERISK: + if (_inputPtr >= _inputEnd && !loadMore()) { + break main_loop; + } + if (_inputBuffer[_inputPtr] == INT_SLASH) { + ++_inputPtr; + return; + } + break; + case INT_LF: + _skipLF(); + break; + case INT_CR: + _skipCR(); + break; + case 2: // 2-byte UTF + _skipUtf8_2(i); + break; + case 3: // 3-byte UTF + _skipUtf8_3(i); + break; + case 4: // 4-byte UTF + _skipUtf8_4(i); + break; + default: // e.g. -1 + // Is this good enough error message? + _reportInvalidChar(i); + } + } + } + _reportInvalidEOF(" in a comment"); + } + + private final void _skipCppComment() + throws IOException, JsonParseException + { + // Ok: need to find EOF or linefeed + final int[] codes = CharTypes.getInputCodeComment(); + while ((_inputPtr < _inputEnd) || loadMore()) { + int i = (int) _inputBuffer[_inputPtr++] & 0xFF; + int code = codes[i]; + if (code != 0) { + switch (code) { + case INT_LF: + _skipLF(); + return; + case INT_CR: + _skipCR(); + return; + case INT_ASTERISK: // nop for these comments + break; + case 2: // 2-byte UTF + _skipUtf8_2(i); + break; + case 3: // 3-byte UTF + _skipUtf8_3(i); + break; + case 4: // 4-byte UTF + _skipUtf8_4(i); + break; + default: // e.g. -1 + // Is this good enough error message? + _reportInvalidChar(i); + } + } + } + } + + @Override + protected final char _decodeEscaped() + throws IOException, JsonParseException + { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(" in character escape sequence"); + } + } + int c = (int) _inputBuffer[_inputPtr++]; + + switch ((int) c) { + // First, ones that are mapped + case INT_b: + return '\b'; + case INT_t: + return '\t'; + case INT_n: + return '\n'; + case INT_f: + return '\f'; + case INT_r: + return '\r'; + + // And these are to be returned as they are + case INT_QUOTE: + case INT_SLASH: + case INT_BACKSLASH: + return (char) c; + + case INT_u: // and finally hex-escaped + break; + + default: + return _handleUnrecognizedCharacterEscape((char) _decodeCharForError(c)); + } + + // Ok, a hex escape. Need 4 characters + int value = 0; + for (int i = 0; i < 4; ++i) { + if (_inputPtr >= _inputEnd) { + if (!loadMore()) { + _reportInvalidEOF(" in character escape sequence"); + } + } + int ch = (int) _inputBuffer[_inputPtr++]; + int digit = CharTypes.charToHex(ch); + if (digit < 0) { + _reportUnexpectedChar(ch, "expected a hex-digit for character escape sequence"); + } + value = (value << 4) | digit; + } + return (char) value; + } + + protected int _decodeCharForError(int firstByte) + throws IOException, JsonParseException + { + int c = (int) firstByte; + if (c < 0) { // if >= 0, is ascii and fine as is + int needed; + + // Ok; if we end here, we got multi-byte combination + if ((c & 0xE0) == 0xC0) { // 2 bytes (0x0080 - 0x07FF) + c &= 0x1F; + needed = 1; + } else if ((c & 0xF0) == 0xE0) { // 3 bytes (0x0800 - 0xFFFF) + c &= 0x0F; + needed = 2; + } else if ((c & 0xF8) == 0xF0) { + // 4 bytes; double-char with surrogates and all... + c &= 0x07; + needed = 3; + } else { + _reportInvalidInitial(c & 0xFF); + needed = 1; // never gets here + } + + int d = nextByte(); + if ((d & 0xC0) != 0x080) { + _reportInvalidOther(d & 0xFF); + } + c = (c << 6) | (d & 0x3F); + + if (needed > 1) { // needed == 1 means 2 bytes total + d = nextByte(); // 3rd byte + if ((d & 0xC0) != 0x080) { + _reportInvalidOther(d & 0xFF); + } + c = (c << 6) | (d & 0x3F); + if (needed > 2) { // 4 bytes? (need surrogates) + d = nextByte(); + if ((d & 0xC0) != 0x080) { + _reportInvalidOther(d & 0xFF); + } + c = (c << 6) | (d & 0x3F); + } + } + } + return c; + } + + /* + /********************************************************** + /* Internal methods,UTF8 decoding + /********************************************************** + */ + + private final int _decodeUtf8_2(int c) + throws IOException, JsonParseException + { + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + int d = (int) _inputBuffer[_inputPtr++]; + if ((d & 0xC0) != 0x080) { + _reportInvalidOther(d & 0xFF, _inputPtr); + } + return ((c & 0x1F) << 6) | (d & 0x3F); + } + + private final int _decodeUtf8_3(int c1) + throws IOException, JsonParseException + { + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + c1 &= 0x0F; + int d = (int) _inputBuffer[_inputPtr++]; + if ((d & 0xC0) != 0x080) { + _reportInvalidOther(d & 0xFF, _inputPtr); + } + int c = (c1 << 6) | (d & 0x3F); + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + d = (int) _inputBuffer[_inputPtr++]; + if ((d & 0xC0) != 0x080) { + _reportInvalidOther(d & 0xFF, _inputPtr); + } + c = (c << 6) | (d & 0x3F); + return c; + } + + private final int _decodeUtf8_3fast(int c1) + throws IOException, JsonParseException + { + c1 &= 0x0F; + int d = (int) _inputBuffer[_inputPtr++]; + if ((d & 0xC0) != 0x080) { + _reportInvalidOther(d & 0xFF, _inputPtr); + } + int c = (c1 << 6) | (d & 0x3F); + d = (int) _inputBuffer[_inputPtr++]; + if ((d & 0xC0) != 0x080) { + _reportInvalidOther(d & 0xFF, _inputPtr); + } + c = (c << 6) | (d & 0x3F); + return c; + } + + /** + * @return Character value <b>minus 0x10000</c>; this so that caller + * can readily expand it to actual surrogates + */ + private final int _decodeUtf8_4(int c) + throws IOException, JsonParseException + { + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + int d = (int) _inputBuffer[_inputPtr++]; + if ((d & 0xC0) != 0x080) { + _reportInvalidOther(d & 0xFF, _inputPtr); + } + c = ((c & 0x07) << 6) | (d & 0x3F); + + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + d = (int) _inputBuffer[_inputPtr++]; + if ((d & 0xC0) != 0x080) { + _reportInvalidOther(d & 0xFF, _inputPtr); + } + c = (c << 6) | (d & 0x3F); + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + d = (int) _inputBuffer[_inputPtr++]; + if ((d & 0xC0) != 0x080) { + _reportInvalidOther(d & 0xFF, _inputPtr); + } + + /* note: won't change it to negative here, since caller + * already knows it'll need a surrogate + */ + return ((c << 6) | (d & 0x3F)) - 0x10000; + } + + private final void _skipUtf8_2(int c) + throws IOException, JsonParseException + { + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + c = (int) _inputBuffer[_inputPtr++]; + if ((c & 0xC0) != 0x080) { + _reportInvalidOther(c & 0xFF, _inputPtr); + } + } + + /* Alas, can't heavily optimize skipping, since we still have to + * do validity checks... + */ + private final void _skipUtf8_3(int c) + throws IOException, JsonParseException + { + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + //c &= 0x0F; + c = (int) _inputBuffer[_inputPtr++]; + if ((c & 0xC0) != 0x080) { + _reportInvalidOther(c & 0xFF, _inputPtr); + } + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + c = (int) _inputBuffer[_inputPtr++]; + if ((c & 0xC0) != 0x080) { + _reportInvalidOther(c & 0xFF, _inputPtr); + } + } + + private final void _skipUtf8_4(int c) + throws IOException, JsonParseException + { + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + int d = (int) _inputBuffer[_inputPtr++]; + if ((d & 0xC0) != 0x080) { + _reportInvalidOther(d & 0xFF, _inputPtr); + } + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + d = (int) _inputBuffer[_inputPtr++]; + if ((d & 0xC0) != 0x080) { + _reportInvalidOther(d & 0xFF, _inputPtr); + } + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + d = (int) _inputBuffer[_inputPtr++]; + if ((d & 0xC0) != 0x080) { + _reportInvalidOther(d & 0xFF, _inputPtr); + } + } + + /* + /********************************************************** + /* Internal methods, input loading + /********************************************************** + */ + + /** + * We actually need to check the character value here + * (to see if we have \n following \r). + */ + protected final void _skipCR() throws IOException + { + if (_inputPtr < _inputEnd || loadMore()) { + if (_inputBuffer[_inputPtr] == BYTE_LF) { + ++_inputPtr; + } + } + ++_currInputRow; + _currInputRowStart = _inputPtr; + } + + protected final void _skipLF() throws IOException + { + ++_currInputRow; + _currInputRowStart = _inputPtr; + } + + private int nextByte() + throws IOException, JsonParseException + { + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + return _inputBuffer[_inputPtr++] & 0xFF; + } + + /* + /********************************************************** + /* Internal methods, error reporting + /********************************************************** + */ + + protected void _reportInvalidChar(int c) + throws JsonParseException + { + // Either invalid WS or illegal UTF-8 start char + if (c < INT_SPACE) { + _throwInvalidSpace(c); + } + _reportInvalidInitial(c); + } + + protected void _reportInvalidInitial(int mask) + throws JsonParseException + { + _reportError("Invalid UTF-8 start byte 0x"+Integer.toHexString(mask)); + } + + protected void _reportInvalidOther(int mask) + throws JsonParseException + { + _reportError("Invalid UTF-8 middle byte 0x"+Integer.toHexString(mask)); + } + + protected void _reportInvalidOther(int mask, int ptr) + throws JsonParseException + { + _inputPtr = ptr; + _reportInvalidOther(mask); + } + + public static int[] growArrayBy(int[] arr, int more) + { + if (arr == null) { + return new int[more]; + } + int[] old = arr; + int len = arr.length; + arr = new int[len + more]; + System.arraycopy(old, 0, arr, 0, len); + return arr; + } + + /* + /********************************************************** + /* Binary access + /********************************************************** + */ + + /** + * Efficient handling for incremental parsing of base64-encoded + * textual content. + */ + protected byte[] _decodeBase64(Base64Variant b64variant) + throws IOException, JsonParseException + { + ByteArrayBuilder builder = _getByteArrayBuilder(); + + //main_loop: + while (true) { + // first, we'll skip preceding white space, if any + int ch; + do { + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + ch = (int) _inputBuffer[_inputPtr++] & 0xFF; + } while (ch <= INT_SPACE); + int bits = b64variant.decodeBase64Char(ch); + if (bits < 0) { // reached the end, fair and square? + if (ch == INT_QUOTE) { + return builder.toByteArray(); + } + bits = _decodeBase64Escape(b64variant, ch, 0); + if (bits < 0) { // white space to skip + continue; + } + } + int decodedData = bits; + + // then second base64 char; can't get padding yet, nor ws + + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + ch = _inputBuffer[_inputPtr++] & 0xFF; + bits = b64variant.decodeBase64Char(ch); + if (bits < 0) { + bits = _decodeBase64Escape(b64variant, ch, 1); + } + decodedData = (decodedData << 6) | bits; + + // third base64 char; can be padding, but not ws + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + ch = _inputBuffer[_inputPtr++] & 0xFF; + bits = b64variant.decodeBase64Char(ch); + + // First branch: can get padding (-> 1 byte) + if (bits < 0) { + if (bits != Base64Variant.BASE64_VALUE_PADDING) { + // as per [JACKSON-631], could also just be 'missing' padding + if (ch == '"' && !b64variant.usesPadding()) { + decodedData >>= 4; + builder.append(decodedData); + return builder.toByteArray(); + } + bits = _decodeBase64Escape(b64variant, ch, 2); + } + if (bits == Base64Variant.BASE64_VALUE_PADDING) { + // Ok, must get padding + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + ch = _inputBuffer[_inputPtr++] & 0xFF; + if (!b64variant.usesPaddingChar(ch)) { + throw reportInvalidBase64Char(b64variant, ch, 3, "expected padding character '"+b64variant.getPaddingChar()+"'"); + } + // Got 12 bits, only need 8, need to shift + decodedData >>= 4; + builder.append(decodedData); + continue; + } + } + // Nope, 2 or 3 bytes + decodedData = (decodedData << 6) | bits; + // fourth and last base64 char; can be padding, but not ws + if (_inputPtr >= _inputEnd) { + loadMoreGuaranteed(); + } + ch = _inputBuffer[_inputPtr++] & 0xFF; + bits = b64variant.decodeBase64Char(ch); + if (bits < 0) { + if (bits != Base64Variant.BASE64_VALUE_PADDING) { + // as per [JACKSON-631], could also just be 'missing' padding + if (ch == '"' && !b64variant.usesPadding()) { + decodedData >>= 2; + builder.appendTwoBytes(decodedData); + return builder.toByteArray(); + } + bits = _decodeBase64Escape(b64variant, ch, 3); + } + if (bits == Base64Variant.BASE64_VALUE_PADDING) { + /* With padding we only get 2 bytes; but we have + * to shift it a bit so it is identical to triplet + * case with partial output. + * 3 chars gives 3x6 == 18 bits, of which 2 are + * dummies, need to discard: + */ + decodedData >>= 2; + builder.appendTwoBytes(decodedData); + continue; + } + } + // otherwise, our triplet is now complete + decodedData = (decodedData << 6) | bits; + builder.appendThreeBytes(decodedData); + } + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/WriterBasedGenerator.java b/1.9.10/src/java/org/codehaus/jackson/impl/WriterBasedGenerator.java new file mode 100644 index 0000000..de26493 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/WriterBasedGenerator.java
@@ -0,0 +1,1815 @@ +package org.codehaus.jackson.impl; + +import java.io.*; +import java.math.BigDecimal; +import java.math.BigInteger; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.io.*; +import org.codehaus.jackson.util.CharTypes; + +/** + * {@link JsonGenerator} that outputs JSON content using a {@link java.io.Writer} + * which handles character encoding. + */ +public final class WriterBasedGenerator + extends JsonGeneratorBase +{ + final protected static int SHORT_WRITE = 32; + + final protected static char[] HEX_CHARS = CharTypes.copyHexChars(); + + /** + * This is the default set of escape codes, over 7-bit ASCII range + * (first 128 character codes), used for single-byte UTF-8 characters. + */ + protected final static int[] sOutputEscapes = CharTypes.get7BitOutputEscapes(); + + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + final protected IOContext _ioContext; + + final protected Writer _writer; + + /* + /********************************************************** + /* Configuration, output escaping + /********************************************************** + */ + + /** + * Currently active set of output escape code definitions (whether + * and how to escape or not) for 7-bit ASCII range (first 128 + * character codes). Defined separately to make potentially + * customizable + */ + protected int[] _outputEscapes = sOutputEscapes; + + /** + * Value between 128 (0x80) and 65535 (0xFFFF) that indicates highest + * Unicode code point that will not need escaping; or 0 to indicate + * that all characters can be represented without escaping. + * Typically used to force escaping of some portion of character set; + * for example to always escape non-ASCII characters (if value was 127). + *<p> + * NOTE: not all sub-classes make use of this setting. + */ + protected int _maximumNonEscapedChar; + + /** + * Definition of custom character escapes to use for generators created + * by this factory, if any. If null, standard data format specific + * escapes are used. + * + * @since 1.8 + */ + protected CharacterEscapes _characterEscapes; + + /** + * When custom escapes are used, this member variable can be used to + * store escape to use + * + * @since 1.8 + */ + protected SerializableString _currentEscape; + + /* + /********************************************************** + /* Output buffering + /********************************************************** + */ + + /** + * Intermediate buffer in which contents are buffered before + * being written using {@link #_writer}. + */ + protected char[] _outputBuffer; + + /** + * Pointer to the first buffered character to output + */ + protected int _outputHead = 0; + + /** + * Pointer to the position right beyond the last character to output + * (end marker; may point to position right beyond the end of the buffer) + */ + protected int _outputTail = 0; + + /** + * End marker of the output buffer; one past the last valid position + * within the buffer. + */ + protected int _outputEnd; + + /** + * Short (14 char) temporary buffer allocated if needed, for constructing + * escape sequences + */ + protected char[] _entityBuffer; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + public WriterBasedGenerator(IOContext ctxt, int features, ObjectCodec codec, + Writer w) + { + super(features, codec); + _ioContext = ctxt; + _writer = w; + _outputBuffer = ctxt.allocConcatBuffer(); + _outputEnd = _outputBuffer.length; + + if (isEnabled(Feature.ESCAPE_NON_ASCII)) { + setHighestNonEscapedChar(127); + } + } + + /* + /********************************************************** + /* Overridden configuration methods + /********************************************************** + */ + + @Override + public JsonGenerator setHighestNonEscapedChar(int charCode) { + _maximumNonEscapedChar = (charCode < 0) ? 0 : charCode; + return this; + } + + @Override + public int getHighestEscapedChar() { + return _maximumNonEscapedChar; + } + + @Override + public JsonGenerator setCharacterEscapes(CharacterEscapes esc) + { + _characterEscapes = esc; + if (esc == null) { // revert to standard escapes + _outputEscapes = sOutputEscapes; + } else { + _outputEscapes = esc.getEscapeCodesForAscii(); + } + return this; + } + + /** + * Method for accessing custom escapes factory uses for {@link JsonGenerator}s + * it creates. + * + * @since 1.8 + */ + @Override + public CharacterEscapes getCharacterEscapes() { + return _characterEscapes; + } + + @Override + public Object getOutputTarget() { + return _writer; + } + + /* + /********************************************************** + /* Overridden methods + /********************************************************** + */ + + /* Most overrides in this section are just to make methods final, + * to allow better inlining... + */ + + @Override + public final void writeFieldName(String name) throws IOException, JsonGenerationException + { + int status = _writeContext.writeFieldName(name); + if (status == JsonWriteContext.STATUS_EXPECT_VALUE) { + _reportError("Can not write a field name, expecting a value"); + } + _writeFieldName(name, (status == JsonWriteContext.STATUS_OK_AFTER_COMMA)); + } + + @Override + public final void writeStringField(String fieldName, String value) + throws IOException, JsonGenerationException + { + writeFieldName(fieldName); + writeString(value); + } + + @Override + public final void writeFieldName(SerializedString name) + throws IOException, JsonGenerationException + { + // Object is a value, need to verify it's allowed + int status = _writeContext.writeFieldName(name.getValue()); + if (status == JsonWriteContext.STATUS_EXPECT_VALUE) { + _reportError("Can not write a field name, expecting a value"); + } + _writeFieldName(name, (status == JsonWriteContext.STATUS_OK_AFTER_COMMA)); + } + + @Override + public final void writeFieldName(SerializableString name) + throws IOException, JsonGenerationException + { + // Object is a value, need to verify it's allowed + int status = _writeContext.writeFieldName(name.getValue()); + if (status == JsonWriteContext.STATUS_EXPECT_VALUE) { + _reportError("Can not write a field name, expecting a value"); + } + _writeFieldName(name, (status == JsonWriteContext.STATUS_OK_AFTER_COMMA)); + } + + /* + /********************************************************** + /* Output method implementations, structural + /********************************************************** + */ + + @Override + public final void writeStartArray() throws IOException, JsonGenerationException + { + _verifyValueWrite("start an array"); + _writeContext = _writeContext.createChildArrayContext(); + if (_cfgPrettyPrinter != null) { + _cfgPrettyPrinter.writeStartArray(this); + } else { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '['; + } + } + + @Override + public final void writeEndArray() throws IOException, JsonGenerationException + { + if (!_writeContext.inArray()) { + _reportError("Current context not an ARRAY but "+_writeContext.getTypeDesc()); + } + if (_cfgPrettyPrinter != null) { + _cfgPrettyPrinter.writeEndArray(this, _writeContext.getEntryCount()); + } else { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = ']'; + } + _writeContext = _writeContext.getParent(); + } + + @Override + public final void writeStartObject() throws IOException, JsonGenerationException + { + _verifyValueWrite("start an object"); + _writeContext = _writeContext.createChildObjectContext(); + if (_cfgPrettyPrinter != null) { + _cfgPrettyPrinter.writeStartObject(this); + } else { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '{'; + } + } + + @Override + public final void writeEndObject() throws IOException, JsonGenerationException + { + if (!_writeContext.inObject()) { + _reportError("Current context not an object but "+_writeContext.getTypeDesc()); + } + if (_cfgPrettyPrinter != null) { + _cfgPrettyPrinter.writeEndObject(this, _writeContext.getEntryCount()); + } else { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '}'; + } + _writeContext = _writeContext.getParent(); + } + + protected void _writeFieldName(String name, boolean commaBefore) + throws IOException, JsonGenerationException + { + if (_cfgPrettyPrinter != null) { + _writePPFieldName(name, commaBefore); + return; + } + // for fast+std case, need to output up to 2 chars, comma, dquote + if ((_outputTail + 1) >= _outputEnd) { + _flushBuffer(); + } + if (commaBefore) { + _outputBuffer[_outputTail++] = ','; + } + + /* To support [JACKSON-46], we'll do this: + * (Question: should quoting of spaces (etc) still be enabled?) + */ + if (!isEnabled(Feature.QUOTE_FIELD_NAMES)) { + _writeString(name); + return; + } + + // we know there's room for at least one more char + _outputBuffer[_outputTail++] = '"'; + // The beef: + _writeString(name); + // and closing quotes; need room for one more char: + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + } + + public void _writeFieldName(SerializableString name, boolean commaBefore) + throws IOException, JsonGenerationException + { + if (_cfgPrettyPrinter != null) { + _writePPFieldName(name, commaBefore); + return; + } + // for fast+std case, need to output up to 2 chars, comma, dquote + if ((_outputTail + 1) >= _outputEnd) { + _flushBuffer(); + } + if (commaBefore) { + _outputBuffer[_outputTail++] = ','; + } + /* To support [JACKSON-46], we'll do this: + * (Question: should quoting of spaces (etc) still be enabled?) + */ + final char[] quoted = name.asQuotedChars(); + if (!isEnabled(Feature.QUOTE_FIELD_NAMES)) { + writeRaw(quoted, 0, quoted.length); + return; + } + // we know there's room for at least one more char + _outputBuffer[_outputTail++] = '"'; + // The beef: + final int qlen = quoted.length; + if ((_outputTail + qlen + 1) >= _outputEnd) { + writeRaw(quoted, 0, qlen); + // and closing quotes; need room for one more char: + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + } else { + System.arraycopy(quoted, 0, _outputBuffer, _outputTail, qlen); + _outputTail += qlen; + _outputBuffer[_outputTail++] = '"'; + } + } + + /** + * Specialized version of <code>_writeFieldName</code>, off-lined + * to keep the "fast path" as simple (and hopefully fast) as possible. + */ + protected final void _writePPFieldName(String name, boolean commaBefore) + throws IOException, JsonGenerationException + { + if (commaBefore) { + _cfgPrettyPrinter.writeObjectEntrySeparator(this); + } else { + _cfgPrettyPrinter.beforeObjectEntries(this); + } + + if (isEnabled(Feature.QUOTE_FIELD_NAMES)) { // standard + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + _writeString(name); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + } else { // non-standard, omit quotes + _writeString(name); + } + } + + protected final void _writePPFieldName(SerializableString name, boolean commaBefore) + throws IOException, JsonGenerationException + { + if (commaBefore) { + _cfgPrettyPrinter.writeObjectEntrySeparator(this); + } else { + _cfgPrettyPrinter.beforeObjectEntries(this); + } + + final char[] quoted = name.asQuotedChars(); + if (isEnabled(Feature.QUOTE_FIELD_NAMES)) { // standard + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + writeRaw(quoted, 0, quoted.length); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + } else { // non-standard, omit quotes + writeRaw(quoted, 0, quoted.length); + } + } + + /* + /********************************************************** + /* Output method implementations, textual + /********************************************************** + */ + + @Override + public void writeString(String text) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write text value"); + if (text == null) { + _writeNull(); + return; + } + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + _writeString(text); + // And finally, closing quotes + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + } + + @Override + public void writeString(char[] text, int offset, int len) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write text value"); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + _writeString(text, offset, len); + // And finally, closing quotes + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + } + + @Override + public final void writeString(SerializableString sstr) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write text value"); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + // Note: copied from writeRaw: + char[] text = sstr.asQuotedChars(); + final int len = text.length; + // Only worth buffering if it's a short write? + if (len < SHORT_WRITE) { + int room = _outputEnd - _outputTail; + if (len > room) { + _flushBuffer(); + } + System.arraycopy(text, 0, _outputBuffer, _outputTail, len); + _outputTail += len; + } else { + // Otherwise, better just pass through: + _flushBuffer(); + _writer.write(text, 0, len); + } + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + } + + @Override + public void writeRawUTF8String(byte[] text, int offset, int length) + throws IOException, JsonGenerationException + { + // could add support for buffering if we really want it... + _reportUnsupportedOperation(); + } + + @Override + public void writeUTF8String(byte[] text, int offset, int length) + throws IOException, JsonGenerationException + { + // could add support for buffering if we really want it... + _reportUnsupportedOperation(); + } + + /* + /********************************************************** + /* Output method implementations, unprocessed ("raw") + /********************************************************** + */ + + @Override + public void writeRaw(String text) + throws IOException, JsonGenerationException + { + // Nothing to check, can just output as is + int len = text.length(); + int room = _outputEnd - _outputTail; + + if (room == 0) { + _flushBuffer(); + room = _outputEnd - _outputTail; + } + // But would it nicely fit in? If yes, it's easy + if (room >= len) { + text.getChars(0, len, _outputBuffer, _outputTail); + _outputTail += len; + } else { + writeRawLong(text); + } + } + + @Override + public void writeRaw(String text, int start, int len) + throws IOException, JsonGenerationException + { + // Nothing to check, can just output as is + int room = _outputEnd - _outputTail; + + if (room < len) { + _flushBuffer(); + room = _outputEnd - _outputTail; + } + // But would it nicely fit in? If yes, it's easy + if (room >= len) { + text.getChars(start, start+len, _outputBuffer, _outputTail); + _outputTail += len; + } else { + writeRawLong(text.substring(start, start+len)); + } + } + + @Override + public void writeRaw(char[] text, int offset, int len) + throws IOException, JsonGenerationException + { + // Only worth buffering if it's a short write? + if (len < SHORT_WRITE) { + int room = _outputEnd - _outputTail; + if (len > room) { + _flushBuffer(); + } + System.arraycopy(text, offset, _outputBuffer, _outputTail, len); + _outputTail += len; + return; + } + // Otherwise, better just pass through: + _flushBuffer(); + _writer.write(text, offset, len); + } + + @Override + public void writeRaw(char c) + throws IOException, JsonGenerationException + { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = c; + } + + private void writeRawLong(String text) + throws IOException, JsonGenerationException + { + int room = _outputEnd - _outputTail; + // If not, need to do it by looping + text.getChars(0, room, _outputBuffer, _outputTail); + _outputTail += room; + _flushBuffer(); + int offset = room; + int len = text.length() - room; + + while (len > _outputEnd) { + int amount = _outputEnd; + text.getChars(offset, offset+amount, _outputBuffer, 0); + _outputHead = 0; + _outputTail = amount; + _flushBuffer(); + offset += amount; + len -= amount; + } + // And last piece (at most length of buffer) + text.getChars(offset, offset+len, _outputBuffer, 0); + _outputHead = 0; + _outputTail = len; + } + + /* + /********************************************************** + /* Output method implementations, base64-encoded binary + /********************************************************** + */ + + @Override + public void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write binary value"); + // Starting quotes + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + _writeBinary(b64variant, data, offset, offset+len); + // and closing quotes + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + } + + /* + /********************************************************** + /* Output method implementations, primitive + /********************************************************** + */ + + @Override + public void writeNumber(int i) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write number"); + if (_cfgNumbersAsStrings) { + _writeQuotedInt(i); + return; + } + // up to 10 digits and possible minus sign + if ((_outputTail + 11) >= _outputEnd) { + _flushBuffer(); + } + _outputTail = NumberOutput.outputInt(i, _outputBuffer, _outputTail); + } + + private final void _writeQuotedInt(int i) throws IOException { + if ((_outputTail + 13) >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + _outputTail = NumberOutput.outputInt(i, _outputBuffer, _outputTail); + _outputBuffer[_outputTail++] = '"'; + } + + @Override + public void writeNumber(long l) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write number"); + if (_cfgNumbersAsStrings) { + _writeQuotedLong(l); + return; + } + if ((_outputTail + 21) >= _outputEnd) { + // up to 20 digits, minus sign + _flushBuffer(); + } + _outputTail = NumberOutput.outputLong(l, _outputBuffer, _outputTail); + } + + private final void _writeQuotedLong(long l) throws IOException { + if ((_outputTail + 23) >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + _outputTail = NumberOutput.outputLong(l, _outputBuffer, _outputTail); + _outputBuffer[_outputTail++] = '"'; + } + + // !!! 05-Aug-2008, tatus: Any ways to optimize these? + + @Override + public void writeNumber(BigInteger value) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write number"); + if (value == null) { + _writeNull(); + } else if (_cfgNumbersAsStrings) { + _writeQuotedRaw(value); + } else { + writeRaw(value.toString()); + } + } + + + @Override + public void writeNumber(double d) + throws IOException, JsonGenerationException + { + if (_cfgNumbersAsStrings || + // [JACKSON-139] + (((Double.isNaN(d) || Double.isInfinite(d)) + && isEnabled(Feature.QUOTE_NON_NUMERIC_NUMBERS)))) { + writeString(String.valueOf(d)); + return; + } + // What is the max length for doubles? 40 chars? + _verifyValueWrite("write number"); + writeRaw(String.valueOf(d)); + } + + @Override + public void writeNumber(float f) + throws IOException, JsonGenerationException + { + if (_cfgNumbersAsStrings || + // [JACKSON-139] + (((Float.isNaN(f) || Float.isInfinite(f)) + && isEnabled(Feature.QUOTE_NON_NUMERIC_NUMBERS)))) { + writeString(String.valueOf(f)); + return; + } + // What is the max length for floats? + _verifyValueWrite("write number"); + writeRaw(String.valueOf(f)); + } + + @Override + public void writeNumber(BigDecimal value) + throws IOException, JsonGenerationException + { + // Don't really know max length for big decimal, no point checking + _verifyValueWrite("write number"); + if (value == null) { + _writeNull(); + } else if (_cfgNumbersAsStrings) { + _writeQuotedRaw(value); + } else { + writeRaw(value.toString()); + } + } + + @Override + public void writeNumber(String encodedValue) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write number"); + if (_cfgNumbersAsStrings) { + _writeQuotedRaw(encodedValue); + } else { + writeRaw(encodedValue); + } + } + + private final void _writeQuotedRaw(Object value) throws IOException + { + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + writeRaw(value.toString()); + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '"'; + } + + @Override + public void writeBoolean(boolean state) + throws IOException, JsonGenerationException + { + _verifyValueWrite("write boolean value"); + if ((_outputTail + 5) >= _outputEnd) { + _flushBuffer(); + } + int ptr = _outputTail; + char[] buf = _outputBuffer; + if (state) { + buf[ptr] = 't'; + buf[++ptr] = 'r'; + buf[++ptr] = 'u'; + buf[++ptr] = 'e'; + } else { + buf[ptr] = 'f'; + buf[++ptr] = 'a'; + buf[++ptr] = 'l'; + buf[++ptr] = 's'; + buf[++ptr] = 'e'; + } + _outputTail = ptr+1; + } + + @Override + public void writeNull() + throws IOException, JsonGenerationException + { + _verifyValueWrite("write null value"); + _writeNull(); + } + + /* + /********************************************************** + /* Implementations for other methods + /********************************************************** + */ + + @Override + protected final void _verifyValueWrite(String typeMsg) + throws IOException, JsonGenerationException + { + int status = _writeContext.writeValue(); + if (status == JsonWriteContext.STATUS_EXPECT_NAME) { + _reportError("Can not "+typeMsg+", expecting field name"); + } + if (_cfgPrettyPrinter == null) { + char c; + switch (status) { + case JsonWriteContext.STATUS_OK_AFTER_COMMA: + c = ','; + break; + case JsonWriteContext.STATUS_OK_AFTER_COLON: + c = ':'; + break; + case JsonWriteContext.STATUS_OK_AFTER_SPACE: + c = ' '; + break; + case JsonWriteContext.STATUS_OK_AS_IS: + default: + return; + } + if (_outputTail >= _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail] = c; + ++_outputTail; + return; + } + // Otherwise, pretty printer knows what to do... + _verifyPrettyValueWrite(typeMsg, status); + } + + protected final void _verifyPrettyValueWrite(String typeMsg, int status) + throws IOException, JsonGenerationException + { + // If we have a pretty printer, it knows what to do: + switch (status) { + case JsonWriteContext.STATUS_OK_AFTER_COMMA: // array + _cfgPrettyPrinter.writeArrayValueSeparator(this); + break; + case JsonWriteContext.STATUS_OK_AFTER_COLON: + _cfgPrettyPrinter.writeObjectFieldValueSeparator(this); + break; + case JsonWriteContext.STATUS_OK_AFTER_SPACE: + _cfgPrettyPrinter.writeRootValueSeparator(this); + break; + case JsonWriteContext.STATUS_OK_AS_IS: + // First entry, but of which context? + if (_writeContext.inArray()) { + _cfgPrettyPrinter.beforeArrayValues(this); + } else if (_writeContext.inObject()) { + _cfgPrettyPrinter.beforeObjectEntries(this); + } + break; + default: + _cantHappen(); + break; + } + } + + /* + /********************************************************** + /* Low-level output handling + /********************************************************** + */ + + @Override + public final void flush() + throws IOException + { + _flushBuffer(); + if (_writer != null) { + if (isEnabled(Feature.FLUSH_PASSED_TO_STREAM)) { + _writer.flush(); + } + } + } + + @Override + public void close() + throws IOException + { + super.close(); + + /* 05-Dec-2008, tatu: To add [JACKSON-27], need to close open + * scopes. + */ + // First: let's see that we still have buffers... + if (_outputBuffer != null + && isEnabled(Feature.AUTO_CLOSE_JSON_CONTENT)) { + while (true) { + JsonStreamContext ctxt = getOutputContext(); + if (ctxt.inArray()) { + writeEndArray(); + } else if (ctxt.inObject()) { + writeEndObject(); + } else { + break; + } + } + } + _flushBuffer(); + + /* 25-Nov-2008, tatus: As per [JACKSON-16] we are not to call close() + * on the underlying Reader, unless we "own" it, or auto-closing + * feature is enabled. + * One downside: when using UTF8Writer, underlying buffer(s) + * may not be properly recycled if we don't close the writer. + */ + if (_writer != null) { + if (_ioContext.isResourceManaged() || isEnabled(Feature.AUTO_CLOSE_TARGET)) { + _writer.close(); + } else if (isEnabled(Feature.FLUSH_PASSED_TO_STREAM)) { + // If we can't close it, we should at least flush + _writer.flush(); + } + } + // Internal buffer(s) generator has can now be released as well + _releaseBuffers(); + } + + @Override + protected void _releaseBuffers() + { + char[] buf = _outputBuffer; + if (buf != null) { + _outputBuffer = null; + _ioContext.releaseConcatBuffer(buf); + } + } + + /* + /********************************************************** + /* Internal methods, low-level writing; text, default + /********************************************************** + */ + + private void _writeString(String text) + throws IOException, JsonGenerationException + { + /* One check first: if String won't fit in the buffer, let's + * segment writes. No point in extending buffer to huge sizes + * (like if someone wants to include multi-megabyte base64 + * encoded stuff or such) + */ + final int len = text.length(); + if (len > _outputEnd) { // Let's reserve space for entity at begin/end + _writeLongString(text); + return; + } + + // Ok: we know String will fit in buffer ok + // But do we need to flush first? + if ((_outputTail + len) > _outputEnd) { + _flushBuffer(); + } + text.getChars(0, len, _outputBuffer, _outputTail); + + if (_characterEscapes != null) { + _writeStringCustom(len); + } else if (_maximumNonEscapedChar != 0) { + _writeStringASCII(len, _maximumNonEscapedChar); + } else { + _writeString2(len); + } + } + + private void _writeString2(final int len) + throws IOException, JsonGenerationException + { + // And then we'll need to verify need for escaping etc: + int end = _outputTail + len; + final int[] escCodes = _outputEscapes; + final int escLen = escCodes.length; + + output_loop: + while (_outputTail < end) { + // Fast loop for chars not needing escaping + escape_loop: + while (true) { + char c = _outputBuffer[_outputTail]; + if (c < escLen && escCodes[c] != 0) { + break escape_loop; + } + if (++_outputTail >= end) { + break output_loop; + } + } + + // Ok, bumped into something that needs escaping. + /* First things first: need to flush the buffer. + * Inlined, as we don't want to lose tail pointer + */ + int flushLen = (_outputTail - _outputHead); + if (flushLen > 0) { + _writer.write(_outputBuffer, _outputHead, flushLen); + } + /* In any case, tail will be the new start, so hopefully + * we have room now. + */ + char c = _outputBuffer[_outputTail++]; + _prependOrWriteCharacterEscape(c, escCodes[c]); + } + } + + /** + * Method called to write "long strings", strings whose length exceeds + * output buffer length. + */ + private void _writeLongString(String text) + throws IOException, JsonGenerationException + { + // First things first: let's flush the buffer to get some more room + _flushBuffer(); + + // Then we can write + final int textLen = text.length(); + int offset = 0; + do { + int max = _outputEnd; + int segmentLen = ((offset + max) > textLen) + ? (textLen - offset) : max; + text.getChars(offset, offset+segmentLen, _outputBuffer, 0); + if (_characterEscapes != null) { + _writeSegmentCustom(segmentLen); + } else if (_maximumNonEscapedChar != 0) { + _writeSegmentASCII(segmentLen, _maximumNonEscapedChar); + } else { + _writeSegment(segmentLen); + } + offset += segmentLen; + } while (offset < textLen); + } + + /** + * Method called to output textual context which has been copied + * to the output buffer prior to call. If any escaping is needed, + * it will also be handled by the method. + *<p> + * Note: when called, textual content to write is within output + * buffer, right after buffered content (if any). That's why only + * length of that text is passed, as buffer and offset are implied. + */ + private final void _writeSegment(int end) + throws IOException, JsonGenerationException + { + final int[] escCodes = _outputEscapes; + final int escLen = escCodes.length; + + int ptr = 0; + int start = ptr; + + output_loop: + while (ptr < end) { + // Fast loop for chars not needing escaping + char c; + while (true) { + c = _outputBuffer[ptr]; + if (c < escLen && escCodes[c] != 0) { + break; + } + if (++ptr >= end) { + break; + } + } + + // Ok, bumped into something that needs escaping. + /* First things first: need to flush the buffer. + * Inlined, as we don't want to lose tail pointer + */ + int flushLen = (ptr - start); + if (flushLen > 0) { + _writer.write(_outputBuffer, start, flushLen); + if (ptr >= end) { + break output_loop; + } + } + ++ptr; + // So; either try to prepend (most likely), or write directly: + start = _prependOrWriteCharacterEscape(_outputBuffer, ptr, end, c, escCodes[c]); + } + } + + /** + * This method called when the string content is already in + * a char buffer, and need not be copied for processing. + */ + private final void _writeString(char[] text, int offset, int len) + throws IOException, JsonGenerationException + { + if (_characterEscapes != null) { + _writeStringCustom(text, offset, len); + return; + } + if (_maximumNonEscapedChar != 0) { + _writeStringASCII(text, offset, len, _maximumNonEscapedChar); + return; + } + + /* Let's just find longest spans of non-escapable + * content, and for each see if it makes sense + * to copy them, or write through + */ + len += offset; // -> len marks the end from now on + final int[] escCodes = _outputEscapes; + final int escLen = escCodes.length; + while (offset < len) { + int start = offset; + + while (true) { + char c = text[offset]; + if (c < escLen && escCodes[c] != 0) { + break; + } + if (++offset >= len) { + break; + } + } + + // Short span? Better just copy it to buffer first: + int newAmount = offset - start; + if (newAmount < SHORT_WRITE) { + // Note: let's reserve room for escaped char (up to 6 chars) + if ((_outputTail + newAmount) > _outputEnd) { + _flushBuffer(); + } + if (newAmount > 0) { + System.arraycopy(text, start, _outputBuffer, _outputTail, newAmount); + _outputTail += newAmount; + } + } else { // Nope: better just write through + _flushBuffer(); + _writer.write(text, start, newAmount); + } + // Was this the end? + if (offset >= len) { // yup + break; + } + // Nope, need to escape the char. + char c = text[offset++]; + _appendCharacterEscape(c, escCodes[c]); + } + } + + /* + /********************************************************** + /* Internal methods, low-level writing, text segment + /* with additional escaping (ASCII or such) + /* (since 1.8; see [JACKSON-102]) + /********************************************************** + */ + + /* Same as "_writeString2()", except needs additional escaping + * for subset of characters + */ + private void _writeStringASCII(final int len, final int maxNonEscaped) + throws IOException, JsonGenerationException + { + // And then we'll need to verify need for escaping etc: + int end = _outputTail + len; + final int[] escCodes = _outputEscapes; + final int escLimit = Math.min(escCodes.length, maxNonEscaped+1); + int escCode = 0; + + output_loop: + while (_outputTail < end) { + char c; + // Fast loop for chars not needing escaping + escape_loop: + while (true) { + c = _outputBuffer[_outputTail]; + if (c < escLimit) { + escCode = escCodes[c]; + if (escCode != 0) { + break escape_loop; + } + } else if (c > maxNonEscaped) { + escCode = CharacterEscapes.ESCAPE_STANDARD; + break escape_loop; + } + if (++_outputTail >= end) { + break output_loop; + } + } + int flushLen = (_outputTail - _outputHead); + if (flushLen > 0) { + _writer.write(_outputBuffer, _outputHead, flushLen); + } + ++_outputTail; + _prependOrWriteCharacterEscape(c, escCode); + } + } + + private final void _writeSegmentASCII(int end, final int maxNonEscaped) + throws IOException, JsonGenerationException + { + final int[] escCodes = _outputEscapes; + final int escLimit = Math.min(escCodes.length, maxNonEscaped+1); + + int ptr = 0; + int escCode = 0; + int start = ptr; + + output_loop: + while (ptr < end) { + // Fast loop for chars not needing escaping + char c; + while (true) { + c = _outputBuffer[ptr]; + if (c < escLimit) { + escCode = escCodes[c]; + if (escCode != 0) { + break; + } + } else if (c > maxNonEscaped) { + escCode = CharacterEscapes.ESCAPE_STANDARD; + break; + } + if (++ptr >= end) { + break; + } + } + int flushLen = (ptr - start); + if (flushLen > 0) { + _writer.write(_outputBuffer, start, flushLen); + if (ptr >= end) { + break output_loop; + } + } + ++ptr; + start = _prependOrWriteCharacterEscape(_outputBuffer, ptr, end, c, escCode); + } + } + + private final void _writeStringASCII(char[] text, int offset, int len, + final int maxNonEscaped) + throws IOException, JsonGenerationException + { + len += offset; // -> len marks the end from now on + final int[] escCodes = _outputEscapes; + final int escLimit = Math.min(escCodes.length, maxNonEscaped+1); + + int escCode = 0; + + while (offset < len) { + int start = offset; + char c; + + while (true) { + c = text[offset]; + if (c < escLimit) { + escCode = escCodes[c]; + if (escCode != 0) { + break; + } + } else if (c > maxNonEscaped) { + escCode = CharacterEscapes.ESCAPE_STANDARD; + break; + } + if (++offset >= len) { + break; + } + } + + // Short span? Better just copy it to buffer first: + int newAmount = offset - start; + if (newAmount < SHORT_WRITE) { + // Note: let's reserve room for escaped char (up to 6 chars) + if ((_outputTail + newAmount) > _outputEnd) { + _flushBuffer(); + } + if (newAmount > 0) { + System.arraycopy(text, start, _outputBuffer, _outputTail, newAmount); + _outputTail += newAmount; + } + } else { // Nope: better just write through + _flushBuffer(); + _writer.write(text, start, newAmount); + } + // Was this the end? + if (offset >= len) { // yup + break; + } + // Nope, need to escape the char. + ++offset; + _appendCharacterEscape(c, escCode); + } + } + + /* + /********************************************************** + /* Internal methods, low-level writing, text segment + /* with custom escaping (possibly coupling with ASCII limits) + /* (since 1.8; see [JACKSON-106]) + /********************************************************** + */ + + /* Same as "_writeString2()", except needs additional escaping + * for subset of characters + */ + private void _writeStringCustom(final int len) + throws IOException, JsonGenerationException + { + // And then we'll need to verify need for escaping etc: + int end = _outputTail + len; + final int[] escCodes = _outputEscapes; + final int maxNonEscaped = (_maximumNonEscapedChar < 1) ? 0xFFFF : _maximumNonEscapedChar; + final int escLimit = Math.min(escCodes.length, maxNonEscaped+1); + int escCode = 0; + final CharacterEscapes customEscapes = _characterEscapes; + + output_loop: + while (_outputTail < end) { + char c; + // Fast loop for chars not needing escaping + escape_loop: + while (true) { + c = _outputBuffer[_outputTail]; + if (c < escLimit) { + escCode = escCodes[c]; + if (escCode != 0) { + break escape_loop; + } + } else if (c > maxNonEscaped) { + escCode = CharacterEscapes.ESCAPE_STANDARD; + break escape_loop; + } else { + if ((_currentEscape = customEscapes.getEscapeSequence(c)) != null) { + escCode = CharacterEscapes.ESCAPE_CUSTOM; + break escape_loop; + } + } + if (++_outputTail >= end) { + break output_loop; + } + } + int flushLen = (_outputTail - _outputHead); + if (flushLen > 0) { + _writer.write(_outputBuffer, _outputHead, flushLen); + } + ++_outputTail; + _prependOrWriteCharacterEscape(c, escCode); + } + } + + private final void _writeSegmentCustom(int end) + throws IOException, JsonGenerationException + { + final int[] escCodes = _outputEscapes; + final int maxNonEscaped = (_maximumNonEscapedChar < 1) ? 0xFFFF : _maximumNonEscapedChar; + final int escLimit = Math.min(escCodes.length, maxNonEscaped+1); + final CharacterEscapes customEscapes = _characterEscapes; + + int ptr = 0; + int escCode = 0; + int start = ptr; + + output_loop: + while (ptr < end) { + // Fast loop for chars not needing escaping + char c; + while (true) { + c = _outputBuffer[ptr]; + if (c < escLimit) { + escCode = escCodes[c]; + if (escCode != 0) { + break; + } + } else if (c > maxNonEscaped) { + escCode = CharacterEscapes.ESCAPE_STANDARD; + break; + } else { + if ((_currentEscape = customEscapes.getEscapeSequence(c)) != null) { + escCode = CharacterEscapes.ESCAPE_CUSTOM; + break; + } + } + if (++ptr >= end) { + break; + } + } + int flushLen = (ptr - start); + if (flushLen > 0) { + _writer.write(_outputBuffer, start, flushLen); + if (ptr >= end) { + break output_loop; + } + } + ++ptr; + start = _prependOrWriteCharacterEscape(_outputBuffer, ptr, end, c, escCode); + } + } + + private final void _writeStringCustom(char[] text, int offset, int len) + throws IOException, JsonGenerationException + { + len += offset; // -> len marks the end from now on + final int[] escCodes = _outputEscapes; + final int maxNonEscaped = (_maximumNonEscapedChar < 1) ? 0xFFFF : _maximumNonEscapedChar; + final int escLimit = Math.min(escCodes.length, maxNonEscaped+1); + final CharacterEscapes customEscapes = _characterEscapes; + + int escCode = 0; + + while (offset < len) { + int start = offset; + char c; + + while (true) { + c = text[offset]; + if (c < escLimit) { + escCode = escCodes[c]; + if (escCode != 0) { + break; + } + } else if (c > maxNonEscaped) { + escCode = CharacterEscapes.ESCAPE_STANDARD; + break; + } else { + if ((_currentEscape = customEscapes.getEscapeSequence(c)) != null) { + escCode = CharacterEscapes.ESCAPE_CUSTOM; + break; + } + } + if (++offset >= len) { + break; + } + } + + // Short span? Better just copy it to buffer first: + int newAmount = offset - start; + if (newAmount < SHORT_WRITE) { + // Note: let's reserve room for escaped char (up to 6 chars) + if ((_outputTail + newAmount) > _outputEnd) { + _flushBuffer(); + } + if (newAmount > 0) { + System.arraycopy(text, start, _outputBuffer, _outputTail, newAmount); + _outputTail += newAmount; + } + } else { // Nope: better just write through + _flushBuffer(); + _writer.write(text, start, newAmount); + } + // Was this the end? + if (offset >= len) { // yup + break; + } + // Nope, need to escape the char. + ++offset; + _appendCharacterEscape(c, escCode); + } + } + + /* + /********************************************************** + /* Internal methods, low-level writing; binary + /********************************************************** + */ + + protected void _writeBinary(Base64Variant b64variant, byte[] input, int inputPtr, final int inputEnd) + throws IOException, JsonGenerationException + { + // Encoding is by chunks of 3 input, 4 output chars, so: + int safeInputEnd = inputEnd - 3; + // Let's also reserve room for possible (and quoted) lf char each round + int safeOutputEnd = _outputEnd - 6; + int chunksBeforeLF = b64variant.getMaxLineLength() >> 2; + + // Ok, first we loop through all full triplets of data: + while (inputPtr <= safeInputEnd) { + if (_outputTail > safeOutputEnd) { // need to flush + _flushBuffer(); + } + // First, mash 3 bytes into lsb of 32-bit int + int b24 = ((int) input[inputPtr++]) << 8; + b24 |= ((int) input[inputPtr++]) & 0xFF; + b24 = (b24 << 8) | (((int) input[inputPtr++]) & 0xFF); + _outputTail = b64variant.encodeBase64Chunk(b24, _outputBuffer, _outputTail); + if (--chunksBeforeLF <= 0) { + // note: must quote in JSON value + _outputBuffer[_outputTail++] = '\\'; + _outputBuffer[_outputTail++] = 'n'; + chunksBeforeLF = b64variant.getMaxLineLength() >> 2; + } + } + + // And then we may have 1 or 2 leftover bytes to encode + int inputLeft = inputEnd - inputPtr; // 0, 1 or 2 + if (inputLeft > 0) { // yes, but do we have room for output? + if (_outputTail > safeOutputEnd) { // don't really need 6 bytes but... + _flushBuffer(); + } + int b24 = ((int) input[inputPtr++]) << 16; + if (inputLeft == 2) { + b24 |= (((int) input[inputPtr++]) & 0xFF) << 8; + } + _outputTail = b64variant.encodeBase64Partial(b24, inputLeft, _outputBuffer, _outputTail); + } + } + + /* + /********************************************************** + /* Internal methods, low-level writing, other + /********************************************************** + */ + + private final void _writeNull() throws IOException + { + if ((_outputTail + 4) >= _outputEnd) { + _flushBuffer(); + } + int ptr = _outputTail; + char[] buf = _outputBuffer; + buf[ptr] = 'n'; + buf[++ptr] = 'u'; + buf[++ptr] = 'l'; + buf[++ptr] = 'l'; + _outputTail = ptr+1; + } + + /* + /********************************************************** + /* Internal methods, low-level writing, escapes + /********************************************************** + */ + + /** + * Method called to try to either prepend character escape at front of + * given buffer; or if not possible, to write it out directly. + * Uses head and tail pointers (and updates as necessary) + */ + private final void _prependOrWriteCharacterEscape(char ch, int escCode) + throws IOException, JsonGenerationException + { + if (escCode >= 0) { // \\N (2 char) + if (_outputTail >= 2) { // fits, just prepend + int ptr = _outputTail - 2; + _outputHead = ptr; + _outputBuffer[ptr++] = '\\'; + _outputBuffer[ptr] = (char) escCode; + return; + } + // won't fit, write + char[] buf = _entityBuffer; + if (buf == null) { + buf = _allocateEntityBuffer(); + } + _outputHead = _outputTail; + buf[1] = (char) escCode; + _writer.write(buf, 0, 2); + return; + } + if (escCode != CharacterEscapes.ESCAPE_CUSTOM) { // std, \\uXXXX + if (_outputTail >= 6) { // fits, prepend to buffer + char[] buf = _outputBuffer; + int ptr = _outputTail - 6; + _outputHead = ptr; + buf[ptr] = '\\'; + buf[++ptr] = 'u'; + // We know it's a control char, so only the last 2 chars are non-0 + if (ch > 0xFF) { // beyond 8 bytes + int hi = (ch >> 8) & 0xFF; + buf[++ptr] = HEX_CHARS[hi >> 4]; + buf[++ptr] = HEX_CHARS[hi & 0xF]; + ch &= 0xFF; + } else { + buf[++ptr] = '0'; + buf[++ptr] = '0'; + } + buf[++ptr] = HEX_CHARS[ch >> 4]; + buf[++ptr] = HEX_CHARS[ch & 0xF]; + return; + } + // won't fit, flush and write + char[] buf = _entityBuffer; + if (buf == null) { + buf = _allocateEntityBuffer(); + } + _outputHead = _outputTail; + if (ch > 0xFF) { // beyond 8 bytes + int hi = (ch >> 8) & 0xFF; + int lo = ch & 0xFF; + buf[10] = HEX_CHARS[hi >> 4]; + buf[11] = HEX_CHARS[hi & 0xF]; + buf[12] = HEX_CHARS[lo >> 4]; + buf[13] = HEX_CHARS[lo & 0xF]; + _writer.write(buf, 8, 6); + } else { // We know it's a control char, so only the last 2 chars are non-0 + buf[6] = HEX_CHARS[ch >> 4]; + buf[7] = HEX_CHARS[ch & 0xF]; + _writer.write(buf, 2, 6); + } + return; + } + String escape; + + if (_currentEscape == null) { + escape = _characterEscapes.getEscapeSequence(ch).getValue(); + } else { + escape = _currentEscape.getValue(); + _currentEscape = null; + } + int len = escape.length(); + if (_outputTail >= len) { // fits in, prepend + int ptr = _outputTail - len; + _outputHead = ptr; + escape.getChars(0, len, _outputBuffer, ptr); + return; + } + // won't fit, write separately + _outputHead = _outputTail; + _writer.write(escape); + } + + /** + * Method called to try to either prepend character escape at front of + * given buffer; or if not possible, to write it out directly. + * + * @return Pointer to start of prepended entity (if prepended); or 'ptr' + * if not. + */ + private final int _prependOrWriteCharacterEscape(char[] buffer, int ptr, int end, + char ch, int escCode) + throws IOException, JsonGenerationException + { + if (escCode >= 0) { // \\N (2 char) + if (ptr > 1 && ptr < end) { // fits, just prepend + ptr -= 2; + buffer[ptr] = '\\'; + buffer[ptr+1] = (char) escCode; + } else { // won't fit, write + char[] ent = _entityBuffer; + if (ent == null) { + ent = _allocateEntityBuffer(); + } + ent[1] = (char) escCode; + _writer.write(ent, 0, 2); + } + return ptr; + } + if (escCode != CharacterEscapes.ESCAPE_CUSTOM) { // std, \\uXXXX + if (ptr > 5 && ptr < end) { // fits, prepend to buffer + ptr -= 6; + buffer[ptr++] = '\\'; + buffer[ptr++] = 'u'; + // We know it's a control char, so only the last 2 chars are non-0 + if (ch > 0xFF) { // beyond 8 bytes + int hi = (ch >> 8) & 0xFF; + buffer[ptr++] = HEX_CHARS[hi >> 4]; + buffer[ptr++] = HEX_CHARS[hi & 0xF]; + ch &= 0xFF; + } else { + buffer[ptr++] = '0'; + buffer[ptr++] = '0'; + } + buffer[ptr++] = HEX_CHARS[ch >> 4]; + buffer[ptr] = HEX_CHARS[ch & 0xF]; + ptr -= 5; + } else { + // won't fit, flush and write + char[] ent = _entityBuffer; + if (ent == null) { + ent = _allocateEntityBuffer(); + } + _outputHead = _outputTail; + if (ch > 0xFF) { // beyond 8 bytes + int hi = (ch >> 8) & 0xFF; + int lo = ch & 0xFF; + ent[10] = HEX_CHARS[hi >> 4]; + ent[11] = HEX_CHARS[hi & 0xF]; + ent[12] = HEX_CHARS[lo >> 4]; + ent[13] = HEX_CHARS[lo & 0xF]; + _writer.write(ent, 8, 6); + } else { // We know it's a control char, so only the last 2 chars are non-0 + ent[6] = HEX_CHARS[ch >> 4]; + ent[7] = HEX_CHARS[ch & 0xF]; + _writer.write(ent, 2, 6); + } + } + return ptr; + } + String escape; + if (_currentEscape == null) { + escape = _characterEscapes.getEscapeSequence(ch).getValue(); + } else { + escape = _currentEscape.getValue(); + _currentEscape = null; + } + int len = escape.length(); + if (ptr >= len && ptr < end) { // fits in, prepend + ptr -= len; + escape.getChars(0, len, buffer, ptr); + } else { // won't fit, write separately + _writer.write(escape); + } + return ptr; + } + + /** + * Method called to append escape sequence for given character, at the + * end of standard output buffer; or if not possible, write out directly. + */ + private final void _appendCharacterEscape(char ch, int escCode) + throws IOException, JsonGenerationException + { + if (escCode >= 0) { // \\N (2 char) + if ((_outputTail + 2) > _outputEnd) { + _flushBuffer(); + } + _outputBuffer[_outputTail++] = '\\'; + _outputBuffer[_outputTail++] = (char) escCode; + return; + } + if (escCode != CharacterEscapes.ESCAPE_CUSTOM) { // std, \\uXXXX + if ((_outputTail + 2) > _outputEnd) { + _flushBuffer(); + } + int ptr = _outputTail; + char[] buf = _outputBuffer; + buf[ptr++] = '\\'; + buf[ptr++] = 'u'; + // We know it's a control char, so only the last 2 chars are non-0 + if (ch > 0xFF) { // beyond 8 bytes + int hi = (ch >> 8) & 0xFF; + buf[ptr++] = HEX_CHARS[hi >> 4]; + buf[ptr++] = HEX_CHARS[hi & 0xF]; + ch &= 0xFF; + } else { + buf[ptr++] = '0'; + buf[ptr++] = '0'; + } + buf[ptr++] = HEX_CHARS[ch >> 4]; + buf[ptr] = HEX_CHARS[ch & 0xF]; + _outputTail = ptr; + return; + } + String escape; + if (_currentEscape == null) { + escape = _characterEscapes.getEscapeSequence(ch).getValue(); + } else { + escape = _currentEscape.getValue(); + _currentEscape = null; + } + int len = escape.length(); + if ((_outputTail + len) > _outputEnd) { + _flushBuffer(); + if (len > _outputEnd) { // very very long escape; unlikely but theoretically possible + _writer.write(escape); + return; + } + } + escape.getChars(0, len, _outputBuffer, _outputTail); + _outputTail += len; + } + + private char[] _allocateEntityBuffer() + { + char[] buf = new char[14]; + // first 2 chars, non-numeric escapes (like \n) + buf[0] = '\\'; + // next 6; 8-bit escapes (control chars mostly) + buf[2] = '\\'; + buf[3] = 'u'; + buf[4] = '0'; + buf[5] = '0'; + // last 6, beyond 8 bits + buf[8] = '\\'; + buf[9] = 'u'; + _entityBuffer = buf; + return buf; + } + + protected final void _flushBuffer() throws IOException + { + int len = _outputTail - _outputHead; + if (len > 0) { + int offset = _outputHead; + _outputTail = _outputHead = 0; + _writer.write(_outputBuffer, offset, len); + } + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/impl/package-info.java b/1.9.10/src/java/org/codehaus/jackson/impl/package-info.java new file mode 100644 index 0000000..3856ae8 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/impl/package-info.java
@@ -0,0 +1,6 @@ +/** + * Parser and generator implementation classes that Jackson + * defines and uses. + * Application code should not (need to) use contents of this package. + */ +package org.codehaus.jackson.impl;
diff --git a/1.9.10/src/java/org/codehaus/jackson/io/BaseReader.java b/1.9.10/src/java/org/codehaus/jackson/io/BaseReader.java new file mode 100644 index 0000000..0d87c03 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/io/BaseReader.java
@@ -0,0 +1,117 @@ + +package org.codehaus.jackson.io; + +import java.io.*; + + +/** + * Simple basic class for optimized readers in this package; implements + * "cookie-cutter" methods that are used by all actual implementations. + */ +abstract class BaseReader + extends Reader +{ + /** + * JSON actually limits available Unicode range in the high end + * to the same as xml (to basically limit UTF-8 max byte sequence + * length to 4) + */ + final protected static int LAST_VALID_UNICODE_CHAR = 0x10FFFF; + + final protected static char NULL_CHAR = (char) 0; + final protected static char NULL_BYTE = (byte) 0; + + final protected IOContext _context; + + protected InputStream _in; + + protected byte[] _buffer; + + protected int _ptr; + protected int _length; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + protected BaseReader(IOContext context, + InputStream in, byte[] buf, int ptr, int len) + { + _context = context; + _in = in; + _buffer = buf; + _ptr = ptr; + _length = len; + } + + /* + /********************************************************** + /* Reader API + /********************************************************** + */ + + @Override + public void close() throws IOException + { + InputStream in = _in; + + if (in != null) { + _in = null; + freeBuffers(); + in.close(); + } + } + + protected char[] _tmpBuf = null; + + /** + * Although this method is implemented by the base class, AND it should + * never be called by main code, let's still implement it bit more + * efficiently just in case + */ + @Override + public int read() throws IOException + { + if (_tmpBuf == null) { + _tmpBuf = new char[1]; + } + if (read(_tmpBuf, 0, 1) < 1) { + return -1; + } + return _tmpBuf[0]; + } + + /* + /********************************************************** + /* Internal/package methods: + /********************************************************** + */ + + /** + * This method should be called along with (or instead of) normal + * close. After calling this method, no further reads should be tried. + * Method will try to recycle read buffers (if any). + */ + public final void freeBuffers() + { + byte[] buf = _buffer; + if (buf != null) { + _buffer = null; + _context.releaseReadIOBuffer(buf); + } + } + + protected void reportBounds(char[] cbuf, int start, int len) + throws IOException + { + throw new ArrayIndexOutOfBoundsException("read(buf,"+start+","+len+"), cbuf["+cbuf.length+"]"); + } + + protected void reportStrangeStream() + throws IOException + { + throw new IOException("Strange I/O stream, returned 0 bytes on read"); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/io/CharacterEscapes.java b/1.9.10/src/java/org/codehaus/jackson/io/CharacterEscapes.java new file mode 100644 index 0000000..ae87a1e --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/io/CharacterEscapes.java
@@ -0,0 +1,73 @@ +package org.codehaus.jackson.io; + +import org.codehaus.jackson.SerializableString; +import org.codehaus.jackson.util.CharTypes; + +/** + * Abstract base class that defines interface for customizing character + * escaping aspects for String values, for formats that use escaping. + * For JSON this applies to both property names and String values. + * + * @since 1.8 + */ +public abstract class CharacterEscapes +{ + /** + * Value used for lookup tables to indicate that matching characters + * do not need to be escaped. + */ + public final static int ESCAPE_NONE = 0; + + /** + * Value used for lookup tables to indicate that matching characters + * are to be escaped using standard escaping; for JSON this means + * (for example) using "backslash - u" escape method. + */ + public final static int ESCAPE_STANDARD = -1; + + /** + * Value used for lookup tables to indicate that matching characters + * will need custom escapes; and that another call + * to {@link #getEscapeSequence} is needed to figure out exact escape + * sequence to output. + */ + public final static int ESCAPE_CUSTOM = -2; + + /** + * Method generators can call to get lookup table for determining + * escape handling for first 128 characters of Unicode (ASCII + * characters. Caller is not to modify contents of this array, since + * this is expected to be a shared copy. + * + * @return Array with size of at least 128, where first 128 entries + * have either one of <code>ESCAPE_xxx</code> constants, or non-zero positive + * integer (meaning of which is data format specific; for JSON it means + * that combination of backslash and character with that value is to be used) + * to indicate that specific escape sequence is to be used. + */ + public abstract int[] getEscapeCodesForAscii(); + + /** + * Method generators can call to get lookup table for determining + * exact escape sequence to use for given character. + * It can be called for any character, but typically is called for + * either for ASCII characters for which custom escape + * sequence is needed; or for any non-ASCII character. + */ + public abstract SerializableString getEscapeSequence(int ch); + + /** + * Helper method that can be used to get a copy of standard JSON + * escape definitions; this is useful when just wanting to slightly + * customize definitions. Caller can modify this array as it sees + * fit and usually returns modified instance via {@link #getEscapeCodesForAscii} + */ + public static int[] standardAsciiEscapesForJSON() + { + int[] esc = CharTypes.get7BitOutputEscapes(); + int len = esc.length; + int[] result = new int[len]; + System.arraycopy(esc, 0, result, 0, esc.length); + return result; + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/io/IOContext.java b/1.9.10/src/java/org/codehaus/jackson/io/IOContext.java new file mode 100644 index 0000000..c9df984 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/io/IOContext.java
@@ -0,0 +1,239 @@ +package org.codehaus.jackson.io; + +import org.codehaus.jackson.JsonEncoding; +import org.codehaus.jackson.util.BufferRecycler; +import org.codehaus.jackson.util.TextBuffer; + +/** + * To limit number of configuration and state objects to pass, all + * contextual objects that need to be passed by the factory to + * readers and writers are combined under this object. One instance + * is created for each reader and writer. + */ +public final class IOContext +{ + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + /** + * Reference to the source object, which can be used for displaying + * location information + */ + protected final Object _sourceRef; + + /** + * Encoding used by the underlying stream, if known. + */ + protected JsonEncoding _encoding; + + /** + * Flag that indicates whether underlying input/output source/target + * object is fully managed by the owner of this context (parser or + * generator). If true, it is, and is to be closed by parser/generator; + * if false, calling application has to do closing (unless auto-closing + * feature is enabled for the parser/generator in question; in which + * case it acts like the owner). + */ + protected final boolean _managedResource; + + /* + /********************************************************** + /* Buffer handling, recycling + /********************************************************** + */ + + /** + * Recycler used for actual allocation/deallocation/reuse + */ + protected final BufferRecycler _bufferRecycler; + + /** + * Reference to the allocated I/O buffer for low-level input reading, + * if any allocated. + */ + protected byte[] _readIOBuffer = null; + + /** + * Reference to the allocated I/O buffer used for low-level + * encoding-related buffering. + */ + protected byte[] _writeEncodingBuffer = null; + + /** + * Reference to the buffer allocated for tokenization purposes, + * in which character input is read, and from which it can be + * further returned. + */ + protected char[] _tokenCBuffer = null; + + /** + * Reference to the buffer allocated for buffering it for + * output, before being encoded: generally this means concatenating + * output, then encoding when buffer fills up. + */ + protected char[] _concatCBuffer = null; + + /** + * Reference temporary buffer Parser instances need if calling + * app decides it wants to access name via 'getTextCharacters' method. + * Regular text buffer can not be used as it may contain textual + * representation of the value token. + */ + protected char[] _nameCopyBuffer = null; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + public IOContext(BufferRecycler br, Object sourceRef, boolean managedResource) + { + _bufferRecycler = br; + _sourceRef = sourceRef; + _managedResource = managedResource; + } + + public void setEncoding(JsonEncoding enc) + { + _encoding = enc; + } + + /* + /********************************************************** + /* Public API, accessors + /********************************************************** + */ + + public final Object getSourceReference() { return _sourceRef; } + public final JsonEncoding getEncoding() { return _encoding; } + public final boolean isResourceManaged() { return _managedResource; } + + /* + /********************************************************** + /* Public API, buffer management + /********************************************************** + */ + + public final TextBuffer constructTextBuffer() { + return new TextBuffer(_bufferRecycler); + } + + /** + *<p> + * Note: the method can only be called once during its life cycle. + * This is to protect against accidental sharing. + */ + public final byte[] allocReadIOBuffer() + { + if (_readIOBuffer != null) { + throw new IllegalStateException("Trying to call allocReadIOBuffer() second time"); + } + _readIOBuffer = _bufferRecycler.allocByteBuffer(BufferRecycler.ByteBufferType.READ_IO_BUFFER); + return _readIOBuffer; + } + + public final byte[] allocWriteEncodingBuffer() + { + if (_writeEncodingBuffer != null) { + throw new IllegalStateException("Trying to call allocWriteEncodingBuffer() second time"); + } + _writeEncodingBuffer = _bufferRecycler.allocByteBuffer(BufferRecycler.ByteBufferType.WRITE_ENCODING_BUFFER); + return _writeEncodingBuffer; + } + + public final char[] allocTokenBuffer() + { + if (_tokenCBuffer != null) { + throw new IllegalStateException("Trying to call allocTokenBuffer() second time"); + } + _tokenCBuffer = _bufferRecycler.allocCharBuffer(BufferRecycler.CharBufferType.TOKEN_BUFFER); + return _tokenCBuffer; + } + + public final char[] allocConcatBuffer() + { + if (_concatCBuffer != null) { + throw new IllegalStateException("Trying to call allocConcatBuffer() second time"); + } + _concatCBuffer = _bufferRecycler.allocCharBuffer(BufferRecycler.CharBufferType.CONCAT_BUFFER); + return _concatCBuffer; + } + + public final char[] allocNameCopyBuffer(int minSize) + { + if (_nameCopyBuffer != null) { + throw new IllegalStateException("Trying to call allocNameCopyBuffer() second time"); + } + _nameCopyBuffer = _bufferRecycler.allocCharBuffer(BufferRecycler.CharBufferType.NAME_COPY_BUFFER, minSize); + return _nameCopyBuffer; + } + + /** + * Method to call when all the processing buffers can be safely + * recycled. + */ + public final void releaseReadIOBuffer(byte[] buf) + { + if (buf != null) { + /* Let's do sanity checks to ensure once-and-only-once release, + * as well as avoiding trying to release buffers not owned + */ + if (buf != _readIOBuffer) { + throw new IllegalArgumentException("Trying to release buffer not owned by the context"); + } + _readIOBuffer = null; + _bufferRecycler.releaseByteBuffer(BufferRecycler.ByteBufferType.READ_IO_BUFFER, buf); + } + } + + public final void releaseWriteEncodingBuffer(byte[] buf) + { + if (buf != null) { + /* Let's do sanity checks to ensure once-and-only-once release, + * as well as avoiding trying to release buffers not owned + */ + if (buf != _writeEncodingBuffer) { + throw new IllegalArgumentException("Trying to release buffer not owned by the context"); + } + _writeEncodingBuffer = null; + _bufferRecycler.releaseByteBuffer(BufferRecycler.ByteBufferType.WRITE_ENCODING_BUFFER, buf); + } + } + + public final void releaseTokenBuffer(char[] buf) + { + if (buf != null) { + if (buf != _tokenCBuffer) { + throw new IllegalArgumentException("Trying to release buffer not owned by the context"); + } + _tokenCBuffer = null; + _bufferRecycler.releaseCharBuffer(BufferRecycler.CharBufferType.TOKEN_BUFFER, buf); + } + } + + public final void releaseConcatBuffer(char[] buf) + { + if (buf != null) { + if (buf != _concatCBuffer) { + throw new IllegalArgumentException("Trying to release buffer not owned by the context"); + } + _concatCBuffer = null; + _bufferRecycler.releaseCharBuffer(BufferRecycler.CharBufferType.CONCAT_BUFFER, buf); + } + } + + public final void releaseNameCopyBuffer(char[] buf) + { + if (buf != null) { + if (buf != _nameCopyBuffer) { + throw new IllegalArgumentException("Trying to release buffer not owned by the context"); + } + _nameCopyBuffer = null; + _bufferRecycler.releaseCharBuffer(BufferRecycler.CharBufferType.NAME_COPY_BUFFER, buf); + } + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/io/InputDecorator.java b/1.9.10/src/java/org/codehaus/jackson/io/InputDecorator.java new file mode 100644 index 0000000..0084db7 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/io/InputDecorator.java
@@ -0,0 +1,67 @@ +package org.codehaus.jackson.io; + +import java.io.*; + +/** + * Handler class that can be used to decorate input sources. + * Typical use is to use a filter abstraction (filtered stream, + * reader) around original input source, and apply additional + * processing during read operations. + * + * @since 1.8 + */ +public abstract class InputDecorator +{ + /** + * Method called by {@link org.codehaus.jackson.JsonFactory} instance when + * creating parser given an {@link InputStream}, when this decorator + * has been registered. + * + * @param ctxt IO context in use (provides access to declared encoding). + * NOTE: at this point context may not have all information initialized; + * specifically auto-detected encoding is only available once parsing starts, + * which may occur only after this method is called. + * @param in Original input source + * + * @return InputStream to use; either passed in argument, or something that + * calls it + */ + public abstract InputStream decorate(IOContext ctxt, InputStream in) + throws IOException; + + /** + * Method called by {@link org.codehaus.jackson.JsonFactory} instance when + * creating parser on given "raw" byte source. + * Method can either construct a {@link InputStream} for reading; or return + * null to indicate that no wrapping should occur. + * + * @param ctxt IO context in use (provides access to declared encoding) + * NOTE: at this point context may not have all information initialized; + * specifically auto-detected encoding is only available once parsing starts, + * which may occur only after this method is called. + * @param src Input buffer that contains contents to parse + * @param offset Offset of the first available byte in the input buffer + * @param length Number of bytes available in the input buffer + * + * @return Either {@link InputStream} to use as input source; or null to indicate + * that contents are to be processed as-is by caller + */ + public abstract InputStream decorate(IOContext ctxt, byte[] src, int offset, int length) + throws IOException; + + /** + * Method called by {@link org.codehaus.jackson.JsonFactory} instance when + * creating parser given an {@link Reader}, when this decorator + * has been registered. + * + * @param ctxt IO context in use (provides access to declared encoding) + * NOTE: at this point context may not have all information initialized; + * specifically auto-detected encoding is only available once parsing starts, + * which may occur only after this method is called. + * @param src Original input source + * + * @return Reader to use; either passed in argument, or something that + * calls it (for example, a {@link FilterReader}) + */ + public abstract Reader decorate(IOContext ctxt, Reader src) throws IOException; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/io/JsonStringEncoder.java b/1.9.10/src/java/org/codehaus/jackson/io/JsonStringEncoder.java new file mode 100644 index 0000000..b0ed0f0 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/io/JsonStringEncoder.java
@@ -0,0 +1,408 @@ +package org.codehaus.jackson.io; + +import java.lang.ref.SoftReference; + +import org.codehaus.jackson.util.BufferRecycler; +import org.codehaus.jackson.util.ByteArrayBuilder; +import org.codehaus.jackson.util.CharTypes; +import org.codehaus.jackson.util.TextBuffer; + +/** + * Helper class used for efficient encoding of JSON String values (including + * JSON field names) into Strings or UTF-8 byte arrays. + *<p> + * Note that methods in here are somewhat optimized, but not ridiculously so. + * Reason is that conversion method results are expected to be cached so that + * these methods will not be hot spots during normal operation. + * + * @since 1.6 + */ +public final class JsonStringEncoder +{ + private final static char[] HEX_CHARS = CharTypes.copyHexChars(); + + private final static byte[] HEX_BYTES = CharTypes.copyHexBytes(); + + private final static int SURR1_FIRST = 0xD800; + private final static int SURR1_LAST = 0xDBFF; + private final static int SURR2_FIRST = 0xDC00; + private final static int SURR2_LAST = 0xDFFF; + + private final static int INT_BACKSLASH = '\\'; + private final static int INT_U = 'u'; + private final static int INT_0 = '0'; + + /** + * This <code>ThreadLocal</code> contains a {@link java.lang.ref.SoftRerefence} + * to a {@link BufferRecycler} used to provide a low-cost + * buffer recycling between reader and writer instances. + */ + final protected static ThreadLocal<SoftReference<JsonStringEncoder>> _threadEncoder + = new ThreadLocal<SoftReference<JsonStringEncoder>>(); + + /** + * Lazily constructed text buffer used to produce JSON encoded Strings + * as characters (without UTF-8 encoding) + */ + protected TextBuffer _textBuffer; + + /** + * Lazily-constructed builder used for UTF-8 encoding of text values + * (quoted and unquoted) + */ + protected ByteArrayBuilder _byteBuilder; + + /** + * Temporary buffer used for composing quote/escape sequences + */ + protected final char[] _quoteBuffer; + + /* + /********************************************************** + /* Construction, instance access + /********************************************************** + */ + + public JsonStringEncoder() + { + _quoteBuffer = new char[6]; + _quoteBuffer[0] = '\\'; + _quoteBuffer[2] = '0'; + _quoteBuffer[3] = '0'; + } + + /** + * Factory method for getting an instance; this is either recycled per-thread instance, + * or a newly constructed one. + */ + public static JsonStringEncoder getInstance() + { + SoftReference<JsonStringEncoder> ref = _threadEncoder.get(); + JsonStringEncoder enc = (ref == null) ? null : ref.get(); + + if (enc == null) { + enc = new JsonStringEncoder(); + _threadEncoder.set(new SoftReference<JsonStringEncoder>(enc)); + } + return enc; + } + + /* + /********************************************************** + /* Public API + /********************************************************** + */ + + /** + * Method that will quote text contents using JSON standard quoting, + * and return results as a character array + */ + public char[] quoteAsString(String input) + { + TextBuffer textBuffer = _textBuffer; + if (textBuffer == null) { + // no allocator; can add if we must, shouldn't need to + _textBuffer = textBuffer = new TextBuffer(null); + } + char[] outputBuffer = textBuffer.emptyAndGetCurrentSegment(); + final int[] escCodes = CharTypes.get7BitOutputEscapes(); + final int escCodeCount = escCodes.length; + int inPtr = 0; + final int inputLen = input.length(); + int outPtr = 0; + + outer_loop: + while (inPtr < inputLen) { + tight_loop: + while (true) { + char c = input.charAt(inPtr); + if (c < escCodeCount && escCodes[c] != 0) { + break tight_loop; + } + if (outPtr >= outputBuffer.length) { + outputBuffer = textBuffer.finishCurrentSegment(); + outPtr = 0; + } + outputBuffer[outPtr++] = c; + if (++inPtr >= inputLen) { + break outer_loop; + } + } + // something to escape; 2 or 6-char variant? + int escCode = escCodes[input.charAt(inPtr++)]; + int length = _appendSingleEscape(escCode, _quoteBuffer); + if ((outPtr + length) > outputBuffer.length) { + int first = outputBuffer.length - outPtr; + if (first > 0) { + System.arraycopy(_quoteBuffer, 0, outputBuffer, outPtr, first); + } + outputBuffer = textBuffer.finishCurrentSegment(); + int second = length - first; + System.arraycopy(_quoteBuffer, first, outputBuffer, 0, second); + outPtr = second; + } else { + System.arraycopy(_quoteBuffer, 0, outputBuffer, outPtr, length); + outPtr += length; + } + + } + textBuffer.setCurrentLength(outPtr); + return textBuffer.contentsAsArray(); + } + + /** + * Will quote given JSON String value using standard quoting, encode + * results as UTF-8, and return result as a byte array. + */ + public byte[] quoteAsUTF8(String text) + { + ByteArrayBuilder byteBuilder = _byteBuilder; + if (byteBuilder == null) { + // no allocator; can add if we must, shouldn't need to + _byteBuilder = byteBuilder = new ByteArrayBuilder(null); + } + int inputPtr = 0; + int inputEnd = text.length(); + int outputPtr = 0; + byte[] outputBuffer = byteBuilder.resetAndGetFirstSegment(); + + main_loop: + while (inputPtr < inputEnd) { + final int[] escCodes = CharTypes.get7BitOutputEscapes(); + + inner_loop: // ascii and escapes + while (true) { + int ch = text.charAt(inputPtr); + if (ch > 0x7F || escCodes[ch] != 0) { + break inner_loop; + } + if (outputPtr >= outputBuffer.length) { + outputBuffer = byteBuilder.finishCurrentSegment(); + outputPtr = 0; + } + outputBuffer[outputPtr++] = (byte) ch; + if (++inputPtr >= inputEnd) { + break main_loop; + } + } + if (outputPtr >= outputBuffer.length) { + outputBuffer = byteBuilder.finishCurrentSegment(); + outputPtr = 0; + } + // Ok, so what did we hit? + int ch = (int) text.charAt(inputPtr++); + if (ch <= 0x7F) { // needs quoting + int escape = escCodes[ch]; + // ctrl-char, 6-byte escape... + outputPtr = _appendByteEscape(ch, escape, byteBuilder, outputPtr); + outputBuffer = byteBuilder.getCurrentSegment(); + continue main_loop; + } else if (ch <= 0x7FF) { // fine, just needs 2 byte output + outputBuffer[outputPtr++] = (byte) (0xc0 | (ch >> 6)); + ch = (0x80 | (ch & 0x3f)); + } else { // 3 or 4 bytes + // Surrogates? + if (ch < SURR1_FIRST || ch > SURR2_LAST) { // nope + outputBuffer[outputPtr++] = (byte) (0xe0 | (ch >> 12)); + if (outputPtr >= outputBuffer.length) { + outputBuffer = byteBuilder.finishCurrentSegment(); + outputPtr = 0; + } + outputBuffer[outputPtr++] = (byte) (0x80 | ((ch >> 6) & 0x3f)); + ch = (0x80 | (ch & 0x3f)); + } else { // yes, surrogate pair + if (ch > SURR1_LAST) { // must be from first range + _throwIllegalSurrogate(ch); + } + // and if so, followed by another from next range + if (inputPtr >= inputEnd) { + _throwIllegalSurrogate(ch); + } + ch = _convertSurrogate(ch, text.charAt(inputPtr++)); + if (ch > 0x10FFFF) { // illegal, as per RFC 4627 + _throwIllegalSurrogate(ch); + } + outputBuffer[outputPtr++] = (byte) (0xf0 | (ch >> 18)); + if (outputPtr >= outputBuffer.length) { + outputBuffer = byteBuilder.finishCurrentSegment(); + outputPtr = 0; + } + outputBuffer[outputPtr++] = (byte) (0x80 | ((ch >> 12) & 0x3f)); + if (outputPtr >= outputBuffer.length) { + outputBuffer = byteBuilder.finishCurrentSegment(); + outputPtr = 0; + } + outputBuffer[outputPtr++] = (byte) (0x80 | ((ch >> 6) & 0x3f)); + ch = (0x80 | (ch & 0x3f)); + } + } + if (outputPtr >= outputBuffer.length) { + outputBuffer = byteBuilder.finishCurrentSegment(); + outputPtr = 0; + } + outputBuffer[outputPtr++] = (byte) ch; + } + return _byteBuilder.completeAndCoalesce(outputPtr); + } + + /** + * Will encode given String as UTF-8 (without any quoting), return + * resulting byte array. + */ + public byte[] encodeAsUTF8(String text) + { + ByteArrayBuilder byteBuilder = _byteBuilder; + if (byteBuilder == null) { + // no allocator; can add if we must, shouldn't need to + _byteBuilder = byteBuilder = new ByteArrayBuilder(null); + } + int inputPtr = 0; + int inputEnd = text.length(); + int outputPtr = 0; + byte[] outputBuffer = byteBuilder.resetAndGetFirstSegment(); + int outputEnd = outputBuffer.length; + + main_loop: + while (inputPtr < inputEnd) { + int c = text.charAt(inputPtr++); + + // first tight loop for ascii + while (c <= 0x7F) { + if (outputPtr >= outputEnd) { + outputBuffer = byteBuilder.finishCurrentSegment(); + outputEnd = outputBuffer.length; + outputPtr = 0; + } + outputBuffer[outputPtr++] = (byte) c; + if (inputPtr >= inputEnd) { + break main_loop; + } + c = text.charAt(inputPtr++); + } + + // then multi-byte... + if (outputPtr >= outputEnd) { + outputBuffer = byteBuilder.finishCurrentSegment(); + outputEnd = outputBuffer.length; + outputPtr = 0; + } + if (c < 0x800) { // 2-byte + outputBuffer[outputPtr++] = (byte) (0xc0 | (c >> 6)); + } else { // 3 or 4 bytes + // Surrogates? + if (c < SURR1_FIRST || c > SURR2_LAST) { // nope + outputBuffer[outputPtr++] = (byte) (0xe0 | (c >> 12)); + if (outputPtr >= outputEnd) { + outputBuffer = byteBuilder.finishCurrentSegment(); + outputEnd = outputBuffer.length; + outputPtr = 0; + } + outputBuffer[outputPtr++] = (byte) (0x80 | ((c >> 6) & 0x3f)); + } else { // yes, surrogate pair + if (c > SURR1_LAST) { // must be from first range + _throwIllegalSurrogate(c); + } + // and if so, followed by another from next range + if (inputPtr >= inputEnd) { + _throwIllegalSurrogate(c); + } + c = _convertSurrogate(c, text.charAt(inputPtr++)); + if (c > 0x10FFFF) { // illegal, as per RFC 4627 + _throwIllegalSurrogate(c); + } + outputBuffer[outputPtr++] = (byte) (0xf0 | (c >> 18)); + if (outputPtr >= outputEnd) { + outputBuffer = byteBuilder.finishCurrentSegment(); + outputEnd = outputBuffer.length; + outputPtr = 0; + } + outputBuffer[outputPtr++] = (byte) (0x80 | ((c >> 12) & 0x3f)); + if (outputPtr >= outputEnd) { + outputBuffer = byteBuilder.finishCurrentSegment(); + outputEnd = outputBuffer.length; + outputPtr = 0; + } + outputBuffer[outputPtr++] = (byte) (0x80 | ((c >> 6) & 0x3f)); + } + } + if (outputPtr >= outputEnd) { + outputBuffer = byteBuilder.finishCurrentSegment(); + outputEnd = outputBuffer.length; + outputPtr = 0; + } + outputBuffer[outputPtr++] = (byte) (0x80 | (c & 0x3f)); + } + return _byteBuilder.completeAndCoalesce(outputPtr); + } + + /* + /********************************************************** + /* Internal methods + /********************************************************** + */ + + private int _appendSingleEscape(int escCode, char[] quoteBuffer) + { + if (escCode < 0) { // control char, value -(char + 1) + int value = -(escCode + 1); + quoteBuffer[1] = 'u'; + // We know it's a control char, so only the last 2 chars are non-0 + quoteBuffer[4] = HEX_CHARS[value >> 4]; + quoteBuffer[5] = HEX_CHARS[value & 0xF]; + return 6; + } + quoteBuffer[1] = (char) escCode; + return 2; + } + + private int _appendByteEscape(int ch, int escCode, ByteArrayBuilder byteBuilder, int ptr) + { + byteBuilder.setCurrentSegmentLength(ptr); + byteBuilder.append(INT_BACKSLASH); + if (escCode < 0) { // standard escape + byteBuilder.append(INT_U); + if (ch > 0xFF) { + int hi = (ch >> 8); + byteBuilder.append(HEX_BYTES[hi >> 4]); + byteBuilder.append(HEX_BYTES[hi & 0xF]); + ch &= 0xFF; + } else { + byteBuilder.append(INT_0); + byteBuilder.append(INT_0); + } + byteBuilder.append(HEX_BYTES[ch >> 4]); + byteBuilder.append(HEX_BYTES[ch & 0xF]); + } else { // 2-char simple escape + byteBuilder.append((byte) escCode); + } + return byteBuilder.getCurrentSegmentLength(); + } + + /** + * Method called to calculate UTF code point, from a surrogate pair. + */ + private int _convertSurrogate(int firstPart, int secondPart) + { + // Ok, then, is the second part valid? + if (secondPart < SURR2_FIRST || secondPart > SURR2_LAST) { + throw new IllegalArgumentException("Broken surrogate pair: first char 0x"+Integer.toHexString(firstPart)+", second 0x"+Integer.toHexString(secondPart)+"; illegal combination"); + } + return 0x10000 + ((firstPart - SURR1_FIRST) << 10) + (secondPart - SURR2_FIRST); + } + + private void _throwIllegalSurrogate(int code) + { + if (code > 0x10FFFF) { // over max? + throw new IllegalArgumentException("Illegal character point (0x"+Integer.toHexString(code)+") to output; max is 0x10FFFF as per RFC 4627"); + } + if (code >= SURR1_FIRST) { + if (code <= SURR1_LAST) { // Unmatched first part (closing without second part?) + throw new IllegalArgumentException("Unmatched first part of surrogate pair (0x"+Integer.toHexString(code)+")"); + } + throw new IllegalArgumentException("Unmatched second part of surrogate pair (0x"+Integer.toHexString(code)+")"); + } + // should we ever get this? + throw new IllegalArgumentException("Illegal character point (0x"+Integer.toHexString(code)+") to output"); + } + +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/io/MergedStream.java b/1.9.10/src/java/org/codehaus/jackson/io/MergedStream.java new file mode 100644 index 0000000..788ebce --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/io/MergedStream.java
@@ -0,0 +1,145 @@ +package org.codehaus.jackson.io; + +import java.io.*; + +/** + * Simple {@link InputStream} implementation that is used to "unwind" some + * data previously read from an input stream; so that as long as some of + * that data remains, it's returned; but as long as it's read, we'll + * just use data from the underlying original stream. + * This is similar to {@link java.io.PushbackInputStream}, but here there's + * only one implicit pushback, when instance is constructed. + */ +public final class MergedStream + extends InputStream +{ + final protected IOContext _context; + + final InputStream _in; + + byte[] _buffer; + + int _ptr; + + final int _end; + + public MergedStream(IOContext context, + InputStream in, byte[] buf, int start, int end) + { + _context = context; + _in = in; + _buffer = buf; + _ptr = start; + _end = end; + } + + @Override + public int available() throws IOException + { + if (_buffer != null) { + return _end - _ptr; + } + return _in.available(); + } + + @Override + public void close() throws IOException + { + freeMergedBuffer(); + _in.close(); + } + + @Override + public void mark(int readlimit) + { + if (_buffer == null) { + _in.mark(readlimit); + } + } + + @Override + public boolean markSupported() + { + // Only supports marks past the initial rewindable section... + return (_buffer == null) && _in.markSupported(); + } + + @Override + public int read() throws IOException + { + if (_buffer != null) { + int c = _buffer[_ptr++] & 0xFF; + if (_ptr >= _end) { + freeMergedBuffer(); + } + return c; + } + return _in.read(); + } + + @Override + public int read(byte[] b) throws IOException + { + return read(b, 0, b.length); + } + + @Override + public int read(byte[] b, int off, int len) throws IOException + { + if (_buffer != null) { + int avail = _end - _ptr; + if (len > avail) { + len = avail; + } + System.arraycopy(_buffer, _ptr, b, off, len); + _ptr += len; + if (_ptr >= _end) { + freeMergedBuffer(); + } + return len; + } + return _in.read(b, off, len); + } + + @Override + public void reset() throws IOException + { + if (_buffer == null) { + _in.reset(); + } + } + + @Override + public long skip(long n) throws IOException + { + long count = 0L; + + if (_buffer != null) { + int amount = _end - _ptr; + + if (amount > n) { // all in pushed back segment? + _ptr += (int) n; + return n; + } + freeMergedBuffer(); + count += amount; + n -= amount; + } + + if (n > 0) { + count += _in.skip(n); + } + return count; + } + + private void freeMergedBuffer() + { + byte[] buf = _buffer; + if (buf != null) { + _buffer = null; + if (_context != null) { + _context.releaseReadIOBuffer(buf); + } + } + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/io/NumberInput.java b/1.9.10/src/java/org/codehaus/jackson/io/NumberInput.java new file mode 100644 index 0000000..56d3362 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/io/NumberInput.java
@@ -0,0 +1,303 @@ +package org.codehaus.jackson.io; + +public final class NumberInput +{ + /** + * Textual representation of a double constant that can cause nasty problems + * with JDK (see http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308). + */ + public final static String NASTY_SMALL_DOUBLE = "2.2250738585072012e-308"; + + /** + * Constants needed for parsing longs from basic int parsing methods + */ + final static long L_BILLION = 1000000000; + + final static String MIN_LONG_STR_NO_SIGN = String.valueOf(Long.MIN_VALUE).substring(1); + final static String MAX_LONG_STR = String.valueOf(Long.MAX_VALUE); + + /** + * Fast method for parsing integers that are known to fit into + * regular 32-bit signed int type. This means that length is + * between 1 and 9 digits (inclusive) + *<p> + * Note: public to let unit tests call it + */ + public final static int parseInt(char[] digitChars, int offset, int len) + { + int num = digitChars[offset] - '0'; + len += offset; + // This looks ugly, but appears the fastest way (as per measurements) + if (++offset < len) { + num = (num * 10) + (digitChars[offset] - '0'); + if (++offset < len) { + num = (num * 10) + (digitChars[offset] - '0'); + if (++offset < len) { + num = (num * 10) + (digitChars[offset] - '0'); + if (++offset < len) { + num = (num * 10) + (digitChars[offset] - '0'); + if (++offset < len) { + num = (num * 10) + (digitChars[offset] - '0'); + if (++offset < len) { + num = (num * 10) + (digitChars[offset] - '0'); + if (++offset < len) { + num = (num * 10) + (digitChars[offset] - '0'); + if (++offset < len) { + num = (num * 10) + (digitChars[offset] - '0'); + } + } + } + } + } + } + } + } + return num; + } + + /** + * Helper method to (more) efficiently parse integer numbers from + * String values. + * + * @since 1.7 + */ + public final static int parseInt(String str) + { + /* Ok: let's keep strategy simple: ignoring optional minus sign, + * we'll accept 1 - 9 digits and parse things efficiently; + * otherwise just defer to JDK parse functionality. + */ + char c = str.charAt(0); + int length = str.length(); + boolean negative = (c == '-'); + int offset = 1; + // must have 1 - 9 digits after optional sign: + // negative? + if (negative) { + if (length == 1 || length > 10) { + return Integer.parseInt(str); + } + c = str.charAt(offset++); + } else { + if (length > 9) { + return Integer.parseInt(str); + } + } + if (c > '9' || c < '0') { + return Integer.parseInt(str); + } + int num = c - '0'; + if (offset < length) { + c = str.charAt(offset++); + if (c > '9' || c < '0') { + return Integer.parseInt(str); + } + num = (num * 10) + (c - '0'); + if (offset < length) { + c = str.charAt(offset++); + if (c > '9' || c < '0') { + return Integer.parseInt(str); + } + num = (num * 10) + (c - '0'); + // Let's just loop if we have more than 3 digits: + if (offset < length) { + do { + c = str.charAt(offset++); + if (c > '9' || c < '0') { + return Integer.parseInt(str); + } + num = (num * 10) + (c - '0'); + } while (offset < length); + } + } + } + return negative ? -num : num; + } + + public final static long parseLong(char[] digitChars, int offset, int len) + { + // Note: caller must ensure length is [10, 18] + int len1 = len-9; + long val = parseInt(digitChars, offset, len1) * L_BILLION; + return val + (long) parseInt(digitChars, offset+len1, 9); + } + + public final static long parseLong(String str) + { + /* Ok, now; as the very first thing, let's just optimize case of "fake longs"; + * that is, if we know they must be ints, call int parsing + */ + int length = str.length(); + if (length <= 9) { + return (long) parseInt(str); + } + // !!! TODO: implement efficient 2-int parsing... + return Long.parseLong(str); + } + + /** + * Helper method for determining if given String representation of + * an integral number would fit in 64-bit Java long or not. + * Note that input String must NOT contain leading minus sign (even + * if 'negative' is set to true). + * + * @param negative Whether original number had a minus sign (which is + * NOT passed to this method) or not + */ + public final static boolean inLongRange(char[] digitChars, int offset, int len, + boolean negative) + { + String cmpStr = negative ? MIN_LONG_STR_NO_SIGN : MAX_LONG_STR; + int cmpLen = cmpStr.length(); + if (len < cmpLen) return true; + if (len > cmpLen) return false; + + for (int i = 0; i < cmpLen; ++i) { + int diff = digitChars[offset+i] - cmpStr.charAt(i); + if (diff != 0) { + return (diff < 0); + } + } + return true; + } + + /** + * Similar to {@link #inLongRange(char[],int,int,boolean)}, but + * with String argument + * + * @param negative Whether original number had a minus sign (which is + * NOT passed to this method) or not + * + * @since 1.5.0 + */ + public final static boolean inLongRange(String numberStr, boolean negative) + { + String cmpStr = negative ? MIN_LONG_STR_NO_SIGN : MAX_LONG_STR; + int cmpLen = cmpStr.length(); + int actualLen = numberStr.length(); + if (actualLen < cmpLen) return true; + if (actualLen > cmpLen) return false; + + // could perhaps just use String.compareTo()? + for (int i = 0; i < cmpLen; ++i) { + int diff = numberStr.charAt(i) - cmpStr.charAt(i); + if (diff != 0) { + return (diff < 0); + } + } + return true; + } + + /** + * @since 1.6 + */ + public static int parseAsInt(String input, int defaultValue) + { + if (input == null) { + return defaultValue; + } + input = input.trim(); + int len = input.length(); + if (len == 0) { + return defaultValue; + } + // One more thing: use integer parsing for 'simple' + int i = 0; + if (i < len) { // skip leading sign: + char c = input.charAt(0); + if (c == '+') { // for plus, actually physically remove + input = input.substring(1); + len = input.length(); + } else if (c == '-') { // minus, just skip for checks, must retain + ++i; + } + } + for (; i < len; ++i) { + char c = input.charAt(i); + // if other symbols, parse as Double, coerce + if (c > '9' || c < '0') { + try { + return (int) parseDouble(input); + } catch (NumberFormatException e) { + return defaultValue; + } + } + } + try { + return Integer.parseInt(input); + } catch (NumberFormatException e) { } + return defaultValue; + } + + /** + * @since 1.6 + */ + public static long parseAsLong(String input, long defaultValue) + { + if (input == null) { + return defaultValue; + } + input = input.trim(); + int len = input.length(); + if (len == 0) { + return defaultValue; + } + // One more thing: use long parsing for 'simple' + int i = 0; + if (i < len) { // skip leading sign: + char c = input.charAt(0); + if (c == '+') { // for plus, actually physically remove + input = input.substring(1); + len = input.length(); + } else if (c == '-') { // minus, just skip for checks, must retain + ++i; + } + } + for (; i < len; ++i) { + char c = input.charAt(i); + // if other symbols, parse as Double, coerce + if (c > '9' || c < '0') { + try { + return (long) parseDouble(input); + } catch (NumberFormatException e) { + return defaultValue; + } + } + } + try { + return Long.parseLong(input); + } catch (NumberFormatException e) { } + return defaultValue; + } + + /** + * @since 1.6 + */ + public static double parseAsDouble(String input, double defaultValue) + { + if (input == null) { + return defaultValue; + } + input = input.trim(); + int len = input.length(); + if (len == 0) { + return defaultValue; + } + try { + return parseDouble(input); + } catch (NumberFormatException e) { } + return defaultValue; + } + + /** + * @since 1.8 + */ + public final static double parseDouble(String numStr) throws NumberFormatException + { + // [JACKSON-486]: avoid some nasty float representations... but should it be MIN_NORMAL or MIN_VALUE? + if (NASTY_SMALL_DOUBLE.equals(numStr)) { + return Double.MIN_NORMAL; + } + return Double.parseDouble(numStr); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/io/NumberOutput.java b/1.9.10/src/java/org/codehaus/jackson/io/NumberOutput.java new file mode 100644 index 0000000..9ab9d49 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/io/NumberOutput.java
@@ -0,0 +1,398 @@ +package org.codehaus.jackson.io; + +public final class NumberOutput +{ + private final static char NULL_CHAR = (char) 0; + + private static int MILLION = 1000000; + private static int BILLION = 1000000000; + private static long TEN_BILLION_L = 10000000000L; + private static long THOUSAND_L = 1000L; + + private static long MIN_INT_AS_LONG = (long) Integer.MIN_VALUE; + private static long MAX_INT_AS_LONG = (long) Integer.MAX_VALUE; + + final static String SMALLEST_LONG = String.valueOf(Long.MIN_VALUE); + + final static char[] LEADING_TRIPLETS = new char[4000]; + final static char[] FULL_TRIPLETS = new char[4000]; + static { + /* Let's fill it with NULLs for ignorable leading digits, + * and digit chars for others + */ + int ix = 0; + for (int i1 = 0; i1 < 10; ++i1) { + char f1 = (char) ('0' + i1); + char l1 = (i1 == 0) ? NULL_CHAR : f1; + for (int i2 = 0; i2 < 10; ++i2) { + char f2 = (char) ('0' + i2); + char l2 = (i1 == 0 && i2 == 0) ? NULL_CHAR : f2; + for (int i3 = 0; i3 < 10; ++i3) { + // Last is never to be empty + char f3 = (char) ('0' + i3); + LEADING_TRIPLETS[ix] = l1; + LEADING_TRIPLETS[ix+1] = l2; + LEADING_TRIPLETS[ix+2] = f3; + FULL_TRIPLETS[ix] = f1; + FULL_TRIPLETS[ix+1] = f2; + FULL_TRIPLETS[ix+2] = f3; + ix += 4; + } + } + } + } + + final static byte[] FULL_TRIPLETS_B = new byte[4000]; + static { + for (int i = 0; i < 4000; ++i) { + FULL_TRIPLETS_B[i] = (byte) FULL_TRIPLETS[i]; + } + } + + final static String[] sSmallIntStrs = new String[] { + "0","1","2","3","4","5","6","7","8","9","10" + }; + final static String[] sSmallIntStrs2 = new String[] { + "-1","-2","-3","-4","-5","-6","-7","-8","-9","-10" + }; + + /* + /********************************************************** + /* Efficient serialization methods using raw buffers + /********************************************************** + */ + + /** + * @return Offset within buffer after outputting int + */ + public static int outputInt(int value, char[] buffer, int offset) + { + if (value < 0) { + if (value == Integer.MIN_VALUE) { + /* Special case: no matching positive value within range; + * let's then "upgrade" to long and output as such. + */ + return outputLong((long) value, buffer, offset); + } + buffer[offset++] = '-'; + value = -value; + } + + if (value < MILLION) { // at most 2 triplets... + if (value < 1000) { + if (value < 10) { + buffer[offset++] = (char) ('0' + value); + } else { + offset = outputLeadingTriplet(value, buffer, offset); + } + } else { + int thousands = value / 1000; + value -= (thousands * 1000); // == value % 1000 + offset = outputLeadingTriplet(thousands, buffer, offset); + offset = outputFullTriplet(value, buffer, offset); + } + return offset; + } + + // ok, all 3 triplets included + /* Let's first hand possible billions separately before + * handling 3 triplets. This is possible since we know we + * can have at most '2' as billion count. + */ + boolean hasBillions = (value >= BILLION); + if (hasBillions) { + value -= BILLION; + if (value >= BILLION) { + value -= BILLION; + buffer[offset++] = '2'; + } else { + buffer[offset++] = '1'; + } + } + int newValue = value / 1000; + int ones = (value - (newValue * 1000)); // == value % 1000 + value = newValue; + newValue /= 1000; + int thousands = (value - (newValue * 1000)); + + // value now has millions, which have 1, 2 or 3 digits + if (hasBillions) { + offset = outputFullTriplet(newValue, buffer, offset); + } else { + offset = outputLeadingTriplet(newValue, buffer, offset); + } + offset = outputFullTriplet(thousands, buffer, offset); + offset = outputFullTriplet(ones, buffer, offset); + return offset; + } + + public static int outputInt(int value, byte[] buffer, int offset) + { + if (value < 0) { + if (value == Integer.MIN_VALUE) { + return outputLong((long) value, buffer, offset); + } + buffer[offset++] = '-'; + value = -value; + } + + if (value < MILLION) { // at most 2 triplets... + if (value < 1000) { + if (value < 10) { + buffer[offset++] = (byte) ('0' + value); + } else { + offset = outputLeadingTriplet(value, buffer, offset); + } + } else { + int thousands = value / 1000; + value -= (thousands * 1000); // == value % 1000 + offset = outputLeadingTriplet(thousands, buffer, offset); + offset = outputFullTriplet(value, buffer, offset); + } + return offset; + } + boolean hasBillions = (value >= BILLION); + if (hasBillions) { + value -= BILLION; + if (value >= BILLION) { + value -= BILLION; + buffer[offset++] = '2'; + } else { + buffer[offset++] = '1'; + } + } + int newValue = value / 1000; + int ones = (value - (newValue * 1000)); // == value % 1000 + value = newValue; + newValue /= 1000; + int thousands = (value - (newValue * 1000)); + + if (hasBillions) { + offset = outputFullTriplet(newValue, buffer, offset); + } else { + offset = outputLeadingTriplet(newValue, buffer, offset); + } + offset = outputFullTriplet(thousands, buffer, offset); + offset = outputFullTriplet(ones, buffer, offset); + return offset; + } + + /** + * @return Offset within buffer after outputting int + */ + public static int outputLong(long value, char[] buffer, int offset) + { + // First: does it actually fit in an int? + if (value < 0L) { + /* MIN_INT is actually printed as long, just because its + * negation is not an int but long + */ + if (value > MIN_INT_AS_LONG) { + return outputInt((int) value, buffer, offset); + } + if (value == Long.MIN_VALUE) { + // Special case: no matching positive value within range + int len = SMALLEST_LONG.length(); + SMALLEST_LONG.getChars(0, len, buffer, offset); + return (offset + len); + } + buffer[offset++] = '-'; + value = -value; + } else { + if (value <= MAX_INT_AS_LONG) { + return outputInt((int) value, buffer, offset); + } + } + + /* Ok: real long print. Need to first figure out length + * in characters, and then print in from end to beginning + */ + int origOffset = offset; + offset += calcLongStrLength(value); + int ptr = offset; + + // First, with long arithmetics: + while (value > MAX_INT_AS_LONG) { // full triplet + ptr -= 3; + long newValue = value / THOUSAND_L; + int triplet = (int) (value - newValue * THOUSAND_L); + outputFullTriplet(triplet, buffer, ptr); + value = newValue; + } + // Then with int arithmetics: + int ivalue = (int) value; + while (ivalue >= 1000) { // still full triplet + ptr -= 3; + int newValue = ivalue / 1000; + int triplet = ivalue - (newValue * 1000); + outputFullTriplet(triplet, buffer, ptr); + ivalue = newValue; + } + // And finally, if anything remains, partial triplet + outputLeadingTriplet(ivalue, buffer, origOffset); + + return offset; + } + + public static int outputLong(long value, byte[] buffer, int offset) + { + if (value < 0L) { + if (value > MIN_INT_AS_LONG) { + return outputInt((int) value, buffer, offset); + } + if (value == Long.MIN_VALUE) { + // Special case: no matching positive value within range + int len = SMALLEST_LONG.length(); + for (int i = 0; i < len; ++i) { + buffer[offset++] = (byte) SMALLEST_LONG.charAt(i); + } + return offset; + } + buffer[offset++] = '-'; + value = -value; + } else { + if (value <= MAX_INT_AS_LONG) { + return outputInt((int) value, buffer, offset); + } + } + int origOffset = offset; + offset += calcLongStrLength(value); + int ptr = offset; + + // First, with long arithmetics: + while (value > MAX_INT_AS_LONG) { // full triplet + ptr -= 3; + long newValue = value / THOUSAND_L; + int triplet = (int) (value - newValue * THOUSAND_L); + outputFullTriplet(triplet, buffer, ptr); + value = newValue; + } + // Then with int arithmetics: + int ivalue = (int) value; + while (ivalue >= 1000) { // still full triplet + ptr -= 3; + int newValue = ivalue / 1000; + int triplet = ivalue - (newValue * 1000); + outputFullTriplet(triplet, buffer, ptr); + ivalue = newValue; + } + outputLeadingTriplet(ivalue, buffer, origOffset); + return offset; + } + + /* + /********************************************************** + /* Secondary convenience serialization methods + /********************************************************** + */ + + /* !!! 05-Aug-2008, tatus: Any ways to further optimize + * these? (or need: only called by diagnostics methods?) + */ + + public static String toString(int value) + { + // Lookup table for small values + if (value < sSmallIntStrs.length) { + if (value >= 0) { + return sSmallIntStrs[value]; + } + int v2 = -value - 1; + if (v2 < sSmallIntStrs2.length) { + return sSmallIntStrs2[v2]; + } + } + return Integer.toString(value); + } + + public static String toString(long value) + { + if (value <= Integer.MAX_VALUE && + value >= Integer.MIN_VALUE) { + return toString((int) value); + } + return Long.toString(value); + } + + public static String toString(double value) + { + return Double.toString(value); + } + + /* + /********************************************************** + /* Internal methods + /********************************************************** + */ + + private static int outputLeadingTriplet(int triplet, char[] buffer, int offset) + { + int digitOffset = (triplet << 2); + char c = LEADING_TRIPLETS[digitOffset++]; + if (c != NULL_CHAR) { + buffer[offset++] = c; + } + c = LEADING_TRIPLETS[digitOffset++]; + if (c != NULL_CHAR) { + buffer[offset++] = c; + } + // Last is required to be non-empty + buffer[offset++] = LEADING_TRIPLETS[digitOffset]; + return offset; + } + + private static int outputLeadingTriplet(int triplet, byte[] buffer, int offset) + { + int digitOffset = (triplet << 2); + char c = LEADING_TRIPLETS[digitOffset++]; + if (c != NULL_CHAR) { + buffer[offset++] = (byte) c; + } + c = LEADING_TRIPLETS[digitOffset++]; + if (c != NULL_CHAR) { + buffer[offset++] = (byte) c; + } + // Last is required to be non-empty + buffer[offset++] = (byte) LEADING_TRIPLETS[digitOffset]; + return offset; + } + + private static int outputFullTriplet(int triplet, char[] buffer, int offset) + { + int digitOffset = (triplet << 2); + buffer[offset++] = FULL_TRIPLETS[digitOffset++]; + buffer[offset++] = FULL_TRIPLETS[digitOffset++]; + buffer[offset++] = FULL_TRIPLETS[digitOffset]; + return offset; + } + + private static int outputFullTriplet(int triplet, byte[] buffer, int offset) + { + int digitOffset = (triplet << 2); + buffer[offset++] = FULL_TRIPLETS_B[digitOffset++]; + buffer[offset++] = FULL_TRIPLETS_B[digitOffset++]; + buffer[offset++] = FULL_TRIPLETS_B[digitOffset]; + return offset; + } + + /** + *<p> + * Pre-conditions: posValue is positive, and larger than + * Integer.MAX_VALUE (about 2 billions). + */ + private static int calcLongStrLength(long posValue) + { + int len = 10; + long comp = TEN_BILLION_L; + + // 19 is longest, need to worry about overflow + while (posValue >= comp) { + if (len == 19) { + break; + } + ++len; + comp = (comp << 3) + (comp << 1); // 10x + } + return len; + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/io/OutputDecorator.java b/1.9.10/src/java/org/codehaus/jackson/io/OutputDecorator.java new file mode 100644 index 0000000..3ec4442 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/io/OutputDecorator.java
@@ -0,0 +1,40 @@ +package org.codehaus.jackson.io; + +import java.io.*; + +/** + * Handler class that can be used to decorate output destinations. + * Typical use is to use a filter abstraction (filtered output stream, + * writer) around original output destination, and apply additional + * processing during write operations. + * + * @since 1.8 + */ +public abstract class OutputDecorator +{ + /** + * Method called by {@link org.codehaus.jackson.JsonFactory} instance when + * creating generator for given {@link OutputStream}, when this decorator + * has been registered. + * + * @param ctxt IO context in use (provides access to declared encoding) + * @param out Original output destination + * + * @return OutputStream to use; either passed in argument, or something that + * calls it + */ + public abstract OutputStream decorate(IOContext ctxt, OutputStream out) + throws IOException; + + /** + * Method called by {@link org.codehaus.jackson.JsonFactory} instance when + * creating generator for given {@link Writer}, when this decorator + * has been registered. + * + * @param ctxt IO context in use (provides access to declared encoding) + * @param w Original output writer + * + * @return Writer to use; either passed in argument, or something that calls it + */ + public abstract Writer decorate(IOContext ctxt, Writer w) throws IOException; +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/io/SegmentedStringWriter.java b/1.9.10/src/java/org/codehaus/jackson/io/SegmentedStringWriter.java new file mode 100644 index 0000000..715b1d1 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/io/SegmentedStringWriter.java
@@ -0,0 +1,104 @@ +package org.codehaus.jackson.io; + +import java.io.*; + +import org.codehaus.jackson.util.BufferRecycler; +import org.codehaus.jackson.util.TextBuffer; + +/** + * Efficient alternative to {@link StringWriter}, based on using segmented + * internal buffer. Initial input buffer is also recyclable. + *<p> + * This class is most useful when serializing JSON content as a String: + * if so, instance of this class can be given as the writer to + * <code>JsonGenerator</code>. + * + * @since 1.3 + */ +public final class SegmentedStringWriter + extends Writer +{ + final protected TextBuffer _buffer; + + public SegmentedStringWriter(BufferRecycler br) + { + super(); + _buffer = new TextBuffer(br); + } + + /* + /********************************************************** + /* java.io.Writer implementation + /********************************************************** + */ + + @Override + public Writer append(char c) + { + write(c); + return this; + } + + @Override + public Writer append(CharSequence csq) + { + String str = csq.toString(); + _buffer.append(str, 0, str.length()); + return this; + } + + @Override + public Writer append(CharSequence csq, int start, int end) + { + String str = csq.subSequence(start, end).toString(); + _buffer.append(str, 0, str.length()); + return this; + } + + @Override public void close() { } // NOP + + @Override public void flush() { } // NOP + + @Override + public void write(char[] cbuf) { + _buffer.append(cbuf, 0, cbuf.length); + } + + @Override + public void write(char[] cbuf, int off, int len) { + _buffer.append(cbuf, off, len); + } + + @Override + public void write(int c) { + _buffer.append((char) c); + } + + @Override + public void write(String str) { _buffer.append(str, 0, str.length()); } + + @Override + public void write(String str, int off, int len) { + _buffer.append(str, off, len); + } + + /* + /********************************************************** + /* Extended API + /********************************************************** + */ + + /** + * Main access method that will construct a String that contains + * all the contents, release all internal buffers we may have, + * and return result String. + * Note that the method is not idempotent -- if called second time, + * will just return an empty String. + */ + public String getAndClear() + { + String result = _buffer.contentsAsString(); + _buffer.releaseBuffers(); + return result; + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/io/SerializedString.java b/1.9.10/src/java/org/codehaus/jackson/io/SerializedString.java new file mode 100644 index 0000000..50ca637 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/io/SerializedString.java
@@ -0,0 +1,114 @@ +package org.codehaus.jackson.io; + +import org.codehaus.jackson.SerializableString; + +/** + * String token that can lazily serialize String contained and then reuse that + * serialization later on. This is similar to JDBC prepared statements, for example, + * in that instances should only be created when they are used more than use; + * prime candidates are various serializers. + *<p> + * Class is final for performance reasons and since this is not designed to + * be extensible or customizable (customizations would occur in calling code) + * + * @since 1.6 + */ +public class SerializedString implements SerializableString +{ + protected final String _value; + + /* 13-Dec-2010, tatu: Whether use volatile or not is actually an important + * decision for multi-core use cases. Cost of volatility can be non-trivial + * for heavy use cases, and serialized-string instances are accessed often. + * Given that all code paths with common Jackson usage patterns go through + * a few memory barriers (mostly with cache/reuse pool access) it seems safe + * enough to omit volatiles here, given how simple lazy initialization is. + * This can be compared to how {@link String#intern} works; lazily and + * without synchronization or use of volatile keyword. + */ + + protected /*volatile*/ byte[] _quotedUTF8Ref; + + protected /*volatile*/ byte[] _unquotedUTF8Ref; + + protected /*volatile*/ char[] _quotedChars; + + public SerializedString(String v) { _value = v; } + + /* + /********************************************************** + /* API + /********************************************************** + */ + + @Override + public final String getValue() { return _value; } + + /** + * Returns length of the String as characters + */ + @Override + public final int charLength() { return _value.length(); } + + @Override + public final char[] asQuotedChars() + { + char[] result = _quotedChars; + if (result == null) { + result = JsonStringEncoder.getInstance().quoteAsString(_value); + _quotedChars = result; + } + return result; + } + + /** + * Accessor for accessing value that has been quoted using JSON + * quoting rules, and encoded using UTF-8 encoding. + */ + @Override + public final byte[] asUnquotedUTF8() + { + byte[] result = _unquotedUTF8Ref; + if (result == null) { + result = JsonStringEncoder.getInstance().encodeAsUTF8(_value); + _unquotedUTF8Ref = result; + } + return result; + } + + /** + * Accessor for accessing value as is (without JSON quoting) + * encoded using UTF-8 encoding. + */ + @Override + public final byte[] asQuotedUTF8() + { + byte[] result = _quotedUTF8Ref; + if (result == null) { + result = JsonStringEncoder.getInstance().quoteAsUTF8(_value); + _quotedUTF8Ref = result; + } + return result; + } + + /* + /********************************************************** + /* Standard method overrides + /********************************************************** + */ + + @Override + public final String toString() { return _value; } + + @Override + public final int hashCode() { return _value.hashCode(); } + + @Override + public final boolean equals(Object o) + { + if (o == this) return true; + if (o == null || o.getClass() != getClass()) return false; + SerializedString other = (SerializedString) o; + return _value.equals(other._value); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/io/UTF32Reader.java b/1.9.10/src/java/org/codehaus/jackson/io/UTF32Reader.java new file mode 100644 index 0000000..35dc712 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/io/UTF32Reader.java
@@ -0,0 +1,214 @@ +package org.codehaus.jackson.io; + +import java.io.*; + + +/** + * Since JDK does not come with UTF-32/UCS-4, let's implement a simple + * decoder to use. + */ +public final class UTF32Reader + extends BaseReader +{ + final boolean mBigEndian; + + /** + * Although input is fine with full Unicode set, Java still uses + * 16-bit chars, so we may have to split high-order chars into + * surrogate pairs. + */ + char mSurrogate = NULL_CHAR; + + /** + * Total read character count; used for error reporting purposes + */ + int mCharCount = 0; + + /** + * Total read byte count; used for error reporting purposes + */ + int mByteCount = 0; + + /* + //////////////////////////////////////// + // Life-cycle + //////////////////////////////////////// + */ + + public UTF32Reader(IOContext ctxt, + InputStream in, byte[] buf, int ptr, int len, + boolean isBigEndian) + { + super(ctxt, in, buf, ptr, len); + mBigEndian = isBigEndian; + } + + /* + //////////////////////////////////////// + // Public API + //////////////////////////////////////// + */ + + @Override + public int read(char[] cbuf, int start, int len) + throws IOException + { + // Already EOF? + if (_buffer == null) { + return -1; + } + if (len < 1) { + return len; + } + // Let's then ensure there's enough room... + if (start < 0 || (start+len) > cbuf.length) { + reportBounds(cbuf, start, len); + } + + len += start; + int outPtr = start; + + // Ok, first; do we have a surrogate from last round? + if (mSurrogate != NULL_CHAR) { + cbuf[outPtr++] = mSurrogate; + mSurrogate = NULL_CHAR; + // No need to load more, already got one char + } else { + /* Note: we'll try to avoid blocking as much as possible. As a + * result, we only need to get 4 bytes for a full char. + */ + int left = (_length - _ptr); + if (left < 4) { + if (!loadMore(left)) { // (legal) EOF? + return -1; + } + } + } + + main_loop: + while (outPtr < len) { + int ptr = _ptr; + int ch; + + if (mBigEndian) { + ch = (_buffer[ptr] << 24) | ((_buffer[ptr+1] & 0xFF) << 16) + | ((_buffer[ptr+2] & 0xFF) << 8) | (_buffer[ptr+3] & 0xFF); + } else { + ch = (_buffer[ptr] & 0xFF) | ((_buffer[ptr+1] & 0xFF) << 8) + | ((_buffer[ptr+2] & 0xFF) << 16) | (_buffer[ptr+3] << 24); + } + _ptr += 4; + + // Does it need to be split to surrogates? + // (also, we can and need to verify illegal chars) + if (ch > 0xFFFF) { // need to split into surrogates? + if (ch > LAST_VALID_UNICODE_CHAR) { + reportInvalid(ch, outPtr-start, + "(above "+Integer.toHexString(LAST_VALID_UNICODE_CHAR)+") "); + } + ch -= 0x10000; // to normalize it starting with 0x0 + cbuf[outPtr++] = (char) (0xD800 + (ch >> 10)); + // hmmh. can this ever be 0? (not legal, at least?) + ch = (0xDC00 | (ch & 0x03FF)); + // Room for second part? + if (outPtr >= len) { // nope + mSurrogate = (char) ch; + break main_loop; + } + } + cbuf[outPtr++] = (char) ch; + if (_ptr >= _length) { + break main_loop; + } + } + + len = outPtr - start; + mCharCount += len; + return len; + } + + /* + //////////////////////////////////////// + // Internal methods + //////////////////////////////////////// + */ + + private void reportUnexpectedEOF(int gotBytes, int needed) + throws IOException + { + int bytePos = mByteCount + gotBytes; + int charPos = mCharCount; + + throw new CharConversionException("Unexpected EOF in the middle of a 4-byte UTF-32 char: got " + +gotBytes+", needed "+needed + +", at char #"+charPos+", byte #"+bytePos+")"); + } + + private void reportInvalid(int value, int offset, String msg) + throws IOException + { + int bytePos = mByteCount + _ptr - 1; + int charPos = mCharCount + offset; + + throw new CharConversionException("Invalid UTF-32 character 0x" + +Integer.toHexString(value) + +msg+" at char #"+charPos+", byte #"+bytePos+")"); + } + + /** + * @param available Number of "unused" bytes in the input buffer + * + * @return True, if enough bytes were read to allow decoding of at least + * one full character; false if EOF was encountered instead. + */ + private boolean loadMore(int available) + throws IOException + { + mByteCount += (_length - available); + + // Bytes that need to be moved to the beginning of buffer? + if (available > 0) { + if (_ptr > 0) { + for (int i = 0; i < available; ++i) { + _buffer[i] = _buffer[_ptr+i]; + } + _ptr = 0; + } + _length = available; + } else { + /* Ok; here we can actually reasonably expect an EOF, + * so let's do a separate read right away: + */ + _ptr = 0; + int count = _in.read(_buffer); + if (count < 1) { + _length = 0; + if (count < 0) { // -1 + freeBuffers(); // to help GC? + return false; + } + // 0 count is no good; let's err out + reportStrangeStream(); + } + _length = count; + } + + /* Need at least 4 bytes; if we don't get that many, it's an + * error. + */ + while (_length < 4) { + int count = _in.read(_buffer, _length, _buffer.length - _length); + if (count < 1) { + if (count < 0) { // -1, EOF... no good! + freeBuffers(); // to help GC? + reportUnexpectedEOF(_length, 4); + } + // 0 count is no good; let's err out + reportStrangeStream(); + } + _length += count; + } + return true; + } +} +
diff --git a/1.9.10/src/java/org/codehaus/jackson/io/UTF8Writer.java b/1.9.10/src/java/org/codehaus/jackson/io/UTF8Writer.java new file mode 100644 index 0000000..3f19778 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/io/UTF8Writer.java
@@ -0,0 +1,387 @@ +package org.codehaus.jackson.io; + +import java.io.*; + + +public final class UTF8Writer + extends Writer +{ + final static int SURR1_FIRST = 0xD800; + final static int SURR1_LAST = 0xDBFF; + final static int SURR2_FIRST = 0xDC00; + final static int SURR2_LAST = 0xDFFF; + + final protected IOContext _context; + + OutputStream _out; + + byte[] _outBuffer; + + final int _outBufferEnd; + + int _outPtr; + + /** + * When outputting chars from BMP, surrogate pairs need to be coalesced. + * To do this, both pairs must be known first; and since it is possible + * pairs may be split, we need temporary storage for the first half + */ + int _surrogate = 0; + + public UTF8Writer(IOContext ctxt, OutputStream out) + { + _context = ctxt; + _out = out; + + _outBuffer = ctxt.allocWriteEncodingBuffer(); + /* Max. expansion for a single char (in unmodified UTF-8) is + * 4 bytes (or 3 depending on how you view it -- 4 when recombining + * surrogate pairs) + */ + _outBufferEnd = _outBuffer.length - 4; + _outPtr = 0; + } + + @Override + public Writer append(char c) + throws IOException + { + write(c); + return this; + } + + @Override + public void close() + throws IOException + { + if (_out != null) { + if (_outPtr > 0) { + _out.write(_outBuffer, 0, _outPtr); + _outPtr = 0; + } + OutputStream out = _out; + _out = null; + + byte[] buf = _outBuffer; + if (buf != null) { + _outBuffer = null; + _context.releaseWriteEncodingBuffer(buf); + } + + out.close(); + + /* Let's 'flush' orphan surrogate, no matter what; but only + * after cleanly closing everything else. + */ + int code = _surrogate; + _surrogate = 0; + if (code > 0) { + throwIllegal(code); + } + } + } + + @Override + public void flush() + throws IOException + { + if (_out != null) { + if (_outPtr > 0) { + _out.write(_outBuffer, 0, _outPtr); + _outPtr = 0; + } + _out.flush(); + } + } + + @Override + public void write(char[] cbuf) + throws IOException + { + write(cbuf, 0, cbuf.length); + } + + @Override + public void write(char[] cbuf, int off, int len) + throws IOException + { + if (len < 2) { + if (len == 1) { + write(cbuf[off]); + } + return; + } + + // First: do we have a leftover surrogate to deal with? + if (_surrogate > 0) { + char second = cbuf[off++]; + --len; + write(convertSurrogate(second)); + // will have at least one more char + } + + int outPtr = _outPtr; + byte[] outBuf = _outBuffer; + int outBufLast = _outBufferEnd; // has 4 'spare' bytes + + // All right; can just loop it nice and easy now: + len += off; // len will now be the end of input buffer + + output_loop: + for (; off < len; ) { + /* First, let's ensure we can output at least 4 bytes + * (longest UTF-8 encoded codepoint): + */ + if (outPtr >= outBufLast) { + _out.write(outBuf, 0, outPtr); + outPtr = 0; + } + + int c = cbuf[off++]; + // And then see if we have an Ascii char: + if (c < 0x80) { // If so, can do a tight inner loop: + outBuf[outPtr++] = (byte)c; + // Let's calc how many ascii chars we can copy at most: + int maxInCount = (len - off); + int maxOutCount = (outBufLast - outPtr); + + if (maxInCount > maxOutCount) { + maxInCount = maxOutCount; + } + maxInCount += off; + ascii_loop: + while (true) { + if (off >= maxInCount) { // done with max. ascii seq + continue output_loop; + } + c = cbuf[off++]; + if (c >= 0x80) { + break ascii_loop; + } + outBuf[outPtr++] = (byte) c; + } + } + + // Nope, multi-byte: + if (c < 0x800) { // 2-byte + outBuf[outPtr++] = (byte) (0xc0 | (c >> 6)); + outBuf[outPtr++] = (byte) (0x80 | (c & 0x3f)); + } else { // 3 or 4 bytes + // Surrogates? + if (c < SURR1_FIRST || c > SURR2_LAST) { + outBuf[outPtr++] = (byte) (0xe0 | (c >> 12)); + outBuf[outPtr++] = (byte) (0x80 | ((c >> 6) & 0x3f)); + outBuf[outPtr++] = (byte) (0x80 | (c & 0x3f)); + continue; + } + // Yup, a surrogate: + if (c > SURR1_LAST) { // must be from first range + _outPtr = outPtr; + throwIllegal(c); + } + _surrogate = c; + // and if so, followed by another from next range + if (off >= len) { // unless we hit the end? + break; + } + c = convertSurrogate(cbuf[off++]); + if (c > 0x10FFFF) { // illegal in JSON as well as in XML + _outPtr = outPtr; + throwIllegal(c); + } + outBuf[outPtr++] = (byte) (0xf0 | (c >> 18)); + outBuf[outPtr++] = (byte) (0x80 | ((c >> 12) & 0x3f)); + outBuf[outPtr++] = (byte) (0x80 | ((c >> 6) & 0x3f)); + outBuf[outPtr++] = (byte) (0x80 | (c & 0x3f)); + } + } + _outPtr = outPtr; + } + + @Override + public void write(int c) throws IOException + { + // First; do we have a left over surrogate? + if (_surrogate > 0) { + c = convertSurrogate(c); + // If not, do we start with a surrogate? + } else if (c >= SURR1_FIRST && c <= SURR2_LAST) { + // Illegal to get second part without first: + if (c > SURR1_LAST) { + throwIllegal(c); + } + // First part just needs to be held for now + _surrogate = c; + return; + } + + if (_outPtr >= _outBufferEnd) { // let's require enough room, first + _out.write(_outBuffer, 0, _outPtr); + _outPtr = 0; + } + + if (c < 0x80) { // ascii + _outBuffer[_outPtr++] = (byte) c; + } else { + int ptr = _outPtr; + if (c < 0x800) { // 2-byte + _outBuffer[ptr++] = (byte) (0xc0 | (c >> 6)); + _outBuffer[ptr++] = (byte) (0x80 | (c & 0x3f)); + } else if (c <= 0xFFFF) { // 3 bytes + _outBuffer[ptr++] = (byte) (0xe0 | (c >> 12)); + _outBuffer[ptr++] = (byte) (0x80 | ((c >> 6) & 0x3f)); + _outBuffer[ptr++] = (byte) (0x80 | (c & 0x3f)); + } else { // 4 bytes + if (c > 0x10FFFF) { // illegal + throwIllegal(c); + } + _outBuffer[ptr++] = (byte) (0xf0 | (c >> 18)); + _outBuffer[ptr++] = (byte) (0x80 | ((c >> 12) & 0x3f)); + _outBuffer[ptr++] = (byte) (0x80 | ((c >> 6) & 0x3f)); + _outBuffer[ptr++] = (byte) (0x80 | (c & 0x3f)); + } + _outPtr = ptr; + } + } + + @Override + public void write(String str) throws IOException + { + write(str, 0, str.length()); + } + + @Override + public void write(String str, int off, int len) throws IOException + { + if (len < 2) { + if (len == 1) { + write(str.charAt(off)); + } + return; + } + + // First: do we have a leftover surrogate to deal with? + if (_surrogate > 0) { + char second = str.charAt(off++); + --len; + write(convertSurrogate(second)); + // will have at least one more char (case of 1 char was checked earlier on) + } + + int outPtr = _outPtr; + byte[] outBuf = _outBuffer; + int outBufLast = _outBufferEnd; // has 4 'spare' bytes + + // All right; can just loop it nice and easy now: + len += off; // len will now be the end of input buffer + + output_loop: + for (; off < len; ) { + /* First, let's ensure we can output at least 4 bytes + * (longest UTF-8 encoded codepoint): + */ + if (outPtr >= outBufLast) { + _out.write(outBuf, 0, outPtr); + outPtr = 0; + } + + int c = str.charAt(off++); + // And then see if we have an Ascii char: + if (c < 0x80) { // If so, can do a tight inner loop: + outBuf[outPtr++] = (byte)c; + // Let's calc how many ascii chars we can copy at most: + int maxInCount = (len - off); + int maxOutCount = (outBufLast - outPtr); + + if (maxInCount > maxOutCount) { + maxInCount = maxOutCount; + } + maxInCount += off; + ascii_loop: + while (true) { + if (off >= maxInCount) { // done with max. ascii seq + continue output_loop; + } + c = str.charAt(off++); + if (c >= 0x80) { + break ascii_loop; + } + outBuf[outPtr++] = (byte) c; + } + } + + // Nope, multi-byte: + if (c < 0x800) { // 2-byte + outBuf[outPtr++] = (byte) (0xc0 | (c >> 6)); + outBuf[outPtr++] = (byte) (0x80 | (c & 0x3f)); + } else { // 3 or 4 bytes + // Surrogates? + if (c < SURR1_FIRST || c > SURR2_LAST) { + outBuf[outPtr++] = (byte) (0xe0 | (c >> 12)); + outBuf[outPtr++] = (byte) (0x80 | ((c >> 6) & 0x3f)); + outBuf[outPtr++] = (byte) (0x80 | (c & 0x3f)); + continue; + } + // Yup, a surrogate: + if (c > SURR1_LAST) { // must be from first range + _outPtr = outPtr; + throwIllegal(c); + } + _surrogate = c; + // and if so, followed by another from next range + if (off >= len) { // unless we hit the end? + break; + } + c = convertSurrogate(str.charAt(off++)); + if (c > 0x10FFFF) { // illegal, as per RFC 4627 + _outPtr = outPtr; + throwIllegal(c); + } + outBuf[outPtr++] = (byte) (0xf0 | (c >> 18)); + outBuf[outPtr++] = (byte) (0x80 | ((c >> 12) & 0x3f)); + outBuf[outPtr++] = (byte) (0x80 | ((c >> 6) & 0x3f)); + outBuf[outPtr++] = (byte) (0x80 | (c & 0x3f)); + } + } + _outPtr = outPtr; + } + + /* + /********************************************************** + /* Internal methods + /********************************************************** + */ + + /** + * Method called to calculate UTF codepoint, from a surrogate pair. + */ + private int convertSurrogate(int secondPart) + throws IOException + { + int firstPart = _surrogate; + _surrogate = 0; + + // Ok, then, is the second part valid? + if (secondPart < SURR2_FIRST || secondPart > SURR2_LAST) { + throw new IOException("Broken surrogate pair: first char 0x"+Integer.toHexString(firstPart)+", second 0x"+Integer.toHexString(secondPart)+"; illegal combination"); + } + return 0x10000 + ((firstPart - SURR1_FIRST) << 10) + (secondPart - SURR2_FIRST); + } + + private void throwIllegal(int code) + throws IOException + { + if (code > 0x10FFFF) { // over max? + throw new IOException("Illegal character point (0x"+Integer.toHexString(code)+") to output; max is 0x10FFFF as per RFC 4627"); + } + if (code >= SURR1_FIRST) { + if (code <= SURR1_LAST) { // Unmatched first part (closing without second part?) + throw new IOException("Unmatched first part of surrogate pair (0x"+Integer.toHexString(code)+")"); + } + throw new IOException("Unmatched second part of surrogate pair (0x"+Integer.toHexString(code)+")"); + } + + // should we ever get this? + throw new IOException("Illegal character point (0x"+Integer.toHexString(code)+") to output"); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/io/package.html b/1.9.10/src/java/org/codehaus/jackson/io/package.html new file mode 100644 index 0000000..e1e662d --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/io/package.html
@@ -0,0 +1,4 @@ +<body> +This package contains I/O helper classes Jackson itself uses, but that +are not exposed for external reuse. +</body>
diff --git a/1.9.10/src/java/org/codehaus/jackson/package-info.java b/1.9.10/src/java/org/codehaus/jackson/package-info.java new file mode 100644 index 0000000..5783ce7 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/package-info.java
@@ -0,0 +1,30 @@ +/** + * Main public API classes of the core streaming JSON + * processor: most importantly {@link org.codehaus.jackson.JsonFactory} + * used for constructing + * JSON parser ({@link org.codehaus.jackson.JsonParser}) + * and generator + * ({@link org.codehaus.jackson.JsonParser}) + * instances. + * <p> + * Public API of the higher-level mapping interfaces ("Mapping API") + * is found from + * under {@link org.codehaus.jackson.map} and not included here, + * except for following base interfaces: + * <ul> + *<li>{@link org.codehaus.jackson.JsonNode} is included + *within Streaming API to support integration of the Tree Model + *(which is based on <code>JsonNode</code>) with the basic + *parsers and generators (iff using mapping-supporting factory: which + *is part of Mapping API, not core) + * </li> + *<li>{@link org.codehaus.jackson.ObjectCodec} is included so that + * reference to the object capable of serializing/deserializing + * Objects to/from JSON (usually, {@link org.codehaus.jackson.map.ObjectMapper}) + * can be exposed, without adding direct dependency to implementation. + * </li> + *</ul> + * </ul> + */ + +package org.codehaus.jackson;
diff --git a/1.9.10/src/java/org/codehaus/jackson/sym/BytesToNameCanonicalizer.java b/1.9.10/src/java/org/codehaus/jackson/sym/BytesToNameCanonicalizer.java new file mode 100644 index 0000000..ea4a6c3 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/sym/BytesToNameCanonicalizer.java
@@ -0,0 +1,1208 @@ +package org.codehaus.jackson.sym; + +import java.util.Arrays; +import java.util.concurrent.atomic.AtomicReference; + +import org.codehaus.jackson.util.InternCache; + +/** + * A caching symbol table implementation used for canonicalizing JSON field + * names (as {@link Name}s which are constructed directly from a byte-based + * input source). + * Complications arise from trying to do efficient reuse and merging of + * symbol tables, to be able to make use of usually shared vocabulary + * of subsequent parsing runs. + * + * @author Tatu Saloranta + */ +public final class BytesToNameCanonicalizer +{ + protected static final int DEFAULT_TABLE_SIZE = 64; + + /** + * Let's not expand symbol tables past some maximum size; + * this should protected against OOMEs caused by large documents + * with unique (~= random) names. + */ + protected static final int MAX_TABLE_SIZE = 0x10000; // 64k entries == 256k mem + + /** + * Let's only share reasonably sized symbol tables. Max size set to 3/4 of 16k; + * this corresponds to 64k main hash index. This should allow for enough distinct + * names for almost any case. + */ + final static int MAX_ENTRIES_FOR_REUSE = 6000; + + /** + * Also: to thwart attacks based on hash collisions (which may or may not + * be cheap to calculate), we will need to detect "too long" + * collision chains. Let's start with static value of 255 entries + * for the longest legal chain. + *<p> + * Note: longest chain we have been able to produce without malicious + * intent has been 60 (with "com.fasterxml.jackson.core.main.TestWithTonsaSymbols"); + * our setting should be reasonable here. + * + * @since 1.9.9 + */ + final static int MAX_COLL_CHAIN_LENGTH = 255; + + /** + * And to support reduce likelihood of accidental collisions causing + * exceptions, let's prevent reuse of tables with long collision + * overflow lists as well. + * + * @since 1.9.9 + */ + final static int MAX_COLL_CHAIN_FOR_REUSE = 63; + + /** + * No point in trying to construct tiny tables, just need to resize + * soon. + */ + final static int MIN_HASH_SIZE = 16; + + /** + * We will also need to defin + */ + final static int INITIAL_COLLISION_LEN = 32; + + /** + * Bucket index is 8 bits, and value 0 is reserved to represent + * 'empty' status. + */ + final static int LAST_VALID_BUCKET = 0xFE; + + /* + /********************************************************** + /* Linkage, needed for merging symbol tables + /********************************************************** + */ + + /** + * Reference to the root symbol table, for child tables, so + * that they can merge table information back as necessary. + */ + final protected BytesToNameCanonicalizer _parent; + + /** + * Member that is only used by the root table instance: root + * passes immutable state into child instances, and children + * may return new state if they add entries to the table. + * Child tables do NOT use the reference. + */ + final protected AtomicReference<TableInfo> _tableInfo; + + /** + * Seed value we use as the base to make hash codes non-static between + * different runs, but still stable for lifetime of a single symbol table + * instance. + * This is done for security reasons, to avoid potential DoS attack via + * hash collisions. + * + * @since 1.9.9 + */ + final private int _hashSeed; + + /* + /********************************************************** + /* Main table state + /********************************************************** + */ + + /** + * Whether canonical symbol Strings are to be intern()ed before added + * to the table or not + */ + protected final boolean _intern; + + // // // First, global information + + /** + * Total number of Names in the symbol table; + * only used for child tables. + */ + protected int _count; + + /** + * We need to keep track of the longest collision list; this is needed + * both to indicate problems with attacks and to allow flushing for + * other cases. + * + * @since 1.9.9 + */ + protected int _longestCollisionList; + + // // // Then information regarding primary hash array and its + // // // matching Name array + + /** + * Mask used to truncate 32-bit hash value to current hash array + * size; essentially, hash array size - 1 (since hash array sizes + * are 2^N). + */ + protected int _mainHashMask; + + /** + * Array of 2^N size, which contains combination + * of 24-bits of hash (0 to indicate 'empty' slot), + * and 8-bit collision bucket index (0 to indicate empty + * collision bucket chain; otherwise subtract one from index) + */ + protected int[] _mainHash; + + /** + * Array that contains <code>Name</code> instances matching + * entries in <code>_mainHash</code>. Contains nulls for unused + * entries. + */ + protected Name[] _mainNames; + + // // // Then the collision/spill-over area info + + /** + * Array of heads of collision bucket chains; size dynamically + */ + protected Bucket[] _collList; + + /** + * Total number of Names in collision buckets (included in + * <code>_count</code> along with primary entries) + */ + protected int _collCount; + + /** + * Index of the first unused collision bucket entry (== size of + * the used portion of collision list): less than + * or equal to 0xFF (255), since max number of entries is 255 + * (8-bit, minus 0 used as 'empty' marker) + */ + protected int _collEnd; + + // // // Info regarding pending rehashing... + + /** + * This flag is set if, after adding a new entry, it is deemed + * that a rehash is warranted if any more entries are to be added. + */ + private transient boolean _needRehash; + + /* + /********************************************************** + /* Sharing, versioning + /********************************************************** + */ + + // // // Which of the buffers may be shared (and are copy-on-write)? + + /** + * Flag that indicates whether underlying data structures for + * the main hash area are shared or not. If they are, then they + * need to be handled in copy-on-write way, i.e. if they need + * to be modified, a copy needs to be made first; at this point + * it will not be shared any more, and can be modified. + *<p> + * This flag needs to be checked both when adding new main entries, + * and when adding new collision list queues (i.e. creating a new + * collision list head entry) + */ + private boolean _mainHashShared; + + private boolean _mainNamesShared; + + /** + * Flag that indicates whether underlying data structures for + * the collision list are shared or not. If they are, then they + * need to be handled in copy-on-write way, i.e. if they need + * to be modified, a copy needs to be made first; at this point + * it will not be shared any more, and can be modified. + *<p> + * This flag needs to be checked when adding new collision entries. + */ + private boolean _collListShared; + + /* + /********************************************************** + /* Life-cycle: constructors + /********************************************************** + */ + + /** + * Constructor used for creating per-<code>JsonFactory</code> "root" + * symbol tables: ones used for merging and sharing common symbols + * + * @param hashSize Initial hash area size + * @param intern Whether Strings contained should be {@link String#intern}ed + * @param seed Random seed valued used to make it more difficult to cause + * collisions (used for collision-based DoS attacks). + */ + private BytesToNameCanonicalizer(int hashSize, boolean intern, int seed) + { + _parent = null; + _hashSeed = seed; + _intern = intern; + // Sanity check: let's now allow hash sizes below certain minimum value + if (hashSize < MIN_HASH_SIZE) { + hashSize = MIN_HASH_SIZE; + } else { + /* Also; size must be 2^N; otherwise hash algorithm won't + * work... so let's just pad it up, if so + */ + if ((hashSize & (hashSize - 1)) != 0) { // only true if it's 2^N + int curr = MIN_HASH_SIZE; + while (curr < hashSize) { + curr += curr; + } + hashSize = curr; + } + } + _tableInfo = new AtomicReference<TableInfo>(initTableInfo(hashSize)); + } + + /** + * Constructor used when creating a child instance + */ + private BytesToNameCanonicalizer(BytesToNameCanonicalizer parent, boolean intern, int seed, + TableInfo state) + { + _parent = parent; + _hashSeed = seed; + _intern = intern; + _tableInfo = null; // not used by child tables + + // Then copy shared state + _count = state.count; + _mainHashMask = state.mainHashMask; + _mainHash = state.mainHash; + _mainNames = state.mainNames; + _collList = state.collList; + _collCount = state.collCount; + _collEnd = state.collEnd; + _longestCollisionList = state.longestCollisionList; + + // and then set other state to reflect sharing status + _needRehash = false; + _mainHashShared = true; + _mainNamesShared = true; + _collListShared = true; + } + + /* + public TableInfo(int count, int mainHashMask, int[] mainHash, Name[] mainNames, + Bucket[] collList, int collCount, int collEnd, int longestCollisionList) + */ + private TableInfo initTableInfo(int hashSize) + { + return new TableInfo(0, // count + hashSize - 1, // mainHashMask + new int[hashSize], // mainHash + new Name[hashSize], // mainNames + null, // collList + 0, // collCount, + 0, // collEnd + 0 // longestCollisionList + ); + } + + /* + /********************************************************** + /* Life-cycle: factory methods, merging + /********************************************************** + */ + + /** + * Factory method to call to create a symbol table instance with a + * randomized seed value. + */ + public static BytesToNameCanonicalizer createRoot() + { + /* [Issue-21]: Need to use a variable seed, to thwart hash-collision + * based attacks. + */ + long now = System.currentTimeMillis(); + // ensure it's not 0; and might as well require to be odd so: + int seed = (((int) now) + ((int) now >>> 32)) | 1; + return createRoot(seed); + } + + /** + * Factory method that should only be called from unit tests, where seed + * value should remain the same. + */ + protected static BytesToNameCanonicalizer createRoot(int hashSeed) { + return new BytesToNameCanonicalizer(DEFAULT_TABLE_SIZE, true, hashSeed); + } + + /** + * Factory method used to create actual symbol table instance to + * use for parsing. + * + * @param intern Whether canonical symbol Strings should be interned + * or not + */ + public BytesToNameCanonicalizer makeChild(boolean canonicalize, + boolean intern) + { + return new BytesToNameCanonicalizer(this, intern, _hashSeed, _tableInfo.get()); + } + + /** + * Method called by the using code to indicate it is done + * with this instance. This lets instance merge accumulated + * changes into parent (if need be), safely and efficiently, + * and without calling code having to know about parent + * information + */ + public void release() + { + // we will try to merge if child table has new entries + if (_parent != null && maybeDirty()) { + _parent.mergeChild(new TableInfo(this)); + /* Let's also mark this instance as dirty, so that just in + * case release was too early, there's no corruption of possibly shared data. + */ + _mainHashShared = true; + _mainNamesShared = true; + _collListShared = true; + } + } + + private void mergeChild(TableInfo childState) + { + final int childCount = childState.count; + TableInfo currState = _tableInfo.get(); + + // Only makes sense if child actually has more entries + if (childCount <= currState.count) { + return; + } + + /* One caveat: let's try to avoid problems with + * degenerate cases of documents with generated "random" + * names: for these, symbol tables would bloat indefinitely. + * One way to do this is to just purge tables if they grow + * too large, and that's what we'll do here. + */ + if (childCount > MAX_ENTRIES_FOR_REUSE + || childState.longestCollisionList > MAX_COLL_CHAIN_FOR_REUSE) { + /* Should there be a way to get notified about this + * event, to log it or such? (as it's somewhat abnormal + * thing to happen) + */ + // At any rate, need to clean up the tables + childState = initTableInfo(DEFAULT_TABLE_SIZE); + } + _tableInfo.compareAndSet(currState, childState); + } + + /* + /********************************************************** + /* API, accessors + /********************************************************** + */ + + public int size() + { + if (_tableInfo != null) { // root table + return _tableInfo.get().count; + } + // nope, child table + return _count; + } + + /** + * @since 1.9.9 + */ + public int bucketCount() { return _mainHash.length; } + + /** + * Method called to check to quickly see if a child symbol table + * may have gotten additional entries. Used for checking to see + * if a child table should be merged into shared table. + */ + public boolean maybeDirty() { + return !_mainHashShared; + } + + /** + * @since 1.9.9 + */ + public int hashSeed() { return _hashSeed; } + + /** + * Method mostly needed by unit tests; calculates number of + * entries that are in collision list. Value can be at most + * ({@link #size} - 1), but should usually be much lower, ideally 0. + * + * @since 1.9.9 + */ + public int collisionCount() { + return _collCount; + } + + /** + * Method mostly needed by unit tests; calculates length of the + * longest collision chain. This should typically be a low number, + * but may be up to {@link #size} - 1 in the pathological case + * + * @since 1.9.9 + */ + public int maxCollisionLength() { + return _longestCollisionList; + } + + /* + /********************************************************** + /* Public API, accessing symbols: + /********************************************************** + */ + + public static Name getEmptyName() + { + return Name1.getEmptyName(); + } + + /** + * Finds and returns name matching the specified symbol, if such + * name already exists in the table. + * If not, will return null. + *<p> + * Note: separate methods to optimize common case of + * short element/attribute names (4 or less ascii characters) + * + * @param firstQuad int32 containing first 4 bytes of the name; + * if the whole name less than 4 bytes, padded with zero bytes + * in front (zero MSBs, ie. right aligned) + * + * @return Name matching the symbol passed (or constructed for + * it) + */ + public Name findName(int firstQuad) + { + int hash = calcHash(firstQuad); + int ix = (hash & _mainHashMask); + int val = _mainHash[ix]; + + /* High 24 bits of the value are low 24 bits of hash (low 8 bits + * are bucket index)... match? + */ + if ((((val >> 8) ^ hash) << 8) == 0) { // match + // Ok, but do we have an actual match? + Name name = _mainNames[ix]; + if (name == null) { // main slot empty; can't find + return null; + } + if (name.equals(firstQuad)) { + return name; + } + } else if (val == 0) { // empty slot? no match + return null; + } + // Maybe a spill-over? + val &= 0xFF; + if (val > 0) { // 0 means 'empty' + val -= 1; // to convert from 1-based to 0... + Bucket bucket = _collList[val]; + if (bucket != null) { + return bucket.find(hash, firstQuad, 0); + } + } + // Nope, no match whatsoever + return null; + } + + /** + * Finds and returns name matching the specified symbol, if such + * name already exists in the table. + * If not, will return null. + *<p> + * Note: separate methods to optimize common case of relatively + * short element/attribute names (8 or less ascii characters) + * + * @param firstQuad int32 containing first 4 bytes of the name. + * @param secondQuad int32 containing bytes 5 through 8 of the + * name; if less than 8 bytes, padded with up to 3 zero bytes + * in front (zero MSBs, ie. right aligned) + * + * @return Name matching the symbol passed (or constructed for it) + */ + public Name findName(int firstQuad, int secondQuad) + { + int hash = (secondQuad == 0) ? calcHash(firstQuad) : calcHash(firstQuad, secondQuad); + int ix = (hash & _mainHashMask); + int val = _mainHash[ix]; + + /* High 24 bits of the value are low 24 bits of hash (low 8 bits + * are bucket index)... match? + */ + if ((((val >> 8) ^ hash) << 8) == 0) { // match + // Ok, but do we have an actual match? + Name name = _mainNames[ix]; + if (name == null) { // main slot empty; can't find + return null; + } + if (name.equals(firstQuad, secondQuad)) { + return name; + } + } else if (val == 0) { // empty slot? no match + return null; + } + // Maybe a spill-over? + val &= 0xFF; + if (val > 0) { // 0 means 'empty' + val -= 1; // to convert from 1-based to 0... + Bucket bucket = _collList[val]; + if (bucket != null) { + return bucket.find(hash, firstQuad, secondQuad); + } + } + // Nope, no match whatsoever + return null; + } + + /** + * Finds and returns name matching the specified symbol, if such + * name already exists in the table; or if not, creates name object, + * adds to the table, and returns it. + *<p> + * Note: this is the general purpose method that can be called for + * names of any length. However, if name is less than 9 bytes long, + * it is preferable to call the version optimized for short + * names. + * + * @param quads Array of int32s, each of which contain 4 bytes of + * encoded name + * @param qlen Number of int32s, starting from index 0, in quads + * parameter + * + * @return Name matching the symbol passed (or constructed for it) + */ + public Name findName(int[] quads, int qlen) + { + if (qlen < 3) { // another sanity check + return findName(quads[0], (qlen < 2) ? 0 : quads[1]); + } + int hash = calcHash(quads, qlen); + // (for rest of comments regarding logic, see method above) + int ix = (hash & _mainHashMask); + int val = _mainHash[ix]; + if ((((val >> 8) ^ hash) << 8) == 0) { + Name name = _mainNames[ix]; + if (name == null // main slot empty; no collision list then either + || name.equals(quads, qlen)) { // should be match, let's verify + return name; + } + } else if (val == 0) { // empty slot? no match + return null; + } + val &= 0xFF; + if (val > 0) { // 0 means 'empty' + val -= 1; // to convert from 1-based to 0... + Bucket bucket = _collList[val]; + if (bucket != null) { + return bucket.find(hash, quads, qlen); + } + } + return null; + } + + /* + /********************************************************** + /* API, mutators + /********************************************************** + */ + + public Name addName(String symbolStr, int q1, int q2) + { + if (_intern) { + symbolStr = InternCache.instance.intern(symbolStr); + } + int hash = (q2 == 0) ? calcHash(q1) : calcHash(q1, q2); + Name symbol = constructName(hash, symbolStr, q1, q2); + _addSymbol(hash, symbol); + return symbol; + } + + public Name addName(String symbolStr, int[] quads, int qlen) + { + if (_intern) { + symbolStr = InternCache.instance.intern(symbolStr); + } + int hash; + if (qlen < 3) { + hash = (qlen == 1) ? calcHash(quads[0]) : calcHash(quads[0], quads[1]); + } else { + hash = calcHash(quads, qlen); + } + Name symbol = constructName(hash, symbolStr, quads, qlen); + _addSymbol(hash, symbol); + return symbol; + } + + /* + /********************************************************** + /* Helper methods + /********************************************************** + */ + + /* Note on hash calculation: we try to make it more difficult to + * generate collisions automatically; part of this is to avoid + * simple "multiply-add" algorithm (like JDK String.hashCode()), + * and add bit of shifting. And other part is to make this + * non-linear, at least for shorter symbols. + */ + + // JDK uses 31; other fine choices are 33 and 65599, let's use 33 + // as it seems to give fewest collisions for us + // (see [http://www.cse.yorku.ca/~oz/hash.html] for details) + private final static int MULT = 33; + private final static int MULT2 = 65599; + private final static int MULT3 = 31; + + public final int calcHash(int firstQuad) + { + int hash = firstQuad ^ _hashSeed; + hash += (hash >>> 15); // to xor hi- and low- 16-bits + hash ^= (hash >>> 9); // as well as lowest 2 bytes + return hash; + } + + public final int calcHash(int firstQuad, int secondQuad) + { + /* For two quads, let's change algorithm a bit, to spice + * things up (can do bit more processing anyway) + */ + int hash = firstQuad; + hash ^= (hash >>> 15); // try mixing first and second byte pairs first + hash += (secondQuad * MULT); // then add second quad + hash ^= _hashSeed; + hash += (hash >>> 7); // and shuffle some more + return hash; + } + + public final int calcHash(int[] quads, int qlen) + { + // Note: may be called for qlen < 3; but has at least one int + if (qlen < 3) { + throw new IllegalArgumentException(); + } + + /* And then change handling again for "multi-quad" case; mostly + * to make calculation of collisions less fun. For example, + * add seed bit later in the game, and switch plus/xor around, + * use different shift lengths. + */ + int hash = quads[0] ^ _hashSeed; + hash += (hash >>> 9); + hash *= MULT; + hash += quads[1]; + hash *= MULT2; + hash += (hash >>> 15); + hash ^= quads[2]; + hash += (hash >>> 17); + + for (int i = 3; i < qlen; ++i) { + hash = (hash * MULT3) ^ quads[i]; + // for longer entries, mess a bit in-between too + hash += (hash >>> 3); + hash ^= (hash << 7); + } + // and finally shuffle some more once done + hash += (hash >>> 15); // to get high-order bits to mix more + hash ^= (hash << 9); // as well as lowest 2 bytes + return hash; + } + + // Method only used by unit tests + protected static int[] calcQuads(byte[] wordBytes) + { + int blen = wordBytes.length; + int[] result = new int[(blen + 3) / 4]; + for (int i = 0; i < blen; ++i) { + int x = wordBytes[i] & 0xFF; + + if (++i < blen) { + x = (x << 8) | (wordBytes[i] & 0xFF); + if (++i < blen) { + x = (x << 8) | (wordBytes[i] & 0xFF); + if (++i < blen) { + x = (x << 8) | (wordBytes[i] & 0xFF); + } + } + } + result[i >> 2] = x; + } + return result; + } + + /* + /********************************************************** + /* Standard methods + /********************************************************** + */ + + /* + @Override + public String toString() + { + StringBuilder sb = new StringBuilder(); + sb.append("[BytesToNameCanonicalizer, size: "); + sb.append(_count); + sb.append('/'); + sb.append(_mainHash.length); + sb.append(", "); + sb.append(_collCount); + sb.append(" coll; avg length: "); + + // Average length: minimum of 1 for all (1 == primary hit); + // and then 1 per each traversal for collisions/buckets + //int maxDist = 1; + int pathCount = _count; + for (int i = 0; i < _collEnd; ++i) { + int spillLen = _collList[i].length(); + for (int j = 1; j <= spillLen; ++j) { + pathCount += j; + } + } + double avgLength; + + if (_count == 0) { + avgLength = 0.0; + } else { + avgLength = (double) pathCount / (double) _count; + } + // let's round up a bit (two 2 decimal places) + //avgLength -= (avgLength % 0.01); + + sb.append(avgLength); + sb.append(']'); + return sb.toString(); + } + */ + + /* + /********************************************************** + /* Internal methods + /********************************************************** + */ + + private void _addSymbol(int hash, Name symbol) + { + if (_mainHashShared) { // always have to modify main entry + unshareMain(); + } + // First, do we need to rehash? + if (_needRehash) { + rehash(); + } + + ++_count; + + /* Ok, enough about set up: now we need to find the slot to add + * symbol in: + */ + int ix = (hash & _mainHashMask); + if (_mainNames[ix] == null) { // primary empty? + _mainHash[ix] = (hash << 8); + if (_mainNamesShared) { + unshareNames(); + } + _mainNames[ix] = symbol; + } else { // nope, it's a collision, need to spill over + /* How about spill-over area... do we already know the bucket + * (is the case if it's not the first collision) + */ + if (_collListShared) { + unshareCollision(); // also allocates if list was null + } + ++_collCount; + int entryValue = _mainHash[ix]; + int bucket = entryValue & 0xFF; + if (bucket == 0) { // first spill over? + if (_collEnd <= LAST_VALID_BUCKET) { // yup, still unshared bucket + bucket = _collEnd; + ++_collEnd; + // need to expand? + if (bucket >= _collList.length) { + expandCollision(); + } + } else { // nope, have to share... let's find shortest? + bucket = findBestBucket(); + } + // Need to mark the entry... and the spill index is 1-based + _mainHash[ix] = (entryValue & ~0xFF) | (bucket + 1); + } else { + --bucket; // 1-based index in value + } + + // And then just need to link the new bucket entry in + Bucket newB = new Bucket(symbol, _collList[bucket]); + _collList[bucket] = newB; + // but, be careful wrt attacks + _longestCollisionList = Math.max(newB.length(), _longestCollisionList); + if (_longestCollisionList > MAX_COLL_CHAIN_LENGTH) { + reportTooManyCollisions(MAX_COLL_CHAIN_LENGTH); + } + } + + /* Ok. Now, do we need a rehash next time? Need to have at least + * 50% fill rate no matter what: + */ + { + int hashSize = _mainHash.length; + if (_count > (hashSize >> 1)) { + int hashQuarter = (hashSize >> 2); + /* And either strictly above 75% (the usual) or + * just 50%, and collision count >= 25% of total hash size + */ + if (_count > (hashSize - hashQuarter)) { + _needRehash = true; + } else if (_collCount >= hashQuarter) { + _needRehash = true; + } + } + } + } + + private void rehash() + { + _needRehash = false; + // Note: since we'll make copies, no need to unshare, can just mark as such: + _mainNamesShared = false; + + /* And then we can first deal with the main hash area. Since we + * are expanding linearly (double up), we know there'll be no + * collisions during this phase. + */ + int[] oldMainHash = _mainHash; + int len = oldMainHash.length; + int newLen = len+len; + + /* 13-Mar-2010, tatu: Let's guard against OOME that could be caused by + * large documents with unique (or mostly so) names + */ + if (newLen > MAX_TABLE_SIZE) { + nukeSymbols(); + return; + } + + _mainHash = new int[newLen]; + _mainHashMask = (newLen - 1); + Name[] oldNames = _mainNames; + _mainNames = new Name[newLen]; + int symbolsSeen = 0; // let's do a sanity check + for (int i = 0; i < len; ++i) { + Name symbol = oldNames[i]; + if (symbol != null) { + ++symbolsSeen; + int hash = symbol.hashCode(); + int ix = (hash & _mainHashMask); + _mainNames[ix] = symbol; + _mainHash[ix] = hash << 8; // will clear spill index + } + } + + /* And then the spill area. This may cause collisions, although + * not necessarily as many as there were earlier. Let's allocate + * same amount of space, however + */ + int oldEnd = _collEnd; + if (oldEnd == 0) { // no prior collisions... + _longestCollisionList = 0; + return; + } + + _collCount = 0; + _collEnd = 0; + _collListShared = false; + + int maxColl = 0; + + Bucket[] oldBuckets = _collList; + _collList = new Bucket[oldBuckets.length]; + for (int i = 0; i < oldEnd; ++i) { + for (Bucket curr = oldBuckets[i]; curr != null; curr = curr._next) { + ++symbolsSeen; + Name symbol = curr._name; + int hash = symbol.hashCode(); + int ix = (hash & _mainHashMask); + int val = _mainHash[ix]; + if (_mainNames[ix] == null) { // no primary entry? + _mainHash[ix] = (hash << 8); + _mainNames[ix] = symbol; + } else { // nope, it's a collision, need to spill over + ++_collCount; + int bucket = val & 0xFF; + if (bucket == 0) { // first spill over? + if (_collEnd <= LAST_VALID_BUCKET) { // yup, still unshared bucket + bucket = _collEnd; + ++_collEnd; + // need to expand? + if (bucket >= _collList.length) { + expandCollision(); + } + } else { // nope, have to share... let's find shortest? + bucket = findBestBucket(); + } + // Need to mark the entry... and the spill index is 1-based + _mainHash[ix] = (val & ~0xFF) | (bucket + 1); + } else { + --bucket; // 1-based index in value + } + // And then just need to link the new bucket entry in + Bucket newB = new Bucket(symbol, _collList[bucket]); + _collList[bucket] = newB; + maxColl = Math.max(maxColl, newB.length()); + } + } // for (... buckets in the chain ...) + } // for (... list of bucket heads ... ) + + _longestCollisionList = maxColl; + + if (symbolsSeen != _count) { // sanity check + throw new RuntimeException("Internal error: count after rehash "+symbolsSeen+"; should be "+_count); + } + } + + /** + * Helper method called to empty all shared symbols, but to leave + * arrays allocated + */ + private void nukeSymbols() + { + _count = 0; + _longestCollisionList = 0; + Arrays.fill(_mainHash, 0); + Arrays.fill(_mainNames, null); + Arrays.fill(_collList, null); + _collCount = 0; + _collEnd = 0; + } + + /** + * Method called to find the best bucket to spill a Name over to: + * usually the first bucket that has only one entry, but in general + * first one of the buckets with least number of entries + */ + private int findBestBucket() + { + Bucket[] buckets = _collList; + int bestCount = Integer.MAX_VALUE; + int bestIx = -1; + + for (int i = 0, len = _collEnd; i < len; ++i) { + int count = buckets[i].length(); + if (count < bestCount) { + if (count == 1) { // best possible + return i; + } + bestCount = count; + bestIx = i; + } + } + return bestIx; + } + + /** + * Method that needs to be called, if the main hash structure + * is (may be) shared. This happens every time something is added, + * even if addition is to the collision list (since collision list + * index comes from lowest 8 bits of the primary hash entry) + */ + private void unshareMain() + { + int[] old = _mainHash; + int len = _mainHash.length; + + _mainHash = new int[len]; + System.arraycopy(old, 0, _mainHash, 0, len); + _mainHashShared = false; + } + + private void unshareCollision() + { + Bucket[] old = _collList; + if (old == null) { + _collList = new Bucket[INITIAL_COLLISION_LEN]; + } else { + int len = old.length; + _collList = new Bucket[len]; + System.arraycopy(old, 0, _collList, 0, len); + } + _collListShared = false; + } + + private void unshareNames() + { + Name[] old = _mainNames; + int len = old.length; + _mainNames = new Name[len]; + System.arraycopy(old, 0, _mainNames, 0, len); + _mainNamesShared = false; + } + + private void expandCollision() + { + Bucket[] old = _collList; + int len = old.length; + _collList = new Bucket[len+len]; + System.arraycopy(old, 0, _collList, 0, len); + } + + + /* + /********************************************************** + /* Constructing name objects + /********************************************************** + */ + + private static Name constructName(int hash, String name, int q1, int q2) + { + if (q2 == 0) { // one quad only? + return new Name1(name, hash, q1); + } + return new Name2(name, hash, q1, q2); + } + + private static Name constructName(int hash, String name, int[] quads, int qlen) + { + if (qlen < 4) { // Need to check for 3 quad one, can do others too + switch (qlen) { + case 1: + return new Name1(name, hash, quads[0]); + case 2: + return new Name2(name, hash, quads[0], quads[1]); + case 3: + return new Name3(name, hash, quads[0], quads[1], quads[2]); + default: + } + } + // Otherwise, need to copy the incoming buffer + int[] buf = new int[qlen]; + for (int i = 0; i < qlen; ++i) { + buf[i] = quads[i]; + } + return new NameN(name, hash, buf, qlen); + } + + /* + /********************************************************** + /* Other helper methods + /********************************************************** + */ + + /** + * @since 1.9.9 + */ + protected void reportTooManyCollisions(int maxLen) + { + throw new IllegalStateException("Longest collision chain in symbol table (of size "+_count + +") now exceeds maximum, "+maxLen+" -- suspect a DoS attack based on hash collisions"); + } + + /* + /********************************************************** + /* Helper classes + /********************************************************** + */ + + /** + * Immutable value class used for sharing information as efficiently + * as possible, by only require synchronization of reference manipulation + * but not access to contents. + * + * @since 1.9.9 + */ + private final static class TableInfo + { + public final int count; + public final int mainHashMask; + public final int[] mainHash; + public final Name[] mainNames; + public final Bucket[] collList; + public final int collCount; + public final int collEnd; + public final int longestCollisionList; + + public TableInfo(int count, int mainHashMask, int[] mainHash, Name[] mainNames, + Bucket[] collList, int collCount, int collEnd, int longestCollisionList) + { + this.count = count; + this.mainHashMask = mainHashMask; + this.mainHash = mainHash; + this.mainNames = mainNames; + this.collList = collList; + this.collCount = collCount; + this.collEnd = collEnd; + this.longestCollisionList = longestCollisionList; + } + + public TableInfo(BytesToNameCanonicalizer src) + { + count = src._count; + mainHashMask = src._mainHashMask; + mainHash = src._mainHash; + mainNames = src._mainNames; + collList = src._collList; + collCount = src._collCount; + collEnd = src._collEnd; + longestCollisionList = src._longestCollisionList; + } + + } + + /** + * + */ + final static class Bucket + { + protected final Name _name; + protected final Bucket _next; + private final int _length; + + Bucket(Name name, Bucket next) + { + _name = name; + _next = next; + _length = (next == null) ? 1 : next._length+1; + } + + public int length() { return _length; } + + public Name find(int hash, int firstQuad, int secondQuad) + { + if (_name.hashCode() == hash) { + if (_name.equals(firstQuad, secondQuad)) { + return _name; + } + } + for (Bucket curr = _next; curr != null; curr = curr._next) { + Name currName = curr._name; + if (currName.hashCode() == hash) { + if (currName.equals(firstQuad, secondQuad)) { + return currName; + } + } + } + return null; + } + + public Name find(int hash, int[] quads, int qlen) + { + if (_name.hashCode() == hash) { + if (_name.equals(quads, qlen)) { + return _name; + } + } + for (Bucket curr = _next; curr != null; curr = curr._next) { + Name currName = curr._name; + if (currName.hashCode() == hash) { + if (currName.equals(quads, qlen)) { + return currName; + } + } + } + return null; + } + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/sym/CharsToNameCanonicalizer.java b/1.9.10/src/java/org/codehaus/jackson/sym/CharsToNameCanonicalizer.java new file mode 100644 index 0000000..e20e691 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/sym/CharsToNameCanonicalizer.java
@@ -0,0 +1,730 @@ +package org.codehaus.jackson.sym; + +import java.util.Arrays; + +import org.codehaus.jackson.util.InternCache; + +/** + * This class is a kind of specialized type-safe Map, from char array to + * String value. Specialization means that in addition to type-safety + * and specific access patterns (key char array, Value optionally interned + * String; values added on access if necessary), and that instances are + * meant to be used concurrently, but by using well-defined mechanisms + * to obtain such concurrently usable instances. Main use for the class + * is to store symbol table information for things like compilers and + * parsers; especially when number of symbols (keywords) is limited. + *<p> + * For optimal performance, usage pattern should be one where matches + * should be very common (especially after "warm-up"), and as with most hash-based + * maps/sets, that hash codes are uniformly distributed. Also, collisions + * are slightly more expensive than with HashMap or HashSet, since hash codes + * are not used in resolving collisions; that is, equals() comparison is + * done with all symbols in same bucket index.<br /> + * Finally, rehashing is also more expensive, as hash codes are not + * stored; rehashing requires all entries' hash codes to be recalculated. + * Reason for not storing hash codes is reduced memory usage, hoping + * for better memory locality. + *<p> + * Usual usage pattern is to create a single "master" instance, and either + * use that instance in sequential fashion, or to create derived "child" + * instances, which after use, are asked to return possible symbol additions + * to master instance. In either case benefit is that symbol table gets + * initialized so that further uses are more efficient, as eventually all + * symbols needed will already be in symbol table. At that point no more + * Symbol String allocations are needed, nor changes to symbol table itself. + *<p> + * Note that while individual SymbolTable instances are NOT thread-safe + * (much like generic collection classes), concurrently used "child" + * instances can be freely used without synchronization. However, using + * master table concurrently with child instances can only be done if + * access to master instance is read-only (i.e. no modifications done). + */ +public final class CharsToNameCanonicalizer +{ + /* If we use "multiply-add" based hash algorithm, this is the multiplier + * we use. + */ + public final static int HASH_MULT = 33; + + /** + * Default initial table size. Shouldn't be miniscule (as there's + * cost to both array realloc and rehashing), but let's keep + * it reasonably small nonetheless. For systems that properly + * reuse factories it doesn't matter either way; but when + * recreating factories often, initial overhead may dominate. + */ + protected static final int DEFAULT_TABLE_SIZE = 64; + + /** + * Let's not expand symbol tables past some maximum size; + * this should protected against OOMEs caused by large documents + * with uniquer (~= random) names. + */ + protected static final int MAX_TABLE_SIZE = 0x10000; // 64k entries == 256k mem + + /** + * Let's only share reasonably sized symbol tables. Max size set to 3/4 of 16k; + * this corresponds to 64k main hash index. This should allow for enough distinct + * names for almost any case. + */ + final static int MAX_ENTRIES_FOR_REUSE = 12000; + + /** + * Also: to thwart attacks based on hash collisions (which may or may not + * be cheap to calculate), we will need to detect "too long" + * collision chains. Let's start with static value of 255 entries + * for the longest legal chain. + *<p> + * Note: longest chain we have been able to produce without malicious + * intent has been 38 (with "com.fasterxml.jackson.core.main.TestWithTonsaSymbols"); + * our setting should be reasonable here. + * + * @since 1.9.9 + */ + final static int MAX_COLL_CHAIN_LENGTH = 255; + + /** + * And to support reduce likelihood of accidental collisons causing + * exceptions, let's prevent reuse of tables with long collision + * overflow lists as well. + * + * @since 1.9.9 + */ + final static int MAX_COLL_CHAIN_FOR_REUSE = 63; + + final static CharsToNameCanonicalizer sBootstrapSymbolTable; + static { + sBootstrapSymbolTable = new CharsToNameCanonicalizer(); + } + + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + /** + * Sharing of learnt symbols is done by optional linking of symbol + * table instances with their parents. When parent linkage is + * defined, and child instance is released (call to <code>release</code>), + * parent's shared tables may be updated from the child instance. + */ + protected CharsToNameCanonicalizer _parent; + + /** + * Seed value we use as the base to make hash codes non-static between + * different runs, but still stable for lifetime of a single symbol table + * instance. + * This is done for security reasons, to avoid potential DoS attack via + * hash collisions. + * + * @since 1.9.9 + */ + final private int _hashSeed; + + /** + * Whether canonical symbol Strings are to be intern()ed before added + * to the table or not + */ + final protected boolean _intern; + + /** + * Whether any canonicalization should be attempted (whether using + * intern or not) + */ + final protected boolean _canonicalize; + + /* + /********************************************************** + /* Actual symbol table data + /********************************************************** + */ + + /** + * Primary matching symbols; it's expected most match occur from + * here. + */ + protected String[] _symbols; + + /** + * Overflow buckets; if primary doesn't match, lookup is done + * from here. + *<p> + * Note: Number of buckets is half of number of symbol entries, on + * assumption there's less need for buckets. + */ + protected Bucket[] _buckets; + + /** + * Current size (number of entries); needed to know if and when + * rehash. + */ + protected int _size; + + /** + * Limit that indicates maximum size this instance can hold before + * it needs to be expanded and rehashed. Calculated using fill + * factor passed in to constructor. + */ + protected int _sizeThreshold; + + /** + * Mask used to get index from hash values; equal to + * <code>_buckets.length - 1</code>, when _buckets.length is + * a power of two. + */ + protected int _indexMask; + + /** + * We need to keep track of the longest collision list; this is needed + * both to indicate problems with attacks and to allow flushing for + * other cases. + * + * @since 1.9.9 + */ + protected int _longestCollisionList; + + /* + /********************************************************** + /* State regarding shared arrays + /********************************************************** + */ + + /** + * Flag that indicates if any changes have been made to the data; + * used to both determine if bucket array needs to be copied when + * (first) change is made, and potentially if updated bucket list + * is to be resync'ed back to master instance. + */ + protected boolean _dirty; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + /** + * Method called to create root canonicalizer for a {@link org.codehaus.jackson.JsonFactory} + * instance. Root instance is never used directly; its main use is for + * storing and sharing underlying symbol arrays as needed. + */ + public static CharsToNameCanonicalizer createRoot() + { + /* [Issue-21]: Need to use a variable seed, to thwart hash-collision + * based attacks. + */ + long now = System.currentTimeMillis(); + // ensure it's not 0; and might as well require to be odd so: + int seed = (((int) now) + ((int) now >>> 32)) | 1; + return createRoot(seed); + } + + protected static CharsToNameCanonicalizer createRoot(int hashSeed) { + return sBootstrapSymbolTable.makeOrphan(hashSeed); + } + + /** + * Main method for constructing a master symbol table instance. + * + * @param initialSize Minimum initial size for bucket array; internally + * will always use a power of two equal to or bigger than this value. + */ + private CharsToNameCanonicalizer() + { + // these settings don't really matter for the bootstrap instance + _canonicalize = true; + _intern = true; + // And we'll also set flags so no copying of buckets is needed: + _dirty = true; + _hashSeed = 0; + _longestCollisionList = 0; + initTables(DEFAULT_TABLE_SIZE); + } + + private void initTables(int initialSize) + { + _symbols = new String[initialSize]; + _buckets = new Bucket[initialSize >> 1]; + // Mask is easy to calc for powers of two. + _indexMask = initialSize - 1; + _size = 0; + _longestCollisionList = 0; + // Hard-coded fill factor is 75% + _sizeThreshold = _thresholdSize(initialSize); + } + + private final static int _thresholdSize(int hashAreaSize) { + return hashAreaSize - (hashAreaSize >> 2); + } + + /** + * Internal constructor used when creating child instances. + */ + private CharsToNameCanonicalizer(CharsToNameCanonicalizer parent, + boolean canonicalize, boolean intern, + String[] symbols, Bucket[] buckets, int size, + int hashSeed, int longestColl) + { + _parent = parent; + _canonicalize = canonicalize; + _intern = intern; + + _symbols = symbols; + _buckets = buckets; + _size = size; + _hashSeed = hashSeed; + // Hard-coded fill factor, 75% + int arrayLen = (symbols.length); + _sizeThreshold = _thresholdSize(arrayLen); + _indexMask = (arrayLen - 1); + _longestCollisionList = longestColl; + + // Need to make copies of arrays, if/when adding new entries + _dirty = false; + } + + /** + * "Factory" method; will create a new child instance of this symbol + * table. It will be a copy-on-write instance, ie. it will only use + * read-only copy of parent's data, but when changes are needed, a + * copy will be created. + *<p> + * Note: while this method is synchronized, it is generally not + * safe to both use makeChild/mergeChild, AND to use instance + * actively. Instead, a separate 'root' instance should be used + * on which only makeChild/mergeChild are called, but instance itself + * is not used as a symbol table. + */ + public synchronized CharsToNameCanonicalizer makeChild(final boolean canonicalize, + final boolean intern) + { + /* 24-Jul-2012, tatu: Trying to reduce scope of synchronization, assuming + * that synchronizing construction is the (potentially) expensive part, + * and not so much short copy-the-variables thing. + */ + final String[] symbols; + final Bucket[] buckets; + final int size; + final int hashSeed; + final int longestCollisionList; + + synchronized (this) { + symbols = _symbols; + buckets = _buckets; + size = _size; + hashSeed = _hashSeed; + longestCollisionList = _longestCollisionList; + } + + return new CharsToNameCanonicalizer(this, canonicalize, intern, + symbols, buckets, size, hashSeed, longestCollisionList); + } + + private CharsToNameCanonicalizer makeOrphan(int seed) + { + return new CharsToNameCanonicalizer(null, true, true, + _symbols, _buckets, _size, seed, _longestCollisionList); + } + + /** + * Method that allows contents of child table to potentially be + * "merged in" with contents of this symbol table. + *<p> + * Note that caller has to make sure symbol table passed in is + * really a child or sibling of this symbol table. + */ + private void mergeChild(CharsToNameCanonicalizer child) + { + /* One caveat: let's try to avoid problems with + * degenerate cases of documents with generated "random" + * names: for these, symbol tables would bloat indefinitely. + * One way to do this is to just purge tables if they grow + * too large, and that's what we'll do here. + */ + if (child.size() > MAX_ENTRIES_FOR_REUSE + || child._longestCollisionList > MAX_COLL_CHAIN_FOR_REUSE) { + // Should there be a way to get notified about this event, to log it or such? + // (as it's somewhat abnormal thing to happen) + // At any rate, need to clean up the tables, then: + synchronized (this) { + initTables(DEFAULT_TABLE_SIZE); + // Dirty flag... well, let's just clear it. Shouldn't really matter for master tables + // (which this is, given something is merged to it) + _dirty = false; + } + } else { + // Otherwise, we'll merge changed stuff in, if there are more entries (which + // may not be the case if one of siblings has added symbols first or such) + if (child.size() <= size()) { // nothing to add + return; + } + // Okie dokie, let's get the data in! + synchronized (this) { + _symbols = child._symbols; + _buckets = child._buckets; + _size = child._size; + _sizeThreshold = child._sizeThreshold; + _indexMask = child._indexMask; + _longestCollisionList = child._longestCollisionList; + // Dirty flag... well, let's just clear it. Shouldn't really matter for master tables + // (which this is, given something is merged to it) + _dirty = false; + } + } + } + + public void release() + { + // If nothing has been added, nothing to do + if (!maybeDirty()) { + return; + } + if (_parent != null) { + _parent.mergeChild(this); + /* Let's also mark this instance as dirty, so that just in + * case release was too early, there's no corruption + * of possibly shared data. + */ + _dirty = false; + } + } + + /* + /********************************************************** + /* Public API, generic accessors: + /********************************************************** + */ + + public int size() { return _size; } + + /** + * Method for checking number of primary hash buckets this symbol + * table uses. + * + * @since 1.9.9 + */ + public int bucketCount() { + return _symbols.length; } + + public boolean maybeDirty() { return _dirty; } + + public int hashSeed() { return _hashSeed; } + + /** + * Method mostly needed by unit tests; calculates number of + * entries that are in collision list. Value can be at most + * ({@link #size} - 1), but should usually be much lower, ideally 0. + * + * @since 1.9.9 + */ + public int collisionCount() + { + int count = 0; + + for (Bucket bucket : _buckets) { + if (bucket != null) { + count += bucket.length(); + } + } + return count; + } + + /** + * Method mostly needed by unit tests; calculates length of the + * longest collision chain. This should typically be a low number, + * but may be up to {@link #size} - 1 in the pathological case + * + * @since 1.9.9 + */ + public int maxCollisionLength() + { + return _longestCollisionList; + } + + /* + /********************************************************** + /* Public API, accessing symbols: + /********************************************************** + */ + + public String findSymbol(char[] buffer, int start, int len, int h) + { + if (len < 1) { // empty Strings are simplest to handle up front + return ""; + } + if (!_canonicalize) { // [JACKSON-259] + return new String(buffer, start, len); + } + + /* Related to problems with sub-standard hashing (somewhat + * relevant for collision attacks too), let's try little + * bit of shuffling to improve hash codes. + * (note, however, that this can't help with full collisions) + */ + int index = _hashToIndex(h); + String sym = _symbols[index]; + + // Optimal case; checking existing primary symbol for hash index: + if (sym != null) { + // Let's inline primary String equality checking: + if (sym.length() == len) { + int i = 0; + do { + if (sym.charAt(i) != buffer[start+i]) { + break; + } + } while (++i < len); + // Optimal case; primary match found + if (i == len) { + return sym; + } + } + // How about collision bucket? + Bucket b = _buckets[index >> 1]; + if (b != null) { + sym = b.find(buffer, start, len); + if (sym != null) { + return sym; + } + } + } + + if (!_dirty) { //need to do copy-on-write? + copyArrays(); + _dirty = true; + } else if (_size >= _sizeThreshold) { // Need to expand? + rehash(); + /* Need to recalc hash; rare occurence (index mask has been + * recalculated as part of rehash) + */ + index = _hashToIndex(calcHash(buffer, start, len)); + } + + String newSymbol = new String(buffer, start, len); + if (_intern) { + newSymbol = InternCache.instance.intern(newSymbol); + } + ++_size; + // Ok; do we need to add primary entry, or a bucket? + if (_symbols[index] == null) { + _symbols[index] = newSymbol; + } else { + int bix = (index >> 1); + Bucket newB = new Bucket(newSymbol, _buckets[bix]); + _buckets[bix] = newB; + _longestCollisionList = Math.max(newB.length(), _longestCollisionList); + if (_longestCollisionList > MAX_COLL_CHAIN_LENGTH) { + reportTooManyCollisions(MAX_COLL_CHAIN_LENGTH); + } + } + + return newSymbol; + } + + /** + * Helper method that takes in a "raw" hash value, shuffles it as necessary, + * and truncates to be used as the index. + */ + public final int _hashToIndex(int rawHash) + { + rawHash += (rawHash >>> 15); // this seems to help quite a bit, at least for our tests + return (rawHash & _indexMask); + } + + /** + * Implementation of a hashing method for variable length + * Strings. Most of the time intention is that this calculation + * is done by caller during parsing, not here; however, sometimes + * it needs to be done for parsed "String" too. + * + * @param len Length of String; has to be at least 1 (caller guarantees + * this pre-condition) + */ + public int calcHash(char[] buffer, int start, int len) + { + int hash = _hashSeed; + for (int i = 0; i < len; ++i) { + hash = (hash * HASH_MULT) + (int) buffer[i]; + } + // NOTE: shuffling, if any, is done in 'findSymbol()', not here: + return (hash == 0) ? 1 : hash; + } + + public int calcHash(String key) + { + final int len = key.length(); + + int hash = _hashSeed; + for (int i = 0; i < len; ++i) { + hash = (hash * HASH_MULT) + (int) key.charAt(i); + } + // NOTE: shuffling, if any, is done in 'findSymbol()', not here: + return (hash == 0) ? 1 : hash; + } + + /* + /********************************************************** + /* Internal methods + /********************************************************** + */ + + /** + * Method called when copy-on-write is needed; generally when first + * change is made to a derived symbol table. + */ + private void copyArrays() { + String[] oldSyms = _symbols; + int size = oldSyms.length; + _symbols = new String[size]; + System.arraycopy(oldSyms, 0, _symbols, 0, size); + Bucket[] oldBuckets = _buckets; + size = oldBuckets.length; + _buckets = new Bucket[size]; + System.arraycopy(oldBuckets, 0, _buckets, 0, size); + } + + /** + * Method called when size (number of entries) of symbol table grows + * so big that load factor is exceeded. Since size has to remain + * power of two, arrays will then always be doubled. Main work + * is really redistributing old entries into new String/Bucket + * entries. + */ + private void rehash() + { + int size = _symbols.length; + int newSize = size + size; + + /* 12-Mar-2010, tatu: Let's actually limit maximum size we are + * prepared to use, to guard against OOME in case of unbounded + * name sets (unique [non-repeating] names) + */ + if (newSize > MAX_TABLE_SIZE) { + /* If this happens, there's no point in either growing or + * shrinking hash areas. Rather, it's better to just clean + * them up for reuse. + */ + _size = 0; + Arrays.fill(_symbols, null); + Arrays.fill(_buckets, null); + _dirty = true; + return; + } + + String[] oldSyms = _symbols; + Bucket[] oldBuckets = _buckets; + _symbols = new String[newSize]; + _buckets = new Bucket[newSize >> 1]; + // Let's update index mask, threshold, now (needed for rehashing) + _indexMask = newSize - 1; + _sizeThreshold = _thresholdSize(newSize); + + int count = 0; // let's do sanity check + + /* Need to do two loops, unfortunately, since spill-over area is + * only half the size: + */ + int maxColl = 0; + for (int i = 0; i < size; ++i) { + String symbol = oldSyms[i]; + if (symbol != null) { + ++count; + int index = _hashToIndex(calcHash(symbol)); + if (_symbols[index] == null) { + _symbols[index] = symbol; + } else { + int bix = (index >> 1); + Bucket newB = new Bucket(symbol, _buckets[bix]); + _buckets[bix] = newB; + maxColl = Math.max(maxColl, newB.length()); + } + } + } + + size >>= 1; + for (int i = 0; i < size; ++i) { + Bucket b = oldBuckets[i]; + while (b != null) { + ++count; + String symbol = b.getSymbol(); + int index = _hashToIndex(calcHash(symbol)); + if (_symbols[index] == null) { + _symbols[index] = symbol; + } else { + int bix = (index >> 1); + Bucket newB = new Bucket(symbol, _buckets[bix]); + _buckets[bix] = newB; + maxColl = Math.max(maxColl, newB.length()); + } + b = b.getNext(); + } + } + _longestCollisionList = maxColl; + + if (count != _size) { + throw new Error("Internal error on SymbolTable.rehash(): had "+_size+" entries; now have "+count+"."); + } + } + + /** + * @since 1.9.9 + */ + protected void reportTooManyCollisions(int maxLen) + { + throw new IllegalStateException("Longest collision chain in symbol table (of size "+_size + +") now exceeds maximum, "+maxLen+" -- suspect a DoS attack based on hash collisions"); + } + + /* + /********************************************************** + /* Bucket class + /********************************************************** + */ + + /** + * This class is a symbol table entry. Each entry acts as a node + * in a linked list. + */ + static final class Bucket + { + private final String _symbol; + private final Bucket _next; + private final int _length; + + public Bucket(String symbol, Bucket next) { + _symbol = symbol; + _next = next; + _length = (next == null) ? 1 : next._length+1; + } + + public String getSymbol() { return _symbol; } + public Bucket getNext() { return _next; } + public int length() { return _length; } + + public String find(char[] buf, int start, int len) { + String sym = _symbol; + Bucket b = _next; + + while (true) { // Inlined equality comparison: + if (sym.length() == len) { + int i = 0; + do { + if (sym.charAt(i) != buf[start+i]) { + break; + } + } while (++i < len); + if (i == len) { + return sym; + } + } + if (b == null) { + break; + } + sym = b.getSymbol(); + b = b.getNext(); + } + return null; + } + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/sym/Name.java b/1.9.10/src/java/org/codehaus/jackson/sym/Name.java new file mode 100644 index 0000000..29a50f8 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/sym/Name.java
@@ -0,0 +1,50 @@ +package org.codehaus.jackson.sym; + +/** + * Base class for tokenized names (key strings in objects) that have + * been tokenized from byte-based input sources (like + * {@link java.io.InputStream}. + * + * @author Tatu Saloranta + */ +public abstract class Name +{ + protected final String _name; + + protected final int _hashCode; + + protected Name(String name, int hashCode) { + _name = name; + _hashCode = hashCode; + } + + public String getName() { return _name; } + + /* + /********************************************************** + /* Methods for package/core parser + /********************************************************** + */ + + public abstract boolean equals(int quad1); + + public abstract boolean equals(int quad1, int quad2); + + public abstract boolean equals(int[] quads, int qlen); + + /* + /********************************************************** + /* Overridden standard methods + /********************************************************** + */ + + @Override public String toString() { return _name; } + + @Override public final int hashCode() { return _hashCode; } + + @Override public boolean equals(Object o) + { + // Canonical instances, can usually just do identity comparison + return (o == this); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/sym/Name1.java b/1.9.10/src/java/org/codehaus/jackson/sym/Name1.java new file mode 100644 index 0000000..1ee5976 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/sym/Name1.java
@@ -0,0 +1,44 @@ +package org.codehaus.jackson.sym; + +/** + * Specialized implementation of PName: can be used for short Strings + * that consists of at most 4 bytes. Usually this means short + * ascii-only names. + *<p> + * The reason for such specialized classes is mostly space efficiency; + * and to a lesser degree performance. Both are achieved for short + * Strings by avoiding another level of indirection (via quad arrays) + */ +public final class Name1 + extends Name +{ + final static Name1 sEmptyName = new Name1("", 0, 0); + + final int mQuad; + + Name1(String name, int hash, int quad) + { + super(name, hash); + mQuad = quad; + } + + final static Name1 getEmptyName() { return sEmptyName; } + + @Override + public boolean equals(int quad) + { + return (quad == mQuad); + } + + @Override + public boolean equals(int quad1, int quad2) + { + return (quad1 == mQuad) && (quad2 == 0); + } + + @Override + public boolean equals(int[] quads, int qlen) + { + return (qlen == 1 && quads[0] == mQuad); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/sym/Name2.java b/1.9.10/src/java/org/codehaus/jackson/sym/Name2.java new file mode 100644 index 0000000..933db2a --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/sym/Name2.java
@@ -0,0 +1,40 @@ +package org.codehaus.jackson.sym; + +/** + * Specialized implementation of PName: can be used for short Strings + * that consists of 5 to 8 bytes. Usually this means relatively short + * ascii-only names. + *<p> + * The reason for such specialized classes is mostly space efficiency; + * and to a lesser degree performance. Both are achieved for short + * Strings by avoiding another level of indirection (via quad arrays) + */ +public final class Name2 + extends Name +{ + final int mQuad1; + + final int mQuad2; + + Name2(String name, int hash, int quad1, int quad2) + { + super(name, hash); + mQuad1 = quad1; + mQuad2 = quad2; + } + + @Override + public boolean equals(int quad) { return false; } + + @Override + public boolean equals(int quad1, int quad2) + { + return (quad1 == mQuad1) && (quad2 == mQuad2); + } + + @Override + public boolean equals(int[] quads, int qlen) + { + return (qlen == 2 && quads[0] == mQuad1 && quads[1] == mQuad2); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/sym/Name3.java b/1.9.10/src/java/org/codehaus/jackson/sym/Name3.java new file mode 100644 index 0000000..0b10404 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/sym/Name3.java
@@ -0,0 +1,39 @@ +package org.codehaus.jackson.sym; + +/** + * Specialized implementation of PName: can be used for short Strings + * that consists of 9 to 12 bytes. It's the longest special purpose + * implementaion; longer ones are expressed using {@link NameN}. + */ +public final class Name3 + extends Name +{ + final int mQuad1; + final int mQuad2; + final int mQuad3; + + Name3(String name, int hash, int q1, int q2, int q3) + { + super(name, hash); + mQuad1 = q1; + mQuad2 = q2; + mQuad3 = q3; + } + + // Implies quad length == 1, never matches + @Override + public boolean equals(int quad) { return false; } + + // Implies quad length == 2, never matches + @Override + public boolean equals(int quad1, int quad2) { return false; } + + @Override + public boolean equals(int[] quads, int qlen) + { + return (qlen == 3) + && (quads[0] == mQuad1) + && (quads[1] == mQuad2) + && (quads[2] == mQuad3); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/sym/NameN.java b/1.9.10/src/java/org/codehaus/jackson/sym/NameN.java new file mode 100644 index 0000000..b5236f2 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/sym/NameN.java
@@ -0,0 +1,68 @@ +package org.codehaus.jackson.sym; + +/** + * Generic implementation of PName used for "long" names, where long + * means that its byte (UTF-8) representation is 13 bytes or more. + */ +public final class NameN + extends Name +{ + final int[] mQuads; + final int mQuadLen; + + NameN(String name, int hash, int[] quads, int quadLen) + { + super(name, hash); + /* We have specialized implementations for shorter + * names, so let's not allow runt instances here + */ + if (quadLen < 3) { + throw new IllegalArgumentException("Qlen must >= 3"); + } + mQuads = quads; + mQuadLen = quadLen; + } + + // Implies quad length == 1, never matches + @Override + public boolean equals(int quad) { return false; } + + // Implies quad length == 2, never matches + @Override + public boolean equals(int quad1, int quad2) { return false; } + + @Override + public boolean equals(int[] quads, int qlen) + { + if (qlen != mQuadLen) { + return false; + } + + /* 26-Nov-2008, tatus: Strange, but it does look like + * unrolling here is counter-productive, reducing + * speed. Perhaps it prevents inlining by HotSpot or + * something... + */ + // Will always have >= 3 quads, can unroll + /* + if (quads[0] == mQuads[0] + && quads[1] == mQuads[1] + && quads[2] == mQuads[2]) { + for (int i = 3; i < qlen; ++i) { + if (quads[i] != mQuads[i]) { + return false; + } + } + return true; + } + */ + + // or simpler way without unrolling: + for (int i = 0; i < qlen; ++i) { + if (quads[i] != mQuads[i]) { + return false; + } + } + return true; + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/sym/package-info.java b/1.9.10/src/java/org/codehaus/jackson/sym/package-info.java new file mode 100644 index 0000000..8b84959 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/sym/package-info.java
@@ -0,0 +1,5 @@ +/** + * Internal implementation classes for efficient handling of + * of symbols in JSON (field names in Objects) + */ +package org.codehaus.jackson.sym;
diff --git a/1.9.10/src/java/org/codehaus/jackson/type/JavaType.java b/1.9.10/src/java/org/codehaus/jackson/type/JavaType.java new file mode 100644 index 0000000..3b21649 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/type/JavaType.java
@@ -0,0 +1,503 @@ +package org.codehaus.jackson.type; + +import java.lang.reflect.Modifier; + +/** + * Base class for type token classes used both to contain information + * and as keys for deserializers. + *<p> + * Instances can (only) be constructed by + * {@link org.codehaus.jackson.map.type.TypeFactory}. + */ +public abstract class JavaType +{ + /** + * This is the nominal type-erased Class that would be close to the + * type represented (but not exactly type, due to type erasure: type + * instance may have more information on this). + * May be an interface or abstract class, so instantiation + * may not be possible. + */ + protected final Class<?> _class; + + protected final int _hashCode; + + /** + * Optional handler (codec) that can be attached to indicate + * what to use for handling (serializing, deserializing) values of + * this specific type. + *<p> + * Note: untyped (i.e. caller has to cast) because it is used for + * different kinds of handlers, with unrelated types. + *<p> + * TODO: make final and possible promote to sub-classes + * + * @since 1.3 + */ + protected /*final*/ Object _valueHandler; + + /** + * Optional handler that can be attached to indicate how to handle + * additional type metadata associated with this type. + *<p> + * Note: untyped (i.e. caller has to cast) because it is used for + * different kinds of handlers, with unrelated types. + *<p> + * TODO: make final and possible promote to sub-classes + * + * @since 1.5 + */ + protected /*final*/ Object _typeHandler; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + /** + * @param raw "Raw" (type-erased) class for this type + * @param additionalHash Additional hash code to use, in addition + * to hash code of the class name + */ + protected JavaType(Class<?> raw, int additionalHash) + { + _class = raw; + _hashCode = raw.getName().hashCode() + additionalHash; + _valueHandler = null; + _typeHandler = null; + } + + /** + * "Copy method" that will construct a new instance that is identical to + * this instance, except that it will have specified type handler assigned. + * + * @return Newly created type instance + * + * @since 1.7 + */ + public abstract JavaType withTypeHandler(Object h); + + /** + * "Copy method" that will construct a new instance that is identical to + * this instance, except that its content type will have specified + * type handler assigned. + * + * @return Newly created type instance + * + * @since 1.7 + */ + public abstract JavaType withContentTypeHandler(Object h); + + // !!! TODO: in 2.0, change to be abstract method + //public abstract JavaType withValueHandler(Object h); + /** + * @since 1.9 + */ + public JavaType withValueHandler(Object h) { + /* 16-Aug-2011, tatu: This is not entirely correct, as we can not + * create new immutable instances. However, sub-classes can, + * so if mapper is version 1.9, things work as expected. + * Otherwise, in 2.0 we can make this method abstract. + */ + setValueHandler(h); + return this; + } + + // !!! TODO: in 2.0, change to be abstract method + //public abstract JavaType withContentValueHandler(Object h); + /** + * @since 1.9 + */ + public JavaType withContentValueHandler(Object h) { + /* 16-Aug-2011, tatu: This is not entirely correct, as we can not + * create new immutable instances. However, sub-classes can, + * so if mapper is version 1.9, things work as expected. + * Otherwise, in 2.0 we can make this method abstract. + */ + getContentType().setValueHandler(h); + return this; + } + + /** + * Method for assigning handler to associate with this type; or + * if null passed, to remove such assignment + * + * @since 1.3 + * + * @deprecated Since 1.9, should not be used; instead, use + * <code>withContentTypeHandler</code> and + * <code>withContentValueHandler</code> methods. + */ + @Deprecated + public void setValueHandler(Object h) { + // sanity check, should be assigned just once + if (h != null && _valueHandler != null) { + throw new IllegalStateException("Trying to reset value handler for type ["+toString() + +"]; old handler of type "+_valueHandler.getClass().getName()+", new handler of type "+h.getClass().getName()); + } + _valueHandler = h; + } + + /* + /********************************************************** + /* Type coercion fluent factory methods + /********************************************************** + */ + + /** + * Method that can be called to do a "narrowing" conversions; that is, + * to return a type with a raw class that is assignable to the raw + * class of this type. If this is not possible, an + * {@link IllegalArgumentException} is thrown. + * If class is same as the current raw class, instance itself is + * returned. + */ + public JavaType narrowBy(Class<?> subclass) + { + // First: if same raw class, just return this instance + if (subclass == _class) { + return this; + } + // Otherwise, ensure compatibility + _assertSubclass(subclass, _class); + JavaType result = _narrow(subclass); + + // TODO: these checks should NOT actually be needed; above should suffice: + if (_valueHandler != result.getValueHandler()) { + result = result.withValueHandler(_valueHandler); + } + if (_typeHandler != result.getTypeHandler()) { + result = result.withTypeHandler(_typeHandler); + } + return result; + } + + /** + * More efficient version of {@link #narrowBy}, called by + * internal framework in cases where compatibility checks + * are to be skipped. + * + * @since 1.5 + */ + public JavaType forcedNarrowBy(Class<?> subclass) + { + if (subclass == _class) { // can still optimize for simple case + return this; + } + JavaType result = _narrow(subclass); + // TODO: these checks should NOT actually be needed; above should suffice: + if (_valueHandler != result.getValueHandler()) { + result = result.withValueHandler(_valueHandler); + } + if (_typeHandler != result.getTypeHandler()) { + result = result.withTypeHandler(_typeHandler); + } + return result; + } + + /** + * Method that can be called to do a "widening" conversions; that is, + * to return a type with a raw class that could be assigned from this + * type. + * If such conversion is not possible, an + * {@link IllegalArgumentException} is thrown. + * If class is same as the current raw class, instance itself is + * returned. + */ + public JavaType widenBy(Class<?> superclass) + { + // First: if same raw class, just return this instance + if (superclass == _class) { + return this; + } + // Otherwise, ensure compatibility + _assertSubclass(_class, superclass); + return _widen(superclass); + } + + protected abstract JavaType _narrow(Class<?> subclass); + + /** + *<p> + * Default implementation is just to call {@link #_narrow}, since + * underlying type construction is usually identical + */ + protected JavaType _widen(Class<?> superclass) { + return _narrow(superclass); + } + + public abstract JavaType narrowContentsBy(Class<?> contentClass); + + /** + * @since 1.8 + */ + public abstract JavaType widenContentsBy(Class<?> contentClass); + + /* + /********************************************************** + /* Public API, simple accessors + /********************************************************** + */ + + public final Class<?> getRawClass() { return _class; } + + /** + * Method that can be used to check whether this type has + * specified Class as its type erasure. Put another way, returns + * true if instantiation of this Type is given (type-erased) Class. + */ + public final boolean hasRawClass(Class<?> clz) { + return _class == clz; + } + + public boolean isAbstract() { + return Modifier.isAbstract(_class.getModifiers()); + } + + /** + * @since 1.3 + */ + public boolean isConcrete() { + int mod = _class.getModifiers(); + if ((mod & (Modifier.INTERFACE | Modifier.ABSTRACT)) == 0) { + return true; + } + /* 19-Feb-2010, tatus: Holy mackarel; primitive types + * have 'abstract' flag set... + */ + if (_class.isPrimitive()) { + return true; + } + return false; + } + + public boolean isThrowable() { + return Throwable.class.isAssignableFrom(_class); + } + + public boolean isArrayType() { return false; } + + public final boolean isEnumType() { return _class.isEnum(); } + + public final boolean isInterface() { return _class.isInterface(); } + + public final boolean isPrimitive() { return _class.isPrimitive(); } + + public final boolean isFinal() { return Modifier.isFinal(_class.getModifiers()); } + + /** + * @return True if type represented is a container type; this includes + * array, Map and Collection types. + */ + public abstract boolean isContainerType(); + + /** + * @return True if type is either true {@link java.util.Collection} type, + * or something similar (meaning it has at least one type parameter, + * which describes type of contents) + * + * @since 1.8 + */ + public boolean isCollectionLikeType() { return false; } + + /** + * @return True if type is either true {@link java.util.Map} type, + * or something similar (meaning it has at least two type parameter; + * first one describing key type, second value type) + * + * @since 1.8 + */ + public boolean isMapLikeType() { return false; } + + /* + /********************************************************** + /* Public API, type parameter access + /********************************************************** + */ + + /** + * Method that can be used to find out if the type directly declares generic + * parameters (for its direct super-class and/or super-interfaces). + * + * @since 1.6 + */ + public boolean hasGenericTypes() + { + return containedTypeCount() > 0; + } + + /** + * Method for accessing key type for this type, assuming type + * has such a concept (only Map types do) + */ + public JavaType getKeyType() { return null; } + + /** + * Method for accessing content type of this type, if type has + * such a thing: simple types do not, structured types do + * (like arrays, Collections and Maps) + */ + public JavaType getContentType() { return null; } + + /** + * Method for checking how many contained types this type + * has. Contained types are usually generic types, so that + * generic Maps have 2 contained types. + * + * @since 1.5 + */ + public int containedTypeCount() { return 0; } + + /** + * Method for accessing definitions of contained ("child") + * types. + * + * @param index Index of contained type to return + * + * @return Contained type at index, or null if no such type + * exists (no exception thrown) + * + * @since 1.5 + */ + public JavaType containedType(int index) { return null; } + + /** + * Method for accessing name of type variable in indicated + * position. If no name is bound, will use placeholders (derived + * from 0-based index); if no type variable or argument exists + * with given index, null is returned. + * + * @param index Index of contained type to return + * + * @return Contained type at index, or null if no such type + * exists (no exception thrown) + * + * @since 1.5 + */ + public String containedTypeName(int index) { return null; } + + /* + /********************************************************** + /* Semi-public API, accessing handlers + /********************************************************** + */ + + /** + * Method for accessing value handler associated with this type, if any + * + * @since 1.3 + */ + @SuppressWarnings("unchecked") + public <T> T getValueHandler() { return (T) _valueHandler; } + + /** + * Method for accessing type handler associated with this type, if any + * + * @since 1.5 + */ + @SuppressWarnings("unchecked") + public <T> T getTypeHandler() { return (T) _typeHandler; } + + /* + /********************************************************** + /* Support for producing signatures (1.6+) + /********************************************************** + */ + + /** + * Method that can be used to serialize type into form from which + * it can be fully deserialized from at a later point (using + * <code>TypeFactory</code> from mapper package). + * For simple types this is same as calling + * {@link Class#getName}, but for structured types it may additionally + * contain type information about contents. + * + * @since 1.5 + */ + public abstract String toCanonical(); + + /** + * Method for accessing signature that contains generic + * type information, in form compatible with JVM 1.5 + * as per JLS. It is a superset of {@link #getErasedSignature}, + * in that generic information can be automatically removed + * if necessary (just remove outermost + * angle brackets along with content inside) + * + * @since 1.6 + */ + public String getGenericSignature() { + StringBuilder sb = new StringBuilder(40); + getGenericSignature(sb); + return sb.toString(); + } + + /** + * + * @param sb StringBuilder to append signature to + * + * @return StringBuilder that was passed in; returned to allow + * call chaining + * + * @since 1.6 + */ + public abstract StringBuilder getGenericSignature(StringBuilder sb); + + /** + * Method for accessing signature without generic + * type information, in form compatible with all versions + * of JVM, and specifically used for type descriptions + * when generating byte code. + * + * @since 1.6 + */ + public String getErasedSignature() { + StringBuilder sb = new StringBuilder(40); + getErasedSignature(sb); + return sb.toString(); + } + + /** + * Method for accessing signature without generic + * type information, in form compatible with all versions + * of JVM, and specifically used for type descriptions + * when generating byte code. + * + * @param sb StringBuilder to append signature to + * + * @return StringBuilder that was passed in; returned to allow + * call chaining + * + * @since 1.6 + */ + public abstract StringBuilder getErasedSignature(StringBuilder sb); + + /* + /********************************************************** + /* Helper methods + /********************************************************** + */ + + protected void _assertSubclass(Class<?> subclass, Class<?> superClass) + { + if (!_class.isAssignableFrom(subclass)) { + throw new IllegalArgumentException("Class "+subclass.getName()+" is not assignable to "+_class.getName()); + } + } + + /* + /********************************************************** + /* Standard methods; let's make them abstract to force override + /********************************************************** + */ + + @Override + public abstract String toString(); + + @Override + public abstract boolean equals(Object o); + + @Override + public final int hashCode() { return _hashCode; } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/type/TypeReference.java b/1.9.10/src/java/org/codehaus/jackson/type/TypeReference.java new file mode 100644 index 0000000..65e0f93 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/type/TypeReference.java
@@ -0,0 +1,60 @@ +package org.codehaus.jackson.type; + +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; + +/** + * This class is used to pass full generics type information, and + * avoid problems with type erasure (that basically removes most + * usable type references from runtime Class objects). + * It is based on ideas from + * <a href="http://gafter.blogspot.com/2006/12/super-type-tokens.html" + * >http://gafter.blogspot.com/2006/12/super-type-tokens.html</a>, + * Additional idea (from a suggestion made in comments of the article) + * is to require bogus implementation of <code>Comparable</code> + * (any such generic interface would do, as long as it forces a method + * with generic type to be implemented). + * to ensure that a Type argument is indeed given. + *<p> + * Usage is by sub-classing: here is one way to instantiate reference + * to generic type <code>List<Integer></code>: + *<pre> + * TypeReference ref = new TypeReference<List<Integer>>() { }; + *</pre> + * which can be passed to methods that accept TypeReference. + */ +public abstract class TypeReference<T> + implements Comparable<TypeReference<T>> +{ + final Type _type; + + protected TypeReference() + { + Type superClass = getClass().getGenericSuperclass(); + if (superClass instanceof Class<?>) { // sanity check, should never happen + throw new IllegalArgumentException("Internal error: TypeReference constructed without actual type information"); + } + /* 22-Dec-2008, tatu: Not sure if this case is safe -- I suspect + * it is possible to make it fail? + * But let's deal with specifc + * case when we know an actual use case, and thereby suitable + * work arounds for valid case(s) and/or error to throw + * on invalid one(s). + */ + _type = ((ParameterizedType) superClass).getActualTypeArguments()[0]; + } + + public Type getType() { return _type; } + + /** + * The only reason we define this method (and require implementation + * of <code>Comparable</code>) is to prevent constructing a + * reference without type information. + */ + @Override + public int compareTo(TypeReference<T> o) { + // just need an implementation, not a good one... hence: + return 0; + } +} +
diff --git a/1.9.10/src/java/org/codehaus/jackson/type/package-info.java b/1.9.10/src/java/org/codehaus/jackson/type/package-info.java new file mode 100644 index 0000000..79f8499 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/type/package-info.java
@@ -0,0 +1,8 @@ +/** + * Contains classes needed for type introspection, mostly used by data binding + * functionality. Most of this functionality is needed to properly handled + * generic types, and to simplify and unify processing of things Jackson needs + * to determine how contained types (of {@link java.util.Collection} and + * {@link java.util.Map} classes) are to be handled. + */ +package org.codehaus.jackson.type;
diff --git a/1.9.10/src/java/org/codehaus/jackson/util/BufferRecycler.java b/1.9.10/src/java/org/codehaus/jackson/util/BufferRecycler.java new file mode 100644 index 0000000..6128de2 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/util/BufferRecycler.java
@@ -0,0 +1,109 @@ +package org.codehaus.jackson.util; + +/** + * This is a small utility class, whose main functionality is to allow + * simple reuse of raw byte/char buffers. It is usually used through + * <code>ThreadLocal</code> member of the owning class pointing to + * instance of this class through a <code>SoftReference</code>. The + * end result is a low-overhead GC-cleanable recycling: hopefully + * ideal for use by stream readers. + */ +public class BufferRecycler +{ + public final static int DEFAULT_WRITE_CONCAT_BUFFER_LEN = 2000; + + public enum ByteBufferType { + READ_IO_BUFFER(4000) + /** + * Buffer used for temporarily storing encoded content; used + * for example by UTF-8 encoding writer + */ + ,WRITE_ENCODING_BUFFER(4000) + + /** + * Buffer used for temporarily concatenating output; used for + * example when requesting output as byte array. + */ + ,WRITE_CONCAT_BUFFER(2000) + ; + + private final int size; + + ByteBufferType(int size) { this.size = size; } + } + + public enum CharBufferType { + TOKEN_BUFFER(2000) // Tokenizable input + ,CONCAT_BUFFER(2000) // concatenated output + ,TEXT_BUFFER(200) // Text content from input + ,NAME_COPY_BUFFER(200) // Temporary buffer for getting name characters + ; + + private final int size; + + CharBufferType(int size) { this.size = size; } + } + + final protected byte[][] _byteBuffers = new byte[ByteBufferType.values().length][]; + final protected char[][] _charBuffers = new char[CharBufferType.values().length][]; + + public BufferRecycler() { } + + public final byte[] allocByteBuffer(ByteBufferType type) + { + int ix = type.ordinal(); + byte[] buffer = _byteBuffers[ix]; + if (buffer == null) { + buffer = balloc(type.size); + } else { + _byteBuffers[ix] = null; + } + return buffer; + } + + public final void releaseByteBuffer(ByteBufferType type, byte[] buffer) + { + _byteBuffers[type.ordinal()] = buffer; + } + + public final char[] allocCharBuffer(CharBufferType type) + { + return allocCharBuffer(type, 0); + } + + public final char[] allocCharBuffer(CharBufferType type, int minSize) + { + if (type.size > minSize) { + minSize = type.size; + } + int ix = type.ordinal(); + char[] buffer = _charBuffers[ix]; + if (buffer == null || buffer.length < minSize) { + buffer = calloc(minSize); + } else { + _charBuffers[ix] = null; + } + return buffer; + } + + public final void releaseCharBuffer(CharBufferType type, char[] buffer) + { + _charBuffers[type.ordinal()] = buffer; + } + + /* + /********************************************************** + /* Actual allocations separated for easier debugging/profiling + /********************************************************** + */ + + private final byte[] balloc(int size) + { + return new byte[size]; + } + + private final char[] calloc(int size) + { + return new char[size]; + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/util/ByteArrayBuilder.java b/1.9.10/src/java/org/codehaus/jackson/util/ByteArrayBuilder.java new file mode 100644 index 0000000..5953f6f --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/util/ByteArrayBuilder.java
@@ -0,0 +1,294 @@ +/* Jackson JSON-processor. + * + * Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi + * + * Licensed under the License specified in file LICENSE, included with + * the source code and binary code bundles. + * You may not use this file except in compliance with the License. + * + * 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. + */ + +package org.codehaus.jackson.util; + +import java.io.OutputStream; +import java.util.*; + +/** + * Helper class that is similar to {@link java.io.ByteArrayOutputStream} + * in usage, but more geared to Jackson use cases internally. + * Specific changes include segment storage (no need to have linear + * backing buffer, can avoid reallocs, copying), as well API + * not based on {@link java.io.OutputStream}. In short, a very much + * specialized builder object. + *<p> + * Since version 1.5, also implements {@link OutputStream} to allow + * efficient aggregation of output content as a byte array, similar + * to how {@link java.io.ByteArrayOutputStream} works, but somewhat more + * efficiently for many use cases. + */ +public final class ByteArrayBuilder + extends OutputStream +{ + private final static byte[] NO_BYTES = new byte[0]; + + /** + * Size of the first block we will allocate. + */ + private final static int INITIAL_BLOCK_SIZE = 500; + + /** + * Maximum block size we will use for individual non-aggregated + * blocks. Let's limit to using 256k chunks. + */ + private final static int MAX_BLOCK_SIZE = (1 << 18); + + final static int DEFAULT_BLOCK_ARRAY_SIZE = 40; + + /** + * Optional buffer recycler instance that we can use for allocating + * the first block. + * + * @since 1.5 + */ + private final BufferRecycler _bufferRecycler; + + private final LinkedList<byte[]> _pastBlocks = new LinkedList<byte[]>(); + + /** + * Number of bytes within byte arrays in {@link _pastBlocks}. + */ + private int _pastLen; + + private byte[] _currBlock; + + private int _currBlockPtr; + + public ByteArrayBuilder() { this(null); } + + public ByteArrayBuilder(BufferRecycler br) { this(br, INITIAL_BLOCK_SIZE); } + + public ByteArrayBuilder(int firstBlockSize) { this(null, firstBlockSize); } + + public ByteArrayBuilder(BufferRecycler br, int firstBlockSize) + { + _bufferRecycler = br; + if (br == null) { + _currBlock = new byte[firstBlockSize]; + } else { + _currBlock = br.allocByteBuffer(BufferRecycler.ByteBufferType.WRITE_CONCAT_BUFFER); + } + } + + public void reset() + { + _pastLen = 0; + _currBlockPtr = 0; + + if (!_pastBlocks.isEmpty()) { + _pastBlocks.clear(); + } + } + + /** + * Clean up method to call to release all buffers this object may be + * using. After calling the method, no other accessors can be used (and + * attempt to do so may result in an exception) + */ + public void release() { + reset(); + if (_bufferRecycler != null && _currBlock != null) { + _bufferRecycler.releaseByteBuffer(BufferRecycler.ByteBufferType.WRITE_CONCAT_BUFFER, _currBlock); + _currBlock = null; + } + } + + public void append(int i) + { + if (_currBlockPtr >= _currBlock.length) { + _allocMore(); + } + _currBlock[_currBlockPtr++] = (byte) i; + } + + public void appendTwoBytes(int b16) + { + if ((_currBlockPtr + 1) < _currBlock.length) { + _currBlock[_currBlockPtr++] = (byte) (b16 >> 8); + _currBlock[_currBlockPtr++] = (byte) b16; + } else { + append(b16 >> 8); + append(b16); + } + } + + public void appendThreeBytes(int b24) + { + if ((_currBlockPtr + 2) < _currBlock.length) { + _currBlock[_currBlockPtr++] = (byte) (b24 >> 16); + _currBlock[_currBlockPtr++] = (byte) (b24 >> 8); + _currBlock[_currBlockPtr++] = (byte) b24; + } else { + append(b24 >> 16); + append(b24 >> 8); + append(b24); + } + } + + /** + * Method called when results are finalized and we can get the + * full aggregated result buffer to return to the caller + */ + public byte[] toByteArray() + { + int totalLen = _pastLen + _currBlockPtr; + + if (totalLen == 0) { // quick check: nothing aggregated? + return NO_BYTES; + } + + byte[] result = new byte[totalLen]; + int offset = 0; + + for (byte[] block : _pastBlocks) { + int len = block.length; + System.arraycopy(block, 0, result, offset, len); + offset += len; + } + System.arraycopy(_currBlock, 0, result, offset, _currBlockPtr); + offset += _currBlockPtr; + if (offset != totalLen) { // just a sanity check + throw new RuntimeException("Internal error: total len assumed to be "+totalLen+", copied "+offset+" bytes"); + } + // Let's only reset if there's sizable use, otherwise will get reset later on + if (!_pastBlocks.isEmpty()) { + reset(); + } + return result; + } + + /* + /********************************************************** + /* Non-stream API (similar to TextBuffer), since 1.6 + /********************************************************** + */ + + /** + * Method called when starting "manual" output: will clear out + * current state and return the first segment buffer to fill + * + * @since 1.6 + */ + public byte[] resetAndGetFirstSegment() { + reset(); + return _currBlock; + } + + /** + * Method called when the current segment buffer is full; will + * append to current contents, allocate a new segment buffer + * and return it + * + * @since 1.6 + */ + public byte[] finishCurrentSegment() { + _allocMore(); + return _currBlock; + } + + /** + * Method that will complete "manual" output process, coalesce + * content (if necessary) and return results as a contiguous buffer. + * + * @param lastBlockLength Amount of content in the current segment + * buffer. + * + * @return Coalesced contents + */ + public byte[] completeAndCoalesce(int lastBlockLength) + { + _currBlockPtr = lastBlockLength; + return toByteArray(); + } + + public byte[] getCurrentSegment() { + return _currBlock; + } + + public void setCurrentSegmentLength(int len) { + _currBlockPtr = len; + } + + public int getCurrentSegmentLength() { + return _currBlockPtr; + } + + /* + /********************************************************** + /* OutputStream implementation + /********************************************************** + */ + + @Override + public void write(byte[] b) { + write(b, 0, b.length); + } + + @Override + public void write(byte[] b, int off, int len) + { + while (true) { + int max = _currBlock.length - _currBlockPtr; + int toCopy = Math.min(max, len); + if (toCopy > 0) { + System.arraycopy(b, off, _currBlock, _currBlockPtr, toCopy); + off += toCopy; + _currBlockPtr += toCopy; + len -= toCopy; + } + if (len <= 0) break; + _allocMore(); + } + } + + @Override + public void write(int b) { + append(b); + } + + @Override public void close() { /* NOP */ } + + @Override public void flush() { /* NOP */ } + + /* + /********************************************************** + /* Internal methods + /********************************************************** + */ + + private void _allocMore() + { + _pastLen += _currBlock.length; + + /* Let's allocate block that's half the total size, except + * never smaller than twice the initial block size. + * The idea is just to grow with reasonable rate, to optimize + * between minimal number of chunks and minimal amount of + * wasted space. + */ + int newSize = Math.max((_pastLen >> 1), (INITIAL_BLOCK_SIZE + INITIAL_BLOCK_SIZE)); + // plus not to exceed max we define... + if (newSize > MAX_BLOCK_SIZE) { + newSize = MAX_BLOCK_SIZE; + } + _pastBlocks.add(_currBlock); + _currBlock = new byte[newSize]; + _currBlockPtr = 0; + } + +} +
diff --git a/1.9.10/src/java/org/codehaus/jackson/util/CharTypes.java b/1.9.10/src/java/org/codehaus/jackson/util/CharTypes.java new file mode 100644 index 0000000..4f7a986 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/util/CharTypes.java
@@ -0,0 +1,237 @@ +package org.codehaus.jackson.util; + +import java.util.Arrays; + +import org.codehaus.jackson.io.CharacterEscapes; + +public final class CharTypes +{ + private final static char[] HEX_CHARS = "0123456789ABCDEF".toCharArray(); + private final static byte[] HEX_BYTES; + static { + int len = HEX_CHARS.length; + HEX_BYTES = new byte[len]; + for (int i = 0; i < len; ++i) { + HEX_BYTES[i] = (byte) HEX_CHARS[i]; + } + } + + + /** + * Lookup table used for determining which input characters + * need special handling when contained in text segment. + */ + final static int[] sInputCodes; + static { + /* 96 would do for most cases (backslash is ascii 94) + * but if we want to do lookups by raw bytes it's better + * to have full table + */ + int[] table = new int[256]; + // Control chars and non-space white space are not allowed unquoted + for (int i = 0; i < 32; ++i) { + table[i] = -1; + } + // And then string end and quote markers are special too + table['"'] = 1; + table['\\'] = 1; + sInputCodes = table; + } + + /** + * Additionally we can combine UTF-8 decoding info into similar + * data table. + */ + final static int[] sInputCodesUtf8; + static { + int[] table = new int[sInputCodes.length]; + System.arraycopy(sInputCodes, 0, table, 0, sInputCodes.length); + for (int c = 128; c < 256; ++c) { + int code; + + // We'll add number of bytes needed for decoding + if ((c & 0xE0) == 0xC0) { // 2 bytes (0x0080 - 0x07FF) + code = 2; + } else if ((c & 0xF0) == 0xE0) { // 3 bytes (0x0800 - 0xFFFF) + code = 3; + } else if ((c & 0xF8) == 0xF0) { + // 4 bytes; double-char with surrogates and all... + code = 4; + } else { + // And -1 seems like a good "universal" error marker... + code = -1; + } + table[c] = code; + } + sInputCodesUtf8 = table; + } + + /** + * To support non-default (and -standard) unquoted field names mode, + * need to have alternate checking. + * Basically this is list of 8-bit ASCII characters that are legal + * as part of Javascript identifier + * + * @since 1.2 + */ + final static int[] sInputCodesJsNames; + static { + int[] table = new int[256]; + // Default is "not a name char", mark ones that are + Arrays.fill(table, -1); + // Assume rules with JS same as Java (change if/as needed) + for (int i = 33; i < 256; ++i) { + if (Character.isJavaIdentifierPart((char) i)) { + table[i] = 0; + } + } + /* As per [JACKSON-267], '@', '#' and '*' are also to be accepted as well. + * And '-' (for hyphenated names); and '+' for sake of symmetricity... + */ + table['@'] = 0; + table['#'] = 0; + table['*'] = 0; + table['-'] = 0; + table['+'] = 0; + sInputCodesJsNames = table; + } + + /** + * This table is similar to Latin-1, except that it marks all "high-bit" + * code as ok. They will be validated at a later point, when decoding + * name + */ + final static int[] sInputCodesUtf8JsNames; + static { + int[] table = new int[256]; + // start with 8-bit JS names + System.arraycopy(sInputCodesJsNames, 0, table, 0, sInputCodesJsNames.length); + Arrays.fill(table, 128, 128, 0); + sInputCodesUtf8JsNames = table; + } + + /** + * Decoding table used to quickly determine characters that are + * relevant within comment content + */ + final static int[] sInputCodesComment = new int[256]; + static { + // but first: let's start with UTF-8 multi-byte markers: + System.arraycopy(sInputCodesUtf8, 128, sInputCodesComment, 128, 128); + + // default (0) means "ok" (skip); -1 invalid, others marked by char itself + Arrays.fill(sInputCodesComment, 0, 32, -1); // invalid white space + sInputCodesComment['\t'] = 0; // tab is still fine + sInputCodesComment['\n'] = '\n'; // lf/cr need to be observed, ends cpp comment + sInputCodesComment['\r'] = '\r'; + sInputCodesComment['*'] = '*'; // end marker for c-style comments + } + + /** + * Lookup table used for determining which output characters in + * 7-bit ASCII range need to be quoted. + */ + final static int[] sOutputEscapes128; + static { + int[] table = new int[128]; + // Control chars need generic escape sequence + for (int i = 0; i < 32; ++i) { + // 04-Mar-2011, tatu: Used to use "-(i + 1)", replaced with constants + table[i] = CharacterEscapes.ESCAPE_STANDARD; + } + /* Others (and some within that range too) have explicit shorter + * sequences + */ + table['"'] = '"'; + table['\\'] = '\\'; + // Escaping of slash is optional, so let's not add it + table[0x08] = 'b'; + table[0x09] = 't'; + table[0x0C] = 'f'; + table[0x0A] = 'n'; + table[0x0D] = 'r'; + sOutputEscapes128 = table; + } + + /** + * Lookup table for the first 128 Unicode characters (7-bit ASCII) + * range. For actual hex digits, contains corresponding value; + * for others -1. + */ + final static int[] sHexValues = new int[128]; + static { + Arrays.fill(sHexValues, -1); + for (int i = 0; i < 10; ++i) { + sHexValues['0' + i] = i; + } + for (int i = 0; i < 6; ++i) { + sHexValues['a' + i] = 10 + i; + sHexValues['A' + i] = 10 + i; + } + } + + public final static int[] getInputCodeLatin1() { return sInputCodes; } + public final static int[] getInputCodeUtf8() { return sInputCodesUtf8; } + + public final static int[] getInputCodeLatin1JsNames() { return sInputCodesJsNames; } + public final static int[] getInputCodeUtf8JsNames() { return sInputCodesUtf8JsNames; } + + public final static int[] getInputCodeComment() { return sInputCodesComment; } + + /** + * Accessor for getting a read-only encoding table for first 128 Unicode + * code points (single-byte UTF-8 characters). + * Value of 0 means "no escaping"; other positive values that value is character + * to use after backslash; and negative values that generic (backslash - u) + * escaping is to be used. + */ + public final static int[] get7BitOutputEscapes() { return sOutputEscapes128; } + + public static int charToHex(int ch) + { + return (ch > 127) ? -1 : sHexValues[ch]; + } + + public static void appendQuoted(StringBuilder sb, String content) + { + final int[] escCodes = sOutputEscapes128; + int escLen = escCodes.length; + for (int i = 0, len = content.length(); i < len; ++i) { + char c = content.charAt(i); + if (c >= escLen || escCodes[c] == 0) { + sb.append(c); + continue; + } + sb.append('\\'); + int escCode = escCodes[c]; + if (escCode < 0) { // generic quoting (hex value) + // We know that it has to fit in just 2 hex chars + sb.append('u'); + sb.append('0'); + sb.append('0'); + int value = -(escCode + 1); + sb.append(HEX_CHARS[value >> 4]); + sb.append(HEX_CHARS[value & 0xF]); + } else { // "named", i.e. prepend with slash + sb.append((char) escCode); + } + } + } + + /** + * @since 1.6 + */ + public static char[] copyHexChars() + { + return (char[]) HEX_CHARS.clone(); + } + + /** + * @since 1.6 + */ + public static byte[] copyHexBytes() + { + return (byte[]) HEX_BYTES.clone(); + } +} +
diff --git a/1.9.10/src/java/org/codehaus/jackson/util/DefaultPrettyPrinter.java b/1.9.10/src/java/org/codehaus/jackson/util/DefaultPrettyPrinter.java new file mode 100644 index 0000000..ef8a6df --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/util/DefaultPrettyPrinter.java
@@ -0,0 +1,282 @@ +package org.codehaus.jackson.util; + +import java.io.*; +import java.util.Arrays; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.impl.Indenter; + +/** + * Default {@link PrettyPrinter} implementation that uses 2-space + * indentation with platform-default linefeeds. + * Usually this class is not instantiated directly, but instead + * method {@link JsonGenerator#useDefaultPrettyPrinter} is + * used, which will use an instance of this class for operation. + */ +public class DefaultPrettyPrinter + implements PrettyPrinter +{ + // // // Config, indentation + + /** + * By default, let's use only spaces to separate array values. + */ + protected Indenter _arrayIndenter = new FixedSpaceIndenter(); + + /** + * By default, let's use linefeed-adding indenter for separate + * object entries. We'll further configure indenter to use + * system-specific linefeeds, and 2 spaces per level (as opposed to, + * say, single tabs) + */ + protected Indenter _objectIndenter = new Lf2SpacesIndenter(); + + // // // Config, other white space configuration + + /** + * By default we will add spaces around colons used to + * separate object fields and values. + * If disabled, will not use spaces around colon. + */ + protected boolean _spacesInObjectEntries = true; + + // // // State: + + /** + * Number of open levels of nesting. Used to determine amount of + * indentation to use. + */ + protected int _nesting = 0; + + /* + /********************************************************** + /* Life-cycle (construct, configure) + /********************************************************** + */ + + public DefaultPrettyPrinter() { } + + public void indentArraysWith(Indenter i) + { + _arrayIndenter = (i == null) ? new NopIndenter() : i; + } + + public void indentObjectsWith(Indenter i) + { + _objectIndenter = (i == null) ? new NopIndenter() : i; + } + + public void spacesInObjectEntries(boolean b) { _spacesInObjectEntries = b; } + + /* + /********************************************************** + /* PrettyPrinter impl + /********************************************************** + */ + + @Override + public void writeRootValueSeparator(JsonGenerator jg) + throws IOException, JsonGenerationException + { + jg.writeRaw(' '); + } + + @Override + public void writeStartObject(JsonGenerator jg) + throws IOException, JsonGenerationException + { + jg.writeRaw('{'); + if (!_objectIndenter.isInline()) { + ++_nesting; + } + } + + @Override + public void beforeObjectEntries(JsonGenerator jg) + throws IOException, JsonGenerationException + { + _objectIndenter.writeIndentation(jg, _nesting); + } + + /** + * Method called after an object field has been output, but + * before the value is output. + *<p> + * Default handling (without pretty-printing) will output a single + * colon to separate the two. Pretty-printer is + * to output a colon as well, but can surround that with other + * (white-space) decoration. + */ + @Override + public void writeObjectFieldValueSeparator(JsonGenerator jg) + throws IOException, JsonGenerationException + { + if (_spacesInObjectEntries) { + jg.writeRaw(" : "); + } else { + jg.writeRaw(':'); + } + } + + /** + * Method called after an object entry (field:value) has been completely + * output, and before another value is to be output. + *<p> + * Default handling (without pretty-printing) will output a single + * comma to separate the two. Pretty-printer is + * to output a comma as well, but can surround that with other + * (white-space) decoration. + */ + @Override + public void writeObjectEntrySeparator(JsonGenerator jg) + throws IOException, JsonGenerationException + { + jg.writeRaw(','); + _objectIndenter.writeIndentation(jg, _nesting); + } + + @Override + public void writeEndObject(JsonGenerator jg, int nrOfEntries) + throws IOException, JsonGenerationException + { + if (!_objectIndenter.isInline()) { + --_nesting; + } + if (nrOfEntries > 0) { + _objectIndenter.writeIndentation(jg, _nesting); + } else { + jg.writeRaw(' '); + } + jg.writeRaw('}'); + } + + @Override + public void writeStartArray(JsonGenerator jg) + throws IOException, JsonGenerationException + { + if (!_arrayIndenter.isInline()) { + ++_nesting; + } + jg.writeRaw('['); + } + + @Override + public void beforeArrayValues(JsonGenerator jg) + throws IOException, JsonGenerationException + { + _arrayIndenter.writeIndentation(jg, _nesting); + } + + /** + * Method called after an array value has been completely + * output, and before another value is to be output. + *<p> + * Default handling (without pretty-printing) will output a single + * comma to separate the two. Pretty-printer is + * to output a comma as well, but can surround that with other + * (white-space) decoration. + */ + @Override + public void writeArrayValueSeparator(JsonGenerator jg) + throws IOException, JsonGenerationException + { + jg.writeRaw(','); + _arrayIndenter.writeIndentation(jg, _nesting); + } + + @Override + public void writeEndArray(JsonGenerator jg, int nrOfValues) + throws IOException, JsonGenerationException + { + if (!_arrayIndenter.isInline()) { + --_nesting; + } + if (nrOfValues > 0) { + _arrayIndenter.writeIndentation(jg, _nesting); + } else { + jg.writeRaw(' '); + } + jg.writeRaw(']'); + } + + /* + /********************************************************** + /* Helper classes + /********************************************************** + */ + + /** + * Dummy implementation that adds no indentation whatsoever + */ + public static class NopIndenter + implements Indenter + { + public NopIndenter() { } + @Override + public void writeIndentation(JsonGenerator jg, int level) { } + @Override + public boolean isInline() { return true; } + } + + /** + * This is a very simple indenter that only every adds a + * single space for indentation. It is used as the default + * indenter for array values. + */ + public static class FixedSpaceIndenter + implements Indenter + { + public FixedSpaceIndenter() { } + + @Override + public void writeIndentation(JsonGenerator jg, int level) + throws IOException, JsonGenerationException + { + jg.writeRaw(' '); + } + + @Override + public boolean isInline() { return true; } + } + + /** + * Default linefeed-based indenter uses system-specific linefeeds and + * 2 spaces for indentation per level. + */ + public static class Lf2SpacesIndenter + implements Indenter + { + final static String SYSTEM_LINE_SEPARATOR; + static { + String lf = null; + try { + lf = System.getProperty("line.separator"); + } catch (Throwable t) { } // access exception? + SYSTEM_LINE_SEPARATOR = (lf == null) ? "\n" : lf; + } + + final static int SPACE_COUNT = 64; + final static char[] SPACES = new char[SPACE_COUNT]; + static { + Arrays.fill(SPACES, ' '); + } + + public Lf2SpacesIndenter() { } + + @Override + public boolean isInline() { return false; } + + @Override + public void writeIndentation(JsonGenerator jg, int level) + throws IOException, JsonGenerationException + { + jg.writeRaw(SYSTEM_LINE_SEPARATOR); + level += level; // 2 spaces per level + while (level > SPACE_COUNT) { // should never happen but... + jg.writeRaw(SPACES, 0, SPACE_COUNT); + level -= SPACES.length; + } + jg.writeRaw(SPACES, 0, level); + } + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/util/InternCache.java b/1.9.10/src/java/org/codehaus/jackson/util/InternCache.java new file mode 100644 index 0000000..7fdae9f --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/util/InternCache.java
@@ -0,0 +1,49 @@ +package org.codehaus.jackson.util; + +import java.util.Map; +import java.util.LinkedHashMap; + +/** + * Singleton class that adds a simple first-level cache in front of + * regular String.intern() functionality. This is done as a minor + * performance optimization, to avoid calling native intern() method + * in cases where same String is being interned multiple times. + *<p> + * Note: that this class extends {@link LinkedHashMap} is an implementation + * detail -- no code should ever directly call Map methods. + */ +@SuppressWarnings("serial") +public final class InternCache + extends LinkedHashMap<String,String> +{ + /** + * Size to use is somewhat arbitrary, so let's choose something that's + * neither too small (low hit ratio) nor too large (waste of memory) + */ + private final static int MAX_ENTRIES = 192; + + public final static InternCache instance = new InternCache(); + + private InternCache() { + super(MAX_ENTRIES, 0.8f, true); + } + + @Override + protected boolean removeEldestEntry(Map.Entry<String,String> eldest) + { + return size() > MAX_ENTRIES; + } + + public synchronized String intern(String input) + { + String result = get(input); + if (result == null) { + result = input.intern(); + put(result, result); + } + return result; + } + + +} +
diff --git a/1.9.10/src/java/org/codehaus/jackson/util/JsonGeneratorDelegate.java b/1.9.10/src/java/org/codehaus/jackson/util/JsonGeneratorDelegate.java new file mode 100644 index 0000000..1dc681c --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/util/JsonGeneratorDelegate.java
@@ -0,0 +1,273 @@ +package org.codehaus.jackson.util; + +import java.io.IOException; +import java.math.BigDecimal; +import java.math.BigInteger; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.io.SerializedString; + +public class JsonGeneratorDelegate extends JsonGenerator +{ + /** + * Delegate object that method calls are delegated to. + */ + protected JsonGenerator delegate; + + public JsonGeneratorDelegate(JsonGenerator d) { + delegate = d; + } + + @Override + public void close() throws IOException { + delegate.close(); + } + + @Override + public void copyCurrentEvent(JsonParser jp) throws IOException, JsonProcessingException { + delegate.copyCurrentEvent(jp); + } + + @Override + public void copyCurrentStructure(JsonParser jp) throws IOException, JsonProcessingException { + delegate.copyCurrentStructure(jp); + } + + @Override + public JsonGenerator disable(Feature f) { + return delegate.disable(f); + } + + @Override + public JsonGenerator enable(Feature f) { + return delegate.enable(f); + } + + @Override + public void flush() throws IOException { + delegate.flush(); + } + + @Override + public ObjectCodec getCodec() { + return delegate.getCodec(); + } + + @Override + public JsonStreamContext getOutputContext() { + return delegate.getOutputContext(); + } + + @Override + public void setSchema(FormatSchema schema) { + delegate.setSchema(schema); + } + + @Override + public boolean canUseSchema(FormatSchema schema) { + return delegate.canUseSchema(schema); + } + + @Override + public Version version() { + return delegate.version(); + } + + @Override + public Object getOutputTarget() { + return delegate.getOutputTarget(); + } + + @Override + public boolean isClosed() { + return delegate.isClosed(); + } + + @Override + public boolean isEnabled(Feature f) { + return delegate.isEnabled(f); + } + + @Override + public JsonGenerator setCodec(ObjectCodec oc) { + delegate.setCodec(oc); + return this; + } + + @Override + public JsonGenerator useDefaultPrettyPrinter() { + delegate.useDefaultPrettyPrinter(); + return this; + } + + @Override + public void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len) + throws IOException, JsonGenerationException + { + delegate.writeBinary(b64variant, data, offset, len); + } + + @Override + public void writeBoolean(boolean state) throws IOException, JsonGenerationException { + delegate.writeBoolean(state); + } + + @Override + public void writeEndArray() throws IOException, JsonGenerationException { + delegate.writeEndArray(); + } + + @Override + public void writeEndObject() throws IOException, JsonGenerationException { + delegate.writeEndObject(); + } + + @Override + public void writeFieldName(String name) + throws IOException, JsonGenerationException + { + delegate.writeFieldName(name); + } + + @Override + public void writeFieldName(SerializedString name) + throws IOException, JsonGenerationException + { + delegate.writeFieldName(name); + } + + @Override + public void writeFieldName(SerializableString name) + throws IOException, JsonGenerationException + { + delegate.writeFieldName(name); + } + + @Override + public void writeNull() throws IOException, JsonGenerationException { + delegate.writeNull(); + } + + @Override + public void writeNumber(int v) throws IOException, JsonGenerationException { + delegate.writeNumber(v); + } + + @Override + public void writeNumber(long v) throws IOException, JsonGenerationException { + delegate.writeNumber(v); + } + + @Override + public void writeNumber(BigInteger v) throws IOException, + JsonGenerationException { + delegate.writeNumber(v); + } + + @Override + public void writeNumber(double v) throws IOException, + JsonGenerationException { + delegate.writeNumber(v); + } + + @Override + public void writeNumber(float v) throws IOException, + JsonGenerationException { + delegate.writeNumber(v); + } + + @Override + public void writeNumber(BigDecimal v) throws IOException, + JsonGenerationException { + delegate.writeNumber(v); + } + + @Override + public void writeNumber(String encodedValue) throws IOException, JsonGenerationException, UnsupportedOperationException { + delegate.writeNumber(encodedValue); + } + + @Override + public void writeObject(Object pojo) throws IOException,JsonProcessingException { + delegate.writeObject(pojo); + } + + @Override + public void writeRaw(String text) throws IOException, JsonGenerationException { + delegate.writeRaw(text); + } + + @Override + public void writeRaw(String text, int offset, int len) throws IOException, JsonGenerationException { + delegate.writeRaw(text, offset, len); + } + + @Override + public void writeRaw(char[] text, int offset, int len) throws IOException, JsonGenerationException { + delegate.writeRaw(text, offset, len); + } + + @Override + public void writeRaw(char c) throws IOException, JsonGenerationException { + delegate.writeRaw(c); + } + + @Override + public void writeRawValue(String text) throws IOException, JsonGenerationException { + delegate.writeRawValue(text); + } + + @Override + public void writeRawValue(String text, int offset, int len) throws IOException, JsonGenerationException { + delegate.writeRawValue(text, offset, len); + } + + @Override + public void writeRawValue(char[] text, int offset, int len) throws IOException, JsonGenerationException { + delegate.writeRawValue(text, offset, len); + } + + @Override + public void writeStartArray() throws IOException, JsonGenerationException { + delegate.writeStartArray(); + } + + @Override + public void writeStartObject() throws IOException, JsonGenerationException { + delegate.writeStartObject(); + } + + @Override + public void writeString(String text) throws IOException,JsonGenerationException { + delegate.writeString(text); + } + + @Override + public void writeString(char[] text, int offset, int len) throws IOException, JsonGenerationException { + delegate.writeString(text, offset, len); + } + + @Override + public void writeString(SerializableString text) throws IOException, JsonGenerationException { + delegate.writeString(text); + } + + @Override + public void writeRawUTF8String(byte[] text, int offset, int length) + throws IOException, JsonGenerationException + { + delegate.writeRawUTF8String(text, offset, length); + } + + @Override + public void writeUTF8String(byte[] text, int offset, int length) + throws IOException, JsonGenerationException + { + delegate.writeUTF8String(text, offset, length); + } + + @Override + public void writeTree(JsonNode rootNode) throws IOException, JsonProcessingException { + delegate.writeTree(rootNode); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/util/JsonParserDelegate.java b/1.9.10/src/java/org/codehaus/jackson/util/JsonParserDelegate.java new file mode 100644 index 0000000..b038efb --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/util/JsonParserDelegate.java
@@ -0,0 +1,251 @@ +package org.codehaus.jackson.util; + +import java.io.IOException; +import java.math.BigDecimal; +import java.math.BigInteger; + +import org.codehaus.jackson.*; + +/** + * Helper class that implements + * <a href="http://en.wikipedia.org/wiki/Delegation_pattern">delegation pattern</a> for {@link JsonParser}, + * to allow for simple overridability of basic parsing functionality. + * The idea is that any functionality to be modified can be simply + * overridden; and anything else will be delegated by default. + * + * @since 1.4 + */ +public class JsonParserDelegate extends JsonParser +{ + /** + * Delegate object that method calls are delegated to. + */ + protected JsonParser delegate; + + public JsonParserDelegate(JsonParser d) { + delegate = d; + } + + /* + /********************************************************** + /* Public API, configuration + /********************************************************** + */ + + @Override + public void setCodec(ObjectCodec c) { + delegate.setCodec(c); + } + + @Override + public ObjectCodec getCodec() { + return delegate.getCodec(); + } + + @Override + public JsonParser enable(Feature f) { + delegate.enable(f); + return this; + } + + @Override + public JsonParser disable(Feature f) { + delegate.disable(f); + return this; + } + + @Override + public boolean isEnabled(Feature f) { + return delegate.isEnabled(f); + } + + @Override + public void setSchema(FormatSchema schema) { + delegate.setSchema(schema); + } + + @Override + public boolean canUseSchema(FormatSchema schema) { + return delegate.canUseSchema(schema); + } + + @Override + public Version version() { + return delegate.version(); + } + + @Override + public Object getInputSource() { + return delegate.getInputSource(); + } + + /* + /********************************************************** + /* Closeable impl + /********************************************************** + */ + + @Override + public void close() throws IOException { + delegate.close(); + } + + @Override + public boolean isClosed() { + return delegate.isClosed(); + } + + /* + /********************************************************** + /* Public API, token accessors + /********************************************************** + */ + + @Override + public JsonToken getCurrentToken() { + return delegate.getCurrentToken(); + } + + @Override + public boolean hasCurrentToken() { + return delegate.hasCurrentToken(); + } + + @Override + public void clearCurrentToken() { + delegate.clearCurrentToken(); + } + + @Override + public String getCurrentName() throws IOException, JsonParseException { + return delegate.getCurrentName(); + } + + @Override + public JsonLocation getCurrentLocation() { + return delegate.getCurrentLocation(); + } + + @Override + public JsonToken getLastClearedToken() { + return delegate.getLastClearedToken(); + } + + @Override + public JsonStreamContext getParsingContext() { + return delegate.getParsingContext(); + } + + /* + /********************************************************** + /* Public API, access to token information, text + /********************************************************** + */ + + @Override + public String getText() throws IOException, JsonParseException { + return delegate.getText(); + } + + @Override + public char[] getTextCharacters() throws IOException, JsonParseException { + return delegate.getTextCharacters(); + } + + @Override + public int getTextLength() throws IOException, JsonParseException { + return delegate.getTextLength(); + } + + @Override + public int getTextOffset() throws IOException, JsonParseException { + return delegate.getTextOffset(); + } + + /* + /********************************************************** + /* Public API, access to token information, numeric + /********************************************************** + */ + + public boolean getBooleanValue() throws IOException, JsonParseException { + return delegate.getBooleanValue(); + } + + @Override + public BigInteger getBigIntegerValue() throws IOException,JsonParseException { + return delegate.getBigIntegerValue(); + } + + @Override + public byte getByteValue() throws IOException, JsonParseException { + return delegate.getByteValue(); + } + + @Override + public short getShortValue() throws IOException, JsonParseException { + return delegate.getShortValue(); + } + + @Override + public BigDecimal getDecimalValue() throws IOException, JsonParseException { + return delegate.getDecimalValue(); + } + + @Override + public double getDoubleValue() throws IOException, JsonParseException { + return delegate.getDoubleValue(); + } + + @Override + public float getFloatValue() throws IOException, JsonParseException { + return delegate.getFloatValue(); + } + + @Override + public int getIntValue() throws IOException, JsonParseException { + return delegate.getIntValue(); + } + + @Override + public long getLongValue() throws IOException, JsonParseException { + return delegate.getLongValue(); + } + + @Override + public NumberType getNumberType() throws IOException, JsonParseException { + return delegate.getNumberType(); + } + + @Override + public Number getNumberValue() throws IOException, JsonParseException { + return delegate.getNumberValue(); + } + + @Override + public byte[] getBinaryValue(Base64Variant b64variant) throws IOException, JsonParseException { + return delegate.getBinaryValue(b64variant); + } + + @Override + public Object getEmbeddedObject() throws IOException, JsonParseException { + return delegate.getEmbeddedObject(); + } + + @Override + public JsonLocation getTokenLocation() { + return delegate.getTokenLocation(); + } + + @Override + public JsonToken nextToken() throws IOException, JsonParseException { + return delegate.nextToken(); + } + + @Override + public JsonParser skipChildren() throws IOException, JsonParseException { + delegate.skipChildren(); + // NOTE: must NOT delegate this method to delegate, needs to be self-reference for chaining + return this; + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/util/JsonParserSequence.java b/1.9.10/src/java/org/codehaus/jackson/util/JsonParserSequence.java new file mode 100644 index 0000000..4d49d00 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/util/JsonParserSequence.java
@@ -0,0 +1,150 @@ +package org.codehaus.jackson.util; + +import java.io.IOException; +import java.util.*; + +import org.codehaus.jackson.*; + +/** + * Helper class that can be used to sequence multiple physical + * {@link JsonParser}s to create a single logical sequence of + * tokens, as a single {@link JsonParser}. + *<p> + * Fairly simple use of {@link JsonParserDelegate}: only need + * to override {@link #nextToken} to handle transition + * + * @author tatu + * @since 1.5 + */ +public class JsonParserSequence extends JsonParserDelegate +{ + /** + * Parsers other than the first one (which is initially assigned + * as delegate) + */ + protected final JsonParser[] _parsers; + + /** + * Index of the next parser in {@link #_parsers}. + */ + protected int _nextParser; + + /* + ******************************************************* + * Construction + ******************************************************* + */ + + protected JsonParserSequence(JsonParser[] parsers) + { + super(parsers[0]); + _parsers = parsers; + _nextParser = 1; + } + + /** + * Method that will construct a parser (possibly a sequence) that + * contains all given sub-parsers. + * All parsers given are checked to see if they are sequences: and + * if so, they will be "flattened", that is, contained parsers are + * directly added in a new sequence instead of adding sequences + * within sequences. This is done to minimize delegation depth, + * ideally only having just a single level of delegation. + */ + public static JsonParserSequence createFlattened(JsonParser first, JsonParser second) + { + if (!(first instanceof JsonParserSequence || second instanceof JsonParserSequence)) { + // simple: + return new JsonParserSequence(new JsonParser[] { first, second }); + } + ArrayList<JsonParser> p = new ArrayList<JsonParser>(); + if (first instanceof JsonParserSequence) { + ((JsonParserSequence) first).addFlattenedActiveParsers(p); + } else { + p.add(first); + } + if (second instanceof JsonParserSequence) { + ((JsonParserSequence) second).addFlattenedActiveParsers(p); + } else { + p.add(second); + } + return new JsonParserSequence(p.toArray(new JsonParser[p.size()])); + } + + protected void addFlattenedActiveParsers(List<JsonParser> result) + { + for (int i = _nextParser-1, len = _parsers.length; i < len; ++i) { + JsonParser p = _parsers[i]; + if (p instanceof JsonParserSequence) { + ((JsonParserSequence) p).addFlattenedActiveParsers(result); + } else { + result.add(p); + } + } + } + + /* + ******************************************************* + * Overridden methods, needed: cases where default + * delegation does not work + ******************************************************* + */ + + @Override + public void close() throws IOException + { + do { + delegate.close(); + } while (switchToNext()); + } + + @Override + public JsonToken nextToken() throws IOException, JsonParseException + { + JsonToken t = delegate.nextToken(); + if (t != null) return t; + while (switchToNext()) { + t = delegate.nextToken(); + if (t != null) return t; + } + return null; + } + + /* + /******************************************************* + /* Additional extended API + /******************************************************* + */ + + /** + * Method that is most useful for debugging or testing; + * returns actual number of underlying parsers sequence + * was constructed with (nor just ones remaining active) + */ + public int containedParsersCount() { + return _parsers.length; + } + + /* + /******************************************************* + /* Helper methods + /******************************************************* + */ + + /** + * Method that will switch active parser from the current one + * to next parser in sequence, if there is another parser left, + * making this the new delegate. Old delegate is returned if + * switch succeeds. + * + * @return True if switch succeeded; false otherwise + */ + protected boolean switchToNext() + { + if (_nextParser >= _parsers.length) { + return false; + } + delegate = _parsers[_nextParser++]; + return true; + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/util/MinimalPrettyPrinter.java b/1.9.10/src/java/org/codehaus/jackson/util/MinimalPrettyPrinter.java new file mode 100644 index 0000000..cdd6a6b --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/util/MinimalPrettyPrinter.java
@@ -0,0 +1,152 @@ +package org.codehaus.jackson.util; + +import java.io.IOException; + +import org.codehaus.jackson.JsonGenerationException; +import org.codehaus.jackson.JsonGenerator; +import org.codehaus.jackson.PrettyPrinter; + +/** + * {@link PrettyPrinter} implementation that adds no indentation, + * just implements everything necessary for value output to work + * as expected, and provide simpler extension points to allow + * for creating simple custom implementations that add specific + * decoration or overrides. Since behavior then is very similar + * to using no pretty printer at all, usually sub-classes are used. + *<p> + * Beyond purely minimal implementation, there is limited amount of + * configurability which may be useful for actual use: for example, + * it is possible to redefine separator used between root-level + * values (default is single space; can be changed to line-feed). + * + * @since 1.6 + */ +public class MinimalPrettyPrinter + implements PrettyPrinter +{ + /** + * Default String used for separating root values is single space. + */ + public final static String DEFAULT_ROOT_VALUE_SEPARATOR = " "; + + protected String _rootValueSeparator = DEFAULT_ROOT_VALUE_SEPARATOR; + + /* + /********************************************************** + /* Life-cycle, construction, configuration + /********************************************************** + */ + + public MinimalPrettyPrinter() { + this(DEFAULT_ROOT_VALUE_SEPARATOR); + } + + /** + * @since 1.9 + */ + public MinimalPrettyPrinter(String rootValueSeparator) { + _rootValueSeparator = rootValueSeparator; + } + + public void setRootValueSeparator(String sep) { + _rootValueSeparator = sep; + } + + /* + /********************************************************** + /* PrettyPrinter impl + /********************************************************** + */ + + @Override + public void writeRootValueSeparator(JsonGenerator jg) throws IOException, JsonGenerationException + { + if (_rootValueSeparator != null) { + jg.writeRaw(_rootValueSeparator); + } + } + + @Override + public void writeStartObject(JsonGenerator jg) + throws IOException, JsonGenerationException + { + jg.writeRaw('{'); + } + + @Override + public void beforeObjectEntries(JsonGenerator jg) + throws IOException, JsonGenerationException + { + // nothing special, since no indentation is added + } + + /** + * Method called after an object field has been output, but + * before the value is output. + *<p> + * Default handling will just output a single + * colon to separate the two, without additional spaces. + */ + @Override + public void writeObjectFieldValueSeparator(JsonGenerator jg) + throws IOException, JsonGenerationException + { + jg.writeRaw(':'); + } + + /** + * Method called after an object entry (field:value) has been completely + * output, and before another value is to be output. + *<p> + * Default handling (without pretty-printing) will output a single + * comma to separate the two. + */ + @Override + public void writeObjectEntrySeparator(JsonGenerator jg) + throws IOException, JsonGenerationException + { + jg.writeRaw(','); + } + + @Override + public void writeEndObject(JsonGenerator jg, int nrOfEntries) + throws IOException, JsonGenerationException + { + jg.writeRaw('}'); + } + + @Override + public void writeStartArray(JsonGenerator jg) + throws IOException, JsonGenerationException + { + jg.writeRaw('['); + } + + @Override + public void beforeArrayValues(JsonGenerator jg) + throws IOException, JsonGenerationException + { + // nothing special, since no indentation is added + } + + /** + * Method called after an array value has been completely + * output, and before another value is to be output. + *<p> + * Default handling (without pretty-printing) will output a single + * comma to separate values. + */ + @Override + public void writeArrayValueSeparator(JsonGenerator jg) + throws IOException, JsonGenerationException + { + jg.writeRaw(','); + } + + @Override + public void writeEndArray(JsonGenerator jg, int nrOfValues) + throws IOException, JsonGenerationException + { + jg.writeRaw(']'); + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/util/TextBuffer.java b/1.9.10/src/java/org/codehaus/jackson/util/TextBuffer.java new file mode 100644 index 0000000..8f1eff1 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/util/TextBuffer.java
@@ -0,0 +1,720 @@ +package org.codehaus.jackson.util; + +import java.math.BigDecimal; +import java.util.ArrayList; + +import org.codehaus.jackson.io.NumberInput; + +/** + * TextBuffer is a class similar to {@link StringBuffer}, with + * following differences: + *<ul> + * <li>TextBuffer uses segments character arrays, to avoid having + * to do additional array copies when array is not big enough. + * This means that only reallocating that is necessary is done only once: + * if and when caller + * wants to access contents in a linear array (char[], String). + * </li> +* <li>TextBuffer can also be initialized in "shared mode", in which +* it will just act as a wrapper to a single char array managed +* by another object (like parser that owns it) + * </li> + * <li>TextBuffer is not synchronized. + * </li> + * </ul> + */ +public final class TextBuffer +{ + final static char[] NO_CHARS = new char[0]; + + /** + * Let's start with sizable but not huge buffer, will grow as necessary + */ + final static int MIN_SEGMENT_LEN = 1000; + + /** + * Let's limit maximum segment length to something sensible + * like 256k + */ + final static int MAX_SEGMENT_LEN = 0x40000; + + /* + /********************************************************** + /* Configuration: + /********************************************************** + */ + + private final BufferRecycler _allocator; + + /* + /********************************************************** + /* Shared input buffers + /********************************************************** + */ + + /** + * Shared input buffer; stored here in case some input can be returned + * as is, without being copied to collector's own buffers. Note that + * this is read-only for this Object. + */ + private char[] _inputBuffer; + + /** + * Character offset of first char in input buffer; -1 to indicate + * that input buffer currently does not contain any useful char data + */ + private int _inputStart; + + private int _inputLen; + + /* + /********************************************************** + /* Aggregation segments (when not using input buf) + /********************************************************** + */ + + /** + * List of segments prior to currently active segment. + */ + private ArrayList<char[]> _segments; + + /** + * Flag that indicates whether _seqments is non-empty + */ + private boolean _hasSegments = false; + + // // // Currently used segment; not (yet) contained in _seqments + + /** + * Amount of characters in segments in {@link _segments} + */ + private int _segmentSize; + + private char[] _currentSegment; + + /** + * Number of characters in currently active (last) segment + */ + private int _currentSize; + + /* + /********************************************************** + /* Caching of results + /********************************************************** + */ + + /** + * String that will be constructed when the whole contents are + * needed; will be temporarily stored in case asked for again. + */ + private String _resultString; + + private char[] _resultArray; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + public TextBuffer(BufferRecycler allocator) + { + _allocator = allocator; + } + + /** + * Method called to indicate that the underlying buffers should now + * be recycled if they haven't yet been recycled. Although caller + * can still use this text buffer, it is not advisable to call this + * method if that is likely, since next time a buffer is needed, + * buffers need to reallocated. + * Note: calling this method automatically also clears contents + * of the buffer. + */ + public void releaseBuffers() + { + if (_allocator == null) { + resetWithEmpty(); + } else { + if (_currentSegment != null) { + // First, let's get rid of all but the largest char array + resetWithEmpty(); + // And then return that array + char[] buf = _currentSegment; + _currentSegment = null; + _allocator.releaseCharBuffer(BufferRecycler.CharBufferType.TEXT_BUFFER, buf); + } + } + } + + /** + * Method called to clear out any content text buffer may have, and + * initializes buffer to use non-shared data. + */ + public void resetWithEmpty() + { + _inputStart = -1; // indicates shared buffer not used + _currentSize = 0; + _inputLen = 0; + + _inputBuffer = null; + _resultString = null; + _resultArray = null; + + // And then reset internal input buffers, if necessary: + if (_hasSegments) { + clearSegments(); + } + } + + /** + * Method called to initialize the buffer with a shared copy of data; + * this means that buffer will just have pointers to actual data. It + * also means that if anything is to be appended to the buffer, it + * will first have to unshare it (make a local copy). + */ + public void resetWithShared(char[] buf, int start, int len) + { + // First, let's clear intermediate values, if any: + _resultString = null; + _resultArray = null; + + // Then let's mark things we need about input buffer + _inputBuffer = buf; + _inputStart = start; + _inputLen = len; + + // And then reset internal input buffers, if necessary: + if (_hasSegments) { + clearSegments(); + } + } + + public void resetWithCopy(char[] buf, int start, int len) + { + _inputBuffer = null; + _inputStart = -1; // indicates shared buffer not used + _inputLen = 0; + + _resultString = null; + _resultArray = null; + + // And then reset internal input buffers, if necessary: + if (_hasSegments) { + clearSegments(); + } else if (_currentSegment == null) { + _currentSegment = findBuffer(len); + } + _currentSize = _segmentSize = 0; + append(buf, start, len); + } + + public void resetWithString(String value) + { + _inputBuffer = null; + _inputStart = -1; + _inputLen = 0; + + _resultString = value; + _resultArray = null; + + if (_hasSegments) { + clearSegments(); + } + _currentSize = 0; + + } + + /** + * Helper method used to find a buffer to use, ideally one + * recycled earlier. + */ + private final char[] findBuffer(int needed) + { + if (_allocator != null) { + return _allocator.allocCharBuffer(BufferRecycler.CharBufferType.TEXT_BUFFER, needed); + } + return new char[Math.max(needed, MIN_SEGMENT_LEN)]; + } + + private final void clearSegments() + { + _hasSegments = false; + /* Let's start using _last_ segment from list; for one, it's + * the biggest one, and it's also most likely to be cached + */ + /* 28-Aug-2009, tatu: Actually, the current segment should + * be the biggest one, already + */ + //_currentSegment = _segments.get(_segments.size() - 1); + _segments.clear(); + _currentSize = _segmentSize = 0; + } + + /* + /********************************************************** + /* Accessors for implementing public interface + /********************************************************** + */ + + /** + * @return Number of characters currently stored by this collector + */ + public int size() { + if (_inputStart >= 0) { // shared copy from input buf + return _inputLen; + } + if (_resultArray != null) { + return _resultArray.length; + } + if (_resultString != null) { + return _resultString.length(); + } + // local segmented buffers + return _segmentSize + _currentSize; + } + + public int getTextOffset() + { + /* Only shared input buffer can have non-zero offset; buffer + * segments start at 0, and if we have to create a combo buffer, + * that too will start from beginning of the buffer + */ + return (_inputStart >= 0) ? _inputStart : 0; + } + + /** + * Method that can be used to check whether textual contents can + * be efficiently accessed using {@link #getTextBuffer}. + * + * @since 1.9 + */ + public boolean hasTextAsCharacters() + { + // if we have array in some form, sure + if (_inputStart >= 0 || _resultArray != null) { + return true; + } + // not if we have String as value + if (_resultString != null) { + return false; + } + return true; + } + + public char[] getTextBuffer() + { + // Are we just using shared input buffer? + if (_inputStart >= 0) { + return _inputBuffer; + } + if (_resultArray != null) { + return _resultArray; + } + if (_resultString != null) { + return (_resultArray = _resultString.toCharArray()); + } + // Nope; but does it fit in just one segment? + if (!_hasSegments) { + return _currentSegment; + } + // Nope, need to have/create a non-segmented array and return it + return contentsAsArray(); + } + + /* + /********************************************************** + /* Other accessors: + /********************************************************** + */ + + public String contentsAsString() + { + if (_resultString == null) { + // Has array been requested? Can make a shortcut, if so: + if (_resultArray != null) { + _resultString = new String(_resultArray); + } else { + // Do we use shared array? + if (_inputStart >= 0) { + if (_inputLen < 1) { + return (_resultString = ""); + } + _resultString = new String(_inputBuffer, _inputStart, _inputLen); + } else { // nope... need to copy + // But first, let's see if we have just one buffer + int segLen = _segmentSize; + int currLen = _currentSize; + + if (segLen == 0) { // yup + _resultString = (currLen == 0) ? "" : new String(_currentSegment, 0, currLen); + } else { // no, need to combine + StringBuilder sb = new StringBuilder(segLen + currLen); + // First stored segments + if (_segments != null) { + for (int i = 0, len = _segments.size(); i < len; ++i) { + char[] curr = _segments.get(i); + sb.append(curr, 0, curr.length); + } + } + // And finally, current segment: + sb.append(_currentSegment, 0, _currentSize); + _resultString = sb.toString(); + } + } + } + } + return _resultString; + } + + public char[] contentsAsArray() + { + char[] result = _resultArray; + if (result == null) { + _resultArray = result = buildResultArray(); + } + return result; + } + + /** + * Convenience method for converting contents of the buffer + * into a {@link BigDecimal}. + */ + public BigDecimal contentsAsDecimal() + throws NumberFormatException + { + // Already got a pre-cut array? + if (_resultArray != null) { + return new BigDecimal(_resultArray); + } + // Or a shared buffer? + if (_inputStart >= 0) { + return new BigDecimal(_inputBuffer, _inputStart, _inputLen); + } + // Or if not, just a single buffer (the usual case) + if (_segmentSize == 0) { + return new BigDecimal(_currentSegment, 0, _currentSize); + } + // If not, let's just get it aggregated... + return new BigDecimal(contentsAsArray()); + } + + /** + * Convenience method for converting contents of the buffer + * into a Double value. + */ + public double contentsAsDouble() + throws NumberFormatException + { + return NumberInput.parseDouble(contentsAsString()); + } + + /* + /********************************************************** + /* Public mutators: + /********************************************************** + */ + + /** + * Method called to make sure that buffer is not using shared input + * buffer; if it is, it will copy such contents to private buffer. + */ + public void ensureNotShared() { + if (_inputStart >= 0) { + unshare(16); + } + } + + public void append(char c) { + // Using shared buffer so far? + if (_inputStart >= 0) { + unshare(16); + } + _resultString = null; + _resultArray = null; + // Room in current segment? + char[] curr = _currentSegment; + if (_currentSize >= curr.length) { + expand(1); + curr = _currentSegment; + } + curr[_currentSize++] = c; + } + + public void append(char[] c, int start, int len) + { + // Can't append to shared buf (sanity check) + if (_inputStart >= 0) { + unshare(len); + } + _resultString = null; + _resultArray = null; + + // Room in current segment? + char[] curr = _currentSegment; + int max = curr.length - _currentSize; + + if (max >= len) { + System.arraycopy(c, start, curr, _currentSize, len); + _currentSize += len; + return; + } + // No room for all, need to copy part(s): + if (max > 0) { + System.arraycopy(c, start, curr, _currentSize, max); + start += max; + len -= max; + } + /* And then allocate new segment; we are guaranteed to now + * have enough room in segment. + */ + // Except, as per [Issue-24], not for HUGE appends... so: + do { + expand(len); + int amount = Math.min(_currentSegment.length, len); + System.arraycopy(c, start, _currentSegment, 0, amount); + _currentSize += amount; + start += amount; + len -= amount; + } while (len > 0); + } + + public void append(String str, int offset, int len) + { + // Can't append to shared buf (sanity check) + if (_inputStart >= 0) { + unshare(len); + } + _resultString = null; + _resultArray = null; + + // Room in current segment? + char[] curr = _currentSegment; + int max = curr.length - _currentSize; + if (max >= len) { + str.getChars(offset, offset+len, curr, _currentSize); + _currentSize += len; + return; + } + // No room for all, need to copy part(s): + if (max > 0) { + str.getChars(offset, offset+max, curr, _currentSize); + len -= max; + offset += max; + } + /* And then allocate new segment; we are guaranteed to now + * have enough room in segment. + */ + // Except, as per [Issue-24], not for HUGE appends... so: + do { + expand(len); + int amount = Math.min(_currentSegment.length, len); + str.getChars(offset, offset+amount, _currentSegment, 0); + _currentSize += amount; + offset += amount; + len -= amount; + } while (len > 0); + } + + /* + /********************************************************** + /* Raw access, for high-performance use: + /********************************************************** + */ + + public char[] getCurrentSegment() + { + /* Since the intention of the caller is to directly add stuff into + * buffers, we should NOT have anything in shared buffer... ie. may + * need to unshare contents. + */ + if (_inputStart >= 0) { + unshare(1); + } else { + char[] curr = _currentSegment; + if (curr == null) { + _currentSegment = findBuffer(0); + } else if (_currentSize >= curr.length) { + // Plus, we better have room for at least one more char + expand(1); + } + } + return _currentSegment; + } + + public final char[] emptyAndGetCurrentSegment() + { + // inlined 'resetWithEmpty()' + _inputStart = -1; // indicates shared buffer not used + _currentSize = 0; + _inputLen = 0; + + _inputBuffer = null; + _resultString = null; + _resultArray = null; + + // And then reset internal input buffers, if necessary: + if (_hasSegments) { + clearSegments(); + } + char[] curr = _currentSegment; + if (curr == null) { + _currentSegment = curr = findBuffer(0); + } + return curr; + } + + public int getCurrentSegmentSize() { + return _currentSize; + } + + public void setCurrentLength(int len) { + _currentSize = len; + } + + public char[] finishCurrentSegment() + { + if (_segments == null) { + _segments = new ArrayList<char[]>(); + } + _hasSegments = true; + _segments.add(_currentSegment); + int oldLen = _currentSegment.length; + _segmentSize += oldLen; + // Let's grow segments by 50% + int newLen = Math.min(oldLen + (oldLen >> 1), MAX_SEGMENT_LEN); + char[] curr = _charArray(newLen); + _currentSize = 0; + _currentSegment = curr; + return curr; + } + + /** + * Method called to expand size of the current segment, to + * accomodate for more contiguous content. Usually only + * used when parsing tokens like names. + */ + public char[] expandCurrentSegment() + { + char[] curr = _currentSegment; + // Let's grow by 50% + int len = curr.length; + // Must grow by at least 1 char, no matter what + int newLen = (len == MAX_SEGMENT_LEN) ? + (MAX_SEGMENT_LEN + 1) : Math.min(MAX_SEGMENT_LEN, len + (len >> 1)); + _currentSegment = _charArray(newLen); + System.arraycopy(curr, 0, _currentSegment, 0, len); + return _currentSegment; + } + + /* + /********************************************************** + /* Standard methods: + /********************************************************** + */ + + /** + * Note: calling this method may not be as efficient as calling + * {@link #contentsAsString}, since it's not guaranteed that resulting + * String is cached. + */ + @Override + public String toString() { + return contentsAsString(); + } + + /* + /********************************************************** + /* Internal methods: + /********************************************************** + */ + + /** + * Method called if/when we need to append content when we have been + * initialized to use shared buffer. + */ + private void unshare(int needExtra) + { + int sharedLen = _inputLen; + _inputLen = 0; + char[] inputBuf = _inputBuffer; + _inputBuffer = null; + int start = _inputStart; + _inputStart = -1; + + // Is buffer big enough, or do we need to reallocate? + int needed = sharedLen+needExtra; + if (_currentSegment == null || needed > _currentSegment.length) { + _currentSegment = findBuffer(needed); + } + if (sharedLen > 0) { + System.arraycopy(inputBuf, start, _currentSegment, 0, sharedLen); + } + _segmentSize = 0; + _currentSize = sharedLen; + } + + /** + * Method called when current segment is full, to allocate new + * segment. + */ + private void expand(int minNewSegmentSize) + { + // First, let's move current segment to segment list: + if (_segments == null) { + _segments = new ArrayList<char[]>(); + } + char[] curr = _currentSegment; + _hasSegments = true; + _segments.add(curr); + _segmentSize += curr.length; + int oldLen = curr.length; + // Let's grow segments by 50% minimum + int sizeAddition = oldLen >> 1; + if (sizeAddition < minNewSegmentSize) { + sizeAddition = minNewSegmentSize; + } + curr = _charArray(Math.min(MAX_SEGMENT_LEN, oldLen + sizeAddition)); + _currentSize = 0; + _currentSegment = curr; + } + + private char[] buildResultArray() + { + if (_resultString != null) { // Can take a shortcut... + return _resultString.toCharArray(); + } + char[] result; + + // Do we use shared array? + if (_inputStart >= 0) { + if (_inputLen < 1) { + return NO_CHARS; + } + result = _charArray(_inputLen); + System.arraycopy(_inputBuffer, _inputStart, result, 0, + _inputLen); + } else { // nope + int size = size(); + if (size < 1) { + return NO_CHARS; + } + int offset = 0; + result = _charArray(size); + if (_segments != null) { + for (int i = 0, len = _segments.size(); i < len; ++i) { + char[] curr = (char[]) _segments.get(i); + int currLen = curr.length; + System.arraycopy(curr, 0, result, offset, currLen); + offset += currLen; + } + } + System.arraycopy(_currentSegment, 0, result, offset, _currentSize); + } + return result; + } + + private final char[] _charArray(int len) { + return new char[len]; + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/util/TokenBuffer.java b/1.9.10/src/java/org/codehaus/jackson/util/TokenBuffer.java new file mode 100644 index 0000000..6aa2356 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/util/TokenBuffer.java
@@ -0,0 +1,1221 @@ +package org.codehaus.jackson.util; + +import java.io.IOException; +import java.math.BigDecimal; +import java.math.BigInteger; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.impl.JsonParserMinimalBase; +import org.codehaus.jackson.impl.JsonReadContext; +import org.codehaus.jackson.impl.JsonWriteContext; +import org.codehaus.jackson.io.SerializedString; + +/** + * Utility class used for efficient storage of {@link JsonToken} + * sequences, needed for temporary buffering. + * Space efficient for different sequence lengths (especially so for smaller + * ones; but not significantly less efficient for larger), highly efficient + * for linear iteration and appending. Implemented as segmented/chunked + * linked list of tokens; only modifications are via appends. + * + * @since 1.5 + */ +public class TokenBuffer +/* Won't use JsonGeneratorBase, to minimize overhead for validity + * checking + */ + extends JsonGenerator +{ + protected final static int DEFAULT_PARSER_FEATURES = JsonParser.Feature.collectDefaults(); + + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + /** + * Object codec to use for stream-based object + * conversion through parser/generator interfaces. If null, + * such methods can not be used. + */ + protected ObjectCodec _objectCodec; + + /** + * Bit flag composed of bits that indicate which + * {@link org.codehaus.jackson.JsonGenerator.Feature}s + * are enabled. + *<p> + * NOTE: most features have no effect on this class + */ + protected int _generatorFeatures; + + protected boolean _closed; + + /* + /********************************************************** + /* Token buffering state + /********************************************************** + */ + + /** + * First segment, for contents this buffer has + */ + protected Segment _first; + + /** + * Last segment of this buffer, one that is used + * for appending more tokens + */ + protected Segment _last; + + /** + * Offset within last segment, + */ + protected int _appendOffset; + + /* + /********************************************************** + /* Output state + /********************************************************** + */ + + protected JsonWriteContext _writeContext; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + /** + * @param codec Object codec to use for stream-based object + * conversion through parser/generator interfaces. If null, + * such methods can not be used. + */ + public TokenBuffer(ObjectCodec codec) + { + _objectCodec = codec; + _generatorFeatures = DEFAULT_PARSER_FEATURES; + _writeContext = JsonWriteContext.createRootContext(); + // at first we have just one segment + _first = _last = new Segment(); + _appendOffset = 0; + } + + /** + * Method used to create a {@link JsonParser} that can read contents + * stored in this buffer. Will use default <code>_objectCodec</code> for + * object conversions. + *<p> + * Note: instances are not synchronized, that is, they are not thread-safe + * if there are concurrent appends to the underlying buffer. + * + * @return Parser that can be used for reading contents stored in this buffer + */ + public JsonParser asParser() + { + return asParser(_objectCodec); + } + + /** + * Method used to create a {@link JsonParser} that can read contents + * stored in this buffer. + *<p> + * Note: instances are not synchronized, that is, they are not thread-safe + * if there are concurrent appends to the underlying buffer. + * + * @param codec Object codec to use for stream-based object + * conversion through parser/generator interfaces. If null, + * such methods can not be used. + * + * @return Parser that can be used for reading contents stored in this buffer + */ + public JsonParser asParser(ObjectCodec codec) + { + return new Parser(_first, codec); + } + + /** + * @param src Parser to use for accessing source information + * like location, configured codec + */ + public JsonParser asParser(JsonParser src) + { + Parser p = new Parser(_first, src.getCodec()); + p.setLocation(src.getTokenLocation()); + return p; + } + + /* + /********************************************************** + /* Other custom methods not needed for implementing interfaces + /********************************************************** + */ + + /** + * Helper method that will write all contents of this buffer + * using given {@link JsonGenerator}. + *<p> + * Note: this method would be enough to implement + * <code>JsonSerializer</code> for <code>TokenBuffer</code> type; + * but we can not have upwards + * references (from core to mapper package); and as such we also + * can not take second argument. + */ + public void serialize(JsonGenerator jgen) + throws IOException, JsonGenerationException + { + Segment segment = _first; + int ptr = -1; + + while (true) { + if (++ptr >= Segment.TOKENS_PER_SEGMENT) { + ptr = 0; + segment = segment.next(); + if (segment == null) break; + } + JsonToken t = segment.type(ptr); + if (t == null) break; + + // Note: copied from 'copyCurrentEvent'... + switch (t) { + case START_OBJECT: + jgen.writeStartObject(); + break; + case END_OBJECT: + jgen.writeEndObject(); + break; + case START_ARRAY: + jgen.writeStartArray(); + break; + case END_ARRAY: + jgen.writeEndArray(); + break; + case FIELD_NAME: + { + // 13-Dec-2010, tatu: Maybe we should start using different type tokens to reduce casting? + Object ob = segment.get(ptr); + if (ob instanceof SerializableString) { + jgen.writeFieldName((SerializableString) ob); + } else { + jgen.writeFieldName((String) ob); + } + } + break; + case VALUE_STRING: + { + Object ob = segment.get(ptr); + if (ob instanceof SerializableString) { + jgen.writeString((SerializableString) ob); + } else { + jgen.writeString((String) ob); + } + } + break; + case VALUE_NUMBER_INT: + { + Number n = (Number) segment.get(ptr); + if (n instanceof BigInteger) { + jgen.writeNumber((BigInteger) n); + } else if (n instanceof Long) { + jgen.writeNumber(n.longValue()); + } else { + jgen.writeNumber(n.intValue()); + } + } + break; + case VALUE_NUMBER_FLOAT: + { + Object n = segment.get(ptr); + if (n instanceof BigDecimal) { + jgen.writeNumber((BigDecimal) n); + } else if (n instanceof Float) { + jgen.writeNumber(((Float) n).floatValue()); + } else if (n instanceof Double) { + jgen.writeNumber(((Double) n).doubleValue()); + } else if (n == null) { + jgen.writeNull(); + } else if (n instanceof String) { + jgen.writeNumber((String) n); + } else { + throw new JsonGenerationException("Unrecognized value type for VALUE_NUMBER_FLOAT: "+n.getClass().getName()+", can not serialize"); + } + } + break; + case VALUE_TRUE: + jgen.writeBoolean(true); + break; + case VALUE_FALSE: + jgen.writeBoolean(false); + break; + case VALUE_NULL: + jgen.writeNull(); + break; + case VALUE_EMBEDDED_OBJECT: + jgen.writeObject(segment.get(ptr)); + break; + default: + throw new RuntimeException("Internal error: should never end up through this code path"); + } + } + } + + @Override + public String toString() + { + // Let's print up to 100 first tokens... + final int MAX_COUNT = 100; + + StringBuilder sb = new StringBuilder(); + sb.append("[TokenBuffer: "); + JsonParser jp = asParser(); + int count = 0; + + while (true) { + JsonToken t; + try { + t = jp.nextToken(); + } catch (IOException ioe) { // should never occur + throw new IllegalStateException(ioe); + } + if (t == null) break; + if (count < MAX_COUNT) { + if (count > 0) { + sb.append(", "); + } + sb.append(t.toString()); + } + ++count; + } + + if (count >= MAX_COUNT) { + sb.append(" ... (truncated ").append(count-MAX_COUNT).append(" entries)"); + } + sb.append(']'); + return sb.toString(); + } + + /* + /********************************************************** + /* JsonGenerator implementation: configuration + /********************************************************** + */ + + @Override + public JsonGenerator enable(Feature f) { + _generatorFeatures |= f.getMask(); + return this; + } + + @Override + public JsonGenerator disable(Feature f) { + _generatorFeatures &= ~f.getMask(); + return this; + } + + //public JsonGenerator configure(Feature f, boolean state) { } + + @Override + public boolean isEnabled(Feature f) { + return (_generatorFeatures & f.getMask()) != 0; + } + + @Override + public JsonGenerator useDefaultPrettyPrinter() { + // No-op: we don't indent + return this; + } + + @Override + public JsonGenerator setCodec(ObjectCodec oc) { + _objectCodec = oc; + return this; + } + + @Override + public ObjectCodec getCodec() { return _objectCodec; } + + @Override + public final JsonWriteContext getOutputContext() { return _writeContext; } + + /* + /********************************************************** + /* JsonGenerator implementation: low-level output handling + /********************************************************** + */ + + @Override + public void flush() throws IOException { /* NOP */ } + + @Override + public void close() throws IOException { + _closed = true; + } + + @Override + public boolean isClosed() { return _closed; } + + /* + /********************************************************** + /* JsonGenerator implementation: write methods, structural + /********************************************************** + */ + + @Override + public final void writeStartArray() + throws IOException, JsonGenerationException + { + _append(JsonToken.START_ARRAY); + _writeContext = _writeContext.createChildArrayContext(); + } + + @Override + public final void writeEndArray() + throws IOException, JsonGenerationException + { + _append(JsonToken.END_ARRAY); + // Let's allow unbalanced tho... i.e. not run out of root level, ever + JsonWriteContext c = _writeContext.getParent(); + if (c != null) { + _writeContext = c; + } + } + + @Override + public final void writeStartObject() + throws IOException, JsonGenerationException + { + _append(JsonToken.START_OBJECT); + _writeContext = _writeContext.createChildObjectContext(); + } + + @Override + public final void writeEndObject() + throws IOException, JsonGenerationException + { + _append(JsonToken.END_OBJECT); + // Let's allow unbalanced tho... i.e. not run out of root level, ever + JsonWriteContext c = _writeContext.getParent(); + if (c != null) { + _writeContext = c; + } + } + + @Override + public final void writeFieldName(String name) + throws IOException, JsonGenerationException + { + _append(JsonToken.FIELD_NAME, name); + _writeContext.writeFieldName(name); + } + + @Override + public void writeFieldName(SerializableString name) + throws IOException, JsonGenerationException + { + _append(JsonToken.FIELD_NAME, name); + _writeContext.writeFieldName(name.getValue()); + } + + @Override + public void writeFieldName(SerializedString name) + throws IOException, JsonGenerationException + { + _append(JsonToken.FIELD_NAME, name); + _writeContext.writeFieldName(name.getValue()); + } + + /* + /********************************************************** + /* JsonGenerator implementation: write methods, textual + /********************************************************** + */ + + @Override + public void writeString(String text) throws IOException,JsonGenerationException { + if (text == null) { + writeNull(); + } else { + _append(JsonToken.VALUE_STRING, text); + } + } + + @Override + public void writeString(char[] text, int offset, int len) throws IOException, JsonGenerationException { + writeString(new String(text, offset, len)); + } + + @Override + public void writeString(SerializableString text) throws IOException, JsonGenerationException { + if (text == null) { + writeNull(); + } else { + _append(JsonToken.VALUE_STRING, text); + } + } + + @Override + public void writeRawUTF8String(byte[] text, int offset, int length) + throws IOException, JsonGenerationException + { + // could add support for buffering if we really want it... + _reportUnsupportedOperation(); + } + + @Override + public void writeUTF8String(byte[] text, int offset, int length) + throws IOException, JsonGenerationException + { + // could add support for buffering if we really want it... + _reportUnsupportedOperation(); + } + + @Override + public void writeRaw(String text) throws IOException, JsonGenerationException { + _reportUnsupportedOperation(); + } + + @Override + public void writeRaw(String text, int offset, int len) throws IOException, JsonGenerationException { + _reportUnsupportedOperation(); + } + + @Override + public void writeRaw(char[] text, int offset, int len) throws IOException, JsonGenerationException { + _reportUnsupportedOperation(); + } + + @Override + public void writeRaw(char c) throws IOException, JsonGenerationException { + _reportUnsupportedOperation(); + } + + @Override + public void writeRawValue(String text) throws IOException, JsonGenerationException { + _reportUnsupportedOperation(); + } + + @Override + public void writeRawValue(String text, int offset, int len) throws IOException, JsonGenerationException { + _reportUnsupportedOperation(); + } + + @Override + public void writeRawValue(char[] text, int offset, int len) throws IOException, JsonGenerationException { + _reportUnsupportedOperation(); + } + + /* + /********************************************************** + /* JsonGenerator implementation: write methods, primitive types + /********************************************************** + */ + + @Override + public void writeNumber(int i) throws IOException, JsonGenerationException { + _append(JsonToken.VALUE_NUMBER_INT, Integer.valueOf(i)); + } + + @Override + public void writeNumber(long l) throws IOException, JsonGenerationException { + _append(JsonToken.VALUE_NUMBER_INT, Long.valueOf(l)); + } + + @Override + public void writeNumber(double d) throws IOException,JsonGenerationException { + _append(JsonToken.VALUE_NUMBER_FLOAT, Double.valueOf(d)); + } + + @Override + public void writeNumber(float f) throws IOException, JsonGenerationException { + _append(JsonToken.VALUE_NUMBER_FLOAT, Float.valueOf(f)); + } + + @Override + public void writeNumber(BigDecimal dec) throws IOException,JsonGenerationException { + if (dec == null) { + writeNull(); + } else { + _append(JsonToken.VALUE_NUMBER_FLOAT, dec); + } + } + + @Override + public void writeNumber(BigInteger v) throws IOException, JsonGenerationException { + if (v == null) { + writeNull(); + } else { + _append(JsonToken.VALUE_NUMBER_INT, v); + } + } + + @Override + public void writeNumber(String encodedValue) throws IOException, JsonGenerationException { + /* 03-Dec-2010, tatu: related to [JACKSON-423], should try to keep as numeric + * identity as long as possible + */ + _append(JsonToken.VALUE_NUMBER_FLOAT, encodedValue); + } + + @Override + public void writeBoolean(boolean state) throws IOException,JsonGenerationException { + _append(state ? JsonToken.VALUE_TRUE : JsonToken.VALUE_FALSE); + } + + @Override + public void writeNull() throws IOException, JsonGenerationException { + _append(JsonToken.VALUE_NULL); + } + + /* + /*********************************************************** + /* JsonGenerator implementation: write methods for POJOs/trees + /*********************************************************** + */ + + @Override + public void writeObject(Object value) + throws IOException, JsonProcessingException + { + // embedded means that no conversions should be done... + _append(JsonToken.VALUE_EMBEDDED_OBJECT, value); + } + + @Override + public void writeTree(JsonNode rootNode) + throws IOException, JsonProcessingException + { + /* 31-Dec-2009, tatu: no need to convert trees either is there? + * (note: may need to re-evaluate at some point) + */ + _append(JsonToken.VALUE_EMBEDDED_OBJECT, rootNode); + } + + /* + /*********************************************************** + /* JsonGenerator implementation; binary + /*********************************************************** + */ + + @Override + public void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len) + throws IOException, JsonGenerationException + { + /* 31-Dec-2009, tatu: can do this using multiple alternatives; but for + * now, let's try to limit number of conversions. + * The only (?) tricky thing is that of whether to preserve variant, + * seems pointless, so let's not worry about it unless there's some + * compelling reason to. + */ + byte[] copy = new byte[len]; + System.arraycopy(data, offset, copy, 0, len); + writeObject(copy); + } + + /* + /********************************************************** + /* JsonGenerator implementation; pass-through copy + /********************************************************** + */ + + @Override + public void copyCurrentEvent(JsonParser jp) throws IOException, JsonProcessingException + { + switch (jp.getCurrentToken()) { + case START_OBJECT: + writeStartObject(); + break; + case END_OBJECT: + writeEndObject(); + break; + case START_ARRAY: + writeStartArray(); + break; + case END_ARRAY: + writeEndArray(); + break; + case FIELD_NAME: + writeFieldName(jp.getCurrentName()); + break; + case VALUE_STRING: + if (jp.hasTextCharacters()) { + writeString(jp.getTextCharacters(), jp.getTextOffset(), jp.getTextLength()); + } else { + writeString(jp.getText()); + } + break; + case VALUE_NUMBER_INT: + switch (jp.getNumberType()) { + case INT: + writeNumber(jp.getIntValue()); + break; + case BIG_INTEGER: + writeNumber(jp.getBigIntegerValue()); + break; + default: + writeNumber(jp.getLongValue()); + } + break; + case VALUE_NUMBER_FLOAT: + switch (jp.getNumberType()) { + case BIG_DECIMAL: + writeNumber(jp.getDecimalValue()); + break; + case FLOAT: + writeNumber(jp.getFloatValue()); + break; + default: + writeNumber(jp.getDoubleValue()); + } + break; + case VALUE_TRUE: + writeBoolean(true); + break; + case VALUE_FALSE: + writeBoolean(false); + break; + case VALUE_NULL: + writeNull(); + break; + case VALUE_EMBEDDED_OBJECT: + writeObject(jp.getEmbeddedObject()); + break; + default: + throw new RuntimeException("Internal error: should never end up through this code path"); + } + } + + @Override + public void copyCurrentStructure(JsonParser jp) throws IOException, JsonProcessingException { + JsonToken t = jp.getCurrentToken(); + + // Let's handle field-name separately first + if (t == JsonToken.FIELD_NAME) { + writeFieldName(jp.getCurrentName()); + t = jp.nextToken(); + // fall-through to copy the associated value + } + + switch (t) { + case START_ARRAY: + writeStartArray(); + while (jp.nextToken() != JsonToken.END_ARRAY) { + copyCurrentStructure(jp); + } + writeEndArray(); + break; + case START_OBJECT: + writeStartObject(); + while (jp.nextToken() != JsonToken.END_OBJECT) { + copyCurrentStructure(jp); + } + writeEndObject(); + break; + default: // others are simple: + copyCurrentEvent(jp); + } + } + + /* + /********************************************************** + /* Internal methods + /********************************************************** + */ + protected final void _append(JsonToken type) { + Segment next = _last.append(_appendOffset, type); + if (next == null) { + ++_appendOffset; + } else { + _last = next; + _appendOffset = 1; // since we added first at 0 + } + } + + protected final void _append(JsonToken type, Object value) { + Segment next = _last.append(_appendOffset, type, value); + if (next == null) { + ++_appendOffset; + } else { + _last = next; + _appendOffset = 1; + } + } + + protected void _reportUnsupportedOperation() { + throw new UnsupportedOperationException("Called operation not supported for TokenBuffer"); + } + + /* + /********************************************************** + /* Supporting classes + /********************************************************** + */ + + protected final static class Parser + extends JsonParserMinimalBase + { + protected ObjectCodec _codec; + + /* + /********************************************************** + /* Parsing state + /********************************************************** + */ + + /** + * Currently active segment + */ + protected Segment _segment; + + /** + * Pointer to current token within current segment + */ + protected int _segmentPtr; + + /** + * Information about parser context, context in which + * the next token is to be parsed (root, array, object). + */ + protected JsonReadContext _parsingContext; + + protected boolean _closed; + + protected transient ByteArrayBuilder _byteBuilder; + + protected JsonLocation _location = null; + + /* + /********************************************************** + /* Construction, init + /********************************************************** + */ + + public Parser(Segment firstSeg, ObjectCodec codec) + { + super(0); + _segment = firstSeg; + _segmentPtr = -1; // not yet read + _codec = codec; + _parsingContext = JsonReadContext.createRootContext(-1, -1); + } + + public void setLocation(JsonLocation l) { + _location = l; + } + + @Override + public ObjectCodec getCodec() { return _codec; } + + @Override + public void setCodec(ObjectCodec c) { _codec = c; } + + /* + /********************************************************** + /* Extended API beyond JsonParser + /********************************************************** + */ + + public JsonToken peekNextToken() + throws IOException, JsonParseException + { + // closed? nothing more to peek, either + if (_closed) return null; + Segment seg = _segment; + int ptr = _segmentPtr+1; + if (ptr >= Segment.TOKENS_PER_SEGMENT) { + ptr = 0; + seg = (seg == null) ? null : seg.next(); + } + return (seg == null) ? null : seg.type(ptr); + } + + /* + /********************************************************** + /* Closeable implementation + /********************************************************** + */ + + @Override + public void close() throws IOException { + if (!_closed) { + _closed = true; + } + } + + /* + /********************************************************** + /* Public API, traversal + /********************************************************** + */ + + @Override + public JsonToken nextToken() throws IOException, JsonParseException + { + // If we are closed, nothing more to do + if (_closed || (_segment == null)) return null; + + // Ok, then: any more tokens? + if (++_segmentPtr >= Segment.TOKENS_PER_SEGMENT) { + _segmentPtr = 0; + _segment = _segment.next(); + if (_segment == null) { + return null; + } + } + _currToken = _segment.type(_segmentPtr); + // Field name? Need to update context + if (_currToken == JsonToken.FIELD_NAME) { + Object ob = _currentObject(); + String name = (ob instanceof String) ? ((String) ob) : ob.toString(); + _parsingContext.setCurrentName(name); + } else if (_currToken == JsonToken.START_OBJECT) { + _parsingContext = _parsingContext.createChildObjectContext(-1, -1); + } else if (_currToken == JsonToken.START_ARRAY) { + _parsingContext = _parsingContext.createChildArrayContext(-1, -1); + } else if (_currToken == JsonToken.END_OBJECT + || _currToken == JsonToken.END_ARRAY) { + // Closing JSON Object/Array? Close matching context + _parsingContext = _parsingContext.getParent(); + // but allow unbalanced cases too (more close markers) + if (_parsingContext == null) { + _parsingContext = JsonReadContext.createRootContext(-1, -1); + } + } + return _currToken; + } + + @Override + public boolean isClosed() { return _closed; } + + /* + /********************************************************** + /* Public API, token accessors + /********************************************************** + */ + + @Override + public JsonStreamContext getParsingContext() { return _parsingContext; } + + @Override + public JsonLocation getTokenLocation() { return getCurrentLocation(); } + + @Override + public JsonLocation getCurrentLocation() { + return (_location == null) ? JsonLocation.NA : _location; + } + + @Override + public String getCurrentName() { return _parsingContext.getCurrentName(); } + + /* + /********************************************************** + /* Public API, access to token information, text + /********************************************************** + */ + + @Override + public String getText() + { + // common cases first: + if (_currToken == JsonToken.VALUE_STRING + || _currToken == JsonToken.FIELD_NAME) { + Object ob = _currentObject(); + if (ob instanceof String) { + return (String) ob; + } + return (ob == null) ? null : ob.toString(); + } + if (_currToken == null) { + return null; + } + switch (_currToken) { + case VALUE_NUMBER_INT: + case VALUE_NUMBER_FLOAT: + Object ob = _currentObject(); + return (ob == null) ? null : ob.toString(); + } + return _currToken.asString(); + } + + @Override + public char[] getTextCharacters() { + String str = getText(); + return (str == null) ? null : str.toCharArray(); + } + + @Override + public int getTextLength() { + String str = getText(); + return (str == null) ? 0 : str.length(); + } + + @Override + public int getTextOffset() { return 0; } + + @Override + public boolean hasTextCharacters() { + // We never have raw buffer available, so: + return false; + } + + /* + /********************************************************** + /* Public API, access to token information, numeric + /********************************************************** + */ + + @Override + public BigInteger getBigIntegerValue() throws IOException, JsonParseException + { + Number n = getNumberValue(); + if (n instanceof BigInteger) { + return (BigInteger) n; + } + switch (getNumberType()) { + case BIG_DECIMAL: + return ((BigDecimal) n).toBigInteger(); + } + // int/long is simple, but let's also just truncate float/double: + return BigInteger.valueOf(n.longValue()); + } + + @Override + public BigDecimal getDecimalValue() throws IOException, JsonParseException + { + Number n = getNumberValue(); + if (n instanceof BigDecimal) { + return (BigDecimal) n; + } + switch (getNumberType()) { + case INT: + case LONG: + return BigDecimal.valueOf(n.longValue()); + case BIG_INTEGER: + return new BigDecimal((BigInteger) n); + } + // float or double + return BigDecimal.valueOf(n.doubleValue()); + } + + @Override + public double getDoubleValue() throws IOException, JsonParseException { + return getNumberValue().doubleValue(); + } + + @Override + public float getFloatValue() throws IOException, JsonParseException { + return getNumberValue().floatValue(); + } + + @Override + public int getIntValue() throws IOException, JsonParseException + { + // optimize common case: + if (_currToken == JsonToken.VALUE_NUMBER_INT) { + return ((Number) _currentObject()).intValue(); + } + return getNumberValue().intValue(); + } + + @Override + public long getLongValue() throws IOException, JsonParseException { + return getNumberValue().longValue(); + } + + @Override + public NumberType getNumberType() throws IOException, JsonParseException + { + Number n = getNumberValue(); + if (n instanceof Integer) return NumberType.INT; + if (n instanceof Long) return NumberType.LONG; + if (n instanceof Double) return NumberType.DOUBLE; + if (n instanceof BigDecimal) return NumberType.BIG_DECIMAL; + if (n instanceof Float) return NumberType.FLOAT; + if (n instanceof BigInteger) return NumberType.BIG_INTEGER; + return null; + } + + @Override + public final Number getNumberValue() throws IOException, JsonParseException { + _checkIsNumber(); + return (Number) _currentObject(); + } + + /* + /********************************************************** + /* Public API, access to token information, other + /********************************************************** + */ + + @Override + public Object getEmbeddedObject() + { + if (_currToken == JsonToken.VALUE_EMBEDDED_OBJECT) { + return _currentObject(); + } + return null; + } + + @Override + public byte[] getBinaryValue(Base64Variant b64variant) throws IOException, JsonParseException + { + // First: maybe we some special types? + if (_currToken == JsonToken.VALUE_EMBEDDED_OBJECT) { + // Embedded byte array would work nicely... + Object ob = _currentObject(); + if (ob instanceof byte[]) { + return (byte[]) ob; + } + // fall through to error case + } + if (_currToken != JsonToken.VALUE_STRING) { + throw _constructError("Current token ("+_currToken+") not VALUE_STRING (or VALUE_EMBEDDED_OBJECT with byte[]), can not access as binary"); + } + final String str = getText(); + if (str == null) { + return null; + } + ByteArrayBuilder builder = _byteBuilder; + if (builder == null) { + _byteBuilder = builder = new ByteArrayBuilder(100); + } else { + _byteBuilder.reset(); + } + _decodeBase64(str, builder, b64variant); + return builder.toByteArray(); + } + + /* + /********************************************************** + /* Internal methods + /********************************************************** + */ + + protected final Object _currentObject() { + return _segment.get(_segmentPtr); + } + + protected final void _checkIsNumber() throws JsonParseException + { + if (_currToken == null || !_currToken.isNumeric()) { + throw _constructError("Current token ("+_currToken+") not numeric, can not use numeric value accessors"); + } + } + + @Override + protected void _handleEOF() throws JsonParseException { + _throwInternal(); + } + } + + /** + * Individual segment of TokenBuffer that can store up to 16 tokens + * (limited by 4 bits per token type marker requirement). + * Current implementation uses fixed length array; could alternatively + * use 16 distinct fields and switch statement (slightly more efficient + * storage, slightly slower access) + */ + protected final static class Segment + { + public final static int TOKENS_PER_SEGMENT = 16; + + /** + * Static array used for fast conversion between token markers and + * matching {@link JsonToken} instances + */ + private final static JsonToken[] TOKEN_TYPES_BY_INDEX; + static { + // ... here we know that there are <= 16 values in JsonToken enum + TOKEN_TYPES_BY_INDEX = new JsonToken[16]; + JsonToken[] t = JsonToken.values(); + System.arraycopy(t, 1, TOKEN_TYPES_BY_INDEX, 1, Math.min(15, t.length - 1)); + } + + // // // Linking + + protected Segment _next; + + // // // State + + /** + * Bit field used to store types of buffered tokens; 4 bits per token. + * Value 0 is reserved for "not in use" + */ + protected long _tokenTypes; + + + // Actual tokens + + protected final Object[] _tokens = new Object[TOKENS_PER_SEGMENT]; + + public Segment() { } + + // // // Accessors + + public JsonToken type(int index) + { + long l = _tokenTypes; + if (index > 0) { + l >>= (index << 2); + } + int ix = ((int) l) & 0xF; + return TOKEN_TYPES_BY_INDEX[ix]; + } + + public Object get(int index) { + return _tokens[index]; + } + + public Segment next() { return _next; } + + // // // Mutators + + public Segment append(int index, JsonToken tokenType) + { + if (index < TOKENS_PER_SEGMENT) { + set(index, tokenType); + return null; + } + _next = new Segment(); + _next.set(0, tokenType); + return _next; + } + + public Segment append(int index, JsonToken tokenType, Object value) + { + if (index < TOKENS_PER_SEGMENT) { + set(index, tokenType, value); + return null; + } + _next = new Segment(); + _next.set(0, tokenType, value); + return _next; + } + + public void set(int index, JsonToken tokenType) + { + long typeCode = tokenType.ordinal(); + /* Assumption here is that there are no overwrites, just appends; + * and so no masking is needed + */ + if (index > 0) { + typeCode <<= (index << 2); + } + _tokenTypes |= typeCode; + } + + public void set(int index, JsonToken tokenType, Object value) + { + _tokens[index] = value; + long typeCode = tokenType.ordinal(); + /* Assumption here is that there are no overwrites, just appends; + * and so no masking is needed + */ + if (index > 0) { + typeCode <<= (index << 2); + } + _tokenTypes |= typeCode; + } + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/util/VersionUtil.java b/1.9.10/src/java/org/codehaus/jackson/util/VersionUtil.java new file mode 100644 index 0000000..ec663eb --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/util/VersionUtil.java
@@ -0,0 +1,79 @@ +package org.codehaus.jackson.util; + +import java.io.*; +import java.util.regex.Pattern; + +import org.codehaus.jackson.Version; + +/** + * Functionality for supporting exposing of component {@link Version}s. + * + * @since 1.6 + */ +public class VersionUtil +{ + public final static String VERSION_FILE = "VERSION.txt"; + + private final static Pattern VERSION_SEPARATOR = Pattern.compile("[-_./;:]"); + + /** + * Helper method that will try to load version information for specified + * class. Implementation is simple: class loader that loaded specified + * class is asked to load resource with name "VERSION" from same + * location (package) as class itself had. + * If no version information is found, {@link Version#unknownVersion()} is + * returned. + */ + public static Version versionFor(Class<?> cls) + { + InputStream in; + Version version = null; + + try { + in = cls.getResourceAsStream(VERSION_FILE); + if (in != null) { + try { + BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8")); + version = parseVersion(br.readLine()); + } finally { + try { + in.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + } catch (IOException e) { } + return (version == null) ? Version.unknownVersion() : version; + } + + public static Version parseVersion(String versionStr) + { + if (versionStr == null) return null; + versionStr = versionStr.trim(); + if (versionStr.length() == 0) return null; + String[] parts = VERSION_SEPARATOR.split(versionStr); + // Let's not bother if there's no separate parts; otherwise use whatever we got + if (parts.length < 2) { + return null; + } + int major = parseVersionPart(parts[0]); + int minor = parseVersionPart(parts[1]); + int patch = (parts.length > 2) ? parseVersionPart(parts[2]) : 0; + String snapshot = (parts.length > 3) ? parts[3] : null; + return new Version(major, minor, patch, snapshot); + } + + protected static int parseVersionPart(String partStr) + { + partStr = partStr.toString(); + int len = partStr.length(); + int number = 0; + for (int i = 0; i < len; ++i) { + char c = partStr.charAt(i); + if (c > '9' || c < '0') break; + number = (number * 10) + (c - '0'); + } + return number; + } +}
diff --git a/1.9.10/src/java/org/codehaus/jackson/util/package-info.java b/1.9.10/src/java/org/codehaus/jackson/util/package-info.java new file mode 100644 index 0000000..d45d988 --- /dev/null +++ b/1.9.10/src/java/org/codehaus/jackson/util/package-info.java
@@ -0,0 +1,4 @@ +/** + * Utility classes used by Jackson Core functionality. + */ +package org.codehaus.jackson.util;
diff --git a/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/Annotations.java b/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/Annotations.java new file mode 100644 index 0000000..79b2517 --- /dev/null +++ b/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/Annotations.java
@@ -0,0 +1,21 @@ +package org.codehaus.jackson.jaxrs; + +/** + * Enumeration that defines standard annotation sets available for configuring + * data binding aspects. + */ +public enum Annotations { + /** + * Standard Jackson annotations, defined in Jackson core and mapper + * packages + */ + JACKSON, + + /** + * Standard JAXB annotations, used in a way that approximates expected + * definitions (since JAXB defines XML aspects, not all features map + * well to JSON handling) + */ + JAXB + ; +}
diff --git a/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/JacksonJaxbJsonProvider.java b/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/JacksonJaxbJsonProvider.java new file mode 100644 index 0000000..d6c1258 --- /dev/null +++ b/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/JacksonJaxbJsonProvider.java
@@ -0,0 +1,66 @@ +package org.codehaus.jackson.jaxrs; + +import javax.ws.rs.Consumes; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.ext.Provider; + +import org.codehaus.jackson.map.ObjectMapper; + +/** + * JSON content type provider automatically configured to use both Jackson + * and JAXB annotations (in that order of priority). Otherwise functionally + * same as {@link JacksonJsonProvider}. + *<p> + * Typical usage pattern is to just instantiate instance of this + * provider for JAX-RS and use as is: this will use both Jackson and + * JAXB annotations (with Jackson annotations having priority). + *<p> + * Note: class annotations are duplicated from super class, since it + * is not clear whether JAX-RS implementations are required to + * check settings of super-classes. It is important to keep annotations + * in sync if changed. + * + * @since 1.3 + */ +@Provider +@Consumes({MediaType.APPLICATION_JSON, "text/json"}) +@Produces({MediaType.APPLICATION_JSON, "text/json"}) +public class JacksonJaxbJsonProvider extends JacksonJsonProvider { + /** + * Default annotation sets to use, if not explicitly defined during + * construction: use Jackson annotations if found; if not, use + * JAXB annotations as fallback. + */ + public final static Annotations[] DEFAULT_ANNOTATIONS = { + Annotations.JACKSON, Annotations.JAXB + }; + + /** + * Default constructor, usually used when provider is automatically + * configured to be used with JAX-RS implementation. + */ + public JacksonJaxbJsonProvider() + { + this(null, DEFAULT_ANNOTATIONS); + } + + /** + * @param annotationsToUse Annotation set(s) to use for configuring + * data binding + */ + public JacksonJaxbJsonProvider(Annotations... annotationsToUse) + { + this(null, annotationsToUse); + } + + /** + * Constructor to use when a custom mapper (usually components + * like serializer/deserializer factories that have been configured) + * is to be used. + */ + public JacksonJaxbJsonProvider(ObjectMapper mapper, Annotations[] annotationsToUse) + { + super(mapper, annotationsToUse); + } +}
diff --git a/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/JacksonJsonProvider.java b/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/JacksonJsonProvider.java new file mode 100644 index 0000000..2393838 --- /dev/null +++ b/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/JacksonJsonProvider.java
@@ -0,0 +1,703 @@ +package org.codehaus.jackson.jaxrs; + +import java.io.*; +import java.lang.annotation.Annotation; +import java.lang.reflect.Type; +import java.util.*; + +import javax.ws.rs.*; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.StreamingOutput; +import javax.ws.rs.ext.*; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.map.DeserializationConfig; +import org.codehaus.jackson.map.JsonMappingException; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.map.ObjectWriter; +import org.codehaus.jackson.map.SerializationConfig; +import org.codehaus.jackson.map.annotate.JsonView; +import org.codehaus.jackson.map.type.ClassKey; +import org.codehaus.jackson.map.util.ClassUtil; +import org.codehaus.jackson.map.util.JSONPObject; +import org.codehaus.jackson.type.JavaType; +import org.codehaus.jackson.util.VersionUtil; + +/** + * Basic implementation of JAX-RS abstractions ({@link MessageBodyReader}, + * {@link MessageBodyWriter}) needed for binding + * JSON ("application/json") content to and from Java Objects ("POJO"s). + *<p> + * Actual data binding functionality is implemented by {@link ObjectMapper}: + * mapper to use can be configured in multiple ways: + * <ul> + * <li>By explicitly passing mapper to use in constructor + * <li>By explictly setting mapper to use by {@link #setMapper} + * <li>By defining JAX-RS <code>Provider</code> that returns {@link ObjectMapper}s. + * <li>By doing none of above, in which case a default mapper instance is + * constructed (and configured if configuration methods are called) + * </ul> + * The last method ("do nothing specific") is often good enough; explicit passing + * of Mapper is simple and explicit; and Provider-based method may make sense + * with Depedency Injection frameworks, or if Mapper has to be configured differently + * for different media types. + *<p> + * Note that the default mapper instance will be automatically created if + * one of explicit configuration methods (like {@link #configure}) + * is called: if so, Provider-based introspection is <b>NOT</b> used, but the + * resulting Mapper is used as configured. + *<p> + * Note: version 1.3 added a sub-class ({@link JacksonJaxbJsonProvider}) which + * is configured by default to use both Jackson and JAXB annotations for configuration + * (base class when used as-is defaults to using just Jackson annotations) + * + * @author Tatu Saloranta + */ +@Provider +@Consumes({MediaType.APPLICATION_JSON, "text/json"}) +@Produces({MediaType.APPLICATION_JSON, "text/json"}) +public class JacksonJsonProvider + implements + MessageBodyReader<Object>, + MessageBodyWriter<Object>, + Versioned // since 1.6 +{ + /** + * Default annotation sets to use, if not explicitly defined during + * construction: only Jackson annotations are used for the base + * class. Sub-classes can use other settings. + */ + public final static Annotations[] BASIC_ANNOTATIONS = { + Annotations.JACKSON + }; + + /** + * Looks like we need to worry about accidental + * data binding for types we shouldn't be handling. This is + * probably not a very good way to do it, but let's start by + * blacklisting things we are not to handle. + *<p> + * (why ClassKey? since plain old Class has no hashCode() defined, + * lookups are painfully slow) + */ + public final static HashSet<ClassKey> _untouchables = new HashSet<ClassKey>(); + static { + // First, I/O things (direct matches) + _untouchables.add(new ClassKey(java.io.InputStream.class)); + _untouchables.add(new ClassKey(java.io.Reader.class)); + _untouchables.add(new ClassKey(java.io.OutputStream.class)); + _untouchables.add(new ClassKey(java.io.Writer.class)); + + // then some primitive types + _untouchables.add(new ClassKey(byte[].class)); + _untouchables.add(new ClassKey(char[].class)); + // 24-Apr-2009, tatu: String is an edge case... let's leave it out + _untouchables.add(new ClassKey(String.class)); + + // Then core JAX-RS things + _untouchables.add(new ClassKey(StreamingOutput.class)); + _untouchables.add(new ClassKey(Response.class)); + } + + /** + * These are classes that we never use for reading + * (never try to deserialize instances of these types). + */ + public final static Class<?>[] _unreadableClasses = new Class<?>[] { + InputStream.class, Reader.class + }; + + /** + * These are classes that we never use for writing + * (never try to serialize instances of these types). + */ + public final static Class<?>[] _unwritableClasses = new Class<?>[] { + OutputStream.class, Writer.class, + StreamingOutput.class, Response.class + }; + + /** + * Helper object used for encapsulating configuration aspects + * of {@link ObjectMapper} + */ + protected final MapperConfigurator _mapperConfig; + + /** + * Set of types (classes) that provider should ignore for data binding + * + * @since 1.5 + */ + protected HashSet<ClassKey> _cfgCustomUntouchables; + + /** + * JSONP function name to use for automatic JSONP wrapping, if any; + * if null, no JSONP wrapping is done. + */ + protected String _jsonpFunctionName; + + /* + /********************************************************** + /* Context configuration + /********************************************************** + */ + + /** + * Injectable context object used to locate configured + * instance of {@link ObjectMapper} to use for actual + * serialization. + */ + @Context + protected Providers _providers; + + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + /** + * Whether we want to actually check that Jackson has + * a serializer for given type. Since this should generally + * be the case (due to auto-discovery) and since the call + * to check availability can be bit expensive, defaults to false. + */ + protected boolean _cfgCheckCanSerialize = false; + + /** + * Whether we want to actually check that Jackson has + * a deserializer for given type. Since this should generally + * be the case (due to auto-discovery) and since the call + * to check availability can be bit expensive, defaults to false. + */ + protected boolean _cfgCheckCanDeserialize = false; + + /* + /********************************************************** + /* Construction + /********************************************************** + */ + + /** + * Default constructor, usually used when provider is automatically + * configured to be used with JAX-RS implementation. + */ + public JacksonJsonProvider() + { + this(null, BASIC_ANNOTATIONS); + } + + /** + * @param annotationsToUse Annotation set(s) to use for configuring + * data binding + */ + public JacksonJsonProvider(Annotations... annotationsToUse) + { + this(null, annotationsToUse); + } + + public JacksonJsonProvider(ObjectMapper mapper) + { + this(mapper, BASIC_ANNOTATIONS); + } + + /** + * Constructor to use when a custom mapper (usually components + * like serializer/deserializer factories that have been configured) + * is to be used. + * + * @annotationsToUse Sets of annotations (Jackson, JAXB) that provider should + * support + */ + public JacksonJsonProvider(ObjectMapper mapper, Annotations[] annotationsToUse) + { + _mapperConfig = new MapperConfigurator(mapper, annotationsToUse); + } + + /** + * Method that will return version information stored in and read from jar + * that contains this class. + * + * @since 1.6 + */ + @Override + public Version version() { + return VersionUtil.versionFor(getClass()); + } + + /* + /********************************************************** + /* Configuring + /********************************************************** + */ + + /** + * Method for defining whether actual detection for existence of + * a deserializer for type should be done when {@link #isReadable} + * is called. + */ + public void checkCanDeserialize(boolean state) { _cfgCheckCanDeserialize = state; } + + /** + * Method for defining whether actual detection for existence of + * a serializer for type should be done when {@link #isWriteable} + * is called. + */ + public void checkCanSerialize(boolean state) { _cfgCheckCanSerialize = state; } + + /** + * Method for configuring which annotation sets to use (including none). + * Annotation sets are defined in order decreasing precedence; that is, + * first one has the priority over following ones. + * + * @param annotationsToUse Ordered list of annotation sets to use; if null, + * default + */ + public void setAnnotationsToUse(Annotations[] annotationsToUse) { + _mapperConfig.setAnnotationsToUse(annotationsToUse); + } + + /** + * Method that can be used to directly define {@link ObjectMapper} to use + * for serialization and deserialization; if null, will use the standard + * provider discovery from context instead. Default setting is null. + */ + public void setMapper(ObjectMapper m) { + _mapperConfig.setMapper(m); + } + + public JacksonJsonProvider configure(DeserializationConfig.Feature f, boolean state) { + _mapperConfig.configure(f, state); + return this; + } + + public JacksonJsonProvider configure(SerializationConfig.Feature f, boolean state) { + _mapperConfig.configure(f, state); + return this; + } + + public JacksonJsonProvider configure(JsonParser.Feature f, boolean state) { + _mapperConfig.configure(f, state); + return this; + } + + public JacksonJsonProvider configure(JsonGenerator.Feature f, boolean state) { + _mapperConfig.configure(f, state); + return this; + } + + public JacksonJsonProvider enable(DeserializationConfig.Feature f, boolean state) { + _mapperConfig.configure(f, true); + return this; + } + + public JacksonJsonProvider enable(SerializationConfig.Feature f, boolean state) { + _mapperConfig.configure(f, true); + return this; + } + + public JacksonJsonProvider enable(JsonParser.Feature f, boolean state) { + _mapperConfig.configure(f, true); + return this; + } + + public JacksonJsonProvider enable(JsonGenerator.Feature f, boolean state) { + _mapperConfig.configure(f, true); + return this; + } + + public JacksonJsonProvider disable(DeserializationConfig.Feature f, boolean state) { + _mapperConfig.configure(f, false); + return this; + } + + public JacksonJsonProvider disable(SerializationConfig.Feature f, boolean state) { + _mapperConfig.configure(f, false); + return this; + } + + public JacksonJsonProvider disable(JsonParser.Feature f, boolean state) { + _mapperConfig.configure(f, false); + return this; + } + + public JacksonJsonProvider disable(JsonGenerator.Feature f, boolean state) { + _mapperConfig.configure(f, false); + return this; + } + + /** + * Method for marking specified type as "untouchable", meaning that provider + * will not try to read or write values of this type (or its subtypes). + * + * @param type Type to consider untouchable; can be any kind of class, + * including abstract class or interface. No instance of this type + * (including subtypes, i.e. types assignable to this type) will + * be read or written by provider + * + * @since 1.5 + */ + public void addUntouchable(Class<?> type) + { + if (_cfgCustomUntouchables == null) { + _cfgCustomUntouchables = new HashSet<ClassKey>(); + } + _cfgCustomUntouchables.add(new ClassKey(type)); + } + + public void setJSONPFunctionName(String fname) { + this._jsonpFunctionName = fname; + } + + /* + /********************************************************** + /* MessageBodyReader impl + /********************************************************** + */ + + /** + * Method that JAX-RS container calls to try to check whether + * values of given type (and media type) can be deserialized by + * this provider. + * Implementation will first check that expected media type is + * a JSON type (via call to {@link #isJsonType}; then verify + * that type is not one of "untouchable" types (types we will never + * automatically handle), and finally that there is a deserializer + * for type (iff {@link #checkCanDeserialize} has been called with + * true argument -- otherwise assumption is there will be a handler) + */ + @Override + public boolean isReadable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) + { + if (!isJsonType(mediaType)) { + return false; + } + + /* Ok: looks like we must weed out some core types here; ones that + * make no sense to try to bind from JSON: + */ + if (_untouchables.contains(new ClassKey(type))) { + return false; + } + // and there are some other abstract/interface types to exclude too: + for (Class<?> cls : _unreadableClasses) { + if (cls.isAssignableFrom(type)) { + return false; + } + } + // as well as possible custom exclusions + if (_containedIn(type, _cfgCustomUntouchables)) { + return false; + } + + // Finally: if we really want to verify that we can serialize, we'll check: + if (_cfgCheckCanSerialize) { + ObjectMapper mapper = locateMapper(type, mediaType); + if (!mapper.canDeserialize(mapper.constructType(type))) { + return false; + } + } + return true; + } + + /** + * Method that JAX-RS container calls to deserialize given + * value. + */ + @Override + public Object readFrom(Class<Object> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String,String> httpHeaders, InputStream entityStream) + throws IOException + { + ObjectMapper mapper = locateMapper(type, mediaType); + JsonParser jp = mapper.getJsonFactory().createJsonParser(entityStream); + /* Important: we are NOT to close the underlying stream after + * mapping, so we need to instruct parser: + */ + jp.disable(JsonParser.Feature.AUTO_CLOSE_SOURCE); + return mapper.readValue(jp, mapper.constructType(genericType)); + } + + /* + /********************************************************** + /* MessageBodyWriter impl + /********************************************************** + */ + + /** + * Method that JAX-RS container calls to try to figure out + * serialized length of given value. Since computation of + * this length is about as expensive as serialization itself, + * implementation will return -1 to denote "not known", so + * that container will determine length from actual serialized + * output (if needed). + */ + @Override + public long getSize(Object value, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) + { + /* In general figuring output size requires actual writing; usually not + * worth it to write everything twice. + */ + return -1; + } + + /** + * Method that JAX-RS container calls to try to check whether + * given value (of specified type) can be serialized by + * this provider. + * Implementation will first check that expected media type is + * a JSON type (via call to {@link #isJsonType}; then verify + * that type is not one of "untouchable" types (types we will never + * automatically handle), and finally that there is a serializer + * for type (iff {@link #checkCanSerialize} has been called with + * true argument -- otherwise assumption is there will be a handler) + */ + @Override + public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) + { + if (!isJsonType(mediaType)) { + return false; + } + + /* Ok: looks like we must weed out some core types here; ones that + * make no sense to try to bind from JSON: + */ + if (_untouchables.contains(new ClassKey(type))) { + return false; + } + // but some are interface/abstract classes, so + for (Class<?> cls : _unwritableClasses) { + if (cls.isAssignableFrom(type)) { + return false; + } + } + // and finally, may have additional custom types to exclude + if (_containedIn(type, _cfgCustomUntouchables)) { + return false; + } + + // Also: if we really want to verify that we can deserialize, we'll check: + if (_cfgCheckCanSerialize) { + if (!locateMapper(type, mediaType).canSerialize(type)) { + return false; + } + } + return true; + } + + /** + * Method that JAX-RS container calls to serialize given value. + */ + @Override + public void writeTo(Object value, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, + MultivaluedMap<String,Object> httpHeaders, OutputStream entityStream) + throws IOException + { + /* 27-Feb-2009, tatu: Where can we find desired encoding? Within + * HTTP headers? + */ + ObjectMapper mapper = locateMapper(type, mediaType); + JsonEncoding enc = findEncoding(mediaType, httpHeaders); + JsonGenerator jg = mapper.getJsonFactory().createJsonGenerator(entityStream, enc); + jg.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET); + + // Want indentation? + if (mapper.getSerializationConfig().isEnabled(SerializationConfig.Feature.INDENT_OUTPUT)) { + jg.useDefaultPrettyPrinter(); + } + // 04-Mar-2010, tatu: How about type we were given? (if any) + JavaType rootType = null; + + if (genericType != null && value != null) { + /* 10-Jan-2011, tatu: as per [JACKSON-456], it's not safe to just force root + * type since it prevents polymorphic type serialization. Since we really + * just need this for generics, let's only use generic type if it's truly + * generic. + */ + if (genericType.getClass() != Class.class) { // generic types are other impls of 'java.lang.reflect.Type' + /* This is still not exactly right; should root type be further + * specialized with 'value.getClass()'? Let's see how well this works before + * trying to come up with more complete solution. + */ + rootType = mapper.getTypeFactory().constructType(genericType); + /* 26-Feb-2011, tatu: To help with [JACKSON-518], we better recognize cases where + * type degenerates back into "Object.class" (as is the case with plain TypeVariable, + * for example), and not use that. + */ + if (rootType.getRawClass() == Object.class) { + rootType = null; + } + } + } + // [JACKSON-578]: Allow use of @JsonView in resource methods. + Class<?> viewToUse = null; + if (annotations != null && annotations.length > 0) { + viewToUse = _findView(mapper, annotations); + } + if (viewToUse != null) { + // TODO: change to use 'writerWithType' for 2.0 (1.9 could use, but let's defer) + ObjectWriter viewWriter = mapper.viewWriter(viewToUse); + // [JACKSON-245] Allow automatic JSONP wrapping + if (_jsonpFunctionName != null) { + viewWriter.writeValue(jg, new JSONPObject(this._jsonpFunctionName, value, rootType)); + } else if (rootType != null) { + // TODO: change to use 'writerWithType' for 2.0 (1.9 could use, but let's defer) + mapper.typedWriter(rootType).withView(viewToUse).writeValue(jg, value); + } else { + viewWriter.writeValue(jg, value); + } + } else { + // [JACKSON-245] Allow automatic JSONP wrapping + if (_jsonpFunctionName != null) { + mapper.writeValue(jg, new JSONPObject(this._jsonpFunctionName, value, rootType)); + } else if (rootType != null) { + // TODO: change to use 'writerWithType' for 2.0 (1.9 could use, but let's defer) + mapper.typedWriter(rootType).writeValue(jg, value); + } else { + mapper.writeValue(jg, value); + } + } + } + + /** + * Helper method to use for determining desired output encoding. + * For now, will always just use UTF-8... + * + * @since 1.7.0 + */ + protected JsonEncoding findEncoding(MediaType mediaType, MultivaluedMap<String,Object> httpHeaders) + { + return JsonEncoding.UTF8; + } + + /* + /********************************************************** + /* Public helper methods + /********************************************************** + */ + + /** + * Helper method used to check whether given media type + * is JSON type or sub type. + * Current implementation essentially checks to see whether + * {@link MediaType#getSubtype} returns "json" or something + * ending with "+json". + */ + protected boolean isJsonType(MediaType mediaType) + { + /* As suggested by Stephen D, there are 2 ways to check: either + * being as inclusive as possible (if subtype is "json"), or + * exclusive (major type "application", minor type "json"). + * Let's start with inclusive one, hard to know which major + * types we should cover aside from "application". + */ + if (mediaType != null) { + // Ok: there are also "xxx+json" subtypes, which count as well + String subtype = mediaType.getSubtype(); + return "json".equalsIgnoreCase(subtype) || subtype.endsWith("+json"); + } + /* Not sure if this can happen; but it seems reasonable + * that we can at least produce json without media type? + */ + return true; + } + + /** + * Method called to locate {@link ObjectMapper} to use for serialization + * and deserialization. If an instance has been explicitly defined by + * {@link #setMapper} (or non-null instance passed in constructor), that + * will be used. + * If not, will try to locate it using standard JAX-RS + * {@link ContextResolver} mechanism, if it has been properly configured + * to access it (by JAX-RS runtime). + * Finally, if no mapper is found, will return a default unconfigured + * {@link ObjectMapper} instance (one constructed with default constructor + * and not modified in any way) + * + * @param type Class of object being serialized or deserialized; + * not checked at this point, since it is assumed that unprocessable + * classes have been already weeded out, + * but will be passed to {@link ContextResolver} as is. + * @param mediaType Declared media type for the instance to process: + * not used by this method, + * but will be passed to {@link ContextResolver} as is. + */ + public ObjectMapper locateMapper(Class<?> type, MediaType mediaType) + { + // First: were we configured with a specific instance? + ObjectMapper m = _mapperConfig.getConfiguredMapper(); + if (m == null) { + // If not, maybe we can get one configured via context? + if (_providers != null) { + ContextResolver<ObjectMapper> resolver = _providers.getContextResolver(ObjectMapper.class, mediaType); + /* Above should work as is, but due to this bug + * [https://jersey.dev.java.net/issues/show_bug.cgi?id=288] + * in Jersey, it doesn't. But this works until resolution of + * the issue: + */ + if (resolver == null) { + resolver = _providers.getContextResolver(ObjectMapper.class, null); + } + if (resolver != null) { + m = resolver.getContext(type); + } + } + if (m == null) { + // If not, let's get the fallback default instance + m = _mapperConfig.getDefaultMapper(); + } + } + return m; + } + + /* + /********************************************************** + /* Private/sub-class helper methods + /********************************************************** + */ + + protected static boolean _containedIn(Class<?> mainType, HashSet<ClassKey> set) + { + if (set != null) { + ClassKey key = new ClassKey(mainType); + // First: type itself? + if (set.contains(key)) return true; + // Then supertypes (note: will not contain Object.class) + for (Class<?> cls : ClassUtil.findSuperTypes(mainType, null)) { + key.reset(cls); + if (set.contains(key)) return true; + } + } + return false; + } + + protected Class<?> _findView(ObjectMapper mapper, Annotation[] annotations) + throws JsonMappingException + { + /* Ideally we would try to use AnnotationIntrospector here, but current + * API expects to get a method/field, not bunch of annotations, + * so we would need to change it a bit. + * Let's not bother, then, since this works well for now. + */ + for (Annotation annotation : annotations) { + if (annotation.annotationType().isAssignableFrom(JsonView.class)) { + JsonView jsonView = (JsonView) annotation; + Class<?>[] views = jsonView.value(); + if (views.length > 1) { + StringBuilder s = new StringBuilder("Multiple @JsonView's can not be used on a JAX-RS method. Got "); + s.append(views.length).append(" views: "); + for (int i = 0; i < views.length; i++) { + if (i > 0) { + s.append(", "); + } + s.append(views[i].getName()); + } + throw new JsonMappingException(s.toString()); + } + return views[0]; + } + } + return null; + } +}
diff --git a/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/JsonMappingExceptionMapper.java b/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/JsonMappingExceptionMapper.java new file mode 100644 index 0000000..e8015c1 --- /dev/null +++ b/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/JsonMappingExceptionMapper.java
@@ -0,0 +1,19 @@ +package org.codehaus.jackson.jaxrs; + +import org.codehaus.jackson.map.JsonMappingException; + +import javax.ws.rs.core.Response; +import javax.ws.rs.ext.ExceptionMapper; +import javax.ws.rs.ext.Provider; + +/** + * Implementation if {@link ExceptionMapper} to send down a "400 Bad Request" + * response in the event that unmappable JSON is received. + */ +@Provider +public class JsonMappingExceptionMapper implements ExceptionMapper<JsonMappingException> { + @Override + public Response toResponse(JsonMappingException exception) { + return Response.status(Response.Status.BAD_REQUEST).entity(exception.getMessage()).type("text/plain").build(); + } +}
diff --git a/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/JsonParseExceptionMapper.java b/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/JsonParseExceptionMapper.java new file mode 100644 index 0000000..2388bb0 --- /dev/null +++ b/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/JsonParseExceptionMapper.java
@@ -0,0 +1,19 @@ +package org.codehaus.jackson.jaxrs; + +import org.codehaus.jackson.JsonParseException; + +import javax.ws.rs.core.Response; +import javax.ws.rs.ext.ExceptionMapper; +import javax.ws.rs.ext.Provider; + +/** + * Implementation of {@link ExceptionMapper} to send down a "400 Bad Request" + * in the event unparsable JSON is received. + */ +@Provider +public class JsonParseExceptionMapper implements ExceptionMapper<JsonParseException> { + @Override + public Response toResponse(JsonParseException exception) { + return Response.status(Response.Status.BAD_REQUEST).entity(exception.getMessage()).type("text/plain").build(); + } +}
diff --git a/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/MapperConfigurator.java b/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/MapperConfigurator.java new file mode 100644 index 0000000..9606af7 --- /dev/null +++ b/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/MapperConfigurator.java
@@ -0,0 +1,181 @@ +package org.codehaus.jackson.jaxrs; + +import java.util.*; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.map.*; +import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector; +import org.codehaus.jackson.xc.JaxbAnnotationIntrospector; + +/** + * Helper class used to encapsulate details of configuring an + * {@link ObjectMapper} instance to be used for data binding, as + * well as accessing it. + */ +public class MapperConfigurator +{ + /** + * Mapper provider was constructed with if any, or that was constructed + * due to a call to explicitly configure mapper. + * If defined (explicitly or implicitly) it will be used, instead + * of using provider-based lookup. + */ + protected ObjectMapper _mapper; + + /** + * If no mapper was specified when constructed, and no configuration + * calls are made, a default mapper is constructed. The difference + * between default mapper and regular one is that default mapper + * is only used if no mapper is found via provider lookup. + */ + protected ObjectMapper _defaultMapper; + + /** + * Annotations set to use by default; overridden by explicit call + * to {@link #setAnnotationsToUse} + */ + protected Annotations[] _defaultAnnotationsToUse; + + /** + * To support optional dependency to Jackson-XC module (needed if and + * when JAXB annotations are used for configuration) + */ + protected Class<? extends AnnotationIntrospector> _jaxbIntrospectorClass; + + /* + *********************************************************** + * Construction + *********************************************************** + */ + + public MapperConfigurator(ObjectMapper mapper, Annotations[] defAnnotations) + { + _mapper = mapper; + _defaultAnnotationsToUse = defAnnotations; + } + + /** + * Method that locates, configures and returns {@link ObjectMapper} to use + */ + public synchronized ObjectMapper getConfiguredMapper() { + /* important: should NOT call mapper(); needs to return null + * if no instance has been passed or constructed + */ + return _mapper; + } + + public synchronized ObjectMapper getDefaultMapper() { + if (_defaultMapper == null) { + _defaultMapper = new ObjectMapper(); + _setAnnotations(_defaultMapper, _defaultAnnotationsToUse); + } + return _defaultMapper; + } + + /* + *********************************************************** + * Configuration methods + *********************************************************** + */ + + public synchronized void setMapper(ObjectMapper m) { + _mapper = m; + } + + public synchronized void setAnnotationsToUse(Annotations[] annotationsToUse) { + _setAnnotations(mapper(), annotationsToUse); + } + + public synchronized void configure(DeserializationConfig.Feature f, boolean state) { + mapper().configure(f, state); + } + + public synchronized void configure(SerializationConfig.Feature f, boolean state) { + mapper().configure(f, state); + } + + public synchronized void configure(JsonParser.Feature f, boolean state) { + mapper().configure(f, state); + } + + public synchronized void configure(JsonGenerator.Feature f, boolean state) { + mapper().configure(f, state); + } + + /* + *********************************************************** + * Internal methods + *********************************************************** + */ + + /** + * Helper method that will ensure that there is a configurable non-default + * mapper (constructing an instance if one didn't yet exit), and return + * that mapper. + */ + protected ObjectMapper mapper() + { + if (_mapper == null) { + _mapper = new ObjectMapper(); + _setAnnotations(_mapper, _defaultAnnotationsToUse); + } + return _mapper; + } + + // since replacement methods were added in 1.8, let's not yet switch over to use them: + @SuppressWarnings("deprecation") + protected void _setAnnotations(ObjectMapper mapper, Annotations[] annotationsToUse) + { + AnnotationIntrospector intr; + if (annotationsToUse == null || annotationsToUse.length == 0) { + intr = AnnotationIntrospector.nopInstance(); + } else { + intr = _resolveIntrospectors(annotationsToUse); + } + mapper.getDeserializationConfig().setAnnotationIntrospector(intr); + mapper.getSerializationConfig().setAnnotationIntrospector(intr); + } + + + protected AnnotationIntrospector _resolveIntrospectors(Annotations[] annotationsToUse) + { + // Let's ensure there are no dups there first, filter out nulls + ArrayList<AnnotationIntrospector> intr = new ArrayList<AnnotationIntrospector>(); + for (Annotations a : annotationsToUse) { + if (a != null) { + intr.add(_resolveIntrospector(a)); + } + } + int count = intr.size(); + if (count == 0) { + return AnnotationIntrospector.nopInstance(); + } + AnnotationIntrospector curr = intr.get(0); + for (int i = 1, len = intr.size(); i < len; ++i) { + curr = AnnotationIntrospector.pair(curr, intr.get(i)); + } + return curr; + } + + protected AnnotationIntrospector _resolveIntrospector(Annotations ann) + { + switch (ann) { + case JACKSON: + return new JacksonAnnotationIntrospector(); + case JAXB: + /* For this, need to use indirection just so that error occurs + * when we get here, and not when this class is being loaded + */ + try { + if (_jaxbIntrospectorClass == null) { + _jaxbIntrospectorClass = JaxbAnnotationIntrospector.class; + } + return _jaxbIntrospectorClass.newInstance(); + } catch (Exception e) { + throw new IllegalStateException("Failed to instantiate JaxbAnnotationIntrospector: "+e.getMessage(), e); + } + default: + throw new IllegalStateException(); + } + } +}
diff --git a/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/package-info.java b/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/package-info.java new file mode 100644 index 0000000..f5fb57e --- /dev/null +++ b/1.9.10/src/jaxrs/java/org/codehaus/jackson/jaxrs/package-info.java
@@ -0,0 +1,10 @@ +/** + * Jackson-based JAX-RS provider that can automatically + * serialize and deserialize resources for + * JSON content type (MediaType). + *<p> + * Also continues supporting functionality, such as + * exception mappers that can simplify handling of + * error conditions. + */ +package org.codehaus.jackson.jaxrs;
diff --git a/1.9.10/src/jaxrs/resources/javax.ws.rs.ext.MessageBodyReader b/1.9.10/src/jaxrs/resources/javax.ws.rs.ext.MessageBodyReader new file mode 100644 index 0000000..b5e634f --- /dev/null +++ b/1.9.10/src/jaxrs/resources/javax.ws.rs.ext.MessageBodyReader
@@ -0,0 +1 @@ +org.codehaus.jackson.jaxrs.JacksonJsonProvider
diff --git a/1.9.10/src/jaxrs/resources/javax.ws.rs.ext.MessageBodyWriter b/1.9.10/src/jaxrs/resources/javax.ws.rs.ext.MessageBodyWriter new file mode 100644 index 0000000..b5e634f --- /dev/null +++ b/1.9.10/src/jaxrs/resources/javax.ws.rs.ext.MessageBodyWriter
@@ -0,0 +1 @@ +org.codehaus.jackson.jaxrs.JacksonJsonProvider
diff --git a/1.9.10/src/mapper/java/org/codehaus/jackson/map/AbstractTypeResolver.java b/1.9.10/src/mapper/java/org/codehaus/jackson/map/AbstractTypeResolver.java new file mode 100644 index 0000000..08a5313 --- /dev/null +++ b/1.9.10/src/mapper/java/org/codehaus/jackson/map/AbstractTypeResolver.java
@@ -0,0 +1,63 @@ +package org.codehaus.jackson.map; + +import org.codehaus.jackson.type.JavaType; + +/** + * Defines interface for resolvers that can resolve abstract types into concrete + * ones; either by using static mappings, or possibly by materializing + * implementations dynamically. + *<p> + * Note that this class was changed in 1.8, to separate two parts of operation + * (defaulting, which has higher precedence, and fallback, which has lowest + * precedence). Existing m + * + * @since 1.6 + */ +public abstract class AbstractTypeResolver +{ + /** + * Try to locate a subtype for given abstract type, to either resolve + * to a concrete type, or at least to a more-specific (and hopefully supported) + * abstract type, one which may have registered deserializers. + * Method is called before trying to locate registered deserializers + * (as well as standard abstract type defaulting that core Jackson does), + * so it is typically implemented to add custom mappings of common abstract + * types (like specify which concrete implementation to use for binding + * {@link java.util.List}s). + *<p> + * Note that this method does not necessarily have to do full resolution + * of bindings; that is, it is legal to return type that could be further + * resolved: caller is expected to keep calling this method on registered + * resolvers, until a concrete type is located. + * + * @param config Configuration in use; should always be of type + * <code>DeserializationConfig</code> + * + * @since 1.8 + */ + public JavaType findTypeMapping(DeserializationConfig config, JavaType type) { + return null; + } + + /** + * Method called to try to resolve an abstract type into + * concrete type (usually for purposes of deserializing), + * when no concrete implementation was found. + * It will be called after checking all other possibilities, + * including defaulting. + * + * @param config Configuration in use; should always be of type + * <code>DeserializationConfig</code> + * @param type Type for which materialization maybe needed + * + * @return Resolved concrete type (which should retain generic + * type parameters of input type, if any), if resolution succeeds; + * null if resolver does not know how to resolve type + * + * @since 1.6 + */ + public JavaType resolveAbstractType(DeserializationConfig config, + JavaType type) { + return null; + } +}
diff --git a/1.9.10/src/mapper/java/org/codehaus/jackson/map/AnnotationIntrospector.java b/1.9.10/src/mapper/java/org/codehaus/jackson/map/AnnotationIntrospector.java new file mode 100644 index 0000000..9c146de --- /dev/null +++ b/1.9.10/src/mapper/java/org/codehaus/jackson/map/AnnotationIntrospector.java
@@ -0,0 +1,1476 @@ +package org.codehaus.jackson.map; + +import java.lang.annotation.Annotation; +import java.util.*; + +import org.codehaus.jackson.type.JavaType; +import org.codehaus.jackson.map.JsonDeserializer; +import org.codehaus.jackson.map.JsonSerializer; +import org.codehaus.jackson.map.annotate.JsonSerialize; +import org.codehaus.jackson.map.deser.ValueInstantiator; +import org.codehaus.jackson.map.introspect.*; +import org.codehaus.jackson.map.jsontype.NamedType; +import org.codehaus.jackson.map.jsontype.TypeResolverBuilder; + +/** + * Abstract class that defines API used for introspecting annotation-based + * configuration for serialization and deserialization. Separated + * so that different sets of annotations can be supported, and support + * plugged-in dynamically. + *<p> + * NOTE: due to rapid addition of new methods (and changes to existing methods), + * it is <b>strongly</b> recommended that custom implementations should not directly + * extend this class, but rather extend {@link NopAnnotationIntrospector}. + * This way added methods will not break backwards compatibility of custom annotation + * introspectors. + */ +public abstract class AnnotationIntrospector +{ + /* + /********************************************************** + /* Helper types + /********************************************************** + */ + + /** + * Value type used with managed and back references; contains type and + * logic name, used to link related references + * + * @since 1.6 + */ + public static class ReferenceProperty + { + public enum Type { + /** + * Reference property that Jackson manages and that is serialized normally (by serializing + * reference object), but is used for resolving back references during + * deserialization. + * Usually this can be defined by using + * {@link org.codehaus.jackson.annotate.JsonManagedReference} + */ + MANAGED_REFERENCE + + /** + * Reference property that Jackson manages by suppressing it during serialization, + * and reconstructing during deserialization. + * Usually this can be defined by using + * {@link org.codehaus.jackson.annotate.JsonBackReference} + */ + ,BACK_REFERENCE + ; + } + + private final Type _type; + private final String _name; + + public ReferenceProperty(Type t, String n) { + _type = t; + _name = n; + } + + public static ReferenceProperty managed(String name) { return new ReferenceProperty(Type.MANAGED_REFERENCE, name); } + public static ReferenceProperty back(String name) { return new ReferenceProperty(Type.BACK_REFERENCE, name); } + + public Type getType() { return _type; } + public String getName() { return _name; } + + public boolean isManagedReference() { return _type == Type.MANAGED_REFERENCE; } + public boolean isBackReference() { return _type == Type.BACK_REFERENCE; } + } + + /* + /********************************************************** + /* Factory methods + /********************************************************** + */ + + /** + * Factory method for accessing "no operation" implementation + * of introspector: instance that will never find any annotation-based + * configuration. + * + * @since 1.3 + */ + public static AnnotationIntrospector nopInstance() { + return NopAnnotationIntrospector.instance; + } + + public static AnnotationIntrospector pair(AnnotationIntrospector a1, AnnotationIntrospector a2) { + return new Pair(a1, a2); + } + + /* + /********************************************************** + /* Access to possibly chained introspectors (1.7) + /********************************************************** + */ + + /** + * Method that can be used to collect all "real" introspectors that + * this introspector contains, if any; or this introspector + * if it is not a container. Used to get access to all container + * introspectors in their priority order. + *<p> + * Default implementation returns a Singleton list with this introspector + * as contents. + * This usually works for sub-classes, except for proxy or delegating "container + * introspectors" which need to override implementation. + */ + public Collection<AnnotationIntrospector> allIntrospectors() { + return Collections.singletonList(this); + } + + /** + * Method that can be used to collect all "real" introspectors that + * this introspector contains, if any; or this introspector + * if it is not a container. Used to get access to all container + * introspectors in their priority order. + *<p> + * Default implementation adds this introspector in result; this usually + * works for sub-classes, except for proxy or delegating "container + * introspectors" which need to override implementation. + */ + public Collection<AnnotationIntrospector> allIntrospectors(Collection<AnnotationIntrospector> result) { + result.add(this); + return result; + } + + /* + /********************************************************** + /* Generic annotation properties, lookup + /********************************************************** + */ + + /** + * Method called by framework to determine whether given annotation + * is handled by this introspector. + */ + public abstract boolean isHandled(Annotation ann); + + /* + /********************************************************** + /* General class annotations + /********************************************************** + */ + + /** + * Method that checks whether specified class has annotations + * that indicate that it is (or is not) cachable. Exact + * semantics depend on type of class annotated and using + * class (factory or provider). + *<p> + * Currently only used + * with deserializers, to determine whether provider + * should cache instances, and if no annotations are found, + * assumes non-cachable instances. + * + * @return True, if class is considered cachable within context, + * False if not, and null if introspector does not care either + * way. + */ + public Boolean findCachability(AnnotatedClass ac) { + return null; + } + + /** + * Method for locating name used as "root name" (for use by + * some serializers when outputting root-level object -- mostly + * for XML compatibility purposes) for given class, if one + * is defined. Returns null if no declaration found; can return + * explicit empty String, which is usually ignored as well as null. + * + * @since 1.3 + */ + public abstract String findRootName(AnnotatedClass ac); + + /** + * Method for finding list of properties to ignore for given class + * (null is returned if not specified). + * List of property names is applied + * after other detection mechanisms, to filter out these specific + * properties from being serialized and deserialized. + * + * @since 1.4 + */ + public abstract String[] findPropertiesToIgnore(AnnotatedClass ac); + + /** + * Method for checking whether an annotation indicates that all unknown properties + * + * @since 1.4 + */ + public abstract Boolean findIgnoreUnknownProperties(AnnotatedClass ac); + + /** + * Method for checking whether properties that have specified type + * (class, not generics aware) should be completely ignored for + * serialization and deserialization purposes. + * + * @param ac Type to check + * + * @return Boolean.TRUE if properties of type should be ignored; + * Boolean.FALSE if they are not to be ignored, null for default + * handling (which is 'do not ignore') + * + * @since 1.7 + */ + public Boolean isIgnorableType(AnnotatedClass ac) { + return null; + } + + /** + * Method for finding if annotated class has associated filter; and if so, + * to return id that is used to locate filter. + * + * @return Id of the filter to use for filtering properties of annotated + * class, if any; or null if none found. + */ + public Object findFilterId(AnnotatedClass ac) { + return null; + } + + /* + /********************************************************** + /* Property auto-detection + /********************************************************** + */ + + /** + * Method for checking if annotations indicate changes to minimum visibility levels + * needed for auto-detecting property elements (fields, methods, constructors). + * A baseline checker is given, and introspector is to either return it as is (if + * no annotations are found), or build and return a derived instance (using checker's build + * methods). + * + * @since 1.5 + */ + public VisibilityChecker<?> findAutoDetectVisibility(AnnotatedClass ac, VisibilityChecker<?> checker) { + return checker; + } + + /* + /********************************************************** + /* Class annotations for Polymorphic type handling (1.5+) + /********************************************************** + */ + + /** + * Method for checking if given class has annotations that indicate + * that specific type resolver is to be used for handling instances. + * This includes not only + * instantiating resolver builder, but also configuring it based on + * relevant annotations (not including ones checked with a call to + * {@link #findSubtypes} + * + * @param config Configuration settings in effect (for serialization or deserialization) + * @param ac Annotated class to check for annotations + * @param baseType Base java type of value for which resolver is to be found + * + * @return Type resolver builder for given type, if one found; null if none + * + * @since 1.5 -- although changed in 1.8 to pass configuration object + */ + public TypeResolverBuilder<?> findTypeResolver(MapperConfig<?> config, + AnnotatedClass ac, JavaType baseType) { + return null; + } + + /** + * Method for checking if given property entity (field or method) has annotations + * that indicate that specific type resolver is to be used for handling instances. + * This includes not only + * instantiating resolver builder, but also configuring it based on + * relevant annotations (not including ones checked with a call to + * {@link #findSubtypes} + * + * @param config Configuration settings in effect (for serialization or deserialization) + * @param am Annotated member (field or method) to check for annotations + * @param baseType Base java type of property for which resolver is to be found + * + * @return Type resolver builder for properties of given entity, if one found; + * null if none + * + * @since 1.5 -- although changed in 1.8 to pass configuration object + */ + public TypeResolverBuilder<?> findPropertyTypeResolver(MapperConfig<?> config, + AnnotatedMember am, JavaType baseType) { + return null; + } + + /** + * Method for checking if given structured property entity (field or method that + * has nominal value of Map, Collection or array type) has annotations + * that indicate that specific type resolver is to be used for handling type + * information of contained values. + * This includes not only + * instantiating resolver builder, but also configuring it based on + * relevant annotations (not including ones checked with a call to + * {@link #findSubtypes} + * + * @param config Configuration settings in effect (for serialization or deserialization) + * @param am Annotated member (field or method) to check for annotations + * @param containerType Type of property for which resolver is to be found (must be a container type) + * + * @return Type resolver builder for values contained in properties of given entity, + * if one found; null if none + * + * @since 1.5 -- although changed in 1.8 to pass configuration object + */ + public TypeResolverBuilder<?> findPropertyContentTypeResolver(MapperConfig<?> config, + AnnotatedMember am, JavaType containerType) { + return null; + } + + /** + * Method for locating annotation-specified subtypes related to annotated + * entity (class, method, field). Note that this is only guaranteed to be + * a list of directly + * declared subtypes, no recursive processing is guarantees (i.e. caller + * has to do it if/as necessary) + * + * @param a Annotated entity (class, field/method) to check for annotations + * + * @since 1.5 + */ + public List<NamedType> findSubtypes(Annotated a) { + return null; + } + + /** + * Method for checking if specified type has explicit name. + * + * @param ac Class to check for type name annotations + * + * @since 1.5 + */ + public String findTypeName(AnnotatedClass ac) { + return null; + } + + /* + /********************************************************** + /* General member (field, method/constructor) annotations + /********************************************************** + */ + + /** + * Note: defined as non-abstract to reduce fragility between + * versions. + * + * @since 1.6 + */ + public ReferenceProperty findReferenceType(AnnotatedMember member) { + return null; + } + + /** + * Method called to check whether given property is marked to be "unwrapped" + * when being serialized (and appropriately handled in reverse direction, + * i.e. expect unwrapped representation during deserialization) + * + * @since 1.9 + */ + public Boolean shouldUnwrapProperty(AnnotatedMember member) { + return null; + } + + /** + * Method called to check whether given property is marked to + * be ignored; but NOT to determine if it should necessarily + * be ignored, since that may depend on other factors. + *<p> + * Default implementation calls existing 'isIgnored' methods + * such as {@link #isIgnorableField(AnnotatedField)} and + * {@link #isIgnorableMethod(AnnotatedMethod)}. + * + * @since 1.9 + */ + public boolean hasIgnoreMarker(AnnotatedMember m) + { + /* For maximum backwards compatibility, we better call + * existing methods. + */ + /* TODO: For 2.0, replace with simple 'return false;' + */ + if (m instanceof AnnotatedMethod) { + return isIgnorableMethod((AnnotatedMethod) m); + } + if (m instanceof AnnotatedField) { + return isIgnorableField((AnnotatedField) m); + } + if (m instanceof AnnotatedConstructor) { + return isIgnorableConstructor((AnnotatedConstructor) m); + } + return false; + } + + /** + * Method called to find out whether given member expectes a value + * to be injected, and if so, what is the identifier of the value + * to use during injection. + * Type if identifier needs to be compatible with provider of + * values (of type {@link InjectableValues}); often a simple String + * id is used. + * + * @param m Member to check + * + * @return Identifier of value to inject, if any; null if no injection + * indicator is found + */ + public Object findInjectableValueId(AnnotatedMember m) { + return null; + } + + /* + /********************************************************** + /* General method annotations + /********************************************************** + */ + + /** + * Method for checking whether there is an annotation that + * indicates that given method should be ignored for all + * operations (serialization, deserialization). + *<p> + * Note that this method should <b>ONLY</b> return true for such + * explicit ignoral cases; and not if method just happens not to + * be visible for annotation processor. + * + * @return True, if an annotation is found to indicate that the + * method should be ignored; false if not. + */ + public abstract boolean isIgnorableMethod(AnnotatedMethod m); + + /** + * @since 1.2 + */ + public abstract boolean isIgnorableConstructor(AnnotatedConstructor c); + + /* + /********************************************************** + /* General field annotations + /********************************************************** + */ + + /** + * Method for checking whether there is an annotation that + * indicates that given field should be ignored for all + * operations (serialization, deserialization). + * + * @return True, if an annotation is found to indicate that the + * field should be ignored; false if not. + */ + public abstract boolean isIgnorableField(AnnotatedField f); + + /* + /********************************************************** + /* Serialization: general annotations + /********************************************************** + */ + + /** + * Method for getting a serializer definition on specified method + * or field. Type of definition is either instance (of type + * {@link JsonSerializer}) or Class (of type + * <code>Class<JsonSerializer></code>); if value of different + * type is returned, a runtime exception may be thrown by caller. + *<p> + * Note: this variant was briefly deprecated for 1.7; should not be + */ + public abstract Object findSerializer(Annotated am); + + /** + * Method for getting a serializer definition for keys of associated <code>Map</code> property. + * Type of definition is either instance (of type + * {@link JsonSerializer}) or Class (of type + * <code>Class<JsonSerializer></code>); if value of different + * type is returned, a runtime exception may be thrown by caller. + * + * @since 1.8 + */ + public Class<? extends JsonSerializer<?>> findKeySerializer(Annotated am) { + return null; + } + + /** + * Method for getting a serializer definition for content (values) of + * associated <code>Collection</code>, <code>array</code> or <code>Map</code> property. + * Type of definition is either instance (of type + * {@link JsonSerializer}) or Class (of type + * <code>Class<JsonSerializer></code>); if value of different + * type is returned, a runtime exception may be thrown by caller. + * + * @since 1.8 + */ + public Class<? extends JsonSerializer<?>> findContentSerializer(Annotated am) { + return null; + } + + /** + * Method for checking whether given annotated entity (class, method, + * field) defines which Bean/Map properties are to be included in + * serialization. + * If no annotation is found, method should return given second + * argument; otherwise value indicated by the annotation + * + * @return Enumerated value indicating which properties to include + * in serialization + */ + public JsonSerialize.Inclusion findSerializationInclusion(Annotated a, JsonSerialize.Inclusion defValue) { + return defValue; + } + + /** + * Method for accessing annotated type definition that a + * method/field can have, to be used as the type for serialization + * instead of the runtime type. + * Type returned (if any) needs to be widening conversion (super-type). + * Declared return type of the method is also considered acceptable. + * + * @return Class to use instead of runtime type + */ + public abstract Class<?> findSerializationType(Annotated a); + + /** + * Method for finding possible widening type definition that a property + * value can have, to define less specific key type to use for serialization. + * It should be only be used with {@link java.util.Map} types. + * + * @return Class specifying more general type to use instead of + * declared type, if annotation found; null if not + */ + public Class<?> findSerializationKeyType(Annotated am, JavaType baseType) { + return null; + } + + /** + * Method for finding possible widening type definition that a property + * value can have, to define less specific key type to use for serialization. + * It should be only used with structured types (arrays, collections, maps). + * + * @return Class specifying more general type to use instead of + * declared type, if annotation found; null if not + */ + public Class<?> findSerializationContentType(Annotated am, JavaType baseType) { + return null; + } + + /** + * Method for accessing declared typing mode annotated (if any). + * This is used for type detection, unless more granular settings + * (such as actual exact type; or serializer to use which means + * no type information is needed) take precedence. + * + * @since 1.2 + * + * @return Typing mode to use, if annotation is found; null otherwise + */ + public abstract JsonSerialize.Typing findSerializationTyping(Annotated a); + + /** + * Method for checking if annotated serializable property (represented by + * field or getter method) has definitions for views it is to be included + * in. If null is returned, no view definitions exist and property is always + * included; otherwise it will only be included for views included in returned + * array. View matches are checked using class inheritance rules (sub-classes + * inherit inclusions of super-classes) + * + * @param a Annotated serializable property (field or getter method) + * @return Array of views (represented by classes) that the property is included in; + * if null, always included (same as returning array containing <code>Object.class</code>) + */ + public abstract Class<?>[] findSerializationViews(Annotated a); + + /* + /********************************************************** + /* Serialization: class annotations + /********************************************************** + */ + + /** + * Method for accessing defined property serialization order (which may be + * partial). May return null if no ordering is defined. + * + * @since 1.4 + */ + public abstract String[] findSerializationPropertyOrder(AnnotatedClass ac); + + /** + * Method for checking whether an annotation indicates that serialized properties + * for which no explicit is defined should be alphabetically (lexicograpically) + * ordered + * + * @since 1.4 + */ + public abstract Boolean findSerializationSortAlphabetically(AnnotatedClass ac); + + /* + /********************************************************** + /* Serialization: method annotations + /********************************************************** + */ + + /** + * Method for checking whether given method has an annotation + * that suggests property name associated with method that + * may be a "getter". Should return null if no annotation + * is found; otherwise a non-null String. + * If non-null value is returned, it is used as the property + * name, except for empty String ("") which is taken to mean + * "use standard bean name detection if applicable; + * method name if not". + */ + public abstract String findGettablePropertyName(AnnotatedMethod am); + + /** + * Method for checking whether given method has an annotation + * that suggests that the return value of annotated method + * should be used as "the value" of the object instance; usually + * serialized as a primitive value such as String or number. + * + * @return True if such annotation is found (and is not disabled); + * false if no enabled annotation is found + */ + public abstract boolean hasAsValueAnnotation(AnnotatedMethod am); + + /** + * Method for determining the String value to use for serializing + * given enumeration entry; used when serializing enumerations + * as Strings (the standard method). + * + * @return Serialized enum value. + */ + public abstract String findEnumValue(Enum<?> value); + + /* + /********************************************************** + /* Serialization: field annotations + /********************************************************** + */ + + /** + * Method for checking whether given member field represent + * a serializable logical property; and if so, returns the + * name of that property. + * Should return null if no annotation is found (indicating it + * is not a serializable field); otherwise a non-null String. + * If non-null value is returned, it is used as the property + * name, except for empty String ("") which is taken to mean + * "use the field name as is". + */ + public abstract String findSerializablePropertyName(AnnotatedField af); + + /* + /********************************************************** + /* Deserialization: general annotations + /********************************************************** + */ + + /** + * Method for getting a deserializer definition on specified method + * or field. + * Type of definition is either instance (of type + * {@link JsonDeserializer}) or Class (of type + * <code>Class<JsonDeserializer></code>); if value of different + * type is returned, a runtime exception may be thrown by caller. + *<p> + * Note: this variant was briefly deprecated for 1.7; but it turns out + * we really should not try to push BeanProperty through at this point + */ + public abstract Object findDeserializer(Annotated am); + + /** + * Method for getting a deserializer definition for keys of + * associated <code>Map</code> property. + * Type of definition is either instance (of type + * {@link JsonDeserializer}) or Class (of type + * <code>Class<JsonDeserializer></code>); if value of different + * type is returned, a runtime exception may be thrown by caller. + * + * @since 1.3 + */ + public abstract Class<? extends KeyDeserializer> findKeyDeserializer(Annotated am); + + /** + * Method for getting a deserializer definition for content (values) of + * associated <code>Collection</code>, <code>array</code> or + * <code>Map</code> property. + * Type of definition is either instance (of type + * {@link JsonDeserializer}) or Class (of type + * <code>Class<JsonDeserializer></code>); if value of different + * type is returned, a runtime exception may be thrown by caller. + * + * @since 1.3 + */ + public abstract Class<? extends JsonDeserializer<?>> findContentDeserializer(Annotated am); + + /** + * Method for accessing annotated type definition that a + * method can have, to be used as the type for serialization + * instead of the runtime type. + * Type must be a narrowing conversion + * (i.e.subtype of declared type). + * Declared return type of the method is also considered acceptable. + * + * @param baseType Assumed type before considering annotations + * @param propName Logical property name of the property that uses + * type, if known; null for types not associated with property + * + * @return Class to use for deserialization instead of declared type + */ + public abstract Class<?> findDeserializationType(Annotated am, JavaType baseType, + String propName); + + /** + * Method for accessing additional narrowing type definition that a + * method can have, to define more specific key type to use. + * It should be only be used with {@link java.util.Map} types. + * + * @param baseKeyType Assumed key type before considering annotations + * @param propName Logical property name of the property that uses + * type, if known; null for types not associated with property + * + * @return Class specifying more specific type to use instead of + * declared type, if annotation found; null if not + */ + public abstract Class<?> findDeserializationKeyType(Annotated am, JavaType baseKeyType, + String propName); + + /** + * Method for accessing additional narrowing type definition that a + * method can have, to define more specific content type to use; + * content refers to Map values and Collection/array elements. + * It should be only be used with Map, Collection and array types. + * + * @param baseContentType Assumed content (value) type before considering annotations + * @param propName Logical property name of the property that uses + * type, if known; null for types not associated with property + * + * @return Class specifying more specific type to use instead of + * declared type, if annotation found; null if not + */ + public abstract Class<?> findDeserializationContentType(Annotated am, JavaType baseContentType, + String propName); + + /* + /********************************************************** + /* Deserialization: class annotations + /********************************************************** + */ + + /** + * Method getting {@link ValueInstantiator} to use for given + * type (class): return value can either be an instance of + * instantiator, or class of instantiator to create. + * + * @since 1.9 + */ + public Object findValueInstantiator(AnnotatedClass ac) { + return null; + } + + /* + /********************************************************** + /* Deserialization: method annotations + /********************************************************** + */ + + /** + * Method for checking whether given method has an annotation + * that suggests property name associated with method that + * may be a "setter". Should return null if no annotation + * is found; otherwise a non-null String. + * If non-null value is returned, it is used as the property + * name, except for empty String ("") which is taken to mean + * "use standard bean name detection if applicable; + * method name if not". + */ + public abstract String findSettablePropertyName(AnnotatedMethod am); + + /** + * Method for checking whether given method has an annotation + * that suggests that the method is to serve as "any setter"; + * method to be used for setting values of any properties for + * which no dedicated setter method is found. + * + * @return True if such annotation is found (and is not disabled), + * false otherwise + */ + public boolean hasAnySetterAnnotation(AnnotatedMethod am) { + return false; + } + + /** + * Method for checking whether given method has an annotation + * that suggests that the method is to serve as "any setter"; + * method to be used for accessing set of miscellaneous "extra" + * properties, often bound with matching "any setter" method. + * + * @return True if such annotation is found (and is not disabled), + * false otherwise + * + * @since 1.6 + */ + public boolean hasAnyGetterAnnotation(AnnotatedMethod am) { + return false; + } + + /** + * Method for checking whether given annotated item (method, constructor) + * has an annotation + * that suggests that the method is a "creator" (aka factory) + * method to be used for construct new instances of deserialized + * values. + * + * @return True if such annotation is found (and is not disabled), + * false otherwise + */ + public boolean hasCreatorAnnotation(Annotated a) { + return false; + } + + /* + /********************************************************** + /* Deserialization: field annotations + /********************************************************** + */ + + /** + * Method for checking whether given member field represent + * a deserializable logical property; and if so, returns the + * name of that property. + * Should return null if no annotation is found (indicating it + * is not a deserializable field); otherwise a non-null String. + * If non-null value is returned, it is used as the property + * name, except for empty String ("") which is taken to mean + * "use the field name as is". + */ + public abstract String findDeserializablePropertyName(AnnotatedField af); + + /* + /********************************************************** + /* Deserialization: parameter annotations (for + /* creator method parameters) + /********************************************************** + */ + + /** + * Method for checking whether given set of annotations indicates + * property name for associated parameter. + * No actual parameter object can be passed since JDK offers no + * representation; just annotations. + */ + public abstract String findPropertyNameForParam(AnnotatedParameter param); + + /* + /********************************************************** + /* Helper classes + /********************************************************** + */ + + /** + * Helper class that allows using 2 introspectors such that one + * introspector acts as the primary one to use; and second one + * as a fallback used if the primary does not provide conclusive + * or useful result for a method. + *<p> + * An obvious consequence of priority is that it is easy to construct + * longer chains of introspectors by linking multiple pairs. + * Currently most likely combination is that of using the default + * Jackson provider, along with JAXB annotation introspector (available + * since version 1.1). + */ + public static class Pair + extends AnnotationIntrospector + { + protected final AnnotationIntrospector _primary, _secondary; + + public Pair(AnnotationIntrospector p, + AnnotationIntrospector s) + { + _primary = p; + _secondary = s; + } + + /** + * Helper method for constructing a Pair from two given introspectors (if + * neither is null); or returning non-null introspector if one is null + * (and return just null if both are null) + * + * @since 1.7 + */ + public static AnnotationIntrospector create(AnnotationIntrospector primary, + AnnotationIntrospector secondary) + { + if (primary == null) { + return secondary; + } + if (secondary == null) { + return primary; + } + return new Pair(primary, secondary); + } + + @Override + public Collection<AnnotationIntrospector> allIntrospectors() { + return allIntrospectors(new ArrayList<AnnotationIntrospector>()); + } + + @Override + public Collection<AnnotationIntrospector> allIntrospectors(Collection<AnnotationIntrospector> result) + { + _primary.allIntrospectors(result); + _secondary.allIntrospectors(result); + return result; + } + + // // // Generic annotation properties, lookup + + @Override + public boolean isHandled(Annotation ann) + { + return _primary.isHandled(ann) || _secondary.isHandled(ann); + } + + /* + /****************************************************** + /* General class annotations + /****************************************************** + */ + + @Override + public Boolean findCachability(AnnotatedClass ac) + { + Boolean result = _primary.findCachability(ac); + if (result == null) { + result = _secondary.findCachability(ac); + } + return result; + } + + @Override + public String findRootName(AnnotatedClass ac) + { + String name1 = _primary.findRootName(ac); + if (name1 == null) { + return _secondary.findRootName(ac); + } else if (name1.length() > 0) { + return name1; + } + // name1 is empty; how about secondary? + String name2 = _secondary.findRootName(ac); + return (name2 == null) ? name1 : name2; + } + + @Override + public String[] findPropertiesToIgnore(AnnotatedClass ac) + { + String[] result = _primary.findPropertiesToIgnore(ac); + if (result == null) { + result = _secondary.findPropertiesToIgnore(ac); + } + return result; + } + + @Override + public Boolean findIgnoreUnknownProperties(AnnotatedClass ac) + { + Boolean result = _primary.findIgnoreUnknownProperties(ac); + if (result == null) { + result = _secondary.findIgnoreUnknownProperties(ac); + } + return result; + } + + @Override + public Boolean isIgnorableType(AnnotatedClass ac) + { + Boolean result = _primary.isIgnorableType(ac); + if (result == null) { + result = _secondary.isIgnorableType(ac); + } + return result; + } + + @Override + public Object findFilterId(AnnotatedClass ac) + { + Object id = _primary.findFilterId(ac); + if (id == null) { + id = _secondary.findFilterId(ac); + } + return id; + } + + /* + /****************************************************** + /* Property auto-detection + /****************************************************** + */ + + @Override + public VisibilityChecker<?> findAutoDetectVisibility(AnnotatedClass ac, + VisibilityChecker<?> checker) + { + /* Note: to have proper priorities, we must actually call delegatees + * in reverse order: + */ + checker = _secondary.findAutoDetectVisibility(ac, checker); + return _primary.findAutoDetectVisibility(ac, checker); + } + + /* + /****************************************************** + /* Type handling + /****************************************************** + */ + + @Override + public TypeResolverBuilder<?> findTypeResolver(MapperConfig<?> config, + AnnotatedClass ac, JavaType baseType) + { + TypeResolverBuilder<?> b = _primary.findTypeResolver(config, ac, baseType); + if (b == null) { + b = _secondary.findTypeResolver(config, ac, baseType); + } + return b; + } + + @Override + public TypeResolverBuilder<?> findPropertyTypeResolver(MapperConfig<?> config, + AnnotatedMember am, JavaType baseType) + { + TypeResolverBuilder<?> b = _primary.findPropertyTypeResolver(config, am, baseType); + if (b == null) { + b = _secondary.findPropertyTypeResolver(config, am, baseType); + } + return b; + } + + @Override + public TypeResolverBuilder<?> findPropertyContentTypeResolver(MapperConfig<?> config, + AnnotatedMember am, JavaType baseType) + { + TypeResolverBuilder<?> b = _primary.findPropertyContentTypeResolver(config, am, baseType); + if (b == null) { + b = _secondary.findPropertyContentTypeResolver(config, am, baseType); + } + return b; + } + + @Override + public List<NamedType> findSubtypes(Annotated a) + { + List<NamedType> types1 = _primary.findSubtypes(a); + List<NamedType> types2 = _secondary.findSubtypes(a); + if (types1 == null || types1.isEmpty()) return types2; + if (types2 == null || types2.isEmpty()) return types1; + ArrayList<NamedType> result = new ArrayList<NamedType>(types1.size() + types2.size()); + result.addAll(types1); + result.addAll(types2); + return result; + } + + @Override + public String findTypeName(AnnotatedClass ac) + { + String name = _primary.findTypeName(ac); + if (name == null || name.length() == 0) { + name = _secondary.findTypeName(ac); + } + return name; + } + + // // // General member (field, method/constructor) annotations + + @Override + public ReferenceProperty findReferenceType(AnnotatedMember member) + { + ReferenceProperty ref = _primary.findReferenceType(member); + if (ref == null) { + ref = _secondary.findReferenceType(member); + } + return ref; + } + + @Override + public Boolean shouldUnwrapProperty(AnnotatedMember member) + { + Boolean value = _primary.shouldUnwrapProperty(member); + if (value == null) { + value = _secondary.shouldUnwrapProperty(member); + } + return value; + } + + @Override + public Object findInjectableValueId(AnnotatedMember m) + { + Object value = _primary.findInjectableValueId(m); + if (value == null) { + value = _secondary.findInjectableValueId(m); + } + return value; + } + + @Override + public boolean hasIgnoreMarker(AnnotatedMember m) { + return _primary.hasIgnoreMarker(m) || _secondary.hasIgnoreMarker(m); + } + + // // // General method annotations + + @Override + public boolean isIgnorableMethod(AnnotatedMethod m) { + return _primary.isIgnorableMethod(m) || _secondary.isIgnorableMethod(m); + } + + @Override + public boolean isIgnorableConstructor(AnnotatedConstructor c) { + return _primary.isIgnorableConstructor(c) || _secondary.isIgnorableConstructor(c); + } + + // // // General field annotations + + @Override + public boolean isIgnorableField(AnnotatedField f) + { + return _primary.isIgnorableField(f) || _secondary.isIgnorableField(f); + } + + // // // Serialization: general annotations + + @Override + public Object findSerializer(Annotated am) + { + Object result = _primary.findSerializer(am); + if (result == null) { + result = _secondary.findSerializer(am); + } + return result; + } + + @Override + public Class<? extends JsonSerializer<?>> findKeySerializer(Annotated a) + { + Class<? extends JsonSerializer<?>> result = _primary.findKeySerializer(a); + if (result == null || result == JsonSerializer.None.class) { + result = _secondary.findKeySerializer(a); + } + return result; + } + + @Override + public Class<? extends JsonSerializer<?>> findContentSerializer(Annotated a) + { + Class<? extends JsonSerializer<?>> result = _primary.findContentSerializer(a); + if (result == null || result == JsonSerializer.None.class) { + result = _secondary.findContentSerializer(a); + } + return result; + } + + @Override + public JsonSerialize.Inclusion findSerializationInclusion(Annotated a, + JsonSerialize.Inclusion defValue) + { + /* This is bit trickier: need to combine results in a meaningful + * way. Seems like it should be a disjoint; that is, most + * restrictive value should be returned. + * For enumerations, comparison is done by indexes, which + * works: largest value is the last one, which is the most + * restrictive value as well. + */ + /* 09-Mar-2010, tatu: Actually, as per [JACKSON-256], it is probably better to just + * use strict overriding. Simpler, easier to understand. + */ + // note: call secondary first, to give lower priority + defValue = _secondary.findSerializationInclusion(a, defValue); + defValue = _primary.findSerializationInclusion(a, defValue); + return defValue; + } + + @Override + public Class<?> findSerializationType(Annotated a) + { + Class<?> result = _primary.findSerializationType(a); + if (result == null) { + result = _secondary.findSerializationType(a); + } + return result; + } + + @Override + public Class<?> findSerializationKeyType(Annotated am, JavaType baseType) + { + Class<?> result = _primary.findSerializationKeyType(am, baseType); + if (result == null) { + result = _secondary.findSerializationKeyType(am, baseType); + } + return result; + } + + @Override + public Class<?> findSerializationContentType(Annotated am, JavaType baseType) + { + Class<?> result = _primary.findSerializationContentType(am, baseType); + if (result == null) { + result = _secondary.findSerializationContentType(am, baseType); + } + return result; + } + + @Override + public JsonSerialize.Typing findSerializationTyping(Annotated a) + { + JsonSerialize.Typing result = _primary.findSerializationTyping(a); + if (result == null) { + result = _secondary.findSerializationTyping(a); + } + return result; + } + + @Override + public Class<?>[] findSerializationViews(Annotated a) + { + /* Theoretically this could be trickier, if multiple introspectors + * return non-null entries. For now, though, we'll just consider + * first one to return non-null to win. + */ + Class<?>[] result = _primary.findSerializationViews(a); + if (result == null) { + result = _secondary.findSerializationViews(a); + } + return result; + } + + // // // Serialization: class annotations + + @Override + public String[] findSerializationPropertyOrder(AnnotatedClass ac) { + String[] result = _primary.findSerializationPropertyOrder(ac); + if (result == null) { + result = _secondary.findSerializationPropertyOrder(ac); + } + return result; + } + + /** + * Method for checking whether an annotation indicates that serialized properties + * for which no explicit is defined should be alphabetically (lexicograpically) + * ordered + */ + @Override + public Boolean findSerializationSortAlphabetically(AnnotatedClass ac) { + Boolean result = _primary.findSerializationSortAlphabetically(ac); + if (result == null) { + result = _secondary.findSerializationSortAlphabetically(ac); + } + return result; + } + + // // // Serialization: method annotations + + @Override + public String findGettablePropertyName(AnnotatedMethod am) + { + String result = _primary.findGettablePropertyName(am); + if (result == null) { + result = _secondary.findGettablePropertyName(am); + } else if (result.length() == 0) { + /* Empty String is a default; can be overridden by + * more explicit answer from secondary entry + */ + String str2 = _secondary.findGettablePropertyName(am); + if (str2 != null) { + result = str2; + } + } + return result; + } + + @Override + public boolean hasAsValueAnnotation(AnnotatedMethod am) + { + return _primary.hasAsValueAnnotation(am) || _secondary.hasAsValueAnnotation(am); + } + + @Override + public String findEnumValue(Enum<?> value) + { + String result = _primary.findEnumValue(value); + if (result == null) { + result = _secondary.findEnumValue(value); + } + return result; + } + + // // // Serialization: field annotations + + @Override + public String findSerializablePropertyName(AnnotatedField af) + { + String result = _primary.findSerializablePropertyName(af); + if (result == null) { + result = _secondary.findSerializablePropertyName(af); + } else if (result.length() == 0) { + /* Empty String is a default; can be overridden by + * more explicit answer from secondary entry + */ + String str2 = _secondary.findSerializablePropertyName(af); + if (str2 != null) { + result = str2; + } + } + return result; + } + + // // // Deserialization: general annotations + + @Override + public Object findDeserializer(Annotated am) + { + Object result = _primary.findDeserializer(am); + if (result == null) { + result = _secondary.findDeserializer(am); + } + return result; + } + + @Override + public Class<? extends KeyDeserializer> findKeyDeserializer(Annotated am) + { + Class<? extends KeyDeserializer> result = _primary.findKeyDeserializer(am); + if (result == null || result == KeyDeserializer.None.class) { + result = _secondary.findKeyDeserializer(am); + } + return result; + } + + @Override + public Class<? extends JsonDeserializer<?>> findContentDeserializer(Annotated am) + { + Class<? extends JsonDeserializer<?>> result = _primary.findContentDeserializer(am); + if (result == null || result == JsonDeserializer.None.class) { + result = _secondary.findContentDeserializer(am); + } + return result; + } + + @Override + public Class<?> findDeserializationType(Annotated am, JavaType baseType, + String propName) + { + Class<?> result = _primary.findDeserializationType(am, baseType, propName); + if (result == null) { + result = _secondary.findDeserializationType(am, baseType, propName); + } + return result; + } + + @Override + public Class<?> findDeserializationKeyType(Annotated am, JavaType baseKeyType, + String propName) + { + Class<?> result = _primary.findDeserializationKeyType(am, baseKeyType, propName); + if (result == null) { + result = _secondary.findDeserializationKeyType(am, baseKeyType, propName); + } + return result; + } + + @Override + public Class<?> findDeserializationContentType(Annotated am, JavaType baseContentType, + String propName) + { + Class<?> result = _primary.findDeserializationContentType(am, baseContentType, propName); + if (result == null) { + result = _secondary.findDeserializationContentType(am, baseContentType, propName); + } + return result; + } + + // // // Deserialization: class annotations + + @Override + public Object findValueInstantiator(AnnotatedClass ac) + { + Object result = _primary.findValueInstantiator(ac); + if (result == null) { + result = _secondary.findValueInstantiator(ac); + } + return result; + } + + // // // Deserialization: method annotations + + @Override + public String findSettablePropertyName(AnnotatedMethod am) + { + String result = _primary.findSettablePropertyName(am); + if (result == null) { + result = _secondary.findSettablePropertyName(am); + } else if (result.length() == 0) { + /* Empty String is a default; can be overridden by + * more explicit answer from secondary entry + */ + String str2 = _secondary.findSettablePropertyName(am); + if (str2 != null) { + result = str2; + } + } + return result; + } + + @Override + public boolean hasAnySetterAnnotation(AnnotatedMethod am) + { + return _primary.hasAnySetterAnnotation(am) || _secondary.hasAnySetterAnnotation(am); + } + + @Override + public boolean hasAnyGetterAnnotation(AnnotatedMethod am) + { + return _primary.hasAnyGetterAnnotation(am) || _secondary.hasAnyGetterAnnotation(am); + } + + @Override + public boolean hasCreatorAnnotation(Annotated a) + { + return _primary.hasCreatorAnnotation(a) || _secondary.hasCreatorAnnotation(a); + } + + // // // Deserialization: field annotations + + @Override + public String findDeserializablePropertyName(AnnotatedField af) + { + String result = _primary.findDeserializablePropertyName(af); + if (result == null) { + result = _secondary.findDeserializablePropertyName(af); + } else if (result.length() == 0) { + /* Empty String is a default; can be overridden by + * more explicit answer from secondary entry + */ + String str2 = _secondary.findDeserializablePropertyName(af); + if (str2 != null) { + result = str2; + } + } + return result; + } + + // // // Deserialization: parameter annotations (for creators) + + @Override + public String findPropertyNameForParam(AnnotatedParameter param) + { + String result = _primary.findPropertyNameForParam(param); + if (result == null) { + result = _secondary.findPropertyNameForParam(param); + } + return result; + } + } + +}
diff --git a/1.9.10/src/mapper/java/org/codehaus/jackson/map/BeanDescription.java b/1.9.10/src/mapper/java/org/codehaus/jackson/map/BeanDescription.java new file mode 100644 index 0000000..7b3d098 --- /dev/null +++ b/1.9.10/src/mapper/java/org/codehaus/jackson/map/BeanDescription.java
@@ -0,0 +1,167 @@ +package org.codehaus.jackson.map; + +import java.util.*; + +import org.codehaus.jackson.map.introspect.AnnotatedClass; +import org.codehaus.jackson.map.introspect.AnnotatedConstructor; +import org.codehaus.jackson.map.introspect.AnnotatedField; +import org.codehaus.jackson.map.introspect.AnnotatedMember; +import org.codehaus.jackson.map.introspect.AnnotatedMethod; +import org.codehaus.jackson.map.introspect.VisibilityChecker; +import org.codehaus.jackson.map.type.TypeBindings; +import org.codehaus.jackson.map.util.Annotations; +import org.codehaus.jackson.type.JavaType; + +/** + * Basic container for information gathered by {@link ClassIntrospector} to + * help in constructing serializers and deserializers. + * Note that the main implementation type is + * {@link org.codehaus.jackson.map.introspect.BasicBeanDescription}, + * meaning that it is safe to upcast to this type. + * + * @author tatu + */ +public abstract class BeanDescription +{ + /* + /********************************************************** + /* Configuration + /********************************************************** + */ + + /** + * Bean type information, including raw class and possible + * * generics information + */ + protected final JavaType _type; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + protected BeanDescription(JavaType type) + { + _type = type; + } + + /* + /********************************************************** + /* Simple accesors + /********************************************************** + */ + + /** + * Method for accessing declared type of bean being introspected, + * including full generic type information (from declaration) + */ + public JavaType getType() { return _type; } + + public Class<?> getBeanClass() { return _type.getRawClass(); } + + public abstract AnnotatedClass getClassInfo(); + + public abstract boolean hasKnownClassAnnotations(); + + /** + * Accessor for type bindings that may be needed to fully resolve + * types of member object, such as return and argument types of + * methods and constructors, and types of fields. + */ + public abstract TypeBindings bindingsForBeanType(); + + /** + * Method for resolving given JDK type, using this bean as the + * generic type resolution context. + * + * @since 1.9 + */ + public abstract JavaType resolveType(java.lang.reflect.Type jdkType); + + /** + * Method for accessing collection of annotations the bean + * class has. + * + * @since 1.7 + */ + public abstract Annotations getClassAnnotations(); + + /* + /********************************************************** + /* Basic API for finding properties, related + /********************************************************** + */ + + /** + * @return Ordered Map with logical property name as key, and + * matching getter method as value. + * + * @since 1.9 + */ + public abstract List<BeanPropertyDefinition> findProperties(); + + /** + * @since 1.9 + */ + public abstract Map<Object, AnnotatedMember> findInjectables(); + + /** + * @since 1.9 + */ + public abstract AnnotatedMethod findAnyGetter(); + + /** + * @since 1.9 + */ + public abstract AnnotatedMethod findAnySetter(); + + /** + * @since 1.9 + */ + public abstract AnnotatedMethod findJsonValueMethod(); + + /** + * @since 1.9 + */ + public abstract AnnotatedConstructor findDefaultConstructor(); + + /** + * @since 1.9 + */ + public abstract Set<String> getIgnoredPropertyNames(); + + /* + /********************************************************** + /* Deprecated methods + /********************************************************** + */ + + /** + * @deprecated Since 1.9 use {@link #findProperties} + */ + @Deprecated + public abstract LinkedHashMap<String,AnnotatedMethod> findGetters(VisibilityChecker<?> visibilityChecker, + Collection<String> ignoredProperties); + + /** + * @deprecated Since 1.9 use {@link #findProperties} + */ + @Deprecated + public abstract LinkedHashMap<String,AnnotatedMethod> findSetters(VisibilityChecker<?> visibilityChecker); + + /** + * @deprecated Since 1.9 use {@link #findProperties} + */ + @Deprecated + public abstract LinkedHashMap<String,AnnotatedField> findDeserializableFields(VisibilityChecker<?> visibilityChecker, + Collection<String> ignoredProperties); + + /** + * @deprecated Since 1.9 use the non-deprecated version + */ + @Deprecated + public abstract Map<String,AnnotatedField> findSerializableFields(VisibilityChecker<?> visibilityChecker, + Collection<String> ignoredProperties); + +}
diff --git a/1.9.10/src/mapper/java/org/codehaus/jackson/map/BeanProperty.java b/1.9.10/src/mapper/java/org/codehaus/jackson/map/BeanProperty.java new file mode 100644 index 0000000..749bf67 --- /dev/null +++ b/1.9.10/src/mapper/java/org/codehaus/jackson/map/BeanProperty.java
@@ -0,0 +1,123 @@ +package org.codehaus.jackson.map; + +import java.lang.annotation.Annotation; + +import org.codehaus.jackson.map.introspect.AnnotatedMember; +import org.codehaus.jackson.map.util.Annotations; +import org.codehaus.jackson.map.util.Named; +import org.codehaus.jackson.type.JavaType; + +/** + * Bean properties are logical entities that represent data + * Java objects ("beans", although more accurately POJOs) + * contain; and that are accessed using some combination + * of methods (getter, setter), field and constructor + * parameter. + * Instances allow access to annotations directly associated + * to property (via field or method), as well as contextual + * annotations (annotations for class that contains properties). + *<p> + * Instances are passed during construction of serializers and + * deserializers, and references can be stored by serializers + * and deserializers for futher use; mostly to retain access + * to annotations when dynamically locating handlers for + * sub-properties or dynamic types. + * + * @since 1.7 + */ +public interface BeanProperty extends Named +{ + /** + * Method to get logical name of the property + */ + @Override + public String getName(); + + /** + * Method to get declared type of the property. + */ + public JavaType getType(); + + /** + * Method for finding annotation associated with this property; + * meaning annotation associated with one of entities used to + * access property. + */ + public <A extends Annotation> A getAnnotation(Class<A> acls); + + /** + * Method for finding annotation associated with context of + * this property; usually class in which member is declared + * (or its subtype if processing subtype). + */ + public <A extends Annotation> A getContextAnnotation(Class<A> acls); + + /** + * Method for accessing primary physical entity that represents the property; + * annotated field, method or constructor property. + */ + public AnnotatedMember getMember(); + + /* + /********************************************************** + /* Simple stand-alone implementation, useful as a placeholder + /* or base class. + /********************************************************** + */ + + public static class Std implements BeanProperty + { + protected final String _name; + protected final JavaType _type; + + /** + * Physical entity (field, method or constructor argument) that + * is used to access value of property (or in case of constructor + * property, just placeholder) + */ + protected final AnnotatedMember _member; + + /** + * Annotations defined in the context class (if any); may be null + * if no annotations were found + */ + protected final Annotations _contextAnnotations; + + public Std(String name, JavaType type, Annotations contextAnnotations, AnnotatedMember member) + { + _name = name; + _type = type; + _member = member; + _contextAnnotations = contextAnnotations; + } + + public Std withType(JavaType type) { + return new Std(_name, type, _contextAnnotations, _member); + } + + @Override + public <A extends Annotation> A getAnnotation(Class<A> acls) { + return _member.getAnnotation(acls); + } + + @Override + public <A extends Annotation> A getContextAnnotation(Class<A> acls) { + return (_contextAnnotations == null) ? null : _contextAnnotations.get(acls); + } + + @Override + public String getName() { + return _name; + } + + @Override + public JavaType getType() { + return _type; + } + + @Override + public AnnotatedMember getMember() { + return _member; + } + } +}
diff --git a/1.9.10/src/mapper/java/org/codehaus/jackson/map/BeanPropertyDefinition.java b/1.9.10/src/mapper/java/org/codehaus/jackson/map/BeanPropertyDefinition.java new file mode 100644 index 0000000..d2e7611 --- /dev/null +++ b/1.9.10/src/mapper/java/org/codehaus/jackson/map/BeanPropertyDefinition.java
@@ -0,0 +1,79 @@ +package org.codehaus.jackson.map; + +import org.codehaus.jackson.map.introspect.AnnotatedField; +import org.codehaus.jackson.map.introspect.AnnotatedMember; +import org.codehaus.jackson.map.introspect.AnnotatedMethod; +import org.codehaus.jackson.map.introspect.AnnotatedParameter; +import org.codehaus.jackson.map.util.Named; + +/** + * Simple value classes that contain definitions of properties, + * used during introspection of properties to use for + * serialization and deserialization purposes. + * These instances are created before actual {@link BeanProperty} + * instances are created, i.e. they are used earlier in the process + * flow. + * + * @since 1.9 + */ +public abstract class BeanPropertyDefinition + implements Named +{ + /** + * Accessor for name used for external representation (in JSON). + */ + @Override // from Named + public abstract String getName(); + + /** + * Accessor that can be used to determine implicit name from underlying + * element(s) before possible renaming. This is the "internal" + * name derived from accessor ("x" from "getX"), and is not based on + * annotations or naming strategy. + */ + public abstract String getInternalName(); + + /** + * Accessor that can be called to check whether property was included + * due to an explicit marker (usually annotation), or just by naming + * convention. + * + * @return True if property was explicitly included (usually by having + * one of components being annotated); false if inclusion was purely + * due to naming or visibility definitions (that is, implicit) + * + * @since 1.9.6 + */ + public abstract boolean isExplicitlyIncluded(); + + public abstract boolean hasGetter(); + public abstract boolean hasSetter(); + public abstract boolean hasField(); + public abstract boolean hasConstructorParameter(); + + public boolean couldDeserialize() { + return getMutator() != null; + } + public boolean couldSerialize() { + return getAccessor() != null; + } + + public abstract AnnotatedMethod getGetter(); + public abstract AnnotatedMethod getSetter(); + public abstract AnnotatedField getField(); + public abstract AnnotatedParameter getConstructorParameter(); + + /** + * Method used to find accessor (getter, field to access) to use for accessing + * value of the property. + * Null if no such member exists. + */ + public abstract AnnotatedMember getAccessor(); + + /** + * Method used to find mutator (constructor parameter, setter, field) to use for + * changing value of the property. + * Null if no such member exists. + */ + public abstract AnnotatedMember getMutator(); +}
diff --git a/1.9.10/src/mapper/java/org/codehaus/jackson/map/ClassIntrospector.java b/1.9.10/src/mapper/java/org/codehaus/jackson/map/ClassIntrospector.java new file mode 100644 index 0000000..be3ed2e --- /dev/null +++ b/1.9.10/src/mapper/java/org/codehaus/jackson/map/ClassIntrospector.java
@@ -0,0 +1,117 @@ +package org.codehaus.jackson.map; + +import org.codehaus.jackson.type.JavaType; + +/** + * Helper class used to introspect features of POJO value classes + * used with Jackson. The main use is for finding out + * POJO construction (creator) and value access (getters, setters) + * methods and annotations that define configuration of using + * those methods. + */ +public abstract class ClassIntrospector<T extends BeanDescription> +{ + /* + /********************************************************** + /* Helper interfaces + /********************************************************** + */ + + /** + * Interface used for decoupling details of how mix-in annotation + * definitions are accessed (via this interface), and how + * they are stored (defined by classes that implement the interface) + */ + public interface MixInResolver + { + /** + * Method that will check if there are "mix-in" classes (with mix-in + * annotations) for given class + */ + public Class<?> findMixInClassFor(Class<?> cls); + } + + protected ClassIntrospector() { } + + /* + /********************************************************** + /* Public API: factory methods + /********************************************************** + */ + + /** + * Factory method that constructs an introspector that has all + * information needed for serialization purposes. + */ + public abstract T forSerialization(SerializationConfig cfg, JavaType type, + MixInResolver r); + + /** + * Factory method that constructs an introspector that has all + * information needed for deserialization purposes. + */ + public abstract T forDeserialization(DeserializationConfig cfg, JavaType type, + MixInResolver r); + + /** + * Factory method that constructs an introspector that has + * information necessary for creating instances of given + * class ("creator"), as well as class annotations, but + * no information on member methods + */ + public abstract T forCreation(DeserializationConfig cfg, JavaType type, + MixInResolver r); + + /** + * Factory method that constructs an introspector that only has + * information regarding annotations class itself (or its supertypes) has, + * but nothing on methods or constructors. + */ + public abstract T forClassAnnotations(MapperConfig<?> cfg, JavaType type, + MixInResolver r); + + /** + * Factory method that constructs an introspector that only has + * information regarding annotations class itself has (but NOT including + * its supertypes), but nothing on methods or constructors. + * + * @since 1.5 + */ + public abstract T forDirectClassAnnotations(MapperConfig<?> cfg, JavaType type, + MixInResolver r); + + /* + /********************************************************** + /* Deprecated methods + /********************************************************** + */ + + /** + * Factory method that constructs an introspector that only has + * information regarding annotations class itself (or its supertypes) has, + * but nothing on methods or constructors. + * + * @deprecated since 1.9, use variant that takes JavaType + */ + @Deprecated + public T forClassAnnotations(MapperConfig<?> cfg, Class<?> cls, + MixInResolver r) { + return forClassAnnotations(cfg, cfg.constructType(cls), r); + } + + /** + * Factory method that constructs an introspector that only has + * information regarding annotations class itself has (but NOT including + * its supertypes), but nothing on methods or constructors. + * + * @since 1.5 + * + * @deprecated since 1.9, use variant that takes JavaType + */ + @Deprecated + public T forDirectClassAnnotations(MapperConfig<?> cfg, Class<?> cls, + MixInResolver r) { + return forDirectClassAnnotations(cfg, cfg.constructType(cls), r); + } +} +
diff --git a/1.9.10/src/mapper/java/org/codehaus/jackson/map/ContextualDeserializer.java b/1.9.10/src/mapper/java/org/codehaus/jackson/map/ContextualDeserializer.java new file mode 100644 index 0000000..47654ce --- /dev/null +++ b/1.9.10/src/mapper/java/org/codehaus/jackson/map/ContextualDeserializer.java
@@ -0,0 +1,38 @@ +package org.codehaus.jackson.map; + +/** + * Add-on interface that {@link JsonDeserializer}s can implement to get a callback + * that can be used to create contextual instances of deserializer to use for + * handling properties of supported type. This can be useful + * for deserializers that can be configured by annotations, or should otherwise + * have differing behavior depending on what kind of property is being deserialized. + * + * @param <T> Type of deserializer to contextualize + * + * @since 1.7 + */ +public interface ContextualDeserializer<T> +{ + /** + * Method called to see if a different (or differently configured) deserializer + * is needed to deserialize values of specified property. + * Note that instance that this method is called on is typically shared one and + * as a result method should <b>NOT</b> modify this instance but rather construct + * and return a new instance. This instance should only be returned as-is, in case + * it is already suitable for use. + * + * @param config Current deserialization configuration + * @param property Method, field or constructor parameter that represents the property + * (and is used to assign deserialized value). + * Should be available; but there may be cases where caller can not provide it and + * null is passed instead (in which case impls usually pass 'this' deserializer as is) + * + * @return Deserializer to use for deserializing values of specified property; + * may be this instance or a new instance. + * + * @throws JsonMappingException + */ + public JsonDeserializer<T> createContextual(DeserializationConfig config, + BeanProperty property) + throws JsonMappingException; +}
diff --git a/1.9.10/src/mapper/java/org/codehaus/jackson/map/ContextualKeyDeserializer.java b/1.9.10/src/mapper/java/org/codehaus/jackson/map/ContextualKeyDeserializer.java new file mode 100644 index 0000000..8b2df0c --- /dev/null +++ b/1.9.10/src/mapper/java/org/codehaus/jackson/map/ContextualKeyDeserializer.java
@@ -0,0 +1,33 @@ +package org.codehaus.jackson.map; + +/** + * Add-on interface that {@link KeyDeserializer}s can implement to get a callback + * that can be used to create contextual instances of key deserializer to use for + * handling Map keys of supported type. This can be useful + * for key deserializers that can be configured by annotations, or should otherwise + * have differing behavior depending on what kind of Map property keys are being deserialized. + * + * @since 1.8 + */ +public interface ContextualKeyDeserializer +{ + /** + * Method called to see if a different (or differently configured) key deserializer + * is needed to deserialize keys of specified Map property. + * Note that instance that this method is called on is typically shared one and + * as a result method should <b>NOT</b> modify this instance but rather construct + * and return a new instance. This instance should only be returned as-is, in case + * it is already suitable for use. + * + * @param config Current deserialization configuration + * @param property Method, field or constructor parameter that declared Map for which + * contextual instance will be used. Will not be available when deserializing root-level + * Map value; otherwise should not be null. + * + * @return Key deserializer to use for deserializing keys specified Map property, + * may be this instance or a new instance. + */ + public KeyDeserializer createContextual(DeserializationConfig config, + BeanProperty property) + throws JsonMappingException; +}
diff --git a/1.9.10/src/mapper/java/org/codehaus/jackson/map/ContextualSerializer.java b/1.9.10/src/mapper/java/org/codehaus/jackson/map/ContextualSerializer.java new file mode 100644 index 0000000..ac022bf --- /dev/null +++ b/1.9.10/src/mapper/java/org/codehaus/jackson/map/ContextualSerializer.java
@@ -0,0 +1,38 @@ +package org.codehaus.jackson.map; + +/** + * Add-on interface that {@link JsonSerializer}s can implement to get a callback + * that can be used to create contextual instances of serializer to use for + * handling properties of supported type. This can be useful + * for serializers that can be configured by annotations, or should otherwise + * have differing behavior depending on what kind of property is being serialized. + * + * @param <T> Type of serializer to contextualize + * + * @since 1.7 + */ +public interface ContextualSerializer<T> +{ + /** + * Method called to see if a different (or differently configured) serializer + * is needed to serialize values of specified property. + * Note that instance that this method is called on is typically shared one and + * as a result method should <b>NOT</b> modify this instance but rather construct + * and return a new instance. This instance should only be returned as-is, in case + * it is already suitable for use. + * + * @param config Current serialization configuration + * @param property Method or field that represents the property + * (and is used to access value to serialize). + * Should be available; but there may be cases where caller can not provide it and + * null is passed instead (in which case impls usually pass 'this' serializer as is) + * + * @return Serializer to use for serializing values of specified property; + * may be this instance or a new instance. + * + * @throws JsonMappingException + */ + public JsonSerializer<T> createContextual(SerializationConfig config, + BeanProperty property) + throws JsonMappingException; +}
diff --git a/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializationConfig.java b/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializationConfig.java new file mode 100644 index 0000000..beaadb1 --- /dev/null +++ b/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializationConfig.java
@@ -0,0 +1,925 @@ +package org.codehaus.jackson.map; + +import java.text.DateFormat; +import java.util.*; + +import org.codehaus.jackson.Base64Variant; +import org.codehaus.jackson.Base64Variants; +import org.codehaus.jackson.annotate.*; +import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility; +import org.codehaus.jackson.map.deser.ValueInstantiator; +import org.codehaus.jackson.map.introspect.Annotated; +import org.codehaus.jackson.map.introspect.AnnotatedClass; +import org.codehaus.jackson.map.introspect.NopAnnotationIntrospector; +import org.codehaus.jackson.map.introspect.VisibilityChecker; +import org.codehaus.jackson.map.jsontype.SubtypeResolver; +import org.codehaus.jackson.map.jsontype.TypeResolverBuilder; +import org.codehaus.jackson.map.type.ClassKey; +import org.codehaus.jackson.map.type.TypeFactory; +import org.codehaus.jackson.map.util.ClassUtil; +import org.codehaus.jackson.map.util.LinkedNode; +import org.codehaus.jackson.node.JsonNodeFactory; +import org.codehaus.jackson.type.JavaType; + +/** + * Object that contains baseline configuration for deserialization + * process. An instance is owned by {@link ObjectMapper}, which makes + * a copy that is passed during serialization process to + * {@link DeserializerProvider} and {@link DeserializerFactory}. + *<p> + * Note: although configuration settings can be changed at any time + * (for factories and instances), they are not guaranteed to have + * effect if called after constructing relevant mapper or deserializer + * instance. This because some objects may be configured, constructed and + * cached first time they are needed. + *<p> + * As of version 1.9, the goal is to make this class eventually immutable. + * Because of this, existing methods that allow changing state of this + * instance are deprecated in favor of methods that create new instances + * with different configuration ("fluent factories") + */ +public class DeserializationConfig + extends MapperConfig.Impl<DeserializationConfig.Feature, DeserializationConfig> +{ + /** + * Enumeration that defines togglable features that guide + * the serialization feature. + */ + public enum Feature implements MapperConfig.ConfigFeature + { + /* + /****************************************************** + * Introspection features + /****************************************************** + */ + + /** + * Feature that determines whether annotation introspection + * is used for configuration; if enabled, configured + * {@link AnnotationIntrospector} will be used: if disabled, + * no annotations are considered. + *<P> + * Feature is enabled by default. + * + * @since 1.2 + */ + USE_ANNOTATIONS(true), + + /** + * Feature that determines whether "setter" methods are + * automatically detected based on standard Bean naming convention + * or not. If yes, then all public one-argument methods that + * start with prefix "set" + * are considered setters. If disabled, only methods explicitly + * annotated are considered setters. + *<p> + * Note that this feature has lower precedence than per-class + * annotations, and is only used if there isn't more granular + * configuration available. + *<P> + * Feature is enabled by default. + */ + AUTO_DETECT_SETTERS(true), + + /** + * Feature that determines whether "creator" methods are + * automatically detected by consider public constructors, + * and static single argument methods with name "valueOf". + * If disabled, only methods explicitly annotated are considered + * creator methods (except for the no-arg default constructor which + * is always considered a factory method). + *<p> + * Note that this feature has lower precedence than per-class + * annotations, and is only used if there isn't more granular + * configuration available. + *<P> + * Feature is enabled by default. + */ + AUTO_DETECT_CREATORS(true), + + /** + * Feature that determines whether non-static fields are recognized as + * properties. + * If yes, then all public member fields + * are considered as properties. If disabled, only fields explicitly + * annotated are considered property fields. + *<p> + * Note that this feature has lower precedence than per-class + * annotations, and is only used if there isn't more granular + * configuration available. + *<P> + * Feature is enabled by default. + * + * @since 1.1 + */ + AUTO_DETECT_FIELDS(true), + + /** + * Feature that determines whether otherwise regular "getter" + * methods (but only ones that handle Collections and Maps, + * not getters of other type) + * can be used for purpose of getting a reference to a Collection + * and Map to modify the property, without requiring a setter + * method. + * This is similar to how JAXB framework sets Collections and + * Maps: no setter is involved, just setter. + *<p> + * Note that such getters-as-setters methods have lower + * precedence than setters, so they are only used if no + * setter is found for the Map/Collection property. + *<p> + * Feature is enabled by default. + */ + USE_GETTERS_AS_SETTERS(true), + + /** + * Feature that determines whether method and field access + * modifier settings can be overridden when accessing + * properties. If enabled, method + * {@link java.lang.reflect.AccessibleObject#setAccessible} + * may be called to enable access to otherwise unaccessible + * objects. + */ + CAN_OVERRIDE_ACCESS_MODIFIERS(true), + + /* + /****************************************************** + /* Type conversion features + /****************************************************** + */ + + /** + * Feature that determines whether Json floating point numbers + * are to be deserialized into {@link java.math.BigDecimal}s + * if only generic type description (either {@link Object} or + * {@link Number}, or within untyped {@link java.util.Map} + * or {@link java.util.Collection} context) is available. + * If enabled such values will be deserialized as {@link java.math.BigDecimal}s; + * if disabled, will be deserialized as {@link Double}s. + * <p> + * Feature is disabled by default, meaning that "untyped" floating + * point numbers will by default be deserialized as {@link Double}s + * (choice is for performance reason -- BigDecimals are slower than + * Doubles) + */ + USE_BIG_DECIMAL_FOR_FLOATS(false), + + /** + * Feature that determines whether Json integral (non-floating-point) + * numbers are to be deserialized into {@link java.math.BigInteger}s + * if only generic type description (either {@link Object} or + * {@link Number}, or within untyped {@link java.util.Map} + * or {@link java.util.Collection} context) is available. + * If enabled such values will be deserialized as + * {@link java.math.BigInteger}s; + * if disabled, will be deserialized as "smallest" available type, + * which is either {@link Integer}, {@link Long} or + * {@link java.math.BigInteger}, depending on number of digits. + * <p> + * Feature is disabled by default, meaning that "untyped" floating + * point numbers will by default be deserialized using whatever + * is the most compact integral type, to optimize efficiency. + */ + USE_BIG_INTEGER_FOR_INTS(false), + + // [JACKSON-652] + /** + * Feature that determines whether JSON Array is mapped to + * <code>Object[]</code> or <code>List<Object></code> when binding + * "untyped" objects (ones with nominal type of <code>java.lang.Object</code>). + * If true, binds as <code>Object[]</code>; if false, as <code>List<Object></code>. + *<p> + * Feature is disabled by default, meaning that JSON arrays are bound as + * {@link java.util.List}s. + * + * @since 1.9 + */ + USE_JAVA_ARRAY_FOR_JSON_ARRAY(false), + + /** + * Feature that determines standard deserialization mechanism used for + * Enum values: if enabled, Enums are assumed to have been serialized using + * return value of <code>Enum.toString()</code>; + * if disabled, return value of <code>Enum.name()</code> is assumed to have been used. + * Since pre-1.6 method was to use Enum name, this is the default. + *<p> + * Note: this feature should usually have same value + * as {@link SerializationConfig.Feature#WRITE_ENUMS_USING_TO_STRING}. + *<p> + * For further details, check out [JACKSON-212] + * + * @since 1.6 + */ + READ_ENUMS_USING_TO_STRING(false), + + /* + /****************************************************** + * Error handling features + /****************************************************** + */ + + /** + * Feature that determines whether encountering of unknown + * properties (ones that do not map to a property, and there is + * no "any setter" or handler that can handle it) + * should result in a failure (by throwing a + * {@link JsonMappingException}) or not. + * This setting only takes effect after all other handling + * methods for unknown properties have been tried, and + * property remains unhandled. + *<p> + * Feature is enabled by default, meaning that + * {@link JsonMappingException} is thrown if an unknown property + * is encountered. This is the implicit default prior to + * introduction of the feature. + * + * @since 1.2 + */ + FAIL_ON_UNKNOWN_PROPERTIES(true), + + /** + * Feature that determines whether encountering of JSON null + * is an error when deserializing into Java primitive types + * (like 'int' or 'double'). If it is, a JsonProcessingException + * is thrown to indicate this; if not, default value is used + * (0 for 'int', 0.0 for double, same defaulting as what JVM uses). + *<p> + * Feature is disabled by default (to be consistent with behavior + * of Jackson 1.6), + * i.e. to allow use of nulls for primitive properties. + * + * @since 1.7 + */ + FAIL_ON_NULL_FOR_PRIMITIVES(false), + + /** + * Feature that determines whether JSON integer numbers are valid + * values to be used for deserializing Java enum values. + * If set to 'false' numbers are acceptable and are used to map to + * ordinal() of matching enumeration value; if 'true', numbers are + * not allowed and a {@link JsonMappingException} will be thrown. + * Latter behavior makes sense if there is concern that accidental + * mapping from integer values to enums might happen (and when enums + * are always serialized as JSON Strings) + *<p> + * Feature is disabled by default (to be consistent with behavior + * of Jackson 1.6), + * i.e. to allow use of JSON integers for Java enums. + * + * @since 1.7 + */ + FAIL_ON_NUMBERS_FOR_ENUMS(false), + + /** + * Feature that determines whether Jackson code should catch + * and wrap {@link Exception}s (but never {@link Error}s!) + * to add additional information about + * location (within input) of problem or not. If enabled, + * most exceptions will be caught and re-thrown (exception + * specifically being that {@link java.io.IOException}s may be passed + * as is, since they are declared as throwable); this can be + * convenient both in that all exceptions will be checked and + * declared, and so there is more contextual information. + * However, sometimes calling application may just want "raw" + * unchecked exceptions passed as is. + *<p> + * Feature is enabled by default, and is similar in behavior + * to default prior to 1.7. + * + * @since 1.7 + */ + WRAP_EXCEPTIONS(true), + + /* + /****************************************************** + * Structural conversion features + /****************************************************** + */ + + /** + * Feature that determines whether it is acceptable to coerce non-array + * (in JSON) values to work with Java collection (arrays, java.util.Collection) + * types. If enabled, collection deserializers will try to handle non-array + * values as if they had "implicit" surrounding JSON array. + * This feature is meant to be used for compatibility/interoperability reasons, + * to work with packages (such as XML-to-JSON converters) that leave out JSON + * array in cases where there is just a single element in array. + * + * @since 1.8 + */ + ACCEPT_SINGLE_VALUE_AS_ARRAY(false), + + /** + * Feature to allow "unwrapping" root-level JSON value, to match setting of + * {@link SerializationConfig.Feature#WRAP_ROOT_VALUE} used for serialization. + * Will verify that the root JSON value is a JSON Object, and that it has + * a single property with expected root name. If not, a + * {@link JsonMappingException} is thrown; otherwise value of the wrapped property + * will be deserialized as if it was the root value. + * + * @since 1.9 + */ + UNWRAP_ROOT_VALUE(false), + + /* + /****************************************************** + * Value conversion features + /****************************************************** + */ + + /** + * Feature that can be enabled to allow JSON empty String + * value ("") to be bound to POJOs as null. + * If disabled, standard POJOs can only be bound from JSON null or + * JSON Object (standard meaning that no custom deserializers or + * constructors are defined; both of which can add support for other + * kinds of JSON values); if enable, empty JSON String can be taken + * to be equivalent of JSON null. + * + * @since 1.8 + */ + ACCEPT_EMPTY_STRING_AS_NULL_OBJECT(false) + + ; + + final boolean _defaultState; + + private Feature(boolean defaultState) { + _defaultState = defaultState; + } + + @Override + public boolean enabledByDefault() { return _defaultState; } + + @Override + public int getMask() { return (1 << ordinal()); } + } + + /* + /********************************************************** + /* Configuration settings for deserialization + /********************************************************** + */ + + /** + * Linked list that contains all registered problem handlers. + * Implementation as front-added linked list allows for sharing + * of the list (tail) without copying the list. + */ + protected LinkedNode<DeserializationProblemHandler> _problemHandlers; + + /** + * Factory used for constructing {@link org.codehaus.jackson.JsonNode} instances. + * + * @since 1.6 + */ + protected final JsonNodeFactory _nodeFactory; + + /** + * Feature flag from {@link SerializationConfig} which is needed to + * know if serializer will by default sort properties in + * alphabetic order. + *<p> + * Note that although this property is not marked as final, + * it is handled like it was, except for the fact that it is + * assigned with a call to {@link #passSerializationFeatures} + * instead of constructor. + * + * @since 1.9 + */ + protected boolean _sortPropertiesAlphabetically; + + /* + /********************************************************** + /* Life-cycle, constructors + /********************************************************** + */ + + /** + * Constructor used by ObjectMapper to create default configuration object instance. + */ + public DeserializationConfig(ClassIntrospector<? extends BeanDescription> intr, + AnnotationIntrospector annIntr, VisibilityChecker<?> vc, + SubtypeResolver subtypeResolver, PropertyNamingStrategy propertyNamingStrategy, + TypeFactory typeFactory, HandlerInstantiator handlerInstantiator) + { + super(intr, annIntr, vc, subtypeResolver, propertyNamingStrategy, typeFactory, handlerInstantiator, + collectFeatureDefaults(DeserializationConfig.Feature.class)); + _nodeFactory = JsonNodeFactory.instance; + } + + /** + * @since 1.8 + */ + protected DeserializationConfig(DeserializationConfig src) { + this(src, src._base); + } + + /** + * Copy constructor used to create a non-shared instance with given mix-in + * annotation definitions and subtype resolver. + * + * @since 1.8 + */ + private DeserializationConfig(DeserializationConfig src, + HashMap<ClassKey,Class<?>> mixins, SubtypeResolver str) + { + this(src, src._base); + _mixInAnnotations = mixins; + _subtypeResolver = str; + } + + /** + * @since 1.8 + */ + protected DeserializationConfig(DeserializationConfig src, MapperConfig.Base base) + { + super(src, base, src._subtypeResolver); + _problemHandlers = src._problemHandlers; + _nodeFactory = src._nodeFactory; + _sortPropertiesAlphabetically = src._sortPropertiesAlphabetically; + } + + /** + * @since 1.8 + */ + protected DeserializationConfig(DeserializationConfig src, JsonNodeFactory f) + { + super(src); + _problemHandlers = src._problemHandlers; + _nodeFactory = f; + _sortPropertiesAlphabetically = src._sortPropertiesAlphabetically; + } + + /** + * @since 1.9 + */ + protected DeserializationConfig(DeserializationConfig src, int featureFlags) + { + super(src, featureFlags); + _problemHandlers = src._problemHandlers; + _nodeFactory = src._nodeFactory; + _sortPropertiesAlphabetically = src._sortPropertiesAlphabetically; + } + + /** + * Helper method to be called right after creating a non-shared + * instance, needed to pass state of feature(s) shared with + * SerializationConfig. + * + * Since 1.9 + */ + protected DeserializationConfig passSerializationFeatures(int serializationFeatureFlags) + { + _sortPropertiesAlphabetically = (serializationFeatureFlags + & SerializationConfig.Feature.SORT_PROPERTIES_ALPHABETICALLY.getMask()) != 0; + return this; + } + + /* + /********************************************************** + /* Life-cycle, factory methods from MapperConfig + /********************************************************** + */ + + @Override + public DeserializationConfig withClassIntrospector(ClassIntrospector<? extends BeanDescription> ci) { + return new DeserializationConfig(this, _base.withClassIntrospector(ci)); + } + + @Override + public DeserializationConfig withAnnotationIntrospector(AnnotationIntrospector ai) { + return new DeserializationConfig(this, _base.withAnnotationIntrospector(ai)); + } + + @Override + public DeserializationConfig withVisibilityChecker(VisibilityChecker<?> vc) { + return new DeserializationConfig(this, _base.withVisibilityChecker(vc)); + } + + @Override + public DeserializationConfig withVisibility(JsonMethod forMethod, JsonAutoDetect.Visibility visibility) { + return new DeserializationConfig(this, _base.withVisibility(forMethod, visibility)); + } + + @Override + public DeserializationConfig withTypeResolverBuilder(TypeResolverBuilder<?> trb) { + return new DeserializationConfig(this, _base.withTypeResolverBuilder(trb)); + } + + @Override + public DeserializationConfig withSubtypeResolver(SubtypeResolver str) + { + DeserializationConfig cfg = new DeserializationConfig(this); + cfg._subtypeResolver = str; + return cfg; + } + + @Override + public DeserializationConfig withPropertyNamingStrategy(PropertyNamingStrategy pns) { + return new DeserializationConfig(this, _base.withPropertyNamingStrategy(pns)); + } + + @Override + public DeserializationConfig withTypeFactory(TypeFactory tf) { + return (tf == _base.getTypeFactory()) ? this : new DeserializationConfig(this, _base.withTypeFactory(tf)); + } + + @Override + public DeserializationConfig withDateFormat(DateFormat df) { + return (df == _base.getDateFormat()) ? this : new DeserializationConfig(this, _base.withDateFormat(df)); + } + + @Override + public DeserializationConfig withHandlerInstantiator(HandlerInstantiator hi) { + return (hi == _base.getHandlerInstantiator()) ? this : new DeserializationConfig(this, _base.withHandlerInstantiator(hi)); + } + + @Override + public DeserializationConfig withInsertedAnnotationIntrospector(AnnotationIntrospector ai) { + return new DeserializationConfig(this, _base.withInsertedAnnotationIntrospector(ai)); + } + + @Override + public DeserializationConfig withAppendedAnnotationIntrospector(AnnotationIntrospector ai) { + return new DeserializationConfig(this, _base.withAppendedAnnotationIntrospector(ai)); + } + + /* + /********************************************************** + /* Life-cycle, deserialization-specific factory methods + /********************************************************** + */ + + /** + * Fluent factory method that will construct a new instance with + * specified {@link JsonNodeFactory} + * + * @since 1.8 + */ + public DeserializationConfig withNodeFactory(JsonNodeFactory f) { + return new DeserializationConfig(this, f); + } + + /** + * Fluent factory method that will construct and return a new configuration + * object instance with specified features enabled. + * + * @since 1.9 + */ + @Override + public DeserializationConfig with(DeserializationConfig.Feature... features) + { + int flags = _featureFlags; + for (Feature f : features) { + flags |= f.getMask(); + } + return new DeserializationConfig(this, flags); + } + + /** + * Fluent factory method that will construct and return a new configuration + * object instance with specified features disabled. + * + * @since 1.9 + */ + @Override + public DeserializationConfig without(DeserializationConfig.Feature... features) + { + int flags = _featureFlags; + for (Feature f : features) { + flags &= ~f.getMask(); + } + return new DeserializationConfig(this, flags); + } + + /* + /********************************************************** + /* MapperConfig implementation + /********************************************************** + */ + + /** + * Method that checks class annotations that the argument Object has, + * and modifies settings of this configuration object accordingly, + * similar to how those annotations would affect actual value classes + * annotated with them, but with global scope. Note that not all + * annotations have global significance, and thus only subset of + * Jackson annotations will have any effect. + *<p> + * Ones that are known to have effect are: + *<ul> + * <li>{@link JsonAutoDetect}</li> + *</ul> + * + * @param cls Class of which class annotations to use + * for changing configuration settings + * + * @deprecated Since 1.9, it is preferably to explicitly configure + * instances; this method also modifies existing instance which is + * against immutable design goals of this class. + */ + @Deprecated + @Override + public void fromAnnotations(Class<?> cls) + { + /* no class annotation for: + * + * - CAN_OVERRIDE_ACCESS_MODIFIERS + * - USE_BIG_DECIMAL_FOR_FLOATS + * - USE_BIG_INTEGER_FOR_INTS + * - USE_GETTERS_AS_SETTERS + */ + + /* 10-Jul-2009, tatu: Should be able to just pass null as + * 'MixInResolver'; no mix-ins set at this point + */ + AnnotationIntrospector ai = getAnnotationIntrospector(); + AnnotatedClass ac = AnnotatedClass.construct(cls, ai, null); + // visibility checks handled via separate checker object... + VisibilityChecker<?> prevVc = getDefaultVisibilityChecker(); + _base = _base.withVisibilityChecker(ai.findAutoDetectVisibility(ac, prevVc)); + } + + /** + * Method that is called to create a non-shared copy of the configuration + * to be used for a deserialization operation. + * Note that if sub-classing + * and sub-class has additional instance methods, + * this method <b>must</b> be overridden to produce proper sub-class + * instance. + */ + @Override + public DeserializationConfig createUnshared(SubtypeResolver subtypeResolver) + { + HashMap<ClassKey,Class<?>> mixins = _mixInAnnotations; + // ensure that we assume sharing at this point: + _mixInAnnotationsShared = true; + return new DeserializationConfig(this, mixins, subtypeResolver); + } + + /** + * Method for getting {@link AnnotationIntrospector} configured + * to introspect annotation values used for configuration. + */ + @Override + public AnnotationIntrospector getAnnotationIntrospector() + { + /* 29-Jul-2009, tatu: it's now possible to disable use of + * annotations; can be done using "no-op" introspector + */ + if (isEnabled(Feature.USE_ANNOTATIONS)) { + return super.getAnnotationIntrospector(); + } + return NopAnnotationIntrospector.instance; + } + + /** + * Accessor for getting bean description that only contains class + * annotations: useful if no getter/setter/creator information is needed. + *<p> + * Note: part of {@link MapperConfig} since 1.7 + */ + @SuppressWarnings("unchecked") + @Override + public <T extends BeanDescription> T introspectClassAnnotations(JavaType type) { + return (T) getClassIntrospector().forClassAnnotations(this, type, this); + } + + /** + * Accessor for getting bean description that only contains immediate class + * annotations: ones from the class, and its direct mix-in, if any, but + * not from super types. + *<p> + * Note: part of {@link MapperConfig} since 1.7 + */ + @Override + @SuppressWarnings("unchecked") + public <T extends BeanDescription> T introspectDirectClassAnnotations(JavaType type) { + return (T) getClassIntrospector().forDirectClassAnnotations(this, type, this); + } + + @Override + public boolean isAnnotationProcessingEnabled() { + return isEnabled(Feature.USE_ANNOTATIONS); + } + + @Override + public boolean canOverrideAccessModifiers() { + return isEnabled(Feature.CAN_OVERRIDE_ACCESS_MODIFIERS); + } + + @Override + public boolean shouldSortPropertiesAlphabetically() { + return _sortPropertiesAlphabetically; + } + + @Override + public VisibilityChecker<?> getDefaultVisibilityChecker() + { + VisibilityChecker<?> vchecker = super.getDefaultVisibilityChecker(); + if (!isEnabled(DeserializationConfig.Feature.AUTO_DETECT_SETTERS)) { + vchecker = vchecker.withSetterVisibility(Visibility.NONE); + } + if (!isEnabled(DeserializationConfig.Feature.AUTO_DETECT_CREATORS)) { + vchecker = vchecker.withCreatorVisibility(Visibility.NONE); + } + if (!isEnabled(DeserializationConfig.Feature.AUTO_DETECT_FIELDS)) { + vchecker = vchecker.withFieldVisibility(Visibility.NONE); + } + return vchecker; + } + + /* + /********************************************************** + /* MapperConfig overrides for 1.8 backwards compatibility + /********************************************************** + */ + + /* NOTE: these are overloads we MUST have, but that were missing + * from 1.9.0 and 1.9.1. Type erasure can bite in the ass... + *<p> + * NOTE: will remove either these variants, or base class one, in 2.0. + */ + + /** + * An overload for {@link MapperConfig#isEnabled(MapperConfig.ConfigFeature)}, + * needed for backwards-compatibility. + *<p> + * NOTE: will remove either this variant, or base class one, in 2.0./ + * + * @since 1.0 However, note that version 1.9.0 and 1.9.1 accidentally missed + * this overloaded variant + */ + public boolean isEnabled(DeserializationConfig.Feature f) { + return (_featureFlags & f.getMask()) != 0; + } + + /** + * @deprecated Since 1.9, it is preferable to use {@link #with} instead; + * this method is deprecated as it modifies current instance instead of + * creating a new one (as the goal is to make this class immutable) + */ + @Deprecated + @Override + public void enable(DeserializationConfig.Feature f) { + super.enable(f); + } + + /** + * @deprecated Since 1.9, it is preferable to use {@link #without} instead; + * this method is deprecated as it modifies current instance instead of + * creating a new one (as the goal is to make this class immutable) + */ + @Deprecated + @Override + public void disable(DeserializationConfig.Feature f) { + super.disable(f); + } + + /** + * @deprecated Since 1.9, it is preferable to use {@link #without} and {@link #with} instead; + * this method is deprecated as it modifies current instance instead of + * creating a new one (as the goal is to make this class immutable) + */ + @Deprecated + @Override + public void set(DeserializationConfig.Feature f, boolean state) { + super.set(f, state); + } + + /* + /********************************************************** + /* Problem handlers + /********************************************************** + */ + + /** + * Method for getting head of the problem handler chain. May be null, + * if no handlers have been added. + */ + public LinkedNode<DeserializationProblemHandler> getProblemHandlers() + { + return _problemHandlers; + } + + /** + * Method that can be used to add a handler that can (try to) + * resolve non-fatal deserialization problems. + */ + public void addHandler(DeserializationProblemHandler h) + { + /* Sanity check: let's prevent adding same handler multiple + * times + */ + if (!LinkedNode.contains(_problemHandlers, h)) { + _problemHandlers = new LinkedNode<DeserializationProblemHandler>(h, _problemHandlers); + } + } + + /** + * Method for removing all configured problem handlers; usually done to replace + * existing handler(s) with different one(s) + * + * @since 1.1 + */ + public void clearHandlers() + { + _problemHandlers = null; + } + + /* + /********************************************************** + /* Other configuration + /********************************************************** + */ + + /** + * Method called during deserialization if Base64 encoded content + * needs to be decoded. Default version just returns default Jackson + * uses, which is modified-mime which does not add linefeeds (because + * those would have to be escaped in JSON strings). + */ + public Base64Variant getBase64Variant() { + return Base64Variants.getDefaultVariant(); + } + + /** + * @since 1.6 + */ + public final JsonNodeFactory getNodeFactory() { + return _nodeFactory; + } + + /* + /********************************************************** + /* Introspection methods + /********************************************************** + */ + + /** + * Method that will introspect full bean properties for the purpose + * of building a bean deserializer + * + * @param type Type of class to be introspected + */ + @SuppressWarnings("unchecked") + public <T extends BeanDescription> T introspect(JavaType type) { + return (T) getClassIntrospector().forDeserialization(this, type, this); + } + + /** + * Method that will introspect subset of bean properties needed to + * construct bean instance. + */ + @SuppressWarnings("unchecked") + public <T extends BeanDescription> T introspectForCreation(JavaType type) { + return (T) getClassIntrospector().forCreation(this, type, this); + } + + /* + /********************************************************** + /* Extended API: handler instantiation + /********************************************************** + */ + + @SuppressWarnings("unchecked") + public JsonDeserializer<Object> deserializerInstance(Annotated annotated, + Class<? extends JsonDeserializer<?>> deserClass) + { + HandlerInstantiator hi = getHandlerInstantiator(); + if (hi != null) { + JsonDeserializer<?> deser = hi.deserializerInstance(this, annotated, deserClass); + if (deser != null) { + return (JsonDeserializer<Object>) deser; + } + } + return (JsonDeserializer<Object>) ClassUtil.createInstance(deserClass, canOverrideAccessModifiers()); + } + + public KeyDeserializer keyDeserializerInstance(Annotated annotated, + Class<? extends KeyDeserializer> keyDeserClass) + { + HandlerInstantiator hi = getHandlerInstantiator(); + if (hi != null) { + KeyDeserializer keyDeser = hi.keyDeserializerInstance(this, annotated, keyDeserClass); + if (keyDeser != null) { + return (KeyDeserializer) keyDeser; + } + } + return (KeyDeserializer) ClassUtil.createInstance(keyDeserClass, canOverrideAccessModifiers()); + } + + public ValueInstantiator valueInstantiatorInstance(Annotated annotated, + Class<? extends ValueInstantiator> instClass) + { + HandlerInstantiator hi = getHandlerInstantiator(); + if (hi != null) { + ValueInstantiator inst = hi.valueInstantiatorInstance(this, annotated, instClass); + if (inst != null) { + return (ValueInstantiator) inst; + } + } + return (ValueInstantiator) ClassUtil.createInstance(instClass, canOverrideAccessModifiers()); + } +}
diff --git a/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializationContext.java b/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializationContext.java new file mode 100644 index 0000000..99c5925 --- /dev/null +++ b/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializationContext.java
@@ -0,0 +1,258 @@ +package org.codehaus.jackson.map; + +import java.io.IOException; +import java.util.*; + +import org.codehaus.jackson.*; +import org.codehaus.jackson.map.type.TypeFactory; +import org.codehaus.jackson.map.util.ArrayBuilders; +import org.codehaus.jackson.map.util.ObjectBuffer; +import org.codehaus.jackson.node.JsonNodeFactory; +import org.codehaus.jackson.type.JavaType; + +/** + * Context for deserialization process. Used to allow passing in configuration + * settings and reusable temporary objects (scrap arrays, containers). + */ +public abstract class DeserializationContext +{ + protected final DeserializationConfig _config; + + /** + * @since 1.7 + */ + protected final int _featureFlags; + + /* + /********************************************************** + /* Life-cycle + /********************************************************** + */ + + protected DeserializationContext(DeserializationConfig config) + { + _config = config; + _featureFlags = config._featureFlags; + } + + /* + /********************************************************** + /* Configuration methods + /********************************************************** + */ + + /** + * Method for accessing configuration setting object for + * currently active deserialization. + */ + public DeserializationConfig getConfig() { return _config; } + + /** + * Returns provider that can be used for dynamically locating + * other deserializers during runtime. + * + * @since 1.5 + */ + public DeserializerProvider getDeserializerProvider() { + // will be overridden by impl class + return null; + } + + /** + * Convenience method for checking whether specified on/off + * feature is enabled + */ + public boolean isEnabled(DeserializationConfig.Feature feat) { + /* 03-Dec-2010, tatu: minor shortcut; since this is called quite often, + * let's use a local copy of feature settings: + */ + return (_featureFlags & feat.getMask()) != 0; + } + + /** + * Convenience method for accessing the default Base64 encoding + * used for decoding base64 encoded binary content. + * Same as calling: + *<pre> + * getConfig().getBase64Variant(); + *</pre> + */ + public Base64Variant getBase64Variant() { + return _config.getBase64Variant(); + } + + /** + * Accessor for getting access to the underlying JSON parser used + * for deserialization. + */ + public abstract JsonParser getParser(); + + public final JsonNodeFactory getNodeFactory() { + return _config.getNodeFactory(); + } + + /** + * @since 1.8 + */ + public JavaType constructType(Class<?> cls) { + return _config.constructType(cls); + } + + /** + * @since 1.9 + */ + public TypeFactory getTypeFactory() { + return _config.getTypeFactory(); + } + + /** + * @since 1.9 + */ + public abstract Object findInjectableValue(Object valueId, + BeanProperty forProperty, Object beanInstance); + + /* + /********************************************************** + /* Methods for accessing reusable/recyclable helper objects + /********************************************************** + */ + + /** + * Method that can be used to get access to a reusable ObjectBuffer, + * useful for efficiently constructing Object arrays and Lists. + * Note that leased buffers should be returned once deserializer + * is done, to allow for reuse during same round of deserialization. + */ + public abstract ObjectBuffer leaseObjectBuffer(); + + /** + * Method to call to return object buffer previously leased with + * {@link #leaseObjectBuffer}. + * + * @param buf Returned object buffer + */ + public abstract void returnObjectBuffer(ObjectBuffer buf); + + /** + * Method for accessing object useful for building arrays of + * primitive types (such as int[]). + */ + public abstract ArrayBuilders getArrayBuilders(); + + /* + /********************************************************** + /* Parsing methods that may use reusable/-cyclable objects + /********************************************************** + */ + + /** + * Convenience method for parsing a Date from given String, using + * currently configured date format (accessed using + * {@link DeserializationConfig#getDateFormat()}). + *<p> + * Implementation will handle thread-safety issues related to + * date formats such that first time this method is called, + * date format is cloned, and cloned instance will be retained + * for use during this deserialization round. + */ + public abstract java.util.Date parseDate(String dateStr) + throws IllegalArgumentException; + + /** + * Convenience method for constructing Calendar instance set + * to specified time, to be modified and used by caller. + */ + public abstract Calendar constructCalendar(Date d); + + /* + /********************************************************** + /* Methods for problem handling, reporting + /********************************************************** + */ + + /** + * Method deserializers can call to inform configured {@link DeserializationProblemHandler}s + * of an unrecognized property. + * + * @return True if there was a configured problem handler that was able to handle the + * proble + * + * @since 1.5 + */ + public abstract boolean handleUnknownProperty(JsonParser jp, JsonDeserializer<?> deser, Object instanceOrClass, String propName) + throws IOException, JsonProcessingException; + + /** + * Helper method for constructing generic mapping exception for specified type + */ + public abstract JsonMappingException mappingException(Class<?> targetClass); + + /** + * @since 1.9 + */ + public abstract JsonMappingException mappingException(Class<?> targetClass, JsonToken t); + + /** + * Helper method for constructing generic mapping exception with specified + * message and current location information + * + * @since 1.7 + */ + public JsonMappingException mappingException(String message) + { + return JsonMappingException.from(getParser(), message); + } + + /** + * Helper method for constructing instantiation exception for specified type, + * to indicate problem with physically constructing instance of + * specified class (missing constructor, exception from constructor) + */ + public abstract JsonMappingException instantiationException(Class<?> instClass, Throwable t); + + public abstract JsonMappingException instantiationException(Class<?> instClass, String msg); + + /** + * Helper method for constructing exception to indicate that input JSON + * String was not in recognized format for deserializing into given type. + */ + public abstract JsonMappingException weirdStringException(Class<?> instClass, String msg); + + /** + * Helper method for constructing exception to indicate that input JSON + * Number was not suitable for deserializing into given type. + */ + public abstract JsonMappingException weirdNumberException(Class<?> instClass, String msg); + + /** + * Helper method for constructing exception to indicate that given JSON + * Object field name was not in format to be able to deserialize specified + * key type. + */ + public abstract JsonMappingException weirdKeyException(Class<?> keyClass, String keyValue, String msg); + + /** + * Helper method for indicating that the current token was expected to be another + * token. + */ + public abstract JsonMappingException wrongTokenException(JsonParser jp, JsonToken expToken, String msg); + + /** + * Helper method for constructing exception to indicate that JSON Object + * field name did not map to a known property of type being + * deserialized. + * + * @param instanceOrClass Either value being populated (if one has been + * instantiated), or Class that indicates type that would be (or + * have been) instantiated + */ + public abstract JsonMappingException unknownFieldException(Object instanceOrClass, String fieldName); + + /** + * Helper method for constructing exception to indicate that given + * type id (parsed from JSON) could not be converted to a Java type. + * + * @since 1.5 + */ + public abstract JsonMappingException unknownTypeException(JavaType baseType, String id); +}
diff --git a/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializationProblemHandler.java b/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializationProblemHandler.java new file mode 100644 index 0000000..925ff14 --- /dev/null +++ b/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializationProblemHandler.java
@@ -0,0 +1,56 @@ +package org.codehaus.jackson.map; + +import java.io.IOException; + +import org.codehaus.jackson.JsonProcessingException; + +/** + * This is the class that can be registered (via + * {@link DeserializationConfig} object owner by + * {@link ObjectMapper}) to get calledn when a potentially + * recoverable problem is encountered during deserialization + * process. Handlers can try to resolve the problem, throw + * an exception or do nothing. + *<p> + * Default implementations for all methods implemented minimal + * "do nothing" functionality, which is roughly equivalent to + * not having a registered listener at all. This allows for + * only implemented handler methods one is interested in, without + * handling other cases. + * + * @author tatu + */ +public abstract class DeserializationProblemHandler +{ + /** + * Method called when a Json Map ("Object") entry with an unrecognized + * name is encountered. + * Content (supposedly) matching the property are accessible via + * parser that can be obtained from passed deserialization context. + * Handler can also choose to skip the content; if so, it MUST return + * true to indicate it did handle property succesfully. + * Skipping is usually done like so: + *<pre> + * ctxt.getParser().skipChildren(); + *</pre> + *<p> + * Note: version 1.2 added new deserialization feature + * (<code>DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES</code>). + * It will only have effect <b>after</b> handler is called, and only + * if handler did <b>not</b> handle the problem. + * + * @param beanOrClass Either bean instance being deserialized (if one + * has been instantiated so far); or Class that indicates type that + * will be instantiated (if no instantiation done yet: for example + * when bean uses non-default constructors) + * + * @return True if the problem was succesfully resolved (and content available + * used or skipped); false if listen + */ + public boolean handleUnknownProperty(DeserializationContext ctxt, JsonDeserializer<?> deserializer, + Object beanOrClass, String propertyName) + throws IOException, JsonProcessingException + { + return false; + } +}
diff --git a/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializerFactory.java b/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializerFactory.java new file mode 100644 index 0000000..29d2cc7 --- /dev/null +++ b/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializerFactory.java
@@ -0,0 +1,352 @@ +package org.codehaus.jackson.map; + +import org.codehaus.jackson.map.deser.BeanDeserializerModifier; +import org.codehaus.jackson.map.deser.ValueInstantiator; +import org.codehaus.jackson.map.deser.ValueInstantiators; +import org.codehaus.jackson.map.introspect.BasicBeanDescription; +import org.codehaus.jackson.map.type.*; +import org.codehaus.jackson.type.JavaType; + +/** + * Abstract class that defines API used by {@link DeserializerProvider} + * to obtain actual + * {@link JsonDeserializer} instances from multiple distinct factories. + *<p> + * Since there are multiple broad categories of deserializers, there are + * multiple factory methods: + *<ul> + * <li>For JSON "Array" type, we need 2 methods: one to deal with expected + * Java arrays ({@link #createArrayDeserializer}) + * and the other for other Java containers like {@link java.util.List}s + * and {@link java.util.Set}s ({@link #createCollectionDeserializer(DeserializationConfig, DeserializerProvider, CollectionType, BeanProperty)}) + * </li> + * <li>For JSON "Object" type, we need 2 methods: one to deal with + * expected Java {@link java.util.Map}s + * ({@link #createMapDeserializer}), and another for POJOs + * ({@link #createBeanDeserializer(DeserializationConfig, DeserializerProvider, JavaType, BeanProperty)}. + * </li> + * <li>For Tree Model ({@link org.codehaus.jackson.JsonNode}) properties there is + * {@link #createTreeDeserializer(DeserializationConfig, DeserializerProvider, JavaType, BeanProperty)} + * <li>For enumerated types ({@link java.lang.Enum}) there is + * {@link #createEnumDeserializer(DeserializationConfig, DeserializerProvider, JavaType, BeanProperty)} + * </li> + * <li>For all other types, {@link #createBeanDeserializer(DeserializationConfig, DeserializerProvider, JavaType, BeanProperty)} + * is used. + * </ul> + *<p> + * All above methods take 2 type arguments, except for the first one + * which takes just a single argument. + */ +public abstract class DeserializerFactory +{ + protected final static Deserializers[] NO_DESERIALIZERS = new Deserializers[0]; + + /* + /********************************************************** + /* Helper class to contain configuration settings + /********************************************************** + */ + + /** + * Configuration settings container class for bean deserializer factory + * + * @since 1.7 + */ + public abstract static class Config + { + /** + * Fluent/factory method used to construct a configuration object that + * has same deserializer providers as this instance, plus one specified + * as argument. Additional provider will be added before existing ones, + * meaning it has priority over existing definitions. + */ + public abstract Config withAdditionalDeserializers(Deserializers additional); + + /** + * Fluent/factory method used to construct a configuration object that + * has same key deserializer providers as this instance, plus one specified + * as argument. Additional provider will be added before existing ones, + * meaning it has priority over existing definitions. + */ + public abstract Config withAdditionalKeyDeserializers(KeyDeserializers additional); + + /** + * Fluent/factory method used to construct a configuration object that + * has same configuration as this instance plus one additional + * deserialiazer modifier. Added modifier has the highest priority (that is, it + * gets called before any already registered modifier). + */ + public abstract Config withDeserializerModifier(BeanDeserializerModifier modifier); + + /** + * Fluent/factory method used to construct a configuration object that + * has same configuration as this instance plus one additional + * abstract type resolver. + * Added resolver has the highest priority (that is, it + * gets called before any already registered resolver). + * + * @since 1.8 + */ + public abstract Config withAbstractTypeResolver(AbstractTypeResolver resolver); + + /** + * Fluent/factory method used to construct a configuration object that + * has same configuration as this instance plus specified additional + * value instantiator provider object. + * Added instantiator provider has the highest priority (that is, it + * gets called before any already registered resolver). + * + * @param instantiators Object that can provide {@link org.codehaus.jackson.map.deser.ValueInstantiator}s for + * constructing POJO values during deserialization + * + * @since 1.9 + */ + public abstract Config withValueInstantiators(ValueInstantiators instantiators); + + public abstract Iterable<Deserializers> deserializers(); + + /** + * @since 1.8 + */ + public abstract Iterable<KeyDeserializers> keyDeserializers(); + + public abstract Iterable<BeanDeserializerModifier> deserializerModifiers(); + + /** + * @since 1.8 + */ + public abstract Iterable<AbstractTypeResolver> abstractTypeResolvers(); + + /** + * @since 1.9 + */ + public abstract Iterable<ValueInstantiators> valueInstantiators(); + + public abstract boolean hasDeserializers(); + + /** + * @since 1.8 + */ + public abstract boolean hasKeyDeserializers(); + + public abstract boolean hasDeserializerModifiers(); + + /** + * @since 1.8 + */ + public abstract boolean hasAbstractTypeResolvers(); + + /** + * @since 1.9 + */ + public abstract boolean hasValueInstantiators(); + } + + /* + /******************************************************** + /* Configuration handling + /******************************************************** + */ + + /** + * @since 1.7 + */ + public abstract Config getConfig(); + + /** + * Method used for creating a new instance of this factory, but with different + * configuration. Reason for specifying factory method (instead of plain constructor) + * is to allow proper sub-classing of factories. + *<p> + * Note that custom sub-classes <b>must override</b> implementation + * of this method, as it usually requires instantiating a new instance of + * factory type. Check out javadocs for + * {@link org.codehaus.jackson.map.deser.BeanDeserializerFactory} for more details. + * + * @since 1.7 + */ + public abstract DeserializerFactory withConfig(Config config); + + /** + * Convenience method for creating a new factory instance with additional deserializer + * provider. + * + * @since 1.7 + */ + public final DeserializerFactory withAdditionalDeserializers(Deserializers additional) { + return withConfig(getConfig().withAdditionalDeserializers(additional)); + } + + /** + * Convenience method for creating a new factory instance with additional + * {@link KeyDeserializers}. + * + * @since 1.8 + */ + public final DeserializerFactory withAdditionalKeyDeserializers(KeyDeserializers additional) { + return withConfig(getConfig().withAdditionalKeyDeserializers(additional)); + } + + /** + * Convenience method for creating a new factory instance with additional + * {@link BeanDeserializerModifier}. + * + * @since 1.7 + */ + public final DeserializerFactory withDeserializerModifier(BeanDeserializerModifier modifier) { + return withConfig(getConfig().withDeserializerModifier(modifier)); + } + + /** + * Convenience method for creating a new factory instance with additional + * {@link AbstractTypeResolver}. + * + * @since 1.7 + */ + public final DeserializerFactory withAbstractTypeResolver(AbstractTypeResolver resolver) { + return withConfig(getConfig().withAbstractTypeResolver(resolver)); + } + + /** + * Convenience method for creating a new factory instance with additional + * {@link ValueInstantiators}. + * + * @since 1.9 + */ + public final DeserializerFactory withValueInstantiators(ValueInstantiators instantiators) { + return withConfig(getConfig().withValueInstantiators(instantiators)); + } + + /* + /********************************************************** + /* Basic DeserializerFactory API: + /********************************************************** + */ + + /** + * Method that can be called to try to resolve an abstract type + * (interface, abstract class) into a concrete type, or at least + * something "more concrete" (abstract class instead of interface). + * Will either return passed type, or a more specific type. + * + * @since 1.9 + */ + public abstract JavaType mapAbstractType(DeserializationConfig config, JavaType type) + throws JsonMappingException; + + /** + * Method that is to find all creators (constructors, factory methods) + * for the bean type to deserialize. + * + * @since 1.9 + */ + public abstract ValueInstantiator findValueInstantiator(DeserializationConfig config, + BasicBeanDescription beanDesc) + throws JsonMappingException; + + /** + * Method called to create (or, for completely immutable deserializers, + * reuse) a deserializer that can convert JSON content into values of + * specified Java "bean" (POJO) type. + * At this point it is known that the type is not otherwise recognized + * as one of structured types (array, Collection, Map) or a well-known + * JDK type (enum, primitives/wrappers, String); this method only + * gets called if other options are exhausted. This also means that + * this method can be overridden to add support for custom types. + * + * @param type Type to be deserialized + * @param p Provider that can be called to create deserializers for + * contained member types + */ + public abstract JsonDeserializer<Object> createBeanDeserializer(DeserializationConfig config, DeserializerProvider p, + JavaType type, BeanProperty property) + throws JsonMappingException; + + /** + * Method called to create (or, for completely immutable deserializers, + * reuse) a deserializer that can convert JSON content into values of + * specified Java type. + * + * @param type Type to be deserialized + * @param p Provider that can be called to create deserializers for + * contained member types + */ + public abstract JsonDeserializer<?> createArrayDeserializer(DeserializationConfig config, DeserializerProvider p, + ArrayType type, BeanProperty property) + throws JsonMappingException; + + public abstract JsonDeserializer<?> createCollectionDeserializer(DeserializationConfig config, + DeserializerProvider p, CollectionType type, BeanProperty property) + throws JsonMappingException; + + /** + * @since 1.8 + */ + public abstract JsonDeserializer<?> createCollectionLikeDeserializer(DeserializationConfig config, + DeserializerProvider p, CollectionLikeType type, BeanProperty property) + throws JsonMappingException; + + public abstract JsonDeserializer<?> createEnumDeserializer(DeserializationConfig config, + DeserializerProvider p, JavaType type, BeanProperty property) + throws JsonMappingException; + + public abstract JsonDeserializer<?> createMapDeserializer(DeserializationConfig config, + DeserializerProvider p, MapType type, BeanProperty property) + throws JsonMappingException; + + /** + * @since 1.8 + */ + public abstract JsonDeserializer<?> createMapLikeDeserializer(DeserializationConfig config, + DeserializerProvider p, MapLikeType type, BeanProperty property) + throws JsonMappingException; + + /** + * Method called to create and return a deserializer that can construct + * JsonNode(s) from JSON content. + */ + public abstract JsonDeserializer<?> createTreeDeserializer(DeserializationConfig config, DeserializerProvider p, + JavaType type, BeanProperty property) + throws JsonMappingException; + + /** + * Method called to find if factory knows how to create a key deserializer + * for specified type; currently this means checking if a module has registered + * possible deserializers. + * + * @return Key deserializer to use for specified type, if one found; null if not + * (and default key deserializer should be used) + * + * @since 1.8 + */ + public KeyDeserializer createKeyDeserializer(DeserializationConfig config, JavaType type, + BeanProperty property) + throws JsonMappingException + { + // Default implementation returns null for backwards compatibility reasons + return null; + } + + /** + * Method called to find and create a type information deserializer for given base type, + * if one is needed. If not needed (no polymorphic handling configured for type), + * should return null. + *<p> + * Note that this method is usually only directly called for values of container (Collection, + * array, Map) types and root values, but not for bean property values. + * + * @param baseType Declared base type of the value to deserializer (actual + * deserializer type will be this type or its subtype) + * + * @return Type deserializer to use for given base type, if one is needed; null if not. + * + * @since 1.5 + */ + public TypeDeserializer findTypeDeserializer(DeserializationConfig config, JavaType baseType, + BeanProperty property) + throws JsonMappingException + { + // Default implementation returns null for backwards compatibility reasons + return null; + } +}
diff --git a/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializerProvider.java b/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializerProvider.java new file mode 100644 index 0000000..30ccc48 --- /dev/null +++ b/1.9.10/src/mapper/java/org/codehaus/jackson/map/DeserializerProvider.java
@@ -0,0 +1,185 @@ +package org.codehaus.jackson.map; + +import org.codehaus.jackson.io.SerializedString; +import org.codehaus.jackson.map.deser.BeanDeserializerModifier; +import org.codehaus.jackson.map.deser.ValueInstantiators; +import org.codehaus.jackson.type.JavaType; + +/** + * Abstract class that defines API used by {@link ObjectMapper} and + * {@link JsonDeserializer}s to obtain deserializers capable of + * re-constructing instances of handled type from JSON content. + */ +public abstract class DeserializerProvider +{ + protected DeserializerProvider() { } + + /* + /********************************************************** + /* Fluent factory methods + /********************************************************** + */ + + /** + * Method that sub-classes need to override, to ensure that fluent-factory + * methods will produce proper sub-type. + * + * @since 1.9 + */ + public abstract DeserializerProvider withFactory(DeserializerFactory factory); + + /** + * Method that is to configure {@link DeserializerFactory} that provider has + * to use specified deserializer provider, with highest precedence (that is, + * additional providers have higher precedence than default one or previously + * added ones) + * + * @since 1.7 + */ + public abstract DeserializerProvider withAdditionalDeserializers(Deserializers d); + + /** + * @since 1.8 + */ + public abstract DeserializerProvider withAdditionalKeyDeserializers(KeyDeserializers d); + + /** + * @since 1.7 + */ + public abstract DeserializerProvider withDeserializerModifier(BeanDeserializerModifier modifier); + + /** + * @since 1.8 + */ + public abstract DeserializerProvider withAbstractTypeResolver(AbstractTypeResolver resolver); + + /** + * Method that will construct a new instance with specified additional value instantiators + * (i.e. does NOT replace existing ones) + * + * @since 1.9 + */ + public abstract DeserializerProvider withValueInstantiators(ValueInstantiators instantiators); + + /* + /********************************************************** + /* General deserializer locating method + /********************************************************** + */ + + /** + * Method called to get hold of a deserializer for a value of given type; + * or if no such deserializer can be found, a default handler (which + * may do a best-effort generic serialization or just simply + * throw an exception when invoked). + *<p> + * Note: this method is only called for value types; not for keys. + * Key deserializers can be accessed using {@link #findKeyDeserializer}. + * + * @param config Deserialization configuration + * @param propertyType Declared type of the value to deserializer (obtained using + * 'setter' method signature and/or type annotations + * @param property Object that represents accessor for property value; field, + * setter method or constructor parameter. + * + * @throws JsonMappingException if there are fatal problems with + * accessing suitable deserializer; including that of not + * finding any serializer + */ + public abstract JsonDeserializer<Object> findValueDeserializer(DeserializationConfig config, + JavaType propertyType, BeanProperty property) + throws JsonMappingException; + + /** + * Method called to locate deserializer for given type, as well as matching + * type deserializer (if one is needed); and if type deserializer is needed, + * construct a "wrapped" deserializer that can extract and use type information + * for calling actual deserializer. + *<p> + * Since this method is only called for root elements, no referral information + * is taken. + * + * @since 1.5 + */ + public abstract JsonDeserializer<Object> findTypedValueDeserializer(DeserializationConfig config, + JavaType type, BeanProperty property) + throws JsonMappingException; + + /** + * Method called to get hold of a deserializer to use for deserializing + * keys for {@link java.util.Map}. + * + * @throws JsonMappingException if there are fatal problems with + * accessing suitable key deserializer; including that of not + * finding any serializer + */ + public abstract KeyDeserializer findKeyDeserializer(DeserializationConfig config, + JavaType keyType, BeanProperty property) + throws JsonMappingException; + + /** + * Method called to find out whether provider would be able to find + * a deserializer for given type, using a root reference (i.e. not + * through fields or membership in an array or collection) + */ + public abstract boolean hasValueDeserializerFor(DeserializationConfig config, JavaType type); + + /* + /********************************************************** + /* Additional type handling methods, related + /********************************************************** + */ + + /** + * Method that can be called to try to resolve an abstract type + * (interface, abstract class) into a concrete type, or at least + * something "more concrete" (abstract class instead of interface). + * Will either return passed type, or a more specific type. + * + * @since 1.9 + */ + public abstract JavaType mapAbstractType(DeserializationConfig config, JavaType type) + throws JsonMappingException; + +