You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2019/10/17 15:37:59 UTC
[commons-vfs] branch master updated: VFS-686: webdav4 provider
based on the latest Jackrabbit 2.x (#52)
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git
The following commit(s) were added to refs/heads/master by this push:
new 42ff473 VFS-686: webdav4 provider based on the latest Jackrabbit 2.x (#52)
42ff473 is described below
commit 42ff473acbb5363b88f5ab3c5fddbae7b206c1d2
Author: Woonsan Ko <wo...@users.noreply.github.com>
AuthorDate: Fri Oct 18 00:37:48 2019 +0900
VFS-686: webdav4 provider based on the latest Jackrabbit 2.x (#52)
* VFS-686: initial jackrabbit3 webdav provider - just compiled.
* VFS-686: 51 tests working out of 84
* VFS-686: 2 tests are still failing out of 84
* VFS-686: all tests successful now
* VFS-686: code cleanups
* VFS-686 separating jackrabbit2 based webdav provider as module
* More efficient comparison in FileExtensionSelector (#44)
* Removed duplication from Constructors
* Removed unneeded check for `null` `HashSet` as it is constructed during object creation by the JVM at runtime.
* Optimized the comparison over the Constructor by converting all extensions to lowercase and using the `contains` method of a `Set`.
* Revert "Merge branch 'trunk' into feature/VFS-686"
This reverts commit 94f010f37661dd08890010627087b627c55fbc72, reversing
changes made to 19ea84236b85a2fc6a5553bab3f4e931755b9ecb.
* VFS-686: derby.log files created by jackrabbit to target folder
* VFS-686: adding missing test data files
* VFS-686: integration tests with Shell and JCR system work
* VFS-686: set JR version to the latest stable; test to skip by default
* VFS-686: restoring tests, hopefulling get JR 2.19.2 next week
* VFS-686: no need of custom registration as http4/webdav4 are in providers.xml
* VFS-686: update @since tags
* VFS-686: support webdav4s (webdav over https) provider
* VFS-686: set JR dep version to 2.19.2, the latest released version
* VFS-686: formatting
* VFS-686: dos2unix JcrUtils.java
* VFS-686: renaming jr2 to jr and jr3 to jr2
* VFS-686: replace logging with log4j2 or log4j12 (jr)
* VFS-686: upgrade jr2 dependency
* VFS-686: fix exception message comparison for jdk11
* VFS-686: fix regex import
* VFS-686: correcting @since tags
* VFS-686: trying to kick in travis again as it build fine with oracle jvm11 locally
---
commons-vfs2-examples/README.md | 48 +-
commons-vfs2-examples/pom.xml | 54 +
.../org/apache/commons/vfs2/example/Shell.java | 18 -
.../src/main/resources/providers-http4-default.xml | 13 +-
commons-vfs2-jackrabbit/pom.xml | 186 +++
.../vfs2/provider/webdav/ExceptionConverter.java | 0
.../webdav/WebdavFileContentInfoFactory.java | 0
.../vfs2/provider/webdav/WebdavFileNameParser.java | 0
.../vfs2/provider/webdav/WebdavFileObject.java | 0
.../vfs2/provider/webdav/WebdavFileProvider.java | 0
.../vfs2/provider/webdav/WebdavFileSystem.java | 0
.../webdav/WebdavFileSystemConfigBuilder.java | 0
.../provider/webdav/WebdavMethodRetryHandler.java | 0
.../commons/vfs2/provider/webdav/package.html | 0
.../src/test/java/code/ClassToLoad.java | 23 +-
.../src/test/java/code/sealed/AnotherClass.java | 21 +-
.../vfs2/provider/webdav/test/JackrabbitMain.java | 0
.../vfs2/provider/webdav/test/JcrUtils.java | 0
.../webdav/test/WebdavProviderTestCase.java | 0
.../webdav/test/WebdavProviderTestSuite.java | 0
.../webdav/test/WebdavVersioningTests.java | 0
.../src/test/resources/jcrweb.xml | 0
.../src/test/resources/log4j.xml | 34 +
.../src/test/resources/test-data/largefile.tar.gz | Bin 0 -> 3130982 bytes
.../src/test/resources/test-data/nested.jar | Bin 0 -> 1950 bytes
.../src/test/resources/test-data/nested.tar | Bin 0 -> 40960 bytes
.../src/test/resources/test-data/nested.tbz2 | Bin 0 -> 1385 bytes
.../src/test/resources/test-data/nested.tgz | Bin 0 -> 1255 bytes
.../src/test/resources/test-data/nested.zip | Bin 0 -> 6352 bytes
.../resources/test-data/read-tests/dir1/file1.txt | 1 +
.../resources/test-data/read-tests/dir1/file2.txt | 1 +
.../resources/test-data/read-tests/dir1/file3.txt | 1 +
.../test-data/read-tests/dir1/subdir1/file1.txt | 1 +
.../test-data/read-tests/dir1/subdir1/file2.txt | 1 +
.../test-data/read-tests/dir1/subdir1/file3.txt | 1 +
.../test-data/read-tests/dir1/subdir2/file1.txt | 1 +
.../test-data/read-tests/dir1/subdir2/file2.txt | 1 +
.../test-data/read-tests/dir1/subdir2/file3.txt | 1 +
.../test-data/read-tests/dir1/subdir3/file1.txt | 1 +
.../test-data/read-tests/dir1/subdir3/file2.txt | 1 +
.../test-data/read-tests/dir1/subdir3/file3.txt | 1 +
.../read-tests/dir1/subdir4.jar/file1.txt | 1 +
.../read-tests/dir1/subdir4.jar/file2.txt | 1 +
.../read-tests/dir1/subdir4.jar/file3.txt | 1 +
.../test/resources/test-data/read-tests/empty.txt | 0
.../resources/test-data/read-tests/file space.txt | 1 +
.../test/resources/test-data/read-tests/file%.txt | 1 +
.../test/resources/test-data/read-tests/file1.txt | 1 +
.../test/resources/test-data/read-xml-tests.zip | Bin 0 -> 4271 bytes
.../resources/test-data/read-xml-tests/address.xsd | 45 +
.../resources/test-data/read-xml-tests/file1.xml | 18 +
.../resources/test-data/read-xml-tests/file2.xml | 18 +
.../test-data/read-xml-tests/file3-bigger.xml | 1354 +++++++++++++++++++
.../test-data/read-xml-tests/name-invalid.xml | 25 +
.../read-xml-tests/name-not-well-formed.xml | 24 +
.../test-data/read-xml-tests/name-with-xsd-ref.xml | 25 +
.../resources/test-data/read-xml-tests/name.xml | 22 +
.../resources/test-data/read-xml-tests/name.xsd | 42 +
.../resources/test-data/read-xml-tests/person.xml | 38 +
.../resources/test-data/read-xml-tests/person.xsd | 48 +
.../test/resources/test-data/test-hash-#test.txt | 1 +
.../src/test/resources/test-data/test.jar | Bin 0 -> 5394 bytes
.../src/test/resources/test-data/test.mf | 11 +
.../src/test/resources/test-data/test.policy | 85 ++
.../src/test/resources/test-data/test.tar | Bin 0 -> 30720 bytes
.../src/test/resources/test-data/test.tbz2 | Bin 0 -> 963 bytes
.../src/test/resources/test-data/test.tgz | Bin 0 -> 1077 bytes
.../src/test/resources/test-data/test.zip | Bin 0 -> 6186 bytes
.../test/resources/test-data/write-tests/dummy.txt | 1 +
commons-vfs2-jackrabbit2/pom.xml | 184 +++
.../vfs2/provider/webdav4}/ExceptionConverter.java | 12 +-
.../webdav4/Webdav4FileContentInfoFactory.java | 15 +-
.../provider/webdav4/Webdav4FileNameParser.java | 15 +-
.../vfs2/provider/webdav4/Webdav4FileObject.java | 299 +++--
.../vfs2/provider/webdav4/Webdav4FileProvider.java | 65 +-
.../vfs2/provider/webdav4/Webdav4FileSystem.java | 34 +-
.../webdav4/Webdav4FileSystemConfigBuilder.java | 21 +-
.../commons/vfs2/provider/webdav4}/package.html | 2 +-
.../provider/webdav4s/Webdav4sFileNameParser.java | 14 +-
.../provider/webdav4s/Webdav4sFileProvider.java | 64 +-
.../commons/vfs2/provider/webdav4s}/package.html | 2 +-
.../src/test/java/code/ClassToLoad.java | 23 +-
.../src/test/java/code/sealed/AnotherClass.java | 21 +-
.../vfs2/provider/webdav4}/test/JcrUtils.java | 389 +++---
.../webdav4/test/Webdav4ProviderTestCase.java | 87 +-
.../webdav4/test/Webdav4ProviderTestSuite.java | 12 +-
.../webdav4/test/Webdav4VersioningTests.java | 18 +-
.../src/test/resources/log4j2.xml | 38 +
.../src/test/resources/test-data/largefile.tar.gz | Bin 0 -> 3130982 bytes
.../src/test/resources/test-data/nested.jar | Bin 0 -> 1950 bytes
.../src/test/resources/test-data/nested.tar | Bin 0 -> 40960 bytes
.../src/test/resources/test-data/nested.tbz2 | Bin 0 -> 1385 bytes
.../src/test/resources/test-data/nested.tgz | Bin 0 -> 1255 bytes
.../src/test/resources/test-data/nested.zip | Bin 0 -> 6352 bytes
.../resources/test-data/read-tests/dir1/file1.txt | 1 +
.../resources/test-data/read-tests/dir1/file2.txt | 1 +
.../resources/test-data/read-tests/dir1/file3.txt | 1 +
.../test-data/read-tests/dir1/subdir1/file1.txt | 1 +
.../test-data/read-tests/dir1/subdir1/file2.txt | 1 +
.../test-data/read-tests/dir1/subdir1/file3.txt | 1 +
.../test-data/read-tests/dir1/subdir2/file1.txt | 1 +
.../test-data/read-tests/dir1/subdir2/file2.txt | 1 +
.../test-data/read-tests/dir1/subdir2/file3.txt | 1 +
.../test-data/read-tests/dir1/subdir3/file1.txt | 1 +
.../test-data/read-tests/dir1/subdir3/file2.txt | 1 +
.../test-data/read-tests/dir1/subdir3/file3.txt | 1 +
.../read-tests/dir1/subdir4.jar/file1.txt | 1 +
.../read-tests/dir1/subdir4.jar/file2.txt | 1 +
.../read-tests/dir1/subdir4.jar/file3.txt | 1 +
.../test/resources/test-data/read-tests/empty.txt | 0
.../resources/test-data/read-tests/file space.txt | 1 +
.../test/resources/test-data/read-tests/file%.txt | 1 +
.../test/resources/test-data/read-tests/file1.txt | 1 +
.../test/resources/test-data/read-xml-tests.zip | Bin 0 -> 4271 bytes
.../resources/test-data/read-xml-tests/address.xsd | 45 +
.../resources/test-data/read-xml-tests/file1.xml | 18 +
.../resources/test-data/read-xml-tests/file2.xml | 18 +
.../test-data/read-xml-tests/file3-bigger.xml | 1354 +++++++++++++++++++
.../test-data/read-xml-tests/name-invalid.xml | 25 +
.../read-xml-tests/name-not-well-formed.xml | 24 +
.../test-data/read-xml-tests/name-with-xsd-ref.xml | 25 +
.../resources/test-data/read-xml-tests/name.xml | 22 +
.../resources/test-data/read-xml-tests/name.xsd | 42 +
.../resources/test-data/read-xml-tests/person.xml | 38 +
.../resources/test-data/read-xml-tests/person.xsd | 48 +
.../test/resources/test-data/test-hash-#test.txt | 1 +
.../src/test/resources/test-data/test.jar | Bin 0 -> 5394 bytes
.../src/test/resources/test-data/test.mf | 11 +
.../src/test/resources/test-data/test.policy | 85 ++
.../src/test/resources/test-data/test.tar | Bin 0 -> 30720 bytes
.../src/test/resources/test-data/test.tbz2 | Bin 0 -> 963 bytes
.../src/test/resources/test-data/test.tgz | Bin 0 -> 1077 bytes
.../src/test/resources/test-data/test.zip | Bin 0 -> 6186 bytes
.../test/resources/test-data/write-tests/dummy.txt | 1 +
commons-vfs2/pom.xml | 21 +-
.../org/apache/commons/vfs2/impl/providers.xml | 13 +-
.../vfs2/provider/http4/Http4FileObject.java | 460 +++----
.../http4/Http4FileSystemConfigBuilder.java | 2 +-
.../test/java/org/apache/commons/vfs2/RunTest.java | 2 +-
.../provider/zip/test/ParseXmlInZipTestCase.java | 4 +-
.../DelegatingFileSystemOptionsBuilderTest.java | 2 +-
commons-vfs2/src/test/resources/log4j2.xml | 38 +
pom.xml | 1381 ++++++++++----------
143 files changed, 5641 insertions(+), 1544 deletions(-)
diff --git a/commons-vfs2-examples/README.md b/commons-vfs2-examples/README.md
index dac69b3..d7ab8fa 100644
--- a/commons-vfs2-examples/README.md
+++ b/commons-vfs2-examples/README.md
@@ -33,7 +33,15 @@
mvn -Pshell -Dhttp3 -Dhttp4
-## Example Test Scenario
+## Test `webdav3` providers
+
+ mvn -Pshell -Dwebdav3
+
+## Test `webdav4` and `webdav4s` providers
+
+ mvn -Pshell -Dwebdav4
+
+## Example Test Scenario with HTTP3 / HTTP4
mvn -Pshell -Dhttp3 -Dhttp4
...
@@ -85,3 +93,41 @@ Set `-Dproviders=<custom_providers.xml_resource_name>`.
pwfs
> FileSystem of current folder is org.apache.commons.vfs2.provider.http4.Http4FileSystem@6e012f9b (root: http://repo1.maven.org/)
...
+
+## Example Test Scenario with WEBDAV3
+
+(After starting a modern WebDAV server such as Apache Jackrabbit Standalone...)
+
+ mvn -Pshell -Dwebdav3
+ cp http3://commons.apache.org/downloads/index.html webdav3://admin:admin@localhost:8080/repository/default/index.html
+ cd webdav3://admin:admin@localhost:8080/repository/default/
+ ls
+ > > Contents of webdav3://admin:admin@localhost:8080/repository/default
+ test.txt
+ index.html
+ cat index.html
+ ...
+
+## Example Test Scenario with WEBDAV4
+
+(After starting a modern WebDAV server such as Apache Jackrabbit Standalone...)
+
+ mvn -Pshell -Dwebdav4
+ cp http4://commons.apache.org/downloads/index.html webdav4://admin:admin@localhost:8080/repository/default/index.html
+ cd webdav4://admin:admin@localhost:8080/repository/default/
+ ls
+ > > Contents of webdav4://admin:admin@localhost:8080/repository/default
+ test.txt
+ index.html
+ cat index.html
+ ...
+ cp http4://commons.apache.org/downloads/index.html webdav4s://admin:admin@67d6eab2.ngrok.io/repository/default/index2.html
+ cd webdav4://admin:admin@67d6eab2.ngrok.io/repository/default/
+ ls
+ > > Contents of webdav4://admin:admin@localhost:8080/repository/default
+ test.txt
+ index.html
+ index2.html
+ cat index2.html
+ ...
+
diff --git a/commons-vfs2-examples/pom.xml b/commons-vfs2-examples/pom.xml
index e800bb2..bcd3310 100644
--- a/commons-vfs2-examples/pom.xml
+++ b/commons-vfs2-examples/pom.xml
@@ -138,6 +138,60 @@
</dependencies>
</profile>
+ <profile>
+ <id>with-webdav3</id>
+ <activation>
+ <property>
+ <name>webdav3</name>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2-jackrabbit</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.26</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+ </profile>
+
+ <profile>
+ <id>with-webdav4</id>
+ <activation>
+ <property>
+ <name>webdav4</name>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2-jackrabbit2</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>1.7.26</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+ </profile>
+
</profiles>
</project>
diff --git a/commons-vfs2-examples/src/main/java/org/apache/commons/vfs2/example/Shell.java b/commons-vfs2-examples/src/main/java/org/apache/commons/vfs2/example/Shell.java
index c28b947..f4b5327 100644
--- a/commons-vfs2-examples/src/main/java/org/apache/commons/vfs2/example/Shell.java
+++ b/commons-vfs2-examples/src/main/java/org/apache/commons/vfs2/example/Shell.java
@@ -39,10 +39,8 @@ import org.apache.commons.vfs2.FileType;
import org.apache.commons.vfs2.FileUtil;
import org.apache.commons.vfs2.Selectors;
import org.apache.commons.vfs2.VFS;
-import org.apache.commons.vfs2.impl.DefaultFileSystemManager;
import org.apache.commons.vfs2.impl.StandardFileSystemManager;
import org.apache.commons.vfs2.operations.FileOperationProvider;
-import org.apache.commons.vfs2.provider.FileProvider;
/**
* A simple command-line shell for performing file operations.
@@ -68,22 +66,6 @@ public final class Shell {
mgr = VFS.getManager();
}
- // TODO: VFS-360 - Remove this manual registration of http4 once http4 becomes part of standard providers.
- boolean httpClient4Available = false;
- try {
- Class.forName("org.apache.http.client.HttpClient");
- httpClient4Available = true;
- final DefaultFileSystemManager manager = (DefaultFileSystemManager) VFS.getManager();
- if (!manager.hasProvider("http4")) {
- manager.addProvider("http4", (FileProvider) Class.forName("org.apache.commons.vfs2.provider.http4.Http4FileProvider").newInstance());
- manager.addProvider("http4s", (FileProvider) Class.forName("org.apache.commons.vfs2.provider.http4s.Http4sFileProvider").newInstance());
- }
- } catch (final Exception e) {
- if (httpClient4Available) {
- e.printStackTrace();
- }
- }
-
cwd = mgr.toFileObject(new File(System.getProperty("user.dir")));
reader = new BufferedReader(new InputStreamReader(System.in, Charset.defaultCharset()));
}
diff --git a/commons-vfs2-examples/src/main/resources/providers-http4-default.xml b/commons-vfs2-examples/src/main/resources/providers-http4-default.xml
index dae6e05..61139b0 100644
--- a/commons-vfs2-examples/src/main/resources/providers-http4-default.xml
+++ b/commons-vfs2-examples/src/main/resources/providers-http4-default.xml
@@ -86,11 +86,22 @@
<provider class-name="org.apache.commons.vfs2.provider.res.ResourceFileProvider">
<scheme name="res"/>
</provider>
- <provider class-name="org.apache.commons.vfs2.provider.webdav.WebdavFileProvider">
+ <provider class-name="org.apache.commons.vfs2.provider.webdav.WebdavFileProvider">
<scheme name="webdav"/>
+ <scheme name="webdav3"/>
<if-available class-name="org.apache.commons.httpclient.HttpClient"/>
<if-available class-name="org.apache.jackrabbit.webdav.client.methods.DavMethod"/>
</provider>
+ <provider class-name="org.apache.commons.vfs2.provider.webdav4.Webdav4FileProvider">
+ <scheme name="webdav4"/>
+ <if-available class-name="org.apache.http.client.HttpClient"/>
+ <if-available class-name="org.apache.jackrabbit.webdav.client.methods.BaseDavRequest"/>
+ </provider>
+ <provider class-name="org.apache.commons.vfs2.provider.webdav4s.Webdav4sFileProvider">
+ <scheme name="webdav4s"/>
+ <if-available class-name="org.apache.http.client.HttpClient"/>
+ <if-available class-name="org.apache.jackrabbit.webdav.client.methods.BaseDavRequest"/>
+ </provider>
<provider class-name="org.apache.commons.vfs2.provider.tar.TarFileProvider">
<scheme name="tgz"/>
diff --git a/commons-vfs2-jackrabbit/pom.xml b/commons-vfs2-jackrabbit/pom.xml
new file mode 100644
index 0000000..090c8d7
--- /dev/null
+++ b/commons-vfs2-jackrabbit/pom.xml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2-project</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <name>Apache Commons VFS Jackrabbit</name>
+ <artifactId>commons-vfs2-jackrabbit</artifactId>
+ <description>Apache Commons VFS is a Virtual File System library - Jackrabbit-based WebDAV provider.</description>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-webdav</artifactId>
+ <version>${jackrabbit.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.5.11</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.5.11</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <version>1.5.11</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- Test WebDAV with Apache Jackrabbit Standalone Components -->
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-standalone</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/src/main/resources</directory>
+ </resource>
+ <resource>
+ <directory>${vfs.parent.dir}</directory>
+ <targetPath>META-INF</targetPath>
+ <includes>
+ <include>NOTICE.txt</include>
+ <include>LICENSE.txt</include>
+ </includes>
+ </resource>
+ </resources>
+ <!-- include NOTICE/LICENSE in generated test jar -->
+ <testResources>
+ <testResource>
+ <directory>${project.basedir}/src/test/resources</directory>
+ </testResource>
+ <testResource>
+ <directory>${vfs.parent.dir}</directory>
+ <targetPath>META-INF</targetPath>
+ <includes>
+ <include>NOTICE.txt</include>
+ <include>LICENSE.txt</include>
+ </includes>
+ </testResource>
+ </testResources>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>process-test-classes</phase>
+ <configuration>
+ <target>
+ <move todir="${project.build.testOutputDirectory}/test-data/code" failonerror="false">
+ <fileset dir="${project.build.testOutputDirectory}/code" />
+ </move>
+ </target>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <!-- surfire do not honor suite(), see MSUREFIRE-131 why our tests wont work with maven 2 -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <systemPropertyVariables>
+ <test.basedir>target/test-classes/test-data</test.basedir>
+ <test.basedir.res>test-data</test.basedir.res>
+ <derby.stream.error.file>target/derby.log</derby.stream.error.file>
+ </systemPropertyVariables>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/ExceptionConverter.java b/commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/ExceptionConverter.java
similarity index 100%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/ExceptionConverter.java
copy to commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/ExceptionConverter.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileContentInfoFactory.java b/commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileContentInfoFactory.java
similarity index 100%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileContentInfoFactory.java
copy to commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileContentInfoFactory.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java b/commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
similarity index 100%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
copy to commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileObject.java b/commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileObject.java
similarity index 100%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileObject.java
copy to commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileObject.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileProvider.java b/commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileProvider.java
similarity index 100%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileProvider.java
copy to commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileProvider.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileSystem.java b/commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileSystem.java
similarity index 100%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileSystem.java
copy to commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileSystem.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileSystemConfigBuilder.java b/commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileSystemConfigBuilder.java
similarity index 100%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileSystemConfigBuilder.java
copy to commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileSystemConfigBuilder.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavMethodRetryHandler.java b/commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavMethodRetryHandler.java
similarity index 100%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavMethodRetryHandler.java
rename to commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavMethodRetryHandler.java
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/package.html b/commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/package.html
similarity index 100%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/package.html
copy to commons-vfs2-jackrabbit/src/main/java/org/apache/commons/vfs2/provider/webdav/package.html
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java b/commons-vfs2-jackrabbit/src/test/java/code/ClassToLoad.java
similarity index 61%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
copy to commons-vfs2-jackrabbit/src/test/java/code/ClassToLoad.java
index 9dedc70..c01f3b1 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
+++ b/commons-vfs2-jackrabbit/src/test/java/code/ClassToLoad.java
@@ -14,25 +14,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav;
-
-import org.apache.commons.vfs2.provider.FileNameParser;
-import org.apache.commons.vfs2.provider.http.HttpFileNameParser;
+package code;
/**
- * Implementation for http. set default port to 80
- *
- * @since 2.0
+ * The test class for the VFS classloader.
*/
-public class WebdavFileNameParser extends HttpFileNameParser {
-
- private static final WebdavFileNameParser INSTANCE = new WebdavFileNameParser();
-
- public WebdavFileNameParser() {
- super();
- }
+public class ClassToLoad {
+ private final String m_message = "**PRIVATE**";
- public static FileNameParser getInstance() {
- return INSTANCE;
+ @Override
+ public String toString() {
+ return m_message;
}
}
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java b/commons-vfs2-jackrabbit/src/test/java/code/sealed/AnotherClass.java
similarity index 60%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
copy to commons-vfs2-jackrabbit/src/test/java/code/sealed/AnotherClass.java
index 9dedc70..56dd937 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
+++ b/commons-vfs2-jackrabbit/src/test/java/code/sealed/AnotherClass.java
@@ -14,25 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav;
-
-import org.apache.commons.vfs2.provider.FileNameParser;
-import org.apache.commons.vfs2.provider.http.HttpFileNameParser;
+package code.sealed;
/**
- * Implementation for http. set default port to 80
- *
- * @since 2.0
+ * A test class for the ClassLoader tests.
*/
-public class WebdavFileNameParser extends HttpFileNameParser {
-
- private static final WebdavFileNameParser INSTANCE = new WebdavFileNameParser();
-
- public WebdavFileNameParser() {
- super();
- }
-
- public static FileNameParser getInstance() {
- return INSTANCE;
- }
+public class AnotherClass {
}
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/JackrabbitMain.java b/commons-vfs2-jackrabbit/src/test/java/org/apache/commons/vfs2/provider/webdav/test/JackrabbitMain.java
similarity index 100%
rename from commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/JackrabbitMain.java
rename to commons-vfs2-jackrabbit/src/test/java/org/apache/commons/vfs2/provider/webdav/test/JackrabbitMain.java
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/JcrUtils.java b/commons-vfs2-jackrabbit/src/test/java/org/apache/commons/vfs2/provider/webdav/test/JcrUtils.java
similarity index 100%
copy from commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/JcrUtils.java
copy to commons-vfs2-jackrabbit/src/test/java/org/apache/commons/vfs2/provider/webdav/test/JcrUtils.java
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavProviderTestCase.java b/commons-vfs2-jackrabbit/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavProviderTestCase.java
similarity index 100%
copy from commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavProviderTestCase.java
copy to commons-vfs2-jackrabbit/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavProviderTestCase.java
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavProviderTestSuite.java b/commons-vfs2-jackrabbit/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavProviderTestSuite.java
similarity index 100%
copy from commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavProviderTestSuite.java
copy to commons-vfs2-jackrabbit/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavProviderTestSuite.java
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavVersioningTests.java b/commons-vfs2-jackrabbit/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavVersioningTests.java
similarity index 100%
copy from commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavVersioningTests.java
copy to commons-vfs2-jackrabbit/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavVersioningTests.java
diff --git a/commons-vfs2/src/test/resources/jcrweb.xml b/commons-vfs2-jackrabbit/src/test/resources/jcrweb.xml
similarity index 100%
rename from commons-vfs2/src/test/resources/jcrweb.xml
rename to commons-vfs2-jackrabbit/src/test/resources/jcrweb.xml
diff --git a/commons-vfs2-jackrabbit/src/test/resources/log4j.xml b/commons-vfs2-jackrabbit/src/test/resources/log4j.xml
new file mode 100644
index 0000000..23e08ee
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/log4j.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+ -->
+
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
+
+ <appender name="console" class="org.apache.log4j.ConsoleAppender">
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d [%t] %-5p %m%n" />
+ </layout>
+ </appender>
+
+ <root>
+ <level value="ERROR" />
+ <appender-ref ref="console" />
+ </root>
+
+</log4j:configuration>
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/largefile.tar.gz b/commons-vfs2-jackrabbit/src/test/resources/test-data/largefile.tar.gz
new file mode 100644
index 0000000..5bcc47a
Binary files /dev/null and b/commons-vfs2-jackrabbit/src/test/resources/test-data/largefile.tar.gz differ
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.jar b/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.jar
new file mode 100644
index 0000000..c5bc269
Binary files /dev/null and b/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.jar differ
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.tar b/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.tar
new file mode 100644
index 0000000..ffc4089
Binary files /dev/null and b/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.tar differ
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.tbz2 b/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.tbz2
new file mode 100644
index 0000000..60ebcf0
Binary files /dev/null and b/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.tbz2 differ
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.tgz b/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.tgz
new file mode 100644
index 0000000..cbbcb61
Binary files /dev/null and b/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.tgz differ
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.zip b/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.zip
new file mode 100644
index 0000000..d1c78f4
Binary files /dev/null and b/commons-vfs2-jackrabbit/src/test/resources/test-data/nested.zip differ
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/file1.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/file1.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/file1.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/file2.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/file2.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/file2.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/file3.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/file3.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/file3.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir1/file1.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir1/file1.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir1/file1.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir1/file2.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir1/file2.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir1/file2.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir1/file3.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir1/file3.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir1/file3.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir2/file1.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir2/file1.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir2/file1.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir2/file2.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir2/file2.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir2/file2.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir2/file3.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir2/file3.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir2/file3.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir3/file1.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir3/file1.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir3/file1.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir3/file2.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir3/file2.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir3/file2.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir3/file3.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir3/file3.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir3/file3.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file1.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file1.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file1.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file2.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file2.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file2.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file3.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file3.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file3.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/empty.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/empty.txt
new file mode 100644
index 0000000..e69de29
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/file space.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/file space.txt
new file mode 100644
index 0000000..af27ff4
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/file space.txt
@@ -0,0 +1 @@
+This is a test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/file%.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/file%.txt
new file mode 100644
index 0000000..af27ff4
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/file%.txt
@@ -0,0 +1 @@
+This is a test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/file1.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/file1.txt
new file mode 100644
index 0000000..af27ff4
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-tests/file1.txt
@@ -0,0 +1 @@
+This is a test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests.zip b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests.zip
new file mode 100644
index 0000000..37e47ba
Binary files /dev/null and b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests.zip differ
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/address.xsd b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/address.xsd
new file mode 100644
index 0000000..065648a
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/address.xsd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+ -->
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="https://www.apache.org/vfs/example/address"
+ xmlns="https://www.apache.org/vfs/example/address"
+ elementFormDefault="qualified">
+
+ <xs:element
+ name="address"
+ type="addressType" />
+
+ <xs:complexType name="addressType">
+ <xs:sequence>
+ <xs:element
+ name="street"
+ type="xs:string" />
+ <xs:element
+ name="city"
+ type="xs:string" />
+ <xs:element
+ name="state"
+ type="xs:string" />
+ <xs:element
+ name="zip"
+ type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+
+</xs:schema>
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/file1.xml b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/file1.xml
new file mode 100644
index 0000000..42e9846
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/file1.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+ -->
+<Root1>foo1</Root1>
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/file2.xml b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/file2.xml
new file mode 100644
index 0000000..2e3ff38
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/file2.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+ -->
+<Root2>foo2</Root2>
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/file3-bigger.xml b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/file3-bigger.xml
new file mode 100644
index 0000000..780dc48
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/file3-bigger.xml
@@ -0,0 +1,1354 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+ -->
+<Root1>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+</Root1>
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name-invalid.xml b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name-invalid.xml
new file mode 100644
index 0000000..522c4f6
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name-invalid.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+ -->
+<name
+ xmlns="https://www.apache.org/vfs/example/name"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="https://www.apache.org/xml/name.xsd name.xsd">
+ <FOO>John</FOO>
+ <middle>Q.</middle>
+ <last>Public</last>
+</name>
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name-not-well-formed.xml b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name-not-well-formed.xml
new file mode 100644
index 0000000..305ac6e
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name-not-well-formed.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+ -->
+<name
+ xmlns="https://www.apache.org/vfs/example/name"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="https://www.apache.org/xml/name.xsd name.xsd">
+ <first>John</first>
+ <middle>Q.</middle>
+ <last>Public</last>
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name-with-xsd-ref.xml b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name-with-xsd-ref.xml
new file mode 100644
index 0000000..cad2771
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name-with-xsd-ref.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+ -->
+<name
+ xmlns="https://www.apache.org/vfs/example/name"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="https://www.apache.org/xml/name.xsd name.xsd">
+ <first>John</first>
+ <middle>Q.</middle>
+ <last>Public</last>
+</name>
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name.xml b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name.xml
new file mode 100644
index 0000000..4c5c870
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+ -->
+<name>
+ <first>John</first>
+ <middle>Q.</middle>
+ <last>Public</last>
+</name>
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name.xsd b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name.xsd
new file mode 100644
index 0000000..9b0a6a7
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/name.xsd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+ -->
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="https://www.apache.org/vfs/example/name"
+ xmlns="https://www.apache.org/vfs/example/name"
+ elementFormDefault="qualified">
+
+ <xs:element
+ name="name"
+ type="nameType" />
+
+ <xs:complexType name="nameType">
+ <xs:sequence>
+ <xs:element
+ name="first"
+ type="xs:string" />
+ <xs:element
+ name="middle"
+ type="xs:string" />
+ <xs:element
+ name="last"
+ type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+
+</xs:schema>
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/person.xml b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/person.xml
new file mode 100644
index 0000000..28e023f
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/person.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+ -->
+<person:person
+ xmlns:person="https://www.apache.org/vfs/example/person"
+ xmlns:name="https://www.apache.org/vfs/example/name"
+ xmlns:addr="https://www.apache.org/vfs/example/address"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="https://www.apache.org/vfs/example/person person.xsd">
+
+ <person:name>
+ <name:first>John</name:first>
+ <name:middle>Q.</name:middle>
+ <name:last>Public</name:last>
+ </person:name>
+
+ <person:address>
+ <addr:street>123 Main St.</addr:street>
+ <addr:city>Ridgway</addr:city>
+ <addr:state>CO</addr:state>
+ <addr:zip>81432</addr:zip>
+ </person:address>
+
+</person:person>
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/person.xsd b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/person.xsd
new file mode 100644
index 0000000..4bc82a9
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/read-xml-tests/person.xsd
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+ -->
+<xs:schema
+ xmlns="https://www.apache.org/vfs/example/person"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:name="https://www.apache.org/vfs/example/name"
+ xmlns:address="https://www.apache.org/vfs/example/address"
+ targetNamespace="https://www.apache.org/vfs/example/person"
+ elementFormDefault="qualified">
+
+ <xs:import
+ namespace="https://www.apache.org/vfs/example/name"
+ schemaLocation="name.xsd" />
+ <xs:import
+ namespace="https://www.apache.org/vfs/example/address"
+ schemaLocation="address.xsd" />
+
+ <xs:element
+ name="person"
+ type="personType" />
+
+ <xs:complexType name="personType">
+ <xs:sequence>
+ <xs:element
+ name="name"
+ type="name:nameType" />
+ <xs:element
+ name="address"
+ type="address:addressType" />
+ </xs:sequence>
+ </xs:complexType>
+
+</xs:schema>
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/test-hash-#test.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/test-hash-#test.txt
new file mode 100644
index 0000000..8deb37d
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/test-hash-#test.txt
@@ -0,0 +1 @@
+Test file for VFS-325: Bad handling of hashs (#) in file names when walking a file tree using findFiles().
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/test.jar b/commons-vfs2-jackrabbit/src/test/resources/test-data/test.jar
new file mode 100644
index 0000000..7ff1e6a
Binary files /dev/null and b/commons-vfs2-jackrabbit/src/test/resources/test-data/test.jar differ
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/test.mf b/commons-vfs2-jackrabbit/src/test/resources/test-data/test.mf
new file mode 100644
index 0000000..e85d462
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/test.mf
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Specification-Title: SpecTitle
+Specification-Vendor: SpecVendor
+Specification-Version: 1.0
+Implementation-Title: ImplTitle
+Implementation-Vendor: ImplVendor
+Implementation-Version: 1.1
+Sealed: false
+
+Name: code/sealed/
+Sealed: true
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/test.policy b/commons-vfs2-jackrabbit/src/test/resources/test-data/test.policy
new file mode 100644
index 0000000..4c363a0
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/test.policy
@@ -0,0 +1,85 @@
+// 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.
+
+// Standard extensions get all permissions by default
+
+grant codeBase "file:${java.home}/lib/ext/*" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "file:${maven.home}/-" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "file:${maven.build.dest}" {
+ permission java.io.FilePermission "${user.dir}/vfs_cache/-", "read, write, delete";
+ permission java.io.FilePermission "${user.dir}/vfs_cache", "read, write, delete";
+ permission java.io.FilePermission "${user.dir}", "read";
+ permission java.net.NetPermission "specifyStreamHandler";
+};
+
+// default permissions granted to all domains
+
+grant {
+ permission java.io.FilePermission "${test.basedir}/write-tests", "read, write, delete";
+ permission java.io.FilePermission "${test.basedir}/write-tests/-", "read, write, delete";
+ permission java.io.FilePermission "${test.basedir}/-", "read";
+ permission java.io.FilePermission "${test.basedir}", "read";
+
+ //This is needed for the ClassLoader tests.
+ permission java.lang.RuntimePermission "createClassLoader";
+
+ // Allows any thread to stop itself using the java.lang.Thread.stop()
+ // method that takes no argument.
+ // Note that this permission is granted by default only to remain
+ // backwards compatible.
+ // It is strongly recommended that you either remove this permission
+ // from this policy file or further restrict it to code sources
+ // that you specify, because Thread.stop() is potentially unsafe.
+ // See "http://java.sun.com/notes" for more information.
+ permission java.lang.RuntimePermission "stopThread";
+
+ // allows anyone to listen on un-privileged ports
+ permission java.net.SocketPermission "localhost:1024-", "listen";
+
+ // "standard" properies that can be read by anyone
+
+ permission java.util.PropertyPermission "java.version", "read";
+ permission java.util.PropertyPermission "java.vendor", "read";
+ permission java.util.PropertyPermission "java.vendor.url", "read";
+ permission java.util.PropertyPermission "java.class.version", "read";
+ permission java.util.PropertyPermission "os.name", "read";
+ permission java.util.PropertyPermission "os.version", "read";
+ permission java.util.PropertyPermission "os.arch", "read";
+ permission java.util.PropertyPermission "file.separator", "read";
+ permission java.util.PropertyPermission "path.separator", "read";
+ permission java.util.PropertyPermission "line.separator", "read";
+
+ permission java.util.PropertyPermission "java.specification.version", "read";
+ permission java.util.PropertyPermission "java.specification.vendor", "read";
+ permission java.util.PropertyPermission "java.specification.name", "read";
+
+ permission java.util.PropertyPermission "java.vm.specification.version", "read";
+ permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
+ permission java.util.PropertyPermission "java.vm.specification.name", "read";
+ permission java.util.PropertyPermission "java.vm.version", "read";
+ permission java.util.PropertyPermission "java.vm.vendor", "read";
+ permission java.util.PropertyPermission "java.vm.name", "read";
+ permission java.util.PropertyPermission "test.basedir", "read";
+ permission java.util.PropertyPermission "user.dir", "read";
+};
+
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/test.tar b/commons-vfs2-jackrabbit/src/test/resources/test-data/test.tar
new file mode 100644
index 0000000..ef82461
Binary files /dev/null and b/commons-vfs2-jackrabbit/src/test/resources/test-data/test.tar differ
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/test.tbz2 b/commons-vfs2-jackrabbit/src/test/resources/test-data/test.tbz2
new file mode 100644
index 0000000..f7e2086
Binary files /dev/null and b/commons-vfs2-jackrabbit/src/test/resources/test-data/test.tbz2 differ
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/test.tgz b/commons-vfs2-jackrabbit/src/test/resources/test-data/test.tgz
new file mode 100644
index 0000000..579107d
Binary files /dev/null and b/commons-vfs2-jackrabbit/src/test/resources/test-data/test.tgz differ
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/test.zip b/commons-vfs2-jackrabbit/src/test/resources/test-data/test.zip
new file mode 100644
index 0000000..3e5d4d9
Binary files /dev/null and b/commons-vfs2-jackrabbit/src/test/resources/test-data/test.zip differ
diff --git a/commons-vfs2-jackrabbit/src/test/resources/test-data/write-tests/dummy.txt b/commons-vfs2-jackrabbit/src/test/resources/test-data/write-tests/dummy.txt
new file mode 100644
index 0000000..d7716a7
--- /dev/null
+++ b/commons-vfs2-jackrabbit/src/test/resources/test-data/write-tests/dummy.txt
@@ -0,0 +1 @@
+dummy file to cause directory to be created.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/pom.xml b/commons-vfs2-jackrabbit2/pom.xml
new file mode 100644
index 0000000..d059b5d
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/pom.xml
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2-project</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <name>Apache Commons VFS Jackrabbit2</name>
+ <artifactId>commons-vfs2-jackrabbit2</artifactId>
+ <description>Apache Commons VFS is a Virtual File System library - Jackrabbit2-based WebDAV provider.</description>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-webdav</artifactId>
+ <version>${jackrabbit2.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-slf4j-impl</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- Test WebDAV with Apache Jackrabbit2 Standalone Components -->
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-standalone-components</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/src/main/resources</directory>
+ </resource>
+ <resource>
+ <directory>${vfs.parent.dir}</directory>
+ <targetPath>META-INF</targetPath>
+ <includes>
+ <include>NOTICE.txt</include>
+ <include>LICENSE.txt</include>
+ </includes>
+ </resource>
+ </resources>
+ <!-- include NOTICE/LICENSE in generated test jar -->
+ <testResources>
+ <testResource>
+ <directory>${project.basedir}/src/test/resources</directory>
+ </testResource>
+ <testResource>
+ <directory>${vfs.parent.dir}</directory>
+ <targetPath>META-INF</targetPath>
+ <includes>
+ <include>NOTICE.txt</include>
+ <include>LICENSE.txt</include>
+ </includes>
+ </testResource>
+ </testResources>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>process-test-classes</phase>
+ <configuration>
+ <target>
+ <move todir="${project.build.testOutputDirectory}/test-data/code" failonerror="false">
+ <fileset dir="${project.build.testOutputDirectory}/code" />
+ </move>
+ </target>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <!-- surfire do not honor suite(), see MSUREFIRE-131 why our tests wont work with maven 2 -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <systemPropertyVariables>
+ <test.basedir>target/test-classes/test-data</test.basedir>
+ <test.basedir.res>test-data</test.basedir.res>
+ <derby.stream.error.file>target/derby.log</derby.stream.error.file>
+ </systemPropertyVariables>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/ExceptionConverter.java b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/ExceptionConverter.java
similarity index 87%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/ExceptionConverter.java
rename to commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/ExceptionConverter.java
index 12b81d7..702c100 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/ExceptionConverter.java
+++ b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/ExceptionConverter.java
@@ -14,21 +14,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav;
+package org.apache.commons.vfs2.provider.webdav4;
import java.lang.reflect.Constructor;
import org.apache.commons.vfs2.FileSystemException;
import org.apache.jackrabbit.webdav.DavConstants;
import org.apache.jackrabbit.webdav.DavException;
-import org.apache.jackrabbit.webdav.client.methods.DavMethod;
import org.apache.jackrabbit.webdav.xml.DomUtil;
import org.w3c.dom.Element;
/**
* {@code ExceptionConverter} converts WebDAV exceptions into FileSystemExceptions.
*
- * @since 2.0
+ * @since 2.5
*/
public final class ExceptionConverter {
@@ -37,15 +36,10 @@ public final class ExceptionConverter {
}
public static FileSystemException generate(final DavException davExc) throws FileSystemException {
- return generate(davExc, null);
- }
-
- public static FileSystemException generate(final DavException davExc, final DavMethod method)
- throws FileSystemException {
String msg = davExc.getMessage();
if (davExc.hasErrorCondition()) {
try {
- final Element error = davExc.toXml(DomUtil.BUILDER_FACTORY.newDocumentBuilder().newDocument());
+ final Element error = davExc.toXml(DomUtil.createDocument());
if (DomUtil.matches(error, DavException.XML_ERROR, DavConstants.NAMESPACE)) {
if (DomUtil.hasChildElement(error, "exception", null)) {
final Element exc = DomUtil.getChildElement(error, "exception", null);
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileContentInfoFactory.java b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileContentInfoFactory.java
similarity index 80%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileContentInfoFactory.java
rename to commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileContentInfoFactory.java
index 9f12db0..713e3c2 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileContentInfoFactory.java
+++ b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileContentInfoFactory.java
@@ -14,14 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav;
+package org.apache.commons.vfs2.provider.webdav4;
import org.apache.commons.vfs2.FileContent;
import org.apache.commons.vfs2.FileContentInfo;
import org.apache.commons.vfs2.FileContentInfoFactory;
import org.apache.commons.vfs2.FileSystemException;
import org.apache.commons.vfs2.impl.DefaultFileContentInfo;
-import org.apache.commons.vfs2.provider.URLFileName;
+import org.apache.commons.vfs2.provider.GenericURLFileName;
import org.apache.commons.vfs2.util.FileObjectUtils;
import org.apache.jackrabbit.webdav.property.DavProperty;
import org.apache.jackrabbit.webdav.property.DavPropertyName;
@@ -31,26 +31,25 @@ import org.apache.jackrabbit.webdav.property.DavPropertySet;
/**
* Determines the content information for files accessed via WebDAV.
*
- * @since 2.0
+ * @since 2.5
*/
-public class WebdavFileContentInfoFactory implements FileContentInfoFactory {
-
+public class Webdav4FileContentInfoFactory implements FileContentInfoFactory {
@Override
public FileContentInfo create(final FileContent fileContent) throws FileSystemException {
- final WebdavFileObject file = (WebdavFileObject) FileObjectUtils.getAbstractFileObject(fileContent.getFile());
+ final Webdav4FileObject file = (Webdav4FileObject) FileObjectUtils.getAbstractFileObject(fileContent.getFile());
String contentType = null;
String contentEncoding = null;
final DavPropertyNameSet nameSet = new DavPropertyNameSet();
nameSet.add(DavPropertyName.GETCONTENTTYPE);
- final DavPropertySet propertySet = file.getProperties((URLFileName) file.getName(), nameSet, true);
+ final DavPropertySet propertySet = file.getProperties((GenericURLFileName) file.getName(), nameSet, true);
DavProperty property = propertySet.get(DavPropertyName.GETCONTENTTYPE);
if (property != null) {
contentType = (String) property.getValue();
}
- property = propertySet.get(WebdavFileObject.RESPONSE_CHARSET);
+ property = propertySet.get(Webdav4FileObject.RESPONSE_CHARSET);
if (property != null) {
contentEncoding = (String) property.getValue();
}
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileNameParser.java
similarity index 72%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
copy to commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileNameParser.java
index 9dedc70..a2f519d 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
+++ b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileNameParser.java
@@ -14,21 +14,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav;
+package org.apache.commons.vfs2.provider.webdav4;
import org.apache.commons.vfs2.provider.FileNameParser;
-import org.apache.commons.vfs2.provider.http.HttpFileNameParser;
+import org.apache.commons.vfs2.provider.http4.Http4FileNameParser;
/**
- * Implementation for http. set default port to 80
+ * Implementation for http. set default port to 80.
*
- * @since 2.0
+ * @since 2.5
*/
-public class WebdavFileNameParser extends HttpFileNameParser {
+public class Webdav4FileNameParser extends Http4FileNameParser {
+ private static final Webdav4FileNameParser INSTANCE = new Webdav4FileNameParser();
- private static final WebdavFileNameParser INSTANCE = new WebdavFileNameParser();
-
- public WebdavFileNameParser() {
+ public Webdav4FileNameParser() {
super();
}
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileObject.java b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileObject.java
similarity index 64%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileObject.java
rename to commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileObject.java
index 21f12e6..b091682 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileObject.java
+++ b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileObject.java
@@ -14,26 +14,18 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav;
+package org.apache.commons.vfs2.provider.webdav4;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
+import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.apache.commons.httpclient.HttpMethod;
-import org.apache.commons.httpclient.HttpMethodBase;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.URIException;
-import org.apache.commons.httpclient.methods.ByteArrayRequestEntity;
-import org.apache.commons.httpclient.methods.RequestEntity;
-import org.apache.commons.httpclient.params.HttpMethodParams;
-import org.apache.commons.httpclient.util.DateUtil;
import org.apache.commons.vfs2.FileContentInfoFactory;
import org.apache.commons.vfs2.FileNotFolderException;
import org.apache.commons.vfs2.FileNotFoundException;
@@ -43,26 +35,35 @@ import org.apache.commons.vfs2.FileType;
import org.apache.commons.vfs2.NameScope;
import org.apache.commons.vfs2.provider.AbstractFileName;
import org.apache.commons.vfs2.provider.DefaultFileContent;
-import org.apache.commons.vfs2.provider.URLFileName;
-import org.apache.commons.vfs2.provider.http.HttpFileObject;
+import org.apache.commons.vfs2.provider.GenericURLFileName;
+import org.apache.commons.vfs2.provider.http4.Http4FileObject;
import org.apache.commons.vfs2.util.FileObjectUtils;
import org.apache.commons.vfs2.util.MonitorOutputStream;
+import org.apache.commons.vfs2.util.URIUtils;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpStatus;
+import org.apache.http.client.methods.HttpPut;
+import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.client.utils.DateUtils;
+import org.apache.http.entity.ByteArrayEntity;
+import org.apache.http.entity.ContentType;
import org.apache.jackrabbit.webdav.DavConstants;
import org.apache.jackrabbit.webdav.DavException;
import org.apache.jackrabbit.webdav.MultiStatus;
import org.apache.jackrabbit.webdav.MultiStatusResponse;
-import org.apache.jackrabbit.webdav.client.methods.CheckinMethod;
-import org.apache.jackrabbit.webdav.client.methods.CheckoutMethod;
-import org.apache.jackrabbit.webdav.client.methods.DavMethod;
-import org.apache.jackrabbit.webdav.client.methods.DeleteMethod;
-import org.apache.jackrabbit.webdav.client.methods.MkColMethod;
-import org.apache.jackrabbit.webdav.client.methods.MoveMethod;
-import org.apache.jackrabbit.webdav.client.methods.PropFindMethod;
-import org.apache.jackrabbit.webdav.client.methods.PropPatchMethod;
-import org.apache.jackrabbit.webdav.client.methods.PutMethod;
-import org.apache.jackrabbit.webdav.client.methods.UncheckoutMethod;
-import org.apache.jackrabbit.webdav.client.methods.VersionControlMethod;
+import org.apache.jackrabbit.webdav.client.methods.BaseDavRequest;
+import org.apache.jackrabbit.webdav.client.methods.HttpCheckin;
+import org.apache.jackrabbit.webdav.client.methods.HttpCheckout;
+import org.apache.jackrabbit.webdav.client.methods.HttpDelete;
+import org.apache.jackrabbit.webdav.client.methods.HttpMkcol;
+import org.apache.jackrabbit.webdav.client.methods.HttpMove;
+import org.apache.jackrabbit.webdav.client.methods.HttpPropfind;
+import org.apache.jackrabbit.webdav.client.methods.HttpProppatch;
+import org.apache.jackrabbit.webdav.client.methods.HttpVersionControl;
import org.apache.jackrabbit.webdav.property.DavProperty;
+import org.apache.jackrabbit.webdav.property.DavPropertyIterator;
import org.apache.jackrabbit.webdav.property.DavPropertyName;
import org.apache.jackrabbit.webdav.property.DavPropertyNameSet;
import org.apache.jackrabbit.webdav.property.DavPropertySet;
@@ -75,29 +76,27 @@ import org.w3c.dom.Node;
/**
* A WebDAV file.
*
- * @since 2.0
+ * @since 2.5
*/
-public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
-
+public class Webdav4FileObject extends Http4FileObject<Webdav4FileSystem> {
/**
* An OutputStream that writes to a Webdav resource.
* <p>
* TODO - Use piped stream to avoid temporary file.
- * </p>
*/
private class WebdavOutputStream extends MonitorOutputStream {
- private final WebdavFileObject file;
+ private final Webdav4FileObject file;
- public WebdavOutputStream(final WebdavFileObject file) {
+ public WebdavOutputStream(final Webdav4FileObject file) {
super(new ByteArrayOutputStream());
this.file = file;
}
private boolean createVersion(final String urlStr) {
try {
- final VersionControlMethod method = new VersionControlMethod(urlStr);
- setupMethod(method);
- execute(method);
+ final HttpVersionControl request = new HttpVersionControl(urlStr);
+ setupRequest(request);
+ executeRequest(request);
return true;
} catch (final Exception ex) {
return false;
@@ -109,8 +108,8 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
*/
@Override
protected void onClose() throws IOException {
- final RequestEntity entity = new ByteArrayRequestEntity(((ByteArrayOutputStream) out).toByteArray());
- final URLFileName fileName = (URLFileName) getName();
+ final HttpEntity entity = new ByteArrayEntity(((ByteArrayOutputStream) out).toByteArray());
+ final GenericURLFileName fileName = (GenericURLFileName) getName();
final String urlStr = toUrlString(fileName);
if (builder.isVersioning(getFileSystem().getFileSystemOptions())) {
DavPropertySet set = null;
@@ -136,9 +135,9 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
}
if (fileExists && isCheckedIn) {
try {
- final CheckoutMethod checkout = new CheckoutMethod(urlStr);
- setupMethod(checkout);
- execute(checkout);
+ final HttpCheckout request = new HttpCheckout(urlStr);
+ setupRequest(request);
+ executeRequest(request);
isCheckedIn = false;
} catch (final FileSystemException ex) {
// Ignore the exception checking out.
@@ -146,17 +145,17 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
}
try {
- final PutMethod method = new PutMethod(urlStr);
- method.setRequestEntity(entity);
- setupMethod(method);
- execute(method);
+ final HttpPut request = new HttpPut(urlStr);
+ request.setEntity(entity);
+ setupRequest(request);
+ executeRequest(request);
setUserName(fileName, urlStr);
} catch (final FileSystemException ex) {
if (!isCheckedIn) {
try {
- final UncheckoutMethod method = new UncheckoutMethod(urlStr);
- setupMethod(method);
- execute(method);
+ final HttpCheckin request = new HttpCheckin(urlStr);
+ setupRequest(request);
+ executeRequest(request);
isCheckedIn = true;
} catch (final Exception e) {
// Ignore the exception. Going to throw original.
@@ -174,15 +173,15 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
}
}
if (!isCheckedIn) {
- final CheckinMethod checkin = new CheckinMethod(urlStr);
- setupMethod(checkin);
- execute(checkin);
+ final HttpCheckin request = new HttpCheckin(urlStr);
+ setupRequest(request);
+ executeRequest(request);
}
} else {
- final PutMethod method = new PutMethod(urlStr);
- method.setRequestEntity(entity);
- setupMethod(method);
- execute(method);
+ final HttpPut request = new HttpPut(urlStr);
+ request.setEntity(entity);
+ setupRequest(request);
+ executeRequest(request);
try {
setUserName(fileName, urlStr);
} catch (final IOException e) {
@@ -192,8 +191,9 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
((DefaultFileContent) this.file.getContent()).resetAttributes();
}
- private void setUserName(final URLFileName fileName, final String urlStr) throws IOException {
- final List<DefaultDavProperty> list = new ArrayList<>();
+ private void setUserName(final GenericURLFileName fileName, final String urlStr) throws IOException {
+ final DavPropertySet setProperties = new DavPropertySet();
+ final DavPropertyNameSet removeProperties = new DavPropertyNameSet();
String name = builder.getCreatorName(getFileSystem().getFileSystemOptions());
final String userName = fileName.getUserName();
if (name == null) {
@@ -201,13 +201,13 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
} else {
if (userName != null) {
final String comment = "Modified by user " + userName;
- list.add(new DefaultDavProperty(DeltaVConstants.COMMENT, comment));
+ setProperties.add(new DefaultDavProperty(DeltaVConstants.COMMENT, comment));
}
}
- list.add(new DefaultDavProperty(DeltaVConstants.CREATOR_DISPLAYNAME, name));
- final PropPatchMethod method = new PropPatchMethod(urlStr, list);
- setupMethod(method);
- execute(method);
+ setProperties.add(new DefaultDavProperty(DeltaVConstants.CREATOR_DISPLAYNAME, name));
+ final HttpProppatch request = new HttpProppatch(urlStr, setProperties, removeProperties);
+ setupRequest(request);
+ executeRequest(request);
}
}
@@ -215,18 +215,20 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
public static final DavPropertyName RESPONSE_CHARSET = DavPropertyName.create("response-charset");
/** The FileSystemConfigBuilder */
- private final WebdavFileSystemConfigBuilder builder;
+ private final Webdav4FileSystemConfigBuilder builder;
- private final WebdavFileSystem fileSystem;
+ private final Webdav4FileSystem fileSystem;
- protected WebdavFileObject(final AbstractFileName name, final WebdavFileSystem fileSystem) {
- super(name, fileSystem, WebdavFileSystemConfigBuilder.getInstance());
- this.fileSystem = fileSystem;
- builder = (WebdavFileSystemConfigBuilder) WebdavFileSystemConfigBuilder.getInstance();
+ protected Webdav4FileObject(final AbstractFileName name, final Webdav4FileSystem fileSystem)
+ throws FileSystemException, URISyntaxException {
+ this(name, fileSystem, Webdav4FileSystemConfigBuilder.getInstance());
}
- protected void configureMethod(final HttpMethodBase httpMethod) {
- httpMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, WebdavMethodRetryHandler.getInstance());
+ protected Webdav4FileObject(final AbstractFileName name, final Webdav4FileSystem fileSystem,
+ final Webdav4FileSystemConfigBuilder builder) throws FileSystemException, URISyntaxException {
+ super(name, fileSystem, builder);
+ this.fileSystem = fileSystem;
+ this.builder = builder;
}
/**
@@ -234,10 +236,10 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
*/
@Override
protected void doCreateFolder() throws Exception {
- final DavMethod method = new MkColMethod(toUrlString((URLFileName) getName()));
- setupMethod(method);
+ final HttpMkcol request = new HttpMkcol(toUrlString((GenericURLFileName) getName()));
+ setupRequest(request);
try {
- execute(method);
+ executeRequest(request);
} catch (final FileSystemException fse) {
throw new FileSystemException("vfs.provider.webdav/create-collection.error", getName(), fse);
}
@@ -248,9 +250,9 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
*/
@Override
protected void doDelete() throws Exception {
- final DavMethod method = new DeleteMethod(toUrlString((URLFileName) getName()));
- setupMethod(method);
- execute(method);
+ final HttpDelete request = new HttpDelete(toUrlString((GenericURLFileName) getName()));
+ setupRequest(request);
+ executeRequest(request);
}
/**
@@ -260,20 +262,18 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
protected Map<String, Object> doGetAttributes() throws Exception {
final Map<String, Object> attributes = new HashMap<>();
try {
- final URLFileName fileName = (URLFileName) getName();
+ final GenericURLFileName fileName = (GenericURLFileName) getName();
DavPropertySet properties = getProperties(fileName, DavConstants.PROPFIND_ALL_PROP,
new DavPropertyNameSet(), false);
- @SuppressWarnings("unchecked") // iterator() is documented to return DavProperty instances
- final Iterator<DavProperty> iter = properties.iterator();
+ final DavPropertyIterator iter = properties.iterator();
while (iter.hasNext()) {
- final DavProperty property = iter.next();
+ final DavProperty property = iter.nextProperty();
attributes.put(property.getName().toString(), property.getValue());
}
properties = getPropertyNames(fileName);
- @SuppressWarnings("unchecked") // iterator() is documented to return DavProperty instances
- final Iterator<DavProperty> iter2 = properties.iterator();
+ final DavPropertyIterator iter2 = properties.iterator();
while (iter2.hasNext()) {
- DavProperty property = iter2.next();
+ DavProperty property = iter2.nextProperty();
if (!attributes.containsKey(property.getName().getName())) {
property = getProperty(fileName, property.getName());
if (property != null) {
@@ -296,7 +296,7 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
*/
@Override
protected long doGetContentSize() throws Exception {
- final DavProperty property = getProperty((URLFileName) getName(), DavConstants.PROPERTY_GETCONTENTLENGTH);
+ final DavProperty property = getProperty((GenericURLFileName) getName(), DavConstants.PROPERTY_GETCONTENTLENGTH);
if (property != null) {
final String value = (String) property.getValue();
return Long.parseLong(value);
@@ -310,10 +310,10 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
*/
@Override
protected long doGetLastModifiedTime() throws Exception {
- final DavProperty property = getProperty((URLFileName) getName(), DavConstants.PROPERTY_GETLASTMODIFIED);
+ final DavProperty property = getProperty((GenericURLFileName) getName(), DavConstants.PROPERTY_GETLASTMODIFIED);
if (property != null) {
final String value = (String) property.getValue();
- return DateUtil.parseDate(value).getTime();
+ return DateUtils.parseDate(value).getTime();
}
return 0;
}
@@ -330,7 +330,7 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
@Override
protected FileType doGetType() throws Exception {
try {
- return isDirectory((URLFileName) getName()) ? FileType.FOLDER : FileType.FILE;
+ return isDirectory((GenericURLFileName) getName()) ? FileType.FOLDER : FileType.FILE;
} catch (final FileNotFolderException fnfe) {
return FileType.IMAGINARY;
} catch (final FileNotFoundException fnfe) {
@@ -367,19 +367,19 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
*/
@Override
protected FileObject[] doListChildrenResolved() throws Exception {
- PropFindMethod method = null;
+ HttpPropfind request = null;
try {
- final URLFileName name = (URLFileName) getName();
+ final GenericURLFileName name = (GenericURLFileName) getName();
if (isDirectory(name)) {
final DavPropertyNameSet nameSet = new DavPropertyNameSet();
nameSet.add(DavPropertyName.create(DavConstants.PROPERTY_DISPLAYNAME));
- method = new PropFindMethod(toUrlString(name), nameSet, DavConstants.DEPTH_1);
+ request = new HttpPropfind(toUrlString(name), nameSet, DavConstants.DEPTH_1);
- execute(method);
- final List<WebdavFileObject> vfs = new ArrayList<>();
- if (method.succeeded()) {
- final MultiStatusResponse[] responses = method.getResponseBodyAsMultiStatus().getResponses();
+ final HttpResponse res = executeRequest(request);
+ final List<Webdav4FileObject> vfs = new ArrayList<>();
+ if (request.succeeded(res)) {
+ final MultiStatusResponse[] responses = request.getResponseBodyAsMultiStatus(res).getResponses();
for (final MultiStatusResponse response : responses) {
if (isCurrentFile(response.getHref(), name)) {
@@ -387,14 +387,14 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
}
final String resourceName = resourceName(response.getHref());
if (resourceName != null && resourceName.length() > 0) {
- final WebdavFileObject fo = (WebdavFileObject) FileObjectUtils.getAbstractFileObject(
+ final Webdav4FileObject fo = (Webdav4FileObject) FileObjectUtils.getAbstractFileObject(
getFileSystem().resolveFile(getFileSystem().getFileSystemManager()
.resolveName(getName(), resourceName, NameScope.CHILD)));
vfs.add(fo);
}
}
}
- return vfs.toArray(new WebdavFileObject[vfs.size()]);
+ return vfs.toArray(new Webdav4FileObject[vfs.size()]);
}
throw new FileNotFolderException(getName());
} catch (final FileNotFolderException fnfe) {
@@ -404,8 +404,8 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
} catch (final IOException e) {
throw new FileSystemException(e.getMessage(), e);
} finally {
- if (method != null) {
- method.releaseConnection();
+ if (request != null) {
+ request.releaseConnection();
}
}
}
@@ -415,11 +415,11 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
*/
@Override
protected void doRename(final FileObject newFile) throws Exception {
- final String url = encodePath(toUrlString((URLFileName) getName()));
- final String dest = toUrlString((URLFileName) newFile.getName(), false);
- final DavMethod method = new MoveMethod(url, dest, false);
- setupMethod(method);
- execute(method);
+ final String url = URIUtils.encodePath(toUrlString((GenericURLFileName) getName()));
+ final String dest = toUrlString((GenericURLFileName) newFile.getName(), false);
+ final HttpMove request = new HttpMove(url, dest, false);
+ setupRequest(request);
+ executeRequest(request);
}
/**
@@ -428,7 +428,7 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
@Override
protected void doSetAttribute(final String attrName, final Object value) throws Exception {
try {
- final URLFileName fileName = (URLFileName) getName();
+ final GenericURLFileName fileName = (GenericURLFileName) getName();
final String urlStr = toUrlString(fileName);
final DavPropertySet properties = new DavPropertySet();
final DavPropertyNameSet propertyNameSet = new DavPropertyNameSet();
@@ -439,10 +439,10 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
propertyNameSet.add(property.getName()); // remove property
}
- final PropPatchMethod method = new PropPatchMethod(urlStr, properties, propertyNameSet);
- setupMethod(method);
- execute(method);
- if (!method.succeeded()) {
+ final HttpProppatch request = new HttpProppatch(urlStr, properties, propertyNameSet);
+ setupRequest(request);
+ final HttpResponse response = executeRequest(request);
+ if (!request.succeeded(response)) {
throw new FileSystemException("Property '" + attrName + "' could not be set.");
}
} catch (final FileSystemException fse) {
@@ -452,19 +452,21 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
}
}
- /**
- * Execute a 'Workspace' operation.
- *
- * @param method The DavMethod to invoke.
- * @throws FileSystemException If an error occurs.
- */
- private void execute(final DavMethod method) throws FileSystemException {
+ private HttpResponse executeRequest(final HttpUriRequest request) throws FileSystemException {
+ HttpResponse response = null;
+
try {
- final int status = fileSystem.getClient().executeMethod(method);
+ response = executeHttpUriRequest(request);
+ final int status = response.getStatusLine().getStatusCode();
if (status == HttpURLConnection.HTTP_NOT_FOUND || status == HttpURLConnection.HTTP_GONE) {
- throw new FileNotFoundException(method.getURI());
+ throw new FileNotFoundException(request.getURI());
}
- method.checkSuccess();
+
+ if (request instanceof BaseDavRequest) {
+ ((BaseDavRequest) request).checkSuccess(response);
+ }
+
+ return response;
} catch (final FileSystemException fse) {
throw fse;
} catch (final IOException e) {
@@ -472,39 +474,41 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
} catch (final DavException e) {
throw ExceptionConverter.generate(e);
} finally {
- if (method != null) {
- method.releaseConnection();
+ if (request instanceof HttpRequestBase) {
+ ((HttpRequestBase) request).releaseConnection();
}
}
}
@Override
protected FileContentInfoFactory getFileContentInfoFactory() {
- return new WebdavFileContentInfoFactory();
+ return new Webdav4FileContentInfoFactory();
}
- DavPropertySet getProperties(final URLFileName name) throws FileSystemException {
+ DavPropertySet getProperties(final GenericURLFileName name) throws FileSystemException {
return getProperties(name, DavConstants.PROPFIND_ALL_PROP, new DavPropertyNameSet(), false);
}
- DavPropertySet getProperties(final URLFileName name, final DavPropertyNameSet nameSet, final boolean addEncoding)
+ DavPropertySet getProperties(final GenericURLFileName name, final DavPropertyNameSet nameSet, final boolean addEncoding)
throws FileSystemException {
return getProperties(name, DavConstants.PROPFIND_BY_PROPERTY, nameSet, addEncoding);
}
- DavPropertySet getProperties(final URLFileName name, final int type, final DavPropertyNameSet nameSet,
+ DavPropertySet getProperties(final GenericURLFileName name, final int type, final DavPropertyNameSet nameSet,
final boolean addEncoding) throws FileSystemException {
try {
final String urlStr = toUrlString(name);
- final PropFindMethod method = new PropFindMethod(urlStr, type, nameSet, DavConstants.DEPTH_0);
- setupMethod(method);
- execute(method);
- if (method.succeeded()) {
- final MultiStatus multiStatus = method.getResponseBodyAsMultiStatus();
+ final HttpPropfind request = new HttpPropfind(urlStr, type, nameSet, DavConstants.DEPTH_0);
+ setupRequest(request);
+ final HttpResponse res = executeRequest(request);
+ if (request.succeeded(res)) {
+ final MultiStatus multiStatus = request.getResponseBodyAsMultiStatus(res);
final MultiStatusResponse response = multiStatus.getResponses()[0];
final DavPropertySet props = response.getProperties(HttpStatus.SC_OK);
if (addEncoding) {
- final DavProperty prop = new DefaultDavProperty(RESPONSE_CHARSET, method.getResponseCharSet());
+ final ContentType resContentType = ContentType.getOrDefault(res.getEntity());
+ final DavProperty prop = new DefaultDavProperty(RESPONSE_CHARSET,
+ resContentType.getCharset().name());
props.add(prop);
}
return props;
@@ -518,18 +522,18 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
}
}
- DavProperty getProperty(final URLFileName fileName, final DavPropertyName name) throws FileSystemException {
+ DavProperty getProperty(final GenericURLFileName fileName, final DavPropertyName name) throws FileSystemException {
final DavPropertyNameSet nameSet = new DavPropertyNameSet();
nameSet.add(name);
final DavPropertySet propertySet = getProperties(fileName, nameSet, false);
return propertySet.get(name);
}
- DavProperty getProperty(final URLFileName fileName, final String property) throws FileSystemException {
+ DavProperty getProperty(final GenericURLFileName fileName, final String property) throws FileSystemException {
return getProperty(fileName, DavPropertyName.create(property));
}
- DavPropertySet getPropertyNames(final URLFileName name) throws FileSystemException {
+ DavPropertySet getPropertyNames(final GenericURLFileName name) throws FileSystemException {
return getProperties(name, DavConstants.PROPFIND_PROPERTY_NAMES, new DavPropertyNameSet(), false);
}
@@ -539,8 +543,8 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
* @param name The FileName.
* @return The encoded URL String.
*/
- private String hrefString(final URLFileName name) {
- final URLFileName newFile = new URLFileName("http", name.getHostName(), name.getPort(), name.getDefaultPort(),
+ private String hrefString(final GenericURLFileName name) {
+ final GenericURLFileName newFile = new GenericURLFileName("http", name.getHostName(), name.getPort(), name.getDefaultPort(),
null, null, name.getPath(), name.getType(), name.getQueryString());
try {
return newFile.getURIEncoded(this.getUrlCharset());
@@ -549,7 +553,7 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
}
}
- private boolean isCurrentFile(final String href, final URLFileName fileName) {
+ private boolean isCurrentFile(final String href, final GenericURLFileName fileName) {
String name = hrefString(fileName);
if (href.endsWith("/") && !name.endsWith("/")) {
name += "/";
@@ -557,7 +561,7 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
return href.equals(name) || href.equals(fileName.getPath());
}
- private boolean isDirectory(final URLFileName name) throws IOException {
+ private boolean isDirectory(final GenericURLFileName name) throws IOException {
try {
final DavProperty property = getProperty(name, DavConstants.PROPERTY_RESOURCETYPE);
Node node;
@@ -584,26 +588,15 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
return i >= 0 ? path.substring(i + 1) : path;
}
- /**
- * Prepares a Method object.
- *
- * @param method the HttpMethod.
- * @throws FileSystemException if an error occurs encoding the uri.
- * @throws URIException if the URI is in error.
- */
- @Override
- protected void setupMethod(final HttpMethod method) throws FileSystemException, URIException {
- final String pathEncoded = ((URLFileName) getName()).getPathQueryEncoded(this.getUrlCharset());
- method.setPath(pathEncoded);
- method.setFollowRedirects(this.getFollowRedirect());
- method.setRequestHeader("User-Agent", "Jakarta-Commons-VFS");
- method.addRequestHeader("Cache-control", "no-cache");
- method.addRequestHeader("Cache-store", "no-store");
- method.addRequestHeader("Pragma", "no-cache");
- method.addRequestHeader("Expires", "0");
+ private void setupRequest(final HttpUriRequest request) throws FileSystemException {
+ // NOTE: *FileSystemConfigBuilder takes care of redirect option and user agent.
+ request.addHeader("Cache-control", "no-cache");
+ request.addHeader("Cache-store", "no-store");
+ request.addHeader("Pragma", "no-cache");
+ request.addHeader("Expires", "0");
}
- private String toUrlString(final URLFileName name) {
+ private String toUrlString(final GenericURLFileName name) {
return toUrlString(name, true);
}
@@ -614,14 +607,14 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
* @param includeUserInfo true if user information should be included.
* @return The encoded URL String.
*/
- private String toUrlString(final URLFileName name, final boolean includeUserInfo) {
+ private String toUrlString(final GenericURLFileName name, final boolean includeUserInfo) {
String user = null;
String password = null;
if (includeUserInfo) {
user = name.getUserName();
password = name.getPassword();
}
- final URLFileName newFile = new URLFileName("http", name.getHostName(), name.getPort(), name.getDefaultPort(),
+ final GenericURLFileName newFile = new GenericURLFileName("http", name.getHostName(), name.getPort(), name.getDefaultPort(),
user, password, name.getPath(), name.getType(), name.getQueryString());
try {
return newFile.getURIEncoded(this.getUrlCharset());
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileProvider.java b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileProvider.java
similarity index 62%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileProvider.java
copy to commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileProvider.java
index bfc40b8..0800eea 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileProvider.java
+++ b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileProvider.java
@@ -14,31 +14,32 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav;
+package org.apache.commons.vfs2.provider.webdav4;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.vfs2.Capability;
import org.apache.commons.vfs2.FileName;
+import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystem;
import org.apache.commons.vfs2.FileSystemConfigBuilder;
import org.apache.commons.vfs2.FileSystemException;
import org.apache.commons.vfs2.FileSystemOptions;
import org.apache.commons.vfs2.UserAuthenticationData;
import org.apache.commons.vfs2.provider.GenericFileName;
-import org.apache.commons.vfs2.provider.http.HttpClientFactory;
-import org.apache.commons.vfs2.provider.http.HttpFileProvider;
+import org.apache.commons.vfs2.provider.http4.Http4FileProvider;
import org.apache.commons.vfs2.util.UserAuthenticatorUtils;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.protocol.HttpClientContext;
/**
- * A provider for WebDAV.
+ * A provider for WebDAV based on HTTP4.
*
- * @since 2.0
+ * @since 2.5
*/
-public class WebdavFileProvider extends HttpFileProvider {
+public class Webdav4FileProvider extends Http4FileProvider {
/**
* The authenticator types used by the WebDAV provider.
@@ -50,16 +51,31 @@ public class WebdavFileProvider extends HttpFileProvider {
UserAuthenticationData.USERNAME, UserAuthenticationData.PASSWORD };
/** The capabilities of the WebDAV provider */
- protected static final Collection<Capability> capabilities = Collections
- .unmodifiableCollection(Arrays.asList(new Capability[] { Capability.CREATE, Capability.DELETE,
- Capability.RENAME, Capability.GET_TYPE, Capability.LIST_CHILDREN, Capability.READ_CONTENT,
- Capability.URI, Capability.WRITE_CONTENT, Capability.GET_LAST_MODIFIED, Capability.ATTRIBUTES,
- Capability.RANDOM_ACCESS_READ, Capability.DIRECTORY_READ_CONTENT, }));
+ public static final Collection<Capability> DEFAULT_CAPABILITIES =
+ Collections.unmodifiableCollection(
+ Arrays.asList(
+ Capability.CREATE,
+ Capability.DELETE,
+ Capability.RENAME,
+ Capability.GET_TYPE,
+ Capability.LIST_CHILDREN,
+ Capability.READ_CONTENT,
+ Capability.URI,
+ Capability.WRITE_CONTENT,
+ Capability.GET_LAST_MODIFIED,
+ Capability.ATTRIBUTES,
+ Capability.RANDOM_ACCESS_READ,
+ Capability.DIRECTORY_READ_CONTENT
+ )
+ );
- public WebdavFileProvider() {
+ /** The capabilities of the WebDAV provider */
+ protected static final Collection<Capability> capabilities = DEFAULT_CAPABILITIES;
+
+ public Webdav4FileProvider() {
super();
- setFileNameParser(WebdavFileNameParser.getInstance());
+ setFileNameParser(Webdav4FileNameParser.getInstance());
}
/**
@@ -69,7 +85,6 @@ public class WebdavFileProvider extends HttpFileProvider {
* credentials configuration through to this method so it's used for resolving a
* {@link org.apache.commons.vfs2.FileObject FileObject} in the FileSystem, then be sure to use correct signature of
* the {@link org.apache.commons.vfs2.FileSystemManager FileSystemManager} resolveFile method.
- * </p>
*
* @see org.apache.commons.vfs2.impl.DefaultFileSystemManager#resolveFile(FileObject, String, FileSystemOptions)
*/
@@ -78,30 +93,28 @@ public class WebdavFileProvider extends HttpFileProvider {
throws FileSystemException {
// Create the file system
final GenericFileName rootName = (GenericFileName) name;
+ // TODO: need to check null to create a non-null here???
final FileSystemOptions fsOpts = fileSystemOptions == null ? new FileSystemOptions() : fileSystemOptions;
UserAuthenticationData authData = null;
- HttpClient httpClient;
+ HttpClient httpClient = null;
+ HttpClientContext httpClientContext = null;
+
try {
+ final Webdav4FileSystemConfigBuilder builder = Webdav4FileSystemConfigBuilder.getInstance();
authData = UserAuthenticatorUtils.authenticate(fsOpts, AUTHENTICATOR_TYPES);
-
- httpClient = HttpClientFactory.createConnection(WebdavFileSystemConfigBuilder.getInstance(), "http",
- rootName.getHostName(), rootName.getPort(),
- UserAuthenticatorUtils.toString(UserAuthenticatorUtils.getData(authData,
- UserAuthenticationData.USERNAME, UserAuthenticatorUtils.toChar(rootName.getUserName()))),
- UserAuthenticatorUtils.toString(UserAuthenticatorUtils.getData(authData,
- UserAuthenticationData.PASSWORD, UserAuthenticatorUtils.toChar(rootName.getPassword()))),
- fsOpts);
+ httpClientContext = createHttpClientContext(builder, rootName, fsOpts, authData);
+ httpClient = createHttpClient(builder, rootName, fsOpts);
} finally {
UserAuthenticatorUtils.cleanup(authData);
}
- return new WebdavFileSystem(rootName, httpClient, fsOpts);
+ return new Webdav4FileSystem(rootName, fsOpts, httpClient, httpClientContext);
}
@Override
public FileSystemConfigBuilder getConfigBuilder() {
- return WebdavFileSystemConfigBuilder.getInstance();
+ return Webdav4FileSystemConfigBuilder.getInstance();
}
@Override
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileSystem.java b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileSystem.java
similarity index 71%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileSystem.java
rename to commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileSystem.java
index 538ffac..68ecf1e 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileSystem.java
+++ b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileSystem.java
@@ -14,36 +14,31 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav;
+package org.apache.commons.vfs2.provider.webdav4;
import java.net.URLStreamHandler;
import java.util.Collection;
-import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.vfs2.Capability;
+import org.apache.commons.vfs2.FileName;
import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystemOptions;
import org.apache.commons.vfs2.provider.AbstractFileName;
import org.apache.commons.vfs2.provider.DefaultURLStreamHandler;
-import org.apache.commons.vfs2.provider.GenericFileName;
-import org.apache.commons.vfs2.provider.http.HttpFileSystem;
+import org.apache.commons.vfs2.provider.http4.Http4FileSystem;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.protocol.HttpClientContext;
/**
- * A WebDAV file system.
+ * A WebDAV file system based on HTTP4.
*
- * @since 2.0
+ * @since 2.5
*/
-public class WebdavFileSystem extends HttpFileSystem {
+public class Webdav4FileSystem extends Http4FileSystem {
- protected WebdavFileSystem(final GenericFileName rootName, final HttpClient client,
- final FileSystemOptions fileSystemOptions) {
- super(rootName, client, fileSystemOptions);
- }
-
- @Override
- protected HttpClient getClient() {
- // make accessible
- return super.getClient();
+ protected Webdav4FileSystem(final FileName rootName, final FileSystemOptions fileSystemOptions,
+ final HttpClient httpClient, final HttpClientContext httpClientContext) {
+ super(rootName, fileSystemOptions, httpClient, httpClientContext);
}
/**
@@ -53,7 +48,7 @@ public class WebdavFileSystem extends HttpFileSystem {
*/
@Override
protected void addCapabilities(final Collection<Capability> caps) {
- caps.addAll(WebdavFileProvider.capabilities);
+ caps.addAll(Webdav4FileProvider.capabilities);
}
/**
@@ -63,9 +58,8 @@ public class WebdavFileSystem extends HttpFileSystem {
* @return The created FileObject.
*/
@Override
- protected FileObject createFile(final AbstractFileName name) {
-
- return new WebdavFileObject(name, this);
+ protected FileObject createFile(final AbstractFileName name) throws Exception {
+ return new Webdav4FileObject(name, this);
}
/**
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileSystemConfigBuilder.java b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileSystemConfigBuilder.java
similarity index 83%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileSystemConfigBuilder.java
rename to commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileSystemConfigBuilder.java
index a86fa45..053e3bf 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileSystemConfigBuilder.java
+++ b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileSystemConfigBuilder.java
@@ -14,25 +14,25 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav;
+package org.apache.commons.vfs2.provider.webdav4;
import org.apache.commons.vfs2.FileSystem;
import org.apache.commons.vfs2.FileSystemOptions;
-import org.apache.commons.vfs2.provider.http.HttpFileSystemConfigBuilder;
+import org.apache.commons.vfs2.provider.http4.Http4FileSystemConfigBuilder;
/**
- * Configuration options for WebDav.
+ * Configuration options for WebDav based on HTTP4.
*
- * @since 2.0
+ * @since 2.5
*/
-public final class WebdavFileSystemConfigBuilder extends HttpFileSystemConfigBuilder {
+public final class Webdav4FileSystemConfigBuilder extends Http4FileSystemConfigBuilder {
- private static final WebdavFileSystemConfigBuilder BUILDER = new WebdavFileSystemConfigBuilder();
+ private static final Webdav4FileSystemConfigBuilder BUILDER = new Webdav4FileSystemConfigBuilder();
private static final boolean DEFAULT_FOLLOW_REDIRECT = false;
- private WebdavFileSystemConfigBuilder() {
- super("webdav.");
+ private Webdav4FileSystemConfigBuilder() {
+ super("webdav4.");
}
/**
@@ -40,7 +40,7 @@ public final class WebdavFileSystemConfigBuilder extends HttpFileSystemConfigBui
*
* @return the singleton builder.
*/
- public static HttpFileSystemConfigBuilder getInstance() {
+ public static Webdav4FileSystemConfigBuilder getInstance() {
return BUILDER;
}
@@ -70,7 +70,6 @@ public final class WebdavFileSystemConfigBuilder extends HttpFileSystemConfigBui
* @param opts The FileSystem options.
* @return {@code true} to follow redirects, {@code false} not to.
* @see #setFollowRedirect
- * @since 2.1
*/
@Override
public boolean getFollowRedirect(final FileSystemOptions opts) {
@@ -102,6 +101,6 @@ public final class WebdavFileSystemConfigBuilder extends HttpFileSystemConfigBui
*/
@Override
protected Class<? extends FileSystem> getConfigClass() {
- return WebdavFileSystem.class;
+ return Webdav4FileSystem.class;
}
}
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/package.html b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/package.html
similarity index 93%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/package.html
copy to commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/package.html
index d39cc53..8968c09 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/package.html
+++ b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/package.html
@@ -15,5 +15,5 @@
limitations under the License.
-->
<body>
-<p>The WebDAV File Provider</p>
+<p>The WebDAV Provider based on HTTP4 File Provider</p>
</body>
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4s/Webdav4sFileNameParser.java
similarity index 71%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
copy to commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4s/Webdav4sFileNameParser.java
index 9dedc70..317d0be 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
+++ b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4s/Webdav4sFileNameParser.java
@@ -14,21 +14,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav;
+package org.apache.commons.vfs2.provider.webdav4s;
import org.apache.commons.vfs2.provider.FileNameParser;
-import org.apache.commons.vfs2.provider.http.HttpFileNameParser;
+import org.apache.commons.vfs2.provider.http4s.Http4sFileNameParser;
/**
- * Implementation for http. set default port to 80
+ * Implementation for webdav over https. set default port to 443.
*
- * @since 2.0
+ * @since 2.5
*/
-public class WebdavFileNameParser extends HttpFileNameParser {
+public class Webdav4sFileNameParser extends Http4sFileNameParser {
- private static final WebdavFileNameParser INSTANCE = new WebdavFileNameParser();
+ private static final Webdav4sFileNameParser INSTANCE = new Webdav4sFileNameParser();
- public WebdavFileNameParser() {
+ public Webdav4sFileNameParser() {
super();
}
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileProvider.java b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4s/Webdav4sFileProvider.java
similarity index 57%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileProvider.java
rename to commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4s/Webdav4sFileProvider.java
index bfc40b8..c1194f3 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileProvider.java
+++ b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4s/Webdav4sFileProvider.java
@@ -14,52 +14,41 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav;
+package org.apache.commons.vfs2.provider.webdav4s;
-import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
-import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.vfs2.Capability;
import org.apache.commons.vfs2.FileName;
+import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystem;
import org.apache.commons.vfs2.FileSystemConfigBuilder;
import org.apache.commons.vfs2.FileSystemException;
import org.apache.commons.vfs2.FileSystemOptions;
import org.apache.commons.vfs2.UserAuthenticationData;
import org.apache.commons.vfs2.provider.GenericFileName;
-import org.apache.commons.vfs2.provider.http.HttpClientFactory;
-import org.apache.commons.vfs2.provider.http.HttpFileProvider;
+import org.apache.commons.vfs2.provider.http4s.Http4sFileProvider;
+import org.apache.commons.vfs2.provider.webdav4.Webdav4FileProvider;
+import org.apache.commons.vfs2.provider.webdav4.Webdav4FileSystem;
+import org.apache.commons.vfs2.provider.webdav4.Webdav4FileSystemConfigBuilder;
import org.apache.commons.vfs2.util.UserAuthenticatorUtils;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.protocol.HttpClientContext;
/**
- * A provider for WebDAV.
+ * A provider for WebDAV based on HTTP4S.
*
- * @since 2.0
+ * @since 2.5
*/
-public class WebdavFileProvider extends HttpFileProvider {
-
- /**
- * The authenticator types used by the WebDAV provider.
- *
- * @deprecated Might be removed in the next major version.
- */
- @Deprecated
- public static final UserAuthenticationData.Type[] AUTHENTICATOR_TYPES = new UserAuthenticationData.Type[] {
- UserAuthenticationData.USERNAME, UserAuthenticationData.PASSWORD };
+public class Webdav4sFileProvider extends Http4sFileProvider {
/** The capabilities of the WebDAV provider */
- protected static final Collection<Capability> capabilities = Collections
- .unmodifiableCollection(Arrays.asList(new Capability[] { Capability.CREATE, Capability.DELETE,
- Capability.RENAME, Capability.GET_TYPE, Capability.LIST_CHILDREN, Capability.READ_CONTENT,
- Capability.URI, Capability.WRITE_CONTENT, Capability.GET_LAST_MODIFIED, Capability.ATTRIBUTES,
- Capability.RANDOM_ACCESS_READ, Capability.DIRECTORY_READ_CONTENT, }));
+ protected static final Collection<Capability> capabilities = Webdav4FileProvider.DEFAULT_CAPABILITIES;
- public WebdavFileProvider() {
+ public Webdav4sFileProvider() {
super();
- setFileNameParser(WebdavFileNameParser.getInstance());
+ setFileNameParser(Webdav4sFileNameParser.getInstance());
}
/**
@@ -69,7 +58,6 @@ public class WebdavFileProvider extends HttpFileProvider {
* credentials configuration through to this method so it's used for resolving a
* {@link org.apache.commons.vfs2.FileObject FileObject} in the FileSystem, then be sure to use correct signature of
* the {@link org.apache.commons.vfs2.FileSystemManager FileSystemManager} resolveFile method.
- * </p>
*
* @see org.apache.commons.vfs2.impl.DefaultFileSystemManager#resolveFile(FileObject, String, FileSystemOptions)
*/
@@ -78,34 +66,34 @@ public class WebdavFileProvider extends HttpFileProvider {
throws FileSystemException {
// Create the file system
final GenericFileName rootName = (GenericFileName) name;
+ // TODO: need to check null to create a non-null here???
final FileSystemOptions fsOpts = fileSystemOptions == null ? new FileSystemOptions() : fileSystemOptions;
UserAuthenticationData authData = null;
- HttpClient httpClient;
- try {
- authData = UserAuthenticatorUtils.authenticate(fsOpts, AUTHENTICATOR_TYPES);
+ HttpClient httpClient = null;
+ HttpClientContext httpClientContext = null;
- httpClient = HttpClientFactory.createConnection(WebdavFileSystemConfigBuilder.getInstance(), "http",
- rootName.getHostName(), rootName.getPort(),
- UserAuthenticatorUtils.toString(UserAuthenticatorUtils.getData(authData,
- UserAuthenticationData.USERNAME, UserAuthenticatorUtils.toChar(rootName.getUserName()))),
- UserAuthenticatorUtils.toString(UserAuthenticatorUtils.getData(authData,
- UserAuthenticationData.PASSWORD, UserAuthenticatorUtils.toChar(rootName.getPassword()))),
- fsOpts);
+ try {
+ final Webdav4FileSystemConfigBuilder builder = Webdav4FileSystemConfigBuilder.getInstance();
+ authData = UserAuthenticatorUtils.authenticate(fsOpts, Webdav4FileProvider.AUTHENTICATOR_TYPES);
+ httpClientContext = createHttpClientContext(builder, rootName, fsOpts, authData);
+ httpClient = createHttpClient(builder, rootName, fsOpts);
} finally {
UserAuthenticatorUtils.cleanup(authData);
}
- return new WebdavFileSystem(rootName, httpClient, fsOpts);
+ return new Webdav4FileSystem(rootName, fsOpts, httpClient, httpClientContext) {
+ };
}
@Override
public FileSystemConfigBuilder getConfigBuilder() {
- return WebdavFileSystemConfigBuilder.getInstance();
+ return Webdav4FileSystemConfigBuilder.getInstance();
}
@Override
public Collection<Capability> getCapabilities() {
return capabilities;
}
+
}
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/package.html b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4s/package.html
similarity index 93%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/package.html
rename to commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4s/package.html
index d39cc53..6697a88 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/package.html
+++ b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4s/package.html
@@ -15,5 +15,5 @@
limitations under the License.
-->
<body>
-<p>The WebDAV File Provider</p>
+<p>The WebDAV Provider based on HTTP4S File Provider</p>
</body>
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java b/commons-vfs2-jackrabbit2/src/test/java/code/ClassToLoad.java
similarity index 61%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
copy to commons-vfs2-jackrabbit2/src/test/java/code/ClassToLoad.java
index 9dedc70..c01f3b1 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
+++ b/commons-vfs2-jackrabbit2/src/test/java/code/ClassToLoad.java
@@ -14,25 +14,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav;
-
-import org.apache.commons.vfs2.provider.FileNameParser;
-import org.apache.commons.vfs2.provider.http.HttpFileNameParser;
+package code;
/**
- * Implementation for http. set default port to 80
- *
- * @since 2.0
+ * The test class for the VFS classloader.
*/
-public class WebdavFileNameParser extends HttpFileNameParser {
-
- private static final WebdavFileNameParser INSTANCE = new WebdavFileNameParser();
-
- public WebdavFileNameParser() {
- super();
- }
+public class ClassToLoad {
+ private final String m_message = "**PRIVATE**";
- public static FileNameParser getInstance() {
- return INSTANCE;
+ @Override
+ public String toString() {
+ return m_message;
}
}
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java b/commons-vfs2-jackrabbit2/src/test/java/code/sealed/AnotherClass.java
similarity index 60%
rename from commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
rename to commons-vfs2-jackrabbit2/src/test/java/code/sealed/AnotherClass.java
index 9dedc70..56dd937 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileNameParser.java
+++ b/commons-vfs2-jackrabbit2/src/test/java/code/sealed/AnotherClass.java
@@ -14,25 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav;
-
-import org.apache.commons.vfs2.provider.FileNameParser;
-import org.apache.commons.vfs2.provider.http.HttpFileNameParser;
+package code.sealed;
/**
- * Implementation for http. set default port to 80
- *
- * @since 2.0
+ * A test class for the ClassLoader tests.
*/
-public class WebdavFileNameParser extends HttpFileNameParser {
-
- private static final WebdavFileNameParser INSTANCE = new WebdavFileNameParser();
-
- public WebdavFileNameParser() {
- super();
- }
-
- public static FileNameParser getInstance() {
- return INSTANCE;
- }
+public class AnotherClass {
}
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/JcrUtils.java b/commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/JcrUtils.java
similarity index 96%
rename from commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/JcrUtils.java
rename to commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/JcrUtils.java
index cc89909..48a4d12 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/JcrUtils.java
+++ b/commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/JcrUtils.java
@@ -1,194 +1,195 @@
-/*
- * 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.
- */
-
-// COPIED FROM JACKRABBIT 2.4.0 (No additional NOTICE required, see VFS-611)
-
-package org.apache.commons.vfs2.provider.webdav.test;
-
-import java.io.InputStream;
-import java.util.Calendar;
-
-import javax.jcr.Node;
-import javax.jcr.RepositoryException;
-import javax.jcr.Value;
-
-/**
- * Collection of static utility methods for use with the JCR 1.0 API and Apache Jackrabbit 1.5.2.
- *
- * Copied, adapted and pruned down from Jackrabbit 2.4.0.
- *
- * @since 2.1
- */
-class JcrUtils {
-
- private static final String NodeType_NT_RESOURCE = "nt:resource";
-
- private static final String Node_JCR_CONTENT = "jcr:content";
-
- private static final String NodeType_NT_FOLDER = "nt:folder";
-
- private static final String NodeType_NT_FILE = "nt:file";
-
- private static final String Property_JCR_MIMETYPE = "jcr:mimeType";
-
- private static final String Property_JCR_ENCODING = "jcr:encoding";
-
- private static final String Property_JCR_LAST_MODIFIED = "jcr:lastModified";
-
- private static final String Property_JCR_DATA = "jcr:data";
-
- /**
- * Returns the named child of the given node, creating it as an nt:folder node if it does not already exist. The
- * caller is expected to take care of saving or discarding any transient changes.
- * <p>
- * Note that the type of the returned node is <em>not</em> guaranteed to match nt:folder in case the node already
- * existed. The caller can use an explicit {@link Node#isNodeType(String)} check if needed, or simply use a
- * data-first approach and not worry about the node type until a constraint violation is encountered.
- *
- * @param parent parent node
- * @param name name of the child node
- * @return the child node
- * @throws RepositoryException if the child node can not be accessed or created
- */
- public static Node getOrAddFolder(final Node parent, final String name) throws RepositoryException {
- return getOrAddNode(parent, name, NodeType_NT_FOLDER);
- }
-
- /**
- * Returns the named child of the given node, creating the child if it does not already exist. If the child node
- * gets added, then it is created with the given node type. The caller is expected to take care of saving or
- * discarding any transient changes.
- *
- * @see Node#getNode(String)
- * @see Node#addNode(String, String)
- * @see Node#isNodeType(String)
- * @param parent parent node
- * @param name name of the child node
- * @param type type of the child node, ignored if the child already exists
- * @return the child node
- * @throws RepositoryException if the child node can not be accessed or created
- */
- public static Node getOrAddNode(final Node parent, final String name, final String type)
- throws RepositoryException {
- if (parent.hasNode(name)) {
- return parent.getNode(name);
- }
- return parent.addNode(name, type);
- }
-
- /**
- * Creates or updates the named child of the given node. If the child does not already exist, then it is created
- * using the nt:file node type. This file child node is returned from this method.
- * <p>
- * If the file node does not already contain a jcr:content child, then one is created using the nt:resource node
- * type. The following properties are set on the jcr:content node:
- * <dl>
- * <dt>jcr:mimeType</dt>
- * <dd>media type</dd>
- * <dt>jcr:encoding (optional)</dt>
- * <dd>charset parameter of the media type, if any</dd>
- * <dt>jcr:lastModified</dt>
- * <dd>current time</dd>
- * <dt>jcr:data</dt>
- * <dd>binary content</dd>
- * </dl>
- * <p>
- * Note that the types of the returned node or the jcr:content child are <em>not</em> guaranteed to match nt:file
- * and nt:resource in case the nodes already existed. The caller can use an explicit {@link Node#isNodeType(String)}
- * check if needed, or simply use a data-first approach and not worry about the node type until a constraint
- * violation is encountered.
- * <p>
- * The given binary content stream is closed by this method.
- *
- * @param parent parent node
- * @param name name of the file
- * @param mime media type of the file
- * @param data binary content of the file
- * @return the child node
- * @throws RepositoryException if the child node can not be created or updated
- */
- public static Node putFile(final Node parent, final String name, final String mime, final InputStream data)
- throws RepositoryException {
- return putFile(parent, name, mime, data, Calendar.getInstance());
- }
-
- /**
- * Creates or updates the named child of the given node. If the child does not already exist, then it is created
- * using the nt:file node type. This file child node is returned from this method.
- * <p>
- * If the file node does not already contain a jcr:content child, then one is created using the nt:resource node
- * type. The following properties are set on the jcr:content node:
- * <dl>
- * <dt>jcr:mimeType</dt>
- * <dd>media type</dd>
- * <dt>jcr:encoding (optional)</dt>
- * <dd>charset parameter of the media type, if any</dd>
- * <dt>jcr:lastModified</dt>
- * <dd>date of last modification</dd>
- * <dt>jcr:data</dt>
- * <dd>binary content</dd>
- * </dl>
- * <p>
- * Note that the types of the returned node or the jcr:content child are <em>not</em> guaranteed to match nt:file
- * and nt:resource in case the nodes already existed. The caller can use an explicit {@link Node#isNodeType(String)}
- * check if needed, or simply use a data-first approach and not worry about the node type until a constraint
- * violation is encountered.
- * <p>
- * The given binary content stream is closed by this method.
- *
- * @param parent parent node
- * @param name name of the file
- * @param mime media type of the file
- * @param data binary content of the file
- * @param date date of last modification
- * @return the child node
- * @throws RepositoryException if the child node can not be created or updated
- */
- public static Node putFile(final Node parent, final String name, final String mime, final InputStream data,
- final Calendar date) throws RepositoryException {
- final Value binary = parent.getSession().getValueFactory().createValue(data);
- try {
- final Node file = getOrAddNode(parent, name, NodeType_NT_FILE);
- final Node content = getOrAddNode(file, Node_JCR_CONTENT, NodeType_NT_RESOURCE);
-
- content.setProperty(Property_JCR_MIMETYPE, mime);
- final String[] parameters = mime.split(";");
- for (int i = 1; i < parameters.length; i++) {
- final int equals = parameters[i].indexOf('=');
- if (equals != -1) {
- final String parameter = parameters[i].substring(0, equals);
- if ("charset".equalsIgnoreCase(parameter.trim())) {
- content.setProperty(Property_JCR_ENCODING, parameters[i].substring(equals + 1).trim());
- }
- }
- }
-
- content.setProperty(Property_JCR_LAST_MODIFIED, date);
- content.setProperty(Property_JCR_DATA, binary);
- return file;
- } finally {
- // JCR 2.0 API:
- // binary.dispose();
- }
- }
-
- /**
- * Private constructor to prevent instantiation of this class.
- */
- private JcrUtils() {
- }
-}
+/*
+ * 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.
+ */
+
+// COPIED FROM JACKRABBIT 2.4.0 (No additional NOTICE required, see VFS-611)
+
+package org.apache.commons.vfs2.provider.webdav4.test;
+
+import java.io.InputStream;
+import java.util.Calendar;
+
+import javax.jcr.Node;
+import javax.jcr.RepositoryException;
+import javax.jcr.Value;
+
+/**
+ * Collection of static utility methods for use with the JCR 1.0 API and Apache Jackrabbit 1.5.2.
+ *
+ * Copied, adapted and pruned down from Jackrabbit 2.4.0.
+ *
+ * @since 2.5
+ */
+class JcrUtils {
+
+ private static final String NodeType_NT_RESOURCE = "nt:resource";
+
+ private static final String Node_JCR_CONTENT = "jcr:content";
+
+ private static final String NodeType_NT_FOLDER = "nt:folder";
+
+ private static final String NodeType_NT_FILE = "nt:file";
+
+ private static final String Property_JCR_MIMETYPE = "jcr:mimeType";
+
+ private static final String Property_JCR_ENCODING = "jcr:encoding";
+
+ private static final String Property_JCR_LAST_MODIFIED = "jcr:lastModified";
+
+ private static final String Property_JCR_DATA = "jcr:data";
+
+ /**
+ * Returns the named child of the given node, creating it as an nt:folder node if it does not already exist. The
+ * caller is expected to take care of saving or discarding any transient changes.
+ * <p>
+ * Note that the type of the returned node is <em>not</em> guaranteed to match nt:folder in case the node already
+ * existed. The caller can use an explicit {@link Node#isNodeType(String)} check if needed, or simply use a
+ * data-first approach and not worry about the node type until a constraint violation is encountered.
+ *
+ * @param parent parent node
+ * @param name name of the child node
+ * @return the child node
+ * @throws RepositoryException if the child node can not be accessed or created
+ */
+ public static Node getOrAddFolder(final Node parent, final String name) throws RepositoryException {
+ return getOrAddNode(parent, name, NodeType_NT_FOLDER);
+ }
+
+ /**
+ * Returns the named child of the given node, creating the child if it does not already exist. If the child node
+ * gets added, then it is created with the given node type. The caller is expected to take care of saving or
+ * discarding any transient changes.
+ *
+ * @see Node#getNode(String)
+ * @see Node#addNode(String, String)
+ * @see Node#isNodeType(String)
+ * @param parent parent node
+ * @param name name of the child node
+ * @param type type of the child node, ignored if the child already exists
+ * @return the child node
+ * @throws RepositoryException if the child node can not be accessed or created
+ */
+ public static Node getOrAddNode(final Node parent, final String name, final String type)
+ throws RepositoryException {
+ if (parent.hasNode(name)) {
+ return parent.getNode(name);
+ }
+ return parent.addNode(name, type);
+ }
+
+ /**
+ * Creates or updates the named child of the given node. If the child does not already exist, then it is created
+ * using the nt:file node type. This file child node is returned from this method.
+ * <p>
+ * If the file node does not already contain a jcr:content child, then one is created using the nt:resource node
+ * type. The following properties are set on the jcr:content node:
+ * <dl>
+ * <dt>jcr:mimeType</dt>
+ * <dd>media type</dd>
+ * <dt>jcr:encoding (optional)</dt>
+ * <dd>charset parameter of the media type, if any</dd>
+ * <dt>jcr:lastModified</dt>
+ * <dd>current time</dd>
+ * <dt>jcr:data</dt>
+ * <dd>binary content</dd>
+ * </dl>
+ * <p>
+ * Note that the types of the returned node or the jcr:content child are <em>not</em> guaranteed to match nt:file
+ * and nt:resource in case the nodes already existed. The caller can use an explicit {@link Node#isNodeType(String)}
+ * check if needed, or simply use a data-first approach and not worry about the node type until a constraint
+ * violation is encountered.
+ * <p>
+ * The given binary content stream is closed by this method.
+ *
+ * @param parent parent node
+ * @param name name of the file
+ * @param mime media type of the file
+ * @param data binary content of the file
+ * @return the child node
+ * @throws RepositoryException if the child node can not be created or updated
+ */
+ public static Node putFile(final Node parent, final String name, final String mime, final InputStream data)
+ throws RepositoryException {
+ return putFile(parent, name, mime, data, Calendar.getInstance());
+ }
+
+ /**
+ * Creates or updates the named child of the given node. If the child does not already exist, then it is created
+ * using the nt:file node type. This file child node is returned from this method.
+ * <p>
+ * If the file node does not already contain a jcr:content child, then one is created using the nt:resource node
+ * type. The following properties are set on the jcr:content node:
+ * <dl>
+ * <dt>jcr:mimeType</dt>
+ * <dd>media type</dd>
+ * <dt>jcr:encoding (optional)</dt>
+ * <dd>charset parameter of the media type, if any</dd>
+ * <dt>jcr:lastModified</dt>
+ * <dd>date of last modification</dd>
+ * <dt>jcr:data</dt>
+ * <dd>binary content</dd>
+ * </dl>
+ * <p>
+ * Note that the types of the returned node or the jcr:content child are <em>not</em> guaranteed to match nt:file
+ * and nt:resource in case the nodes already existed. The caller can use an explicit {@link Node#isNodeType(String)}
+ * check if needed, or simply use a data-first approach and not worry about the node type until a constraint
+ * violation is encountered.
+ * <p>
+ * The given binary content stream is closed by this method.
+ *
+ * @param parent parent node
+ * @param name name of the file
+ * @param mime media type of the file
+ * @param data binary content of the file
+ * @param date date of last modification
+ * @return the child node
+ * @throws RepositoryException if the child node can not be created or updated
+ */
+ public static Node putFile(final Node parent, final String name, final String mime, final InputStream data,
+ final Calendar date) throws RepositoryException {
+ final Value binary = parent.getSession().getValueFactory().createValue(data);
+
+ try {
+ final Node file = getOrAddNode(parent, name, NodeType_NT_FILE);
+ final Node content = getOrAddNode(file, Node_JCR_CONTENT, NodeType_NT_RESOURCE);
+
+ content.setProperty(Property_JCR_MIMETYPE, mime);
+ final String[] parameters = mime.split(";");
+ for (int i = 1; i < parameters.length; i++) {
+ final int equals = parameters[i].indexOf('=');
+ if (equals != -1) {
+ final String parameter = parameters[i].substring(0, equals);
+ if ("charset".equalsIgnoreCase(parameter.trim())) {
+ content.setProperty(Property_JCR_ENCODING, parameters[i].substring(equals + 1).trim());
+ }
+ }
+ }
+
+ content.setProperty(Property_JCR_LAST_MODIFIED, date);
+ content.setProperty(Property_JCR_DATA, binary);
+ return file;
+ } finally {
+ // JCR 2.0 API:
+ // binary.dispose();
+ }
+ }
+
+ /**
+ * Private constructor to prevent instantiation of this class.
+ */
+ private JcrUtils() {
+ }
+}
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavProviderTestCase.java b/commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/Webdav4ProviderTestCase.java
similarity index 80%
rename from commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavProviderTestCase.java
rename to commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/Webdav4ProviderTestCase.java
index 4a844dc..4871255 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavProviderTestCase.java
+++ b/commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/Webdav4ProviderTestCase.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav.test;
+package org.apache.commons.vfs2.provider.webdav4.test;
import java.io.File;
import java.io.FileInputStream;
@@ -30,38 +30,41 @@ import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.jcr.Value;
-import junit.framework.Test;
-
-import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.io.FileUtils;
import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystemManager;
import org.apache.commons.vfs2.FileSystemOptions;
+import org.apache.commons.vfs2.VFS;
import org.apache.commons.vfs2.impl.DefaultFileSystemManager;
import org.apache.commons.vfs2.provider.temp.TemporaryFileProvider;
-import org.apache.commons.vfs2.provider.webdav.WebdavFileProvider;
-import org.apache.commons.vfs2.provider.webdav.WebdavFileSystemConfigBuilder;
+import org.apache.commons.vfs2.provider.webdav4.Webdav4FileProvider;
+import org.apache.commons.vfs2.provider.webdav4.Webdav4FileSystemConfigBuilder;
import org.apache.commons.vfs2.test.AbstractProviderTestConfig;
import org.apache.commons.vfs2.test.ProviderTestSuite;
import org.apache.commons.vfs2.util.FreeSocketPortUtil;
import org.apache.jackrabbit.core.TransientRepository;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
+import org.apache.jackrabbit.standalone.Main;
+
+import junit.framework.Test;
/**
- * Test cases for the WebDAV provider.
+ * Test cases for the WebDAV4 provider.
*
+ * @since 2.5
*/
-public class WebdavProviderTestCase extends AbstractProviderTestConfig {
- private static final char[] PASSWORD = new char[0];
+public class Webdav4ProviderTestCase extends AbstractProviderTestConfig {
private static final String USER_ID = "admin";
+ private static final String PASSWORD = "admin";
+
+ private static final char[] PASSWORD_CHARS = PASSWORD.toCharArray();
+
private static int SocketPort;
- private static final String TEST_URI = "test.webdav.uri";
+ private static final String TEST_URI = "test.webdav4.uri";
- private static JackrabbitMain JrMain;
+ private static Main jrMain;
/**
* Use %40 for @ in URLs
@@ -70,14 +73,14 @@ public class WebdavProviderTestCase extends AbstractProviderTestConfig {
private static File RepoDirectory;
- private static boolean DEBUG = Boolean.getBoolean("WebdavProviderTestCase.Debug");
+ private static boolean DEBUG = Boolean.getBoolean("Webdav4ProviderTestCase.Debug");
static File createTempDirectory() throws IOException {
// create base folder
final File base = new File("./target/test").getCanonicalFile();
base.mkdirs();
- final File tempFile = File.createTempFile("WebdavProviderTestCase_", ".tmp", base);
+ final File tempFile = File.createTempFile("Webdav4ProviderTestCase_", ".tmp", base);
if (!tempFile.delete()) {
throw new IOException("Could not delete temp file: " + tempFile.getAbsolutePath());
@@ -143,7 +146,7 @@ public class WebdavProviderTestCase extends AbstractProviderTestConfig {
}
private static Session getSession(final TransientRepository repository) throws RepositoryException {
- return repository.login(new SimpleCredentials(USER_ID, PASSWORD));
+ return repository.login(new SimpleCredentials(USER_ID, PASSWORD_CHARS));
}
private static String getSystemTestUriOverride() {
@@ -151,10 +154,7 @@ public class WebdavProviderTestCase extends AbstractProviderTestConfig {
}
private static TransientRepository getTransientRepository(final File repoDirectory) throws IOException {
- // Jackrabbit 1.6:
- // TransientRepository repository = new TransientRepository(repoDirectory);
- // Jackrabbit 1.5.2:
- return new TransientRepository(new File(repoDirectory, "repository.xml").toString(), repoDirectory.toString());
+ return new TransientRepository(new File(repoDirectory, "repository.xml"), repoDirectory);
}
private static void importFiles(final File repoDirectory, final File sourceDir) throws Exception {
@@ -173,12 +173,9 @@ public class WebdavProviderTestCase extends AbstractProviderTestConfig {
final File[] files = sourceDir.listFiles();
for (final File file : files) {
if (file.isFile()) {
- final InputStream data = new FileInputStream(file);
- try {
+ try (final InputStream data = new FileInputStream(file)) {
message("Importing file " + file);
JcrUtils.putFile(parent, file.getName(), "application/octet-stream", data);
- } finally {
- data.close();
}
} else if (file.isDirectory()) {
message("Importing folder " + file);
@@ -225,26 +222,36 @@ public class WebdavProviderTestCase extends AbstractProviderTestConfig {
*/
private static void startJackrabbit(final File repoDirectory) throws Exception {
boolean quiet = false;
+
if (!DEBUG) {
- Logger.getLogger("org.apache.jackrabbit").setLevel(Level.WARN);
- Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.ERROR);
- Logger.getLogger("org.apache.commons.vfs2").setLevel(Level.WARN);
- Logger.getLogger("org.mortbay").setLevel(Level.WARN);
quiet = true;
}
- JrMain = new JackrabbitMain(new String[] { "--port", Integer.toString(SocketPort), "--repo",
- repoDirectory.toString(), quiet ? "--quiet" : "" });
- JrMain.run();
+
+ jrMain = new Main(new String[] { "--port", Integer.toString(SocketPort), "--repo", repoDirectory.toString(),
+ quiet ? "--quiet" : "" }) {
+ };
+
+ jrMain.run();
}
public static Test suite() throws Exception {
- return new ProviderTestSuite(new WebdavProviderTestCase()) {
+ return new ProviderTestSuite(new Webdav4ProviderTestCase()) {
@Override
protected void setUp() throws Exception {
if (getSystemTestUriOverride() == null) {
setUpClass();
}
- super.setUp();
+ try {
+ // Since webdav4 is not registered in the standard file system configuration yet,
+ // it must be registered manually here. Otherwise, HostFileNameParser#extractToPath() fails.
+ final DefaultFileSystemManager manager = (DefaultFileSystemManager) VFS.getManager();
+ if (!manager.hasProvider("webdav4")) {
+ manager.addProvider("webdav4", new Webdav4FileProvider());
+ }
+ super.setUp();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
@Override
@@ -267,8 +274,8 @@ public class WebdavProviderTestCase extends AbstractProviderTestConfig {
* @throws Exception @throws
*/
private static void tearDownClass() throws Exception {
- // Main JR shutdown
- JrMain.shutdown();
+ // Stop Jackrabbit Main for graceful shutdown
+ jrMain.shutdown();
if (DEBUG) {
message("Skipping cleanup of " + RepoDirectory);
@@ -288,12 +295,12 @@ public class WebdavProviderTestCase extends AbstractProviderTestConfig {
}
}
- public WebdavProviderTestCase() throws IOException {
+ public Webdav4ProviderTestCase() throws IOException {
SocketPort = FreeSocketPortUtil.findFreeLocalPort();
message("FreeSocketPortUtil.findFreeLocalPort() = " + SocketPort);
// Use %40 for @ in a URL
// Any user id and password will do with the default Jackrabbit set up.
- ConnectionUri = String.format("webdav://%s@localhost:%d/repository/default", USER_ID, SocketPort);
+ ConnectionUri = String.format("webdav4://%s:%s@localhost:%d/repository/default", USER_ID, PASSWORD, SocketPort);
}
/**
@@ -305,8 +312,8 @@ public class WebdavProviderTestCase extends AbstractProviderTestConfig {
if (uri == null) {
uri = ConnectionUri;
}
- final WebdavFileSystemConfigBuilder builder = (WebdavFileSystemConfigBuilder) manager
- .getFileSystemConfigBuilder("webdav");
+ final Webdav4FileSystemConfigBuilder builder = (Webdav4FileSystemConfigBuilder) manager
+ .getFileSystemConfigBuilder("webdav4");
final FileSystemOptions opts = new FileSystemOptions();
builder.setRootURI(opts, uri);
return manager.resolveFile(uri, opts);
@@ -322,7 +329,7 @@ public class WebdavProviderTestCase extends AbstractProviderTestConfig {
*/
@Override
public void prepare(final DefaultFileSystemManager manager) throws Exception {
- manager.addProvider("webdav", new WebdavFileProvider());
+ manager.addProvider("webdav4", new Webdav4FileProvider());
manager.addProvider("tmp", new TemporaryFileProvider());
}
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavProviderTestSuite.java b/commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/Webdav4ProviderTestSuite.java
similarity index 87%
rename from commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavProviderTestSuite.java
rename to commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/Webdav4ProviderTestSuite.java
index 7362cc8..a84e188 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavProviderTestSuite.java
+++ b/commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/Webdav4ProviderTestSuite.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav.test;
+package org.apache.commons.vfs2.provider.webdav4.test;
import org.apache.commons.vfs2.test.ContentTests;
import org.apache.commons.vfs2.test.LastModifiedTests;
@@ -35,24 +35,26 @@ import org.apache.commons.vfs2.test.UrlTests;
/**
* The suite of tests for a file system.
+ *
+ * @since 2.5
*/
-public class WebdavProviderTestSuite extends ProviderTestSuite {
+public class Webdav4ProviderTestSuite extends ProviderTestSuite {
/**
* Adds the tests for a file system to this suite.
*/
- public WebdavProviderTestSuite(final ProviderTestConfig providerConfig) throws Exception {
+ public Webdav4ProviderTestSuite(final ProviderTestConfig providerConfig) throws Exception {
this(providerConfig, "", false, false);
}
/**
* Adds the tests for a file system to this suite. Provider has an empty directory.
*/
- public WebdavProviderTestSuite(final ProviderTestConfig providerConfig, final boolean addEmptyDir)
+ public Webdav4ProviderTestSuite(final ProviderTestConfig providerConfig, final boolean addEmptyDir)
throws Exception {
this(providerConfig, "", false, addEmptyDir);
}
- protected WebdavProviderTestSuite(final ProviderTestConfig providerConfig, final String prefix,
+ protected Webdav4ProviderTestSuite(final ProviderTestConfig providerConfig, final String prefix,
final boolean nested, final boolean addEmptyDir) throws Exception {
super(providerConfig, prefix, nested, addEmptyDir);
}
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavVersioningTests.java b/commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/Webdav4VersioningTests.java
similarity index 90%
rename from commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavVersioningTests.java
rename to commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/Webdav4VersioningTests.java
index bde2c5c..e0c82c4 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/webdav/test/WebdavVersioningTests.java
+++ b/commons-vfs2-jackrabbit2/src/test/java/org/apache/commons/vfs2/provider/webdav4/test/Webdav4VersioningTests.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.commons.vfs2.provider.webdav.test;
+package org.apache.commons.vfs2.provider.webdav4.test;
import java.io.OutputStream;
import java.util.Map;
@@ -23,22 +23,24 @@ import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystemOptions;
import org.apache.commons.vfs2.FileType;
import org.apache.commons.vfs2.Selectors;
-import org.apache.commons.vfs2.provider.URLFileName;
-import org.apache.commons.vfs2.provider.webdav.WebdavFileSystemConfigBuilder;
+import org.apache.commons.vfs2.provider.GenericURLFileName;
+import org.apache.commons.vfs2.provider.webdav4.Webdav4FileSystemConfigBuilder;
import org.apache.commons.vfs2.test.AbstractProviderTestCase;
import org.apache.jackrabbit.webdav.version.DeltaVConstants;
import org.apache.jackrabbit.webdav.version.VersionControlledResource;
/**
* Test to verify Webdav Versioning support
+ *
+ * @since 2.5
*/
-public class WebdavVersioningTests extends AbstractProviderTestCase {
+public class Webdav4VersioningTests extends AbstractProviderTestCase {
/**
*/
public void testVersioning() throws Exception {
final FileObject scratchFolder = createScratchFolder();
final FileSystemOptions opts = scratchFolder.getFileSystem().getFileSystemOptions();
- final WebdavFileSystemConfigBuilder builder = (WebdavFileSystemConfigBuilder) getManager()
+ final Webdav4FileSystemConfigBuilder builder = (Webdav4FileSystemConfigBuilder) getManager()
.getFileSystemConfigBuilder("webdav");
builder.setVersioning(opts, true);
final FileObject file = getManager().resolveFile(scratchFolder, "file1.txt", opts);
@@ -56,7 +58,7 @@ public class WebdavVersioningTests extends AbstractProviderTestCase {
assertTrue(file.isReadable());
assertTrue(file.isWriteable());
Map<?, ?> map = file.getContent().getAttributes();
- final String name = ((URLFileName) file.getName()).getUserName();
+ final String name = ((GenericURLFileName) file.getName()).getUserName();
assertTrue(map.containsKey(DeltaVConstants.CREATOR_DISPLAYNAME.toString()));
if (name != null) {
assertEquals(name, map.get(DeltaVConstants.CREATOR_DISPLAYNAME.toString()));
@@ -87,7 +89,7 @@ public class WebdavVersioningTests extends AbstractProviderTestCase {
public void testVersioningWithCreator() throws Exception {
final FileObject scratchFolder = createScratchFolder();
final FileSystemOptions opts = scratchFolder.getFileSystem().getFileSystemOptions();
- final WebdavFileSystemConfigBuilder builder = (WebdavFileSystemConfigBuilder) getManager()
+ final Webdav4FileSystemConfigBuilder builder = (Webdav4FileSystemConfigBuilder) getManager()
.getFileSystemConfigBuilder("webdav");
builder.setVersioning(opts, true);
builder.setCreatorName(opts, "testUser");
@@ -106,7 +108,7 @@ public class WebdavVersioningTests extends AbstractProviderTestCase {
assertTrue(file.isReadable());
assertTrue(file.isWriteable());
Map<?, ?> map = file.getContent().getAttributes();
- final String name = ((URLFileName) file.getName()).getUserName();
+ final String name = ((GenericURLFileName) file.getName()).getUserName();
assertTrue(map.containsKey(DeltaVConstants.CREATOR_DISPLAYNAME.toString()));
assertEquals(map.get(DeltaVConstants.CREATOR_DISPLAYNAME.toString()), "testUser");
if (name != null) {
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/log4j2.xml b/commons-vfs2-jackrabbit2/src/test/resources/log4j2.xml
new file mode 100644
index 0000000..21ac4d2
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/log4j2.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+ -->
+
+<Configuration>
+
+ <Appenders>
+
+ <Console name="console" target="SYSTEM_OUT">
+ <PatternLayout pattern="%d [%t] %-5p %m%n"/>
+ </Console>
+
+ </Appenders>
+
+ <Loggers>
+
+ <Root level="error">
+ <AppenderRef ref="console"/>
+ </Root>
+
+ </Loggers>
+
+</Configuration>
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/largefile.tar.gz b/commons-vfs2-jackrabbit2/src/test/resources/test-data/largefile.tar.gz
new file mode 100644
index 0000000..5bcc47a
Binary files /dev/null and b/commons-vfs2-jackrabbit2/src/test/resources/test-data/largefile.tar.gz differ
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.jar b/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.jar
new file mode 100644
index 0000000..c5bc269
Binary files /dev/null and b/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.jar differ
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.tar b/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.tar
new file mode 100644
index 0000000..ffc4089
Binary files /dev/null and b/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.tar differ
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.tbz2 b/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.tbz2
new file mode 100644
index 0000000..60ebcf0
Binary files /dev/null and b/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.tbz2 differ
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.tgz b/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.tgz
new file mode 100644
index 0000000..cbbcb61
Binary files /dev/null and b/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.tgz differ
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.zip b/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.zip
new file mode 100644
index 0000000..d1c78f4
Binary files /dev/null and b/commons-vfs2-jackrabbit2/src/test/resources/test-data/nested.zip differ
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/file1.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/file1.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/file1.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/file2.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/file2.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/file2.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/file3.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/file3.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/file3.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir1/file1.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir1/file1.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir1/file1.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir1/file2.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir1/file2.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir1/file2.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir1/file3.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir1/file3.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir1/file3.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir2/file1.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir2/file1.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir2/file1.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir2/file2.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir2/file2.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir2/file2.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir2/file3.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir2/file3.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir2/file3.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir3/file1.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir3/file1.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir3/file1.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir3/file2.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir3/file2.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir3/file2.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir3/file3.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir3/file3.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir3/file3.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file1.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file1.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file1.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file2.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file2.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file2.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file3.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file3.txt
new file mode 100644
index 0000000..9ad7b1b
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/dir1/subdir4.jar/file3.txt
@@ -0,0 +1 @@
+A test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/empty.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/empty.txt
new file mode 100644
index 0000000..e69de29
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/file space.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/file space.txt
new file mode 100644
index 0000000..af27ff4
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/file space.txt
@@ -0,0 +1 @@
+This is a test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/file%.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/file%.txt
new file mode 100644
index 0000000..af27ff4
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/file%.txt
@@ -0,0 +1 @@
+This is a test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/file1.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/file1.txt
new file mode 100644
index 0000000..af27ff4
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-tests/file1.txt
@@ -0,0 +1 @@
+This is a test file.
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests.zip b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests.zip
new file mode 100644
index 0000000..37e47ba
Binary files /dev/null and b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests.zip differ
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/address.xsd b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/address.xsd
new file mode 100644
index 0000000..065648a
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/address.xsd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+ -->
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="https://www.apache.org/vfs/example/address"
+ xmlns="https://www.apache.org/vfs/example/address"
+ elementFormDefault="qualified">
+
+ <xs:element
+ name="address"
+ type="addressType" />
+
+ <xs:complexType name="addressType">
+ <xs:sequence>
+ <xs:element
+ name="street"
+ type="xs:string" />
+ <xs:element
+ name="city"
+ type="xs:string" />
+ <xs:element
+ name="state"
+ type="xs:string" />
+ <xs:element
+ name="zip"
+ type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+
+</xs:schema>
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/file1.xml b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/file1.xml
new file mode 100644
index 0000000..42e9846
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/file1.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+ -->
+<Root1>foo1</Root1>
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/file2.xml b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/file2.xml
new file mode 100644
index 0000000..2e3ff38
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/file2.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+ -->
+<Root2>foo2</Root2>
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/file3-bigger.xml b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/file3-bigger.xml
new file mode 100644
index 0000000..780dc48
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/file3-bigger.xml
@@ -0,0 +1,1354 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+ -->
+<Root1>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+ <Child>foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1 foo1</Child>
+</Root1>
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name-invalid.xml b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name-invalid.xml
new file mode 100644
index 0000000..522c4f6
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name-invalid.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+ -->
+<name
+ xmlns="https://www.apache.org/vfs/example/name"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="https://www.apache.org/xml/name.xsd name.xsd">
+ <FOO>John</FOO>
+ <middle>Q.</middle>
+ <last>Public</last>
+</name>
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name-not-well-formed.xml b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name-not-well-formed.xml
new file mode 100644
index 0000000..305ac6e
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name-not-well-formed.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+ -->
+<name
+ xmlns="https://www.apache.org/vfs/example/name"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="https://www.apache.org/xml/name.xsd name.xsd">
+ <first>John</first>
+ <middle>Q.</middle>
+ <last>Public</last>
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name-with-xsd-ref.xml b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name-with-xsd-ref.xml
new file mode 100644
index 0000000..cad2771
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name-with-xsd-ref.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+ -->
+<name
+ xmlns="https://www.apache.org/vfs/example/name"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="https://www.apache.org/xml/name.xsd name.xsd">
+ <first>John</first>
+ <middle>Q.</middle>
+ <last>Public</last>
+</name>
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name.xml b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name.xml
new file mode 100644
index 0000000..4c5c870
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+ -->
+<name>
+ <first>John</first>
+ <middle>Q.</middle>
+ <last>Public</last>
+</name>
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name.xsd b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name.xsd
new file mode 100644
index 0000000..9b0a6a7
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/name.xsd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+ -->
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="https://www.apache.org/vfs/example/name"
+ xmlns="https://www.apache.org/vfs/example/name"
+ elementFormDefault="qualified">
+
+ <xs:element
+ name="name"
+ type="nameType" />
+
+ <xs:complexType name="nameType">
+ <xs:sequence>
+ <xs:element
+ name="first"
+ type="xs:string" />
+ <xs:element
+ name="middle"
+ type="xs:string" />
+ <xs:element
+ name="last"
+ type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+
+</xs:schema>
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/person.xml b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/person.xml
new file mode 100644
index 0000000..28e023f
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/person.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+ -->
+<person:person
+ xmlns:person="https://www.apache.org/vfs/example/person"
+ xmlns:name="https://www.apache.org/vfs/example/name"
+ xmlns:addr="https://www.apache.org/vfs/example/address"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="https://www.apache.org/vfs/example/person person.xsd">
+
+ <person:name>
+ <name:first>John</name:first>
+ <name:middle>Q.</name:middle>
+ <name:last>Public</name:last>
+ </person:name>
+
+ <person:address>
+ <addr:street>123 Main St.</addr:street>
+ <addr:city>Ridgway</addr:city>
+ <addr:state>CO</addr:state>
+ <addr:zip>81432</addr:zip>
+ </person:address>
+
+</person:person>
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/person.xsd b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/person.xsd
new file mode 100644
index 0000000..4bc82a9
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/read-xml-tests/person.xsd
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+ -->
+<xs:schema
+ xmlns="https://www.apache.org/vfs/example/person"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:name="https://www.apache.org/vfs/example/name"
+ xmlns:address="https://www.apache.org/vfs/example/address"
+ targetNamespace="https://www.apache.org/vfs/example/person"
+ elementFormDefault="qualified">
+
+ <xs:import
+ namespace="https://www.apache.org/vfs/example/name"
+ schemaLocation="name.xsd" />
+ <xs:import
+ namespace="https://www.apache.org/vfs/example/address"
+ schemaLocation="address.xsd" />
+
+ <xs:element
+ name="person"
+ type="personType" />
+
+ <xs:complexType name="personType">
+ <xs:sequence>
+ <xs:element
+ name="name"
+ type="name:nameType" />
+ <xs:element
+ name="address"
+ type="address:addressType" />
+ </xs:sequence>
+ </xs:complexType>
+
+</xs:schema>
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/test-hash-#test.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test-hash-#test.txt
new file mode 100644
index 0000000..8deb37d
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test-hash-#test.txt
@@ -0,0 +1 @@
+Test file for VFS-325: Bad handling of hashs (#) in file names when walking a file tree using findFiles().
\ No newline at end of file
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.jar b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.jar
new file mode 100644
index 0000000..7ff1e6a
Binary files /dev/null and b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.jar differ
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.mf b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.mf
new file mode 100644
index 0000000..e85d462
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.mf
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Specification-Title: SpecTitle
+Specification-Vendor: SpecVendor
+Specification-Version: 1.0
+Implementation-Title: ImplTitle
+Implementation-Vendor: ImplVendor
+Implementation-Version: 1.1
+Sealed: false
+
+Name: code/sealed/
+Sealed: true
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.policy b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.policy
new file mode 100644
index 0000000..4c363a0
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.policy
@@ -0,0 +1,85 @@
+// 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.
+
+// Standard extensions get all permissions by default
+
+grant codeBase "file:${java.home}/lib/ext/*" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "file:${maven.home}/-" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "file:${maven.build.dest}" {
+ permission java.io.FilePermission "${user.dir}/vfs_cache/-", "read, write, delete";
+ permission java.io.FilePermission "${user.dir}/vfs_cache", "read, write, delete";
+ permission java.io.FilePermission "${user.dir}", "read";
+ permission java.net.NetPermission "specifyStreamHandler";
+};
+
+// default permissions granted to all domains
+
+grant {
+ permission java.io.FilePermission "${test.basedir}/write-tests", "read, write, delete";
+ permission java.io.FilePermission "${test.basedir}/write-tests/-", "read, write, delete";
+ permission java.io.FilePermission "${test.basedir}/-", "read";
+ permission java.io.FilePermission "${test.basedir}", "read";
+
+ //This is needed for the ClassLoader tests.
+ permission java.lang.RuntimePermission "createClassLoader";
+
+ // Allows any thread to stop itself using the java.lang.Thread.stop()
+ // method that takes no argument.
+ // Note that this permission is granted by default only to remain
+ // backwards compatible.
+ // It is strongly recommended that you either remove this permission
+ // from this policy file or further restrict it to code sources
+ // that you specify, because Thread.stop() is potentially unsafe.
+ // See "http://java.sun.com/notes" for more information.
+ permission java.lang.RuntimePermission "stopThread";
+
+ // allows anyone to listen on un-privileged ports
+ permission java.net.SocketPermission "localhost:1024-", "listen";
+
+ // "standard" properies that can be read by anyone
+
+ permission java.util.PropertyPermission "java.version", "read";
+ permission java.util.PropertyPermission "java.vendor", "read";
+ permission java.util.PropertyPermission "java.vendor.url", "read";
+ permission java.util.PropertyPermission "java.class.version", "read";
+ permission java.util.PropertyPermission "os.name", "read";
+ permission java.util.PropertyPermission "os.version", "read";
+ permission java.util.PropertyPermission "os.arch", "read";
+ permission java.util.PropertyPermission "file.separator", "read";
+ permission java.util.PropertyPermission "path.separator", "read";
+ permission java.util.PropertyPermission "line.separator", "read";
+
+ permission java.util.PropertyPermission "java.specification.version", "read";
+ permission java.util.PropertyPermission "java.specification.vendor", "read";
+ permission java.util.PropertyPermission "java.specification.name", "read";
+
+ permission java.util.PropertyPermission "java.vm.specification.version", "read";
+ permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
+ permission java.util.PropertyPermission "java.vm.specification.name", "read";
+ permission java.util.PropertyPermission "java.vm.version", "read";
+ permission java.util.PropertyPermission "java.vm.vendor", "read";
+ permission java.util.PropertyPermission "java.vm.name", "read";
+ permission java.util.PropertyPermission "test.basedir", "read";
+ permission java.util.PropertyPermission "user.dir", "read";
+};
+
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.tar b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.tar
new file mode 100644
index 0000000..ef82461
Binary files /dev/null and b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.tar differ
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.tbz2 b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.tbz2
new file mode 100644
index 0000000..f7e2086
Binary files /dev/null and b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.tbz2 differ
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.tgz b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.tgz
new file mode 100644
index 0000000..579107d
Binary files /dev/null and b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.tgz differ
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.zip b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.zip
new file mode 100644
index 0000000..3e5d4d9
Binary files /dev/null and b/commons-vfs2-jackrabbit2/src/test/resources/test-data/test.zip differ
diff --git a/commons-vfs2-jackrabbit2/src/test/resources/test-data/write-tests/dummy.txt b/commons-vfs2-jackrabbit2/src/test/resources/test-data/write-tests/dummy.txt
new file mode 100644
index 0000000..d7716a7
--- /dev/null
+++ b/commons-vfs2-jackrabbit2/src/test/resources/test-data/write-tests/dummy.txt
@@ -0,0 +1 @@
+dummy file to cause directory to be created.
\ No newline at end of file
diff --git a/commons-vfs2/pom.xml b/commons-vfs2/pom.xml
index e1a8ccf..a549461 100644
--- a/commons-vfs2/pom.xml
+++ b/commons-vfs2/pom.xml
@@ -85,11 +85,6 @@
<optional>true</optional>
</dependency>
<dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>jackrabbit-webdav</artifactId>
- <optional>true</optional>
- </dependency>
- <dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<optional>true</optional>
@@ -121,6 +116,16 @@
<artifactId>slf4j-api</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-slf4j-impl</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <scope>test</scope>
+ </dependency>
<!-- Test SFTP with Apache SHHd Server (MINA) -->
<dependency>
<groupId>org.apache.sshd</groupId>
@@ -143,12 +148,6 @@
<artifactId>httpcore-nio</artifactId>
<scope>test</scope>
</dependency>
- <!-- Test WebDAV with Apache Jackrabbit-->
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>jackrabbit-standalone</artifactId>
- <scope>test</scope>
- </dependency>
<!-- Test HDFS with Apache Hadoop -->
<dependency>
<groupId>org.apache.hadoop</groupId>
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/providers.xml b/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/providers.xml
index ee60219..cbc12a2 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/providers.xml
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/providers.xml
@@ -98,11 +98,22 @@
<provider class-name="org.apache.commons.vfs2.provider.res.ResourceFileProvider">
<scheme name="res"/>
</provider>
- <provider class-name="org.apache.commons.vfs2.provider.webdav.WebdavFileProvider">
+ <provider class-name="org.apache.commons.vfs2.provider.webdav.WebdavFileProvider">
<scheme name="webdav"/>
+ <scheme name="webdav3"/>
<if-available class-name="org.apache.commons.httpclient.HttpClient"/>
<if-available class-name="org.apache.jackrabbit.webdav.client.methods.DavMethod"/>
</provider>
+ <provider class-name="org.apache.commons.vfs2.provider.webdav4.Webdav4FileProvider">
+ <scheme name="webdav4"/>
+ <if-available class-name="org.apache.http.client.HttpClient"/>
+ <if-available class-name="org.apache.jackrabbit.webdav.client.methods.BaseDavRequest"/>
+ </provider>
+ <provider class-name="org.apache.commons.vfs2.provider.webdav4s.Webdav4sFileProvider">
+ <scheme name="webdav4s"/>
+ <if-available class-name="org.apache.http.client.HttpClient"/>
+ <if-available class-name="org.apache.jackrabbit.webdav.client.methods.BaseDavRequest"/>
+ </provider>
<!--
<provider class-name="org.apache.commons.vfs2.provider.svn.SvnFileProvider">
<scheme name="svnhttps"/>
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/http4/Http4FileObject.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/http4/Http4FileObject.java
index 6f37998..8115092 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/http4/Http4FileObject.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/http4/Http4FileObject.java
@@ -1,230 +1,230 @@
-/*
- * 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.apache.commons.vfs2.provider.http4;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-
-import org.apache.commons.vfs2.FileContentInfoFactory;
-import org.apache.commons.vfs2.FileNotFoundException;
-import org.apache.commons.vfs2.FileSystemException;
-import org.apache.commons.vfs2.FileSystemOptions;
-import org.apache.commons.vfs2.FileType;
-import org.apache.commons.vfs2.RandomAccessContent;
-import org.apache.commons.vfs2.provider.AbstractFileName;
-import org.apache.commons.vfs2.provider.AbstractFileObject;
-import org.apache.commons.vfs2.provider.GenericURLFileName;
-import org.apache.commons.vfs2.util.RandomAccessMode;
-import org.apache.http.Header;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpHead;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.client.protocol.HttpClientContext;
-import org.apache.http.client.utils.DateUtils;
-import org.apache.http.client.utils.URIUtils;
-import org.apache.http.protocol.HTTP;
-
-/**
- * A file object backed by Apache HttpComponents HttpClient.
- *
- * @param <FS> An {@link Http4FileSystem} subclass
- */
-public class Http4FileObject<FS extends Http4FileSystem> extends AbstractFileObject<FS> {
-
- /**
- * URL charset string.
- */
- private final String urlCharset;
-
- /**
- * Internal URI mapped to this <code>FileObject</code>.
- * For example, the internal URI of <code>http4://example.com/a.txt</code> is <code>http://example.com/a.txt</code>.
- */
- private final URI internalURI;
-
- /**
- * The last executed HEAD <code>HttpResponse</code> object.
- */
- private HttpResponse lastHeadResponse;
-
- /**
- * Construct <code>Http4FileObject</code>.
- *
- * @param name file name
- * @param fileSystem file system
- * @throws FileSystemException if any error occurs
- * @throws URISyntaxException if given file name cannot be converted to a URI due to URI syntax error
- */
- protected Http4FileObject(final AbstractFileName name, final FS fileSystem)
- throws FileSystemException, URISyntaxException {
- this(name, fileSystem, Http4FileSystemConfigBuilder.getInstance());
- }
-
- /**
- * Construct <code>Http4FileObject</code>.
- *
- * @param name file name
- * @param fileSystem file system
- * @param builder <code>Http4FileSystemConfigBuilder</code> object
- * @throws FileSystemException if any error occurs
- * @throws URISyntaxException if given file name cannot be converted to a URI due to URI syntax error
- */
- protected Http4FileObject(final AbstractFileName name, final FS fileSystem,
- final Http4FileSystemConfigBuilder builder) throws FileSystemException, URISyntaxException {
- super(name, fileSystem);
- final FileSystemOptions fileSystemOptions = fileSystem.getFileSystemOptions();
- urlCharset = builder.getUrlCharset(fileSystemOptions);
- final String pathEncoded = ((GenericURLFileName) name).getPathQueryEncoded(getUrlCharset());
- internalURI = URIUtils.resolve(fileSystem.getInternalBaseURI(), pathEncoded);
- }
-
- @Override
- protected FileType doGetType() throws Exception {
- lastHeadResponse = executeHttpUriRequest(new HttpHead(getInternalURI()));
- final int status = lastHeadResponse.getStatusLine().getStatusCode();
-
- if (status == HttpStatus.SC_OK
- || status == HttpStatus.SC_METHOD_NOT_ALLOWED /* method is not allowed, but resource exist */) {
- return FileType.FILE;
- } else if (status == HttpStatus.SC_NOT_FOUND || status == HttpStatus.SC_GONE) {
- return FileType.IMAGINARY;
- } else {
- throw new FileSystemException("vfs.provider.http/head.error", getName(), Integer.valueOf(status));
- }
- }
-
- @Override
- protected long doGetContentSize() throws Exception {
- if (lastHeadResponse == null) {
- return 0L;
- }
-
- final Header header = lastHeadResponse.getFirstHeader(HTTP.CONTENT_LEN);
-
- if (header == null) {
- // Assume 0 content-length
- return 0;
- }
-
- return Long.parseLong(header.getValue());
- }
-
- @Override
- protected long doGetLastModifiedTime() throws Exception {
- FileSystemException.requireNonNull(lastHeadResponse, "vfs.provider.http/last-modified.error", getName());
-
- final Header header = lastHeadResponse.getFirstHeader("Last-Modified");
-
- FileSystemException.requireNonNull(header, "vfs.provider.http/last-modified.error", getName());
-
- return DateUtils.parseDate(header.getValue()).getTime();
- }
-
-
- @Override
- protected InputStream doGetInputStream(final int bufferSize) throws Exception {
- final HttpGet getRequest = new HttpGet(getInternalURI());
- final HttpResponse httpResponse = executeHttpUriRequest(getRequest);
- final int status = httpResponse.getStatusLine().getStatusCode();
-
- if (status == HttpStatus.SC_NOT_FOUND) {
- throw new FileNotFoundException(getName());
- }
-
- if (status != HttpStatus.SC_OK) {
- throw new FileSystemException("vfs.provider.http/get.error", getName(), Integer.valueOf(status));
- }
-
- return new MonitoredHttpResponseContentInputStream(httpResponse, bufferSize);
- }
-
- @Override
- protected RandomAccessContent doGetRandomAccessContent(final RandomAccessMode mode) throws Exception {
- return new Http4RandomAccessContent<>(this, mode);
- }
-
- @Override
- protected String[] doListChildren() throws Exception {
- throw new UnsupportedOperationException("Not implemented.");
- }
-
- @Override
- protected boolean doIsWriteable() throws Exception {
- return false;
- }
-
- @Override
- protected FileContentInfoFactory getFileContentInfoFactory() {
- return new Http4FileContentInfoFactory();
- }
-
- @Override
- protected void doDetach() throws Exception {
- lastHeadResponse = null;
- }
-
- /**
- * Return URL charset string.
- * @return URL charset string
- */
- protected String getUrlCharset() {
- return urlCharset;
- }
-
- /**
- * Return the internal <code>URI</code> object mapped to this file object.
- *
- * @return the internal <code>URI</code> object mapped to this file object
- * @throws FileSystemException if any error occurs
- */
- protected URI getInternalURI() throws FileSystemException {
- return internalURI;
- }
-
- /**
- * Return the last executed HEAD <code>HttpResponse</code> object.
- *
- * @return the last executed HEAD <code>HttpResponse</code> object
- * @throws IOException if IO error occurs
- */
- HttpResponse getLastHeadResponse() throws IOException {
- if (lastHeadResponse != null) {
- return lastHeadResponse;
- }
-
- return executeHttpUriRequest(new HttpHead(getInternalURI()));
- }
-
- /**
- * Execute the request using the given {@code httpRequest} and return a <code>HttpResponse</code> from the execution.
- *
- * @param httpRequest <code>HttpUriRequest</code> object
- * @return <code>HttpResponse</code> from the execution
- * @throws IOException if IO error occurs
- */
- HttpResponse executeHttpUriRequest(final HttpUriRequest httpRequest) throws IOException {
- final HttpClient httpClient = getAbstractFileSystem().getHttpClient();
- final HttpClientContext httpClientContext = getAbstractFileSystem().getHttpClientContext();
- return httpClient.execute(httpRequest, httpClientContext);
- }
-
-}
+/*
+ * 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.apache.commons.vfs2.provider.http4;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.apache.commons.vfs2.FileContentInfoFactory;
+import org.apache.commons.vfs2.FileNotFoundException;
+import org.apache.commons.vfs2.FileSystemException;
+import org.apache.commons.vfs2.FileSystemOptions;
+import org.apache.commons.vfs2.FileType;
+import org.apache.commons.vfs2.RandomAccessContent;
+import org.apache.commons.vfs2.provider.AbstractFileName;
+import org.apache.commons.vfs2.provider.AbstractFileObject;
+import org.apache.commons.vfs2.provider.GenericURLFileName;
+import org.apache.commons.vfs2.util.RandomAccessMode;
+import org.apache.http.Header;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpStatus;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpHead;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.client.utils.DateUtils;
+import org.apache.http.client.utils.URIUtils;
+import org.apache.http.protocol.HTTP;
+
+/**
+ * A file object backed by Apache HttpComponents HttpClient.
+ *
+ * @param <FS> An {@link Http4FileSystem} subclass
+ */
+public class Http4FileObject<FS extends Http4FileSystem> extends AbstractFileObject<FS> {
+
+ /**
+ * URL charset string.
+ */
+ private final String urlCharset;
+
+ /**
+ * Internal URI mapped to this <code>FileObject</code>.
+ * For example, the internal URI of <code>http4://example.com/a.txt</code> is <code>http://example.com/a.txt</code>.
+ */
+ private final URI internalURI;
+
+ /**
+ * The last executed HEAD <code>HttpResponse</code> object.
+ */
+ private HttpResponse lastHeadResponse;
+
+ /**
+ * Construct <code>Http4FileObject</code>.
+ *
+ * @param name file name
+ * @param fileSystem file system
+ * @throws FileSystemException if any error occurs
+ * @throws URISyntaxException if given file name cannot be converted to a URI due to URI syntax error
+ */
+ protected Http4FileObject(final AbstractFileName name, final FS fileSystem)
+ throws FileSystemException, URISyntaxException {
+ this(name, fileSystem, Http4FileSystemConfigBuilder.getInstance());
+ }
+
+ /**
+ * Construct <code>Http4FileObject</code>.
+ *
+ * @param name file name
+ * @param fileSystem file system
+ * @param builder <code>Http4FileSystemConfigBuilder</code> object
+ * @throws FileSystemException if any error occurs
+ * @throws URISyntaxException if given file name cannot be converted to a URI due to URI syntax error
+ */
+ protected Http4FileObject(final AbstractFileName name, final FS fileSystem,
+ final Http4FileSystemConfigBuilder builder) throws FileSystemException, URISyntaxException {
+ super(name, fileSystem);
+ final FileSystemOptions fileSystemOptions = fileSystem.getFileSystemOptions();
+ urlCharset = builder.getUrlCharset(fileSystemOptions);
+ final String pathEncoded = ((GenericURLFileName) name).getPathQueryEncoded(getUrlCharset());
+ internalURI = URIUtils.resolve(fileSystem.getInternalBaseURI(), pathEncoded);
+ }
+
+ @Override
+ protected FileType doGetType() throws Exception {
+ lastHeadResponse = executeHttpUriRequest(new HttpHead(getInternalURI()));
+ final int status = lastHeadResponse.getStatusLine().getStatusCode();
+
+ if (status == HttpStatus.SC_OK
+ || status == HttpStatus.SC_METHOD_NOT_ALLOWED /* method is not allowed, but resource exist */) {
+ return FileType.FILE;
+ } else if (status == HttpStatus.SC_NOT_FOUND || status == HttpStatus.SC_GONE) {
+ return FileType.IMAGINARY;
+ } else {
+ throw new FileSystemException("vfs.provider.http/head.error", getName(), Integer.valueOf(status));
+ }
+ }
+
+ @Override
+ protected long doGetContentSize() throws Exception {
+ if (lastHeadResponse == null) {
+ return 0L;
+ }
+
+ final Header header = lastHeadResponse.getFirstHeader(HTTP.CONTENT_LEN);
+
+ if (header == null) {
+ // Assume 0 content-length
+ return 0;
+ }
+
+ return Long.parseLong(header.getValue());
+ }
+
+ @Override
+ protected long doGetLastModifiedTime() throws Exception {
+ FileSystemException.requireNonNull(lastHeadResponse, "vfs.provider.http/last-modified.error", getName());
+
+ final Header header = lastHeadResponse.getFirstHeader("Last-Modified");
+
+ FileSystemException.requireNonNull(header, "vfs.provider.http/last-modified.error", getName());
+
+ return DateUtils.parseDate(header.getValue()).getTime();
+ }
+
+
+ @Override
+ protected InputStream doGetInputStream(final int bufferSize) throws Exception {
+ final HttpGet getRequest = new HttpGet(getInternalURI());
+ final HttpResponse httpResponse = executeHttpUriRequest(getRequest);
+ final int status = httpResponse.getStatusLine().getStatusCode();
+
+ if (status == HttpStatus.SC_NOT_FOUND) {
+ throw new FileNotFoundException(getName());
+ }
+
+ if (status != HttpStatus.SC_OK) {
+ throw new FileSystemException("vfs.provider.http/get.error", getName(), Integer.valueOf(status));
+ }
+
+ return new MonitoredHttpResponseContentInputStream(httpResponse, bufferSize);
+ }
+
+ @Override
+ protected RandomAccessContent doGetRandomAccessContent(final RandomAccessMode mode) throws Exception {
+ return new Http4RandomAccessContent<>(this, mode);
+ }
+
+ @Override
+ protected String[] doListChildren() throws Exception {
+ throw new UnsupportedOperationException("Not implemented.");
+ }
+
+ @Override
+ protected boolean doIsWriteable() throws Exception {
+ return false;
+ }
+
+ @Override
+ protected FileContentInfoFactory getFileContentInfoFactory() {
+ return new Http4FileContentInfoFactory();
+ }
+
+ @Override
+ protected void doDetach() throws Exception {
+ lastHeadResponse = null;
+ }
+
+ /**
+ * Return URL charset string.
+ * @return URL charset string
+ */
+ protected String getUrlCharset() {
+ return urlCharset;
+ }
+
+ /**
+ * Return the internal <code>URI</code> object mapped to this file object.
+ *
+ * @return the internal <code>URI</code> object mapped to this file object
+ * @throws FileSystemException if any error occurs
+ */
+ protected URI getInternalURI() throws FileSystemException {
+ return internalURI;
+ }
+
+ /**
+ * Return the last executed HEAD <code>HttpResponse</code> object.
+ *
+ * @return the last executed HEAD <code>HttpResponse</code> object
+ * @throws IOException if IO error occurs
+ */
+ HttpResponse getLastHeadResponse() throws IOException {
+ if (lastHeadResponse != null) {
+ return lastHeadResponse;
+ }
+
+ return executeHttpUriRequest(new HttpHead(getInternalURI()));
+ }
+
+ /**
+ * Execute the request using the given {@code httpRequest} and return a <code>HttpResponse</code> from the execution.
+ *
+ * @param httpRequest <code>HttpUriRequest</code> object
+ * @return <code>HttpResponse</code> from the execution
+ * @throws IOException if IO error occurs
+ */
+ protected HttpResponse executeHttpUriRequest(final HttpUriRequest httpRequest) throws IOException {
+ final HttpClient httpClient = getAbstractFileSystem().getHttpClient();
+ final HttpClientContext httpClientContext = getAbstractFileSystem().getHttpClientContext();
+ return httpClient.execute(httpRequest, httpClientContext);
+ }
+
+}
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/http4/Http4FileSystemConfigBuilder.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/http4/Http4FileSystemConfigBuilder.java
index 2980089..7360b7c 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/http4/Http4FileSystemConfigBuilder.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/http4/Http4FileSystemConfigBuilder.java
@@ -99,7 +99,7 @@ public class Http4FileSystemConfigBuilder extends FileSystemConfigBuilder {
* This parameter expects a value of type {@link Boolean}.
* </p>
*/
- private static final String KEY_FOLLOW_REDIRECT = "followRedirect";
+ protected static final String KEY_FOLLOW_REDIRECT = "followRedirect";
/**
* Defines the User-Agent request header string of the underlying HttpClient.
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/RunTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/RunTest.java
index fcfb89f..a1c794d 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/RunTest.java
+++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/RunTest.java
@@ -37,7 +37,7 @@ public class RunTest {
props.setProperty("test.ftps.uri", "ftps://vfsusr:vfs%2f%25\\te:st@" + ip + "/vfstest");
props.setProperty("test.http.uri", "http://" + ip + "/vfstest");
- props.setProperty("test.webdav.uri", "webdav://vfsusr:vfs%2f%25\\te:st@" + ip + "/vfstest");
+ //props.setProperty("test.webdav.uri", "webdav://vfsusr:vfs%2f%25\\te:st@" + ip + "/vfstest");
props.setProperty("test.sftp.uri", "sftp://vfsusr:vfs%2f%25\\te:st@" + ip + "/vfstest");
final Test tests[] = new Test[] {
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/test/ParseXmlInZipTestCase.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/test/ParseXmlInZipTestCase.java
index 7d7bba2..756dccc 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/test/ParseXmlInZipTestCase.java
+++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/zip/test/ParseXmlInZipTestCase.java
@@ -21,6 +21,7 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
+import java.util.regex.Pattern;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -105,7 +106,8 @@ public class ParseXmlInZipTestCase {
try {
testResolveAndParseXmlInZip("read-xml-tests/name-invalid.xml", "/read-xml-tests/name.xsd");
} catch (final SAXException e) {
- Assert.assertTrue(e.toString().contains("Invalid content was found starting with element 'FOO'."));
+ final Pattern p = Pattern.compile("Invalid content was found starting with element.+FOO");
+ Assert.assertTrue(p.matcher(e.toString()).find());
}
}
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/util/DelegatingFileSystemOptionsBuilderTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/util/DelegatingFileSystemOptionsBuilderTest.java
index 80004e9..4b3776c 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/util/DelegatingFileSystemOptionsBuilderTest.java
+++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/util/DelegatingFileSystemOptionsBuilderTest.java
@@ -103,7 +103,7 @@ public class DelegatingFileSystemOptionsBuilderTest {
}
}
- private static String[] schemes = new String[] { "webdav", "http", "ftp", "file", "zip", "tar", "tgz", "bz2", "gz",
+ private static String[] schemes = new String[] { "http", "ftp", "file", "zip", "tar", "tgz", "bz2", "gz",
"jar", "tmp", "ram" };
@Test
diff --git a/commons-vfs2/src/test/resources/log4j2.xml b/commons-vfs2/src/test/resources/log4j2.xml
new file mode 100644
index 0000000..21ac4d2
--- /dev/null
+++ b/commons-vfs2/src/test/resources/log4j2.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+ -->
+
+<Configuration>
+
+ <Appenders>
+
+ <Console name="console" target="SYSTEM_OUT">
+ <PatternLayout pattern="%d [%t] %-5p %m%n"/>
+ </Console>
+
+ </Appenders>
+
+ <Loggers>
+
+ <Root level="error">
+ <AppenderRef ref="console"/>
+ </Root>
+
+ </Loggers>
+
+</Configuration>
diff --git a/pom.xml b/pom.xml
index 62d5a7c..91af727 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,681 +1,700 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- 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.
- -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-parent</artifactId>
- <version>48</version>
- </parent>
-
- <modelVersion>4.0.0</modelVersion>
- <artifactId>commons-vfs2-project</artifactId>
- <name>Apache Commons VFS Project</name>
- <description>Apache Commons VFS is a Virtual File System library.</description>
- <packaging>pom</packaging>
- <version>2.5.0-SNAPSHOT</version>
-
- <url>http://commons.apache.org/proper/commons-vfs/</url>
- <inceptionYear>2002</inceptionYear>
-
- <modules>
- <module>commons-vfs2</module>
- <module>commons-vfs2-examples</module>
- <module>commons-vfs2-distribution</module>
- </modules>
- <!-- commons-vfs2-sandbox is in profile include-sandbox -->
-
- <issueManagement>
- <system>jira</system>
- <url>https://issues.apache.org/jira/browse/VFS</url>
- </issueManagement>
-
- <scm>
- <connection>scm:git:https://gitbox.apache.org/repos/asf/commons-vfs.git</connection>
- <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/commons-vfs.git</developerConnection>
- <url>https://gitbox.apache.org/repos/asf?p=commons-vfs.git</url>
- <tag>commons-vfs-project-2.4</tag>
- </scm>
-
- <developers>
- <developer>
- <name>Adam Murdoch</name>
- <id>adammurdoch</id>
- <email>adammurdoch -at- apache.org</email>
- <organization />
- </developer>
- <developer>
- <name>James Strachan</name>
- <id>jstrachan</id>
- <email>jstrachan -at- apache.org</email>
- <organization>SpiritSoft, Inc.</organization>
- </developer>
- <developer>
- <name>Mario Ivankovits</name>
- <id>imario</id>
- <email>imario -at- apache.org</email>
- <organization>OPS EDV Gmbh</organization>
- </developer>
- <developer>
- <name>Rahul Akolkar</name>
- <id>rahul</id>
- <email>rahul -at- apache.org</email>
- <organization>The Apache Software Foundation</organization>
- </developer>
- <developer>
- <name>James Carman</name>
- <id>jcarman</id>
- <email>jcarman -at- apache.org</email>
- <organization>The Apache Software Foundation</organization>
- </developer>
- <developer>
- <name>Ralph Goers</name>
- <id>rgoers</id>
- <email>rgoers -at- apache.org</email>
- <organization>Intuit</organization>
- </developer>
- <developer>
- <name>Joerg Schaible</name>
- <id>joehni</id>
- <email>joehni -at- apache.org</email>
- </developer>
- <developer>
- <name>Gary D. Gregory</name>
- <id>ggregory</id>
- <email>ggregory -at- apache.org</email>
- <url>http://www.garygregory.com</url>
- <timezone>-5</timezone>
- </developer>
- <developer>
- <name>Bernd Eckenfels</name>
- <id>ecki</id>
- <email>ecki -at- apache.org</email>
- <url>http://bernd.eckenfels.net</url>
- <timezone>+1</timezone>
- </developer>
- </developers>
-
- <contributors>
- <contributor>
- <name>Rami Ojares</name>
- <email>rami.ojares -at- elisa.fi</email>
- </contributor>
- <contributor>
- <name>Anthony Goubard</name>
- <email>adagoubard -at- chello.nl</email>
- </contributor>
- <contributor>
- <name>Christopher Ottley</name>
- <email>xknight -at- users.sourceforge.net</email>
- </contributor>
- <contributor>
- <name>Dave Marion</name>
- <email>dlmarion -at- apache.org</email>
- </contributor>
- <contributor>
- <name>Scott Bjerstedt</name>
- <email>jcottbjer -at- gmail.com</email>
- </contributor>
- <contributor>
- <name>Jose Juan Montiel</name>
- <email>josejuan.montiel -at- gmail.com</email>
- </contributor>
- <contributor>
- <name>Otto Fowler</name>
- <email>otto -at- apache.org</email>
- </contributor>
- </contributors>
-
- <properties>
- <commons.encoding>UTF-8</commons.encoding>
-
- <maven.compiler.source>1.8</maven.compiler.source>
- <maven.compiler.target>1.8</maven.compiler.target>
-
- <!-- bare ID without major version or commons- prefix -->
- <commons.componentid>vfs</commons.componentid>
- <commons.packageId>vfs2</commons.packageId>
- <commons.module.name>org.apache.commons.vfs2</commons.module.name>
- <commons.jira.id>VFS</commons.jira.id>
- <commons.jira.pid>12310495</commons.jira.pid>
- <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-vfs</commons.scmPubUrl>
- <commons.siteOutputDirectory>${basedir}/../target/site</commons.siteOutputDirectory>
- <commons.releaseNotesLocation>${basedir}/../RELEASE-NOTES.txt</commons.releaseNotesLocation>
- <commons.distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/${commons.componentid}</commons.distSvnStagingUrl>
- <commons.release.version>2.4.1</commons.release.version>
- <!-- Commons Release Plugin -->
- <commons.bc.version>2.4.1</commons.bc.version>
- <commons.releaseManagerName>Gary Gregory</commons.releaseManagerName>
- <commons.releaseManagerKey>86fdc7e2a11262cb</commons.releaseManagerKey>
- <commons.rc.version>RC1</commons.rc.version>
- <commons.release.name>commons-vfs-${commons.release.version}</commons.release.name>
- <commons.release.desc>(requires Java 8)</commons.release.desc>
-
-<!--
- <commons.release.2.version>2.0</commons.release.2.version>
- <commons.release.2.name>commons-vfs-2.0</commons.release.2.name>
- <commons.release.2.desc>(requires Java 1.5+)</commons.release.2.desc>
--->
-
- <vfs.parent.dir>${basedir}</vfs.parent.dir>
- <version.checkstyle>3.1.0</version.checkstyle>
- <!-- make sure bundle plugin has dependency informations for 'optional' -->
- <commons.osgi.excludeDependencies />
- <commons.osgi.import>
- org.apache.hadoop.*;resolution:=optional,
- org.apache.jackrabbit.*;resolution:=optional,
- org.apache.tools.ant.*;resolution:=optional,
- org.apache.commons.httpclient.*;resolution:=optional,
- *
- </commons.osgi.import>
- <!-- Newer versions of clirr throw an NPE building the site -->
- <commons.clirr.version>2.6</commons.clirr.version>
- <!-- Avoid warnings about being unable to find jars during site building -->
- <dependency.locations.enabled>false</dependency.locations.enabled>
- <hadoop.version>3.2.1</hadoop.version>
- <commons.surefire.version>2.19.1</commons.surefire.version>
- <commons.japicmp.version>0.14.1</commons.japicmp.version>
- </properties>
-
- <build>
- <resources>
- <resource>
- <directory>${basedir}/osgi</directory>
- <targetPath>osgi</targetPath>
- <includes>
- <include>MANIFEST.MF</include>
- </includes>
- </resource>
- </resources>
-
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <id>vfs-jar-manifest</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <target>
- <mkdir dir="${project.build.directory}/osgi" />
- <touch file="${project.build.directory}/osgi/MANIFEST.MF" />
- </target>
- </configuration>
- </execution>
- <execution>
- <id>javadoc.resources</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <target>
- <copy todir="${project.build.directory}/apidocs/META-INF">
- <fileset dir="${vfs.parent.dir}">
- <include name="LICENSE.txt" />
- <include name="NOTICE.txt" />
- </fileset>
- </copy>
- </target>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <!-- to increase memory for tests on Travis CI -->
- <argLine>-Xmx64m</argLine>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <version>${version.checkstyle}</version>
- <dependencies>
- <dependency>
- <groupId>com.puppycrawl.tools</groupId>
- <artifactId>checkstyle</artifactId>
- <version>8.25</version>
- </dependency>
- </dependencies>
- <!-- Keep build/reporting in sync -->
- <configuration>
- <!--<propertiesLocation>${vfs.parent.dir}/checkstyle.properties</propertiesLocation> -->
- <configLocation>${vfs.parent.dir}/checkstyle.xml</configLocation>
- <suppressionsLocation>${vfs.parent.dir}/checkstyle-suppressions.xml</suppressionsLocation>
- <enableRulesSummary>false</enableRulesSummary>
- <propertyExpansion>basedir=${basedir}</propertyExpansion>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <!-- Should agree with config in reporting section -->
- <configuration>
- <excludes combine.children="append">
- <!-- trivial test data text files -->
- <exclude>src/test/resources/test-data/**/*.bin</exclude>
- <exclude>src/test/resources/test-data/**/*.txt</exclude>
- <exclude>src/test/resources/test-data/**/*.tgz</exclude>
- <exclude>src/test/resources/test-data/**/*.tbz2</exclude>
- <exclude>src/test/resources/test-data/test.mf</exclude>
- <!-- implicite exclude does not work if sandbox profile is not activated -->
- <exclude>commons-vfs2-sandbox/**</exclude>
- <exclude>dist/target/**</exclude>
- </excludes>
- </configuration>
- </plugin>
- <plugin>
- <groupId>com.github.siom79.japicmp</groupId>
- <artifactId>japicmp-maven-plugin</artifactId>
- <configuration>
- <parameter>
- <overrideCompatibilityChangeParameters>
- <overrideCompatibilityChangeParameter>
- <compatibilityChange>METHOD_NEW_DEFAULT</compatibilityChange>
- <binaryCompatible>true</binaryCompatible>
- <sourceCompatible>true</sourceCompatible>
- <semanticVersionLevel>PATCH</semanticVersionLevel>
- </overrideCompatibilityChangeParameter>
- </overrideCompatibilityChangeParameters>
- </parameter>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <version>${commons.rat.version}</version>
- <!-- Should agree with config in build section -->
- <configuration>
- <excludes combine.children="append">
- <!-- trivial test data text files -->
- <exclude>src/test/resources/test-data/**/*.txt</exclude>
- <exclude>src/test/resources/test-data/**/*.tgz</exclude>
- <exclude>src/test/resources/test-data/**/*.tbz2</exclude>
- <exclude>src/test/resources/test-data/test.mf</exclude>
- <!-- implicit exclude does not work if sandbox profile is not activated -->
- <exclude>commons-vfs2-sandbox/**</exclude>
- <exclude>dist/target/**</exclude>
- </excludes>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <version>${version.checkstyle}</version>
- <!-- Keep build/reporting in sync -->
- <configuration>
- <!--<propertiesLocation>${vfs.parent.dir}/checkstyle.properties</propertiesLocation> -->
- <configLocation>${vfs.parent.dir}/checkstyle.xml</configLocation>
- <suppressionsLocation>${vfs.parent.dir}/checkstyle-suppressions.xml</suppressionsLocation>
- <enableRulesSummary>false</enableRulesSummary>
- <propertyExpansion>basedir=${basedir}</propertyExpansion>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>${commons.javadoc.version}</version>
- <configuration>
- <tags>
- <tag>
- <name>todo</name>
- <!-- todo tag for all places -->
- <placement>a</placement>
- <head>To Do:</head>
- </tag>
- </tags>
- <aggregate>true</aggregate>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>findbugs-maven-plugin</artifactId>
- <!-- commons-parent defines version 2.5.x or 3.x depending on JDK active. -->
- <version>${commons.findbugs.version}</version>
- <configuration>
- <threshold>Normal</threshold>
- <effort>Default</effort>
- <excludeFilterFile>${vfs.parent.dir}/findbugs-exclude-filter.xml</excludeFilterFile>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-pmd-plugin</artifactId>
- <version>3.12.0</version>
- <configuration>
- <targetJdk>${maven.compiler.target}</targetJdk>
- <aggregate>true</aggregate>
- </configuration>
- </plugin>
- <plugin>
- <groupId>com.github.siom79.japicmp</groupId>
- <artifactId>japicmp-maven-plugin</artifactId>
- <configuration>
- <parameter>
- <overrideCompatibilityChangeParameters>
- <overrideCompatibilityChangeParameter>
- <compatibilityChange>METHOD_NEW_DEFAULT</compatibilityChange>
- <binaryCompatible>true</binaryCompatible>
- <sourceCompatible>true</sourceCompatible>
- <semanticVersionLevel>PATCH</semanticVersionLevel>
- </overrideCompatibilityChangeParameter>
- </overrideCompatibilityChangeParameters>
- </parameter>
- </configuration>
- </plugin>
- <!-- cobertura breaks because it cannot parse annotations in methods. -->
- <!--
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>cobertura-maven-plugin</artifactId>
- <version>${commons.cobertura.version}</version>
- </plugin>
- -->
- <!-- javancss breaks because it cannot parse annotations in methods. -->
- <!--
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>javancss-maven-plugin</artifactId>
- <version>2.0</version>
- </plugin>
- -->
- </plugins>
- </reporting>
-
- <dependencyManagement>
- <dependencies>
- <!-- artifacts of project, versions managed by release-plugin -->
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-vfs2</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-vfs2</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-vfs2-sandbox</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-vfs2-examples</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <!-- 3rd party dependencies -->
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.2</version>
- </dependency>
- <dependency>
- <groupId>commons-net</groupId>
- <artifactId>commons-net</artifactId>
- <version>3.6</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-collections4</artifactId>
- <version>4.4</version>
- </dependency>
- <dependency>
- <groupId>commons-httpclient</groupId>
- <artifactId>commons-httpclient</artifactId>
- <version>3.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- <version>4.5.10</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-compress</artifactId>
- <version>1.19</version>
- </dependency>
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>jackrabbit-webdav</artifactId>
- <version>1.6.5</version>
- </dependency>
- <dependency>
- <groupId>ant</groupId>
- <artifactId>ant</artifactId>
- <version>1.6.5</version>
- </dependency>
- <dependency>
- <groupId>com.jcraft</groupId>
- <artifactId>jsch</artifactId>
- <version>0.1.55</version>
- </dependency>
- <dependency>
- <groupId>jcifs</groupId>
- <artifactId>jcifs</artifactId>
- <version>1.3.17</version>
- </dependency>
- <dependency>
- <groupId>javax.mail</groupId>
- <artifactId>mail</artifactId>
- <version>1.4.7</version>
- </dependency>
- <!-- HDFS -->
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-hdfs-client</artifactId>
- <version>${hadoop.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-common</artifactId>
- <version>${hadoop.version}</version>
- <exclusions>
- <exclusion>
- <groupId>*</groupId>
- <artifactId>*</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-hdfs</artifactId>
- <version>${hadoop.version}</version>
- <exclusions>
- <exclusion>
- <groupId>*</groupId>
- <artifactId>*</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <!-- Testing -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.12</version>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- <version>3.1.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>3.9</version>
- </dependency>
- <!-- Test FTP with Apache FTP Server (MINA) -->
- <dependency>
- <groupId>org.apache.ftpserver</groupId>
- <artifactId>ftpserver-core</artifactId>
- <version>1.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.5.11</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>jcl-over-slf4j</artifactId>
- <version>1.5.11</version>
- </dependency>
- <!-- Test SFTP with Apache SSHd Server (MINA) -->
- <dependency>
- <groupId>org.apache.sshd</groupId>
- <artifactId>sshd-core</artifactId>
- <version>0.8.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.mina</groupId>
- <artifactId>mina-core</artifactId>
- <version>2.0.20</version>
- </dependency>
- <dependency>
- <groupId>org.bouncycastle</groupId>
- <artifactId>bcprov-jdk16</artifactId>
- <version>1.46</version>
- </dependency>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>2.6</version>
- </dependency>
- <!-- Test HTTP with Apache HttpComponent Core -->
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpcore-nio</artifactId>
- <version>4.4.12</version>
- </dependency>
- <!-- Test WebDAV with Apache Jackrabbit -->
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>jackrabbit-standalone</artifactId>
- <version>1.6.5</version>
- <exclusions>
- <exclusion>
- <!-- provides everything inlined. -->
- <groupId>*</groupId>
- <artifactId>*</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <!-- HDFS test dependencies -->
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-common</artifactId>
- <version>${hadoop.version}</version>
- <type>test-jar</type>
- <exclusions>
- <exclusion>
- <!-- jackrabbit-standalone provides one, too -->
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-hdfs</artifactId>
- <version>${hadoop.version}</version>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>javax.ws.rs</groupId>
- <artifactId>jsr311-api</artifactId>
- <version>1.1.1</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
- <distributionManagement>
- <site>
- <id>commons.site</id>
- <name>Apache Commons Site</name>
- <url>scm:svn:${commons.scmPubUrl}</url>
- </site>
- </distributionManagement>
-
- <!-- Releasing VFS as a multi-module build with binary artifacts is somewhat painful. This profile hooks into the commons-parent
- and the apache-pom to get the build done and then uses the assembly to package it up. -->
- <profiles>
- <profile>
- <id>include-sandbox</id>
- <modules>
- <module>commons-vfs2-sandbox</module>
- </modules>
- </profile>
- <profile>
- <id>release</id>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <!-- Don't build the archives here. They are constructed in the dist project -->
- <execution>
- <configuration>
- <skipAssembly>true</skipAssembly>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- <profile>
- <id>java11+</id>
- <activation>
- <jdk>[11,)</jdk>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <!-- -Xmx64m: increases memory for tests on Travis CI -->
- <!-- jdk.tls.client.protocols: For use of older protocol since DSA is no longer in the JRE -->
- <argLine>-Xmx64m -Djdk.tls.client.protocols=TLSv1.2</argLine>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- </profiles>
-
-</project>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-parent</artifactId>
+ <version>48</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>commons-vfs2-project</artifactId>
+ <name>Apache Commons VFS Project</name>
+ <description>Apache Commons VFS is a Virtual File System library.</description>
+ <packaging>pom</packaging>
+ <version>2.5.0-SNAPSHOT</version>
+
+ <url>http://commons.apache.org/proper/commons-vfs/</url>
+ <inceptionYear>2002</inceptionYear>
+
+ <modules>
+ <module>commons-vfs2</module>
+ <module>commons-vfs2-jackrabbit</module>
+ <module>commons-vfs2-jackrabbit2</module>
+ <module>commons-vfs2-examples</module>
+ <module>commons-vfs2-distribution</module>
+ </modules>
+ <!-- commons-vfs2-sandbox is in profile include-sandbox -->
+
+ <issueManagement>
+ <system>jira</system>
+ <url>https://issues.apache.org/jira/browse/VFS</url>
+ </issueManagement>
+
+ <scm>
+ <connection>scm:git:https://gitbox.apache.org/repos/asf/commons-vfs.git</connection>
+ <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/commons-vfs.git</developerConnection>
+ <url>https://gitbox.apache.org/repos/asf?p=commons-vfs.git</url>
+ <tag>commons-vfs-project-2.4</tag>
+ </scm>
+
+ <developers>
+ <developer>
+ <name>Adam Murdoch</name>
+ <id>adammurdoch</id>
+ <email>adammurdoch -at- apache.org</email>
+ <organization />
+ </developer>
+ <developer>
+ <name>James Strachan</name>
+ <id>jstrachan</id>
+ <email>jstrachan -at- apache.org</email>
+ <organization>SpiritSoft, Inc.</organization>
+ </developer>
+ <developer>
+ <name>Mario Ivankovits</name>
+ <id>imario</id>
+ <email>imario -at- apache.org</email>
+ <organization>OPS EDV Gmbh</organization>
+ </developer>
+ <developer>
+ <name>Rahul Akolkar</name>
+ <id>rahul</id>
+ <email>rahul -at- apache.org</email>
+ <organization>The Apache Software Foundation</organization>
+ </developer>
+ <developer>
+ <name>James Carman</name>
+ <id>jcarman</id>
+ <email>jcarman -at- apache.org</email>
+ <organization>The Apache Software Foundation</organization>
+ </developer>
+ <developer>
+ <name>Ralph Goers</name>
+ <id>rgoers</id>
+ <email>rgoers -at- apache.org</email>
+ <organization>Intuit</organization>
+ </developer>
+ <developer>
+ <name>Joerg Schaible</name>
+ <id>joehni</id>
+ <email>joehni -at- apache.org</email>
+ </developer>
+ <developer>
+ <name>Gary D. Gregory</name>
+ <id>ggregory</id>
+ <email>ggregory -at- apache.org</email>
+ <url>http://www.garygregory.com</url>
+ <timezone>-5</timezone>
+ </developer>
+ <developer>
+ <name>Bernd Eckenfels</name>
+ <id>ecki</id>
+ <email>ecki -at- apache.org</email>
+ <url>http://bernd.eckenfels.net</url>
+ <timezone>+1</timezone>
+ </developer>
+ </developers>
+
+ <contributors>
+ <contributor>
+ <name>Rami Ojares</name>
+ <email>rami.ojares -at- elisa.fi</email>
+ </contributor>
+ <contributor>
+ <name>Anthony Goubard</name>
+ <email>adagoubard -at- chello.nl</email>
+ </contributor>
+ <contributor>
+ <name>Christopher Ottley</name>
+ <email>xknight -at- users.sourceforge.net</email>
+ </contributor>
+ <contributor>
+ <name>Dave Marion</name>
+ <email>dlmarion -at- apache.org</email>
+ </contributor>
+ <contributor>
+ <name>Scott Bjerstedt</name>
+ <email>jcottbjer -at- gmail.com</email>
+ </contributor>
+ <contributor>
+ <name>Jose Juan Montiel</name>
+ <email>josejuan.montiel -at- gmail.com</email>
+ </contributor>
+ <contributor>
+ <name>Otto Fowler</name>
+ <email>otto -at- apache.org</email>
+ </contributor>
+ </contributors>
+
+ <properties>
+ <commons.encoding>UTF-8</commons.encoding>
+
+ <maven.compiler.source>1.8</maven.compiler.source>
+ <maven.compiler.target>1.8</maven.compiler.target>
+
+ <!-- bare ID without major version or commons- prefix -->
+ <commons.componentid>vfs</commons.componentid>
+ <commons.packageId>vfs2</commons.packageId>
+ <commons.module.name>org.apache.commons.vfs2</commons.module.name>
+ <commons.jira.id>VFS</commons.jira.id>
+ <commons.jira.pid>12310495</commons.jira.pid>
+ <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-vfs</commons.scmPubUrl>
+ <commons.siteOutputDirectory>${basedir}/../target/site</commons.siteOutputDirectory>
+ <commons.releaseNotesLocation>${basedir}/../RELEASE-NOTES.txt</commons.releaseNotesLocation>
+ <commons.distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/${commons.componentid}</commons.distSvnStagingUrl>
+ <commons.release.version>2.4.1</commons.release.version>
+ <!-- Commons Release Plugin -->
+ <commons.bc.version>2.4.1</commons.bc.version>
+ <commons.releaseManagerName>Gary Gregory</commons.releaseManagerName>
+ <commons.releaseManagerKey>86fdc7e2a11262cb</commons.releaseManagerKey>
+ <commons.rc.version>RC1</commons.rc.version>
+ <commons.release.name>commons-vfs-${commons.release.version}</commons.release.name>
+ <commons.release.desc>(requires Java 8)</commons.release.desc>
+
+<!--
+ <commons.release.2.version>2.0</commons.release.2.version>
+ <commons.release.2.name>commons-vfs-2.0</commons.release.2.name>
+ <commons.release.2.desc>(requires Java 1.5+)</commons.release.2.desc>
+-->
+
+ <vfs.parent.dir>${basedir}</vfs.parent.dir>
+ <version.checkstyle>3.1.0</version.checkstyle>
+ <!-- make sure bundle plugin has dependency informations for 'optional' -->
+ <commons.osgi.excludeDependencies />
+ <commons.osgi.import>
+ org.apache.hadoop.*;resolution:=optional,
+ org.apache.jackrabbit.*;resolution:=optional,
+ org.apache.tools.ant.*;resolution:=optional,
+ org.apache.commons.httpclient.*;resolution:=optional,
+ *
+ </commons.osgi.import>
+ <!-- Newer versions of clirr throw an NPE building the site -->
+ <commons.clirr.version>2.6</commons.clirr.version>
+ <!-- Avoid warnings about being unable to find jars during site building -->
+ <dependency.locations.enabled>false</dependency.locations.enabled>
+ <hadoop.version>3.2.1</hadoop.version>
+ <jackrabbit.version>1.6.5</jackrabbit.version>
+ <jackrabbit2.version>2.19.5</jackrabbit2.version>
+ <commons.surefire.version>2.19.1</commons.surefire.version>
+ <commons.japicmp.version>0.14.1</commons.japicmp.version>
+ </properties>
+
+ <build>
+ <resources>
+ <resource>
+ <directory>${basedir}/osgi</directory>
+ <targetPath>osgi</targetPath>
+ <includes>
+ <include>MANIFEST.MF</include>
+ </includes>
+ </resource>
+ </resources>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>vfs-jar-manifest</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <target>
+ <mkdir dir="${project.build.directory}/osgi" />
+ <touch file="${project.build.directory}/osgi/MANIFEST.MF" />
+ </target>
+ </configuration>
+ </execution>
+ <execution>
+ <id>javadoc.resources</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <target>
+ <copy todir="${project.build.directory}/apidocs/META-INF">
+ <fileset dir="${vfs.parent.dir}">
+ <include name="LICENSE.txt" />
+ <include name="NOTICE.txt" />
+ </fileset>
+ </copy>
+ </target>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <!-- to increase memory for tests on Travis CI -->
+ <argLine>-Xmx64m</argLine>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>${version.checkstyle}</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.puppycrawl.tools</groupId>
+ <artifactId>checkstyle</artifactId>
+ <version>8.25</version>
+ </dependency>
+ </dependencies>
+ <!-- Keep build/reporting in sync -->
+ <configuration>
+ <!--<propertiesLocation>${vfs.parent.dir}/checkstyle.properties</propertiesLocation> -->
+ <configLocation>${vfs.parent.dir}/checkstyle.xml</configLocation>
+ <suppressionsLocation>${vfs.parent.dir}/checkstyle-suppressions.xml</suppressionsLocation>
+ <enableRulesSummary>false</enableRulesSummary>
+ <propertyExpansion>basedir=${basedir}</propertyExpansion>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <!-- Should agree with config in reporting section -->
+ <configuration>
+ <excludes combine.children="append">
+ <!-- trivial test data text files -->
+ <exclude>src/test/resources/test-data/**/*.bin</exclude>
+ <exclude>src/test/resources/test-data/**/*.txt</exclude>
+ <exclude>src/test/resources/test-data/**/*.tgz</exclude>
+ <exclude>src/test/resources/test-data/**/*.tbz2</exclude>
+ <exclude>src/test/resources/test-data/test.mf</exclude>
+ <!-- implicite exclude does not work if sandbox profile is not activated -->
+ <exclude>commons-vfs2-sandbox/**</exclude>
+ <exclude>dist/target/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>com.github.siom79.japicmp</groupId>
+ <artifactId>japicmp-maven-plugin</artifactId>
+ <configuration>
+ <parameter>
+ <overrideCompatibilityChangeParameters>
+ <overrideCompatibilityChangeParameter>
+ <compatibilityChange>METHOD_NEW_DEFAULT</compatibilityChange>
+ <binaryCompatible>true</binaryCompatible>
+ <sourceCompatible>true</sourceCompatible>
+ <semanticVersionLevel>PATCH</semanticVersionLevel>
+ </overrideCompatibilityChangeParameter>
+ </overrideCompatibilityChangeParameters>
+ </parameter>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <version>${commons.rat.version}</version>
+ <!-- Should agree with config in build section -->
+ <configuration>
+ <excludes combine.children="append">
+ <!-- trivial test data text files -->
+ <exclude>src/test/resources/test-data/**/*.txt</exclude>
+ <exclude>src/test/resources/test-data/**/*.tgz</exclude>
+ <exclude>src/test/resources/test-data/**/*.tbz2</exclude>
+ <exclude>src/test/resources/test-data/test.mf</exclude>
+ <!-- implicit exclude does not work if sandbox profile is not activated -->
+ <exclude>commons-vfs2-sandbox/**</exclude>
+ <exclude>dist/target/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>${version.checkstyle}</version>
+ <!-- Keep build/reporting in sync -->
+ <configuration>
+ <!--<propertiesLocation>${vfs.parent.dir}/checkstyle.properties</propertiesLocation> -->
+ <configLocation>${vfs.parent.dir}/checkstyle.xml</configLocation>
+ <suppressionsLocation>${vfs.parent.dir}/checkstyle-suppressions.xml</suppressionsLocation>
+ <enableRulesSummary>false</enableRulesSummary>
+ <propertyExpansion>basedir=${basedir}</propertyExpansion>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>${commons.javadoc.version}</version>
+ <configuration>
+ <tags>
+ <tag>
+ <name>todo</name>
+ <!-- todo tag for all places -->
+ <placement>a</placement>
+ <head>To Do:</head>
+ </tag>
+ </tags>
+ <aggregate>true</aggregate>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <!-- commons-parent defines version 2.5.x or 3.x depending on JDK active. -->
+ <version>${commons.findbugs.version}</version>
+ <configuration>
+ <threshold>Normal</threshold>
+ <effort>Default</effort>
+ <excludeFilterFile>${vfs.parent.dir}/findbugs-exclude-filter.xml</excludeFilterFile>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>3.12.0</version>
+ <configuration>
+ <targetJdk>${maven.compiler.target}</targetJdk>
+ <aggregate>true</aggregate>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>com.github.siom79.japicmp</groupId>
+ <artifactId>japicmp-maven-plugin</artifactId>
+ <configuration>
+ <parameter>
+ <overrideCompatibilityChangeParameters>
+ <overrideCompatibilityChangeParameter>
+ <compatibilityChange>METHOD_NEW_DEFAULT</compatibilityChange>
+ <binaryCompatible>true</binaryCompatible>
+ <sourceCompatible>true</sourceCompatible>
+ <semanticVersionLevel>PATCH</semanticVersionLevel>
+ </overrideCompatibilityChangeParameter>
+ </overrideCompatibilityChangeParameters>
+ </parameter>
+ </configuration>
+ </plugin>
+ <!-- cobertura breaks because it cannot parse annotations in methods. -->
+ <!--
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <version>${commons.cobertura.version}</version>
+ </plugin>
+ -->
+ <!-- javancss breaks because it cannot parse annotations in methods. -->
+ <!--
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>javancss-maven-plugin</artifactId>
+ <version>2.0</version>
+ </plugin>
+ -->
+ </plugins>
+ </reporting>
+
+ <dependencyManagement>
+ <dependencies>
+ <!-- artifacts of project, versions managed by release-plugin -->
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2-sandbox</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-vfs2-examples</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <!-- 3rd party dependencies -->
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-net</groupId>
+ <artifactId>commons-net</artifactId>
+ <version>3.6</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>4.4</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ <version>3.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>4.5.10</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.19</version>
+ </dependency>
+ <dependency>
+ <groupId>ant</groupId>
+ <artifactId>ant</artifactId>
+ <version>1.6.5</version>
+ </dependency>
+ <dependency>
+ <groupId>com.jcraft</groupId>
+ <artifactId>jsch</artifactId>
+ <version>0.1.55</version>
+ </dependency>
+ <dependency>
+ <groupId>jcifs</groupId>
+ <artifactId>jcifs</artifactId>
+ <version>1.3.17</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ <version>1.4.7</version>
+ </dependency>
+ <!-- HDFS -->
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs-client</artifactId>
+ <version>${hadoop.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-common</artifactId>
+ <version>${hadoop.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs</artifactId>
+ <version>${hadoop.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- Testing -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>3.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.9</version>
+ </dependency>
+ <!-- Test FTP with Apache FTP Server (MINA) -->
+ <dependency>
+ <groupId>org.apache.ftpserver</groupId>
+ <artifactId>ftpserver-core</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.26</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <version>1.7.26</version>
+ </dependency>
+ <!-- Test SFTP with Apache SSHd Server (MINA) -->
+ <dependency>
+ <groupId>org.apache.sshd</groupId>
+ <artifactId>sshd-core</artifactId>
+ <version>0.8.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.mina</groupId>
+ <artifactId>mina-core</artifactId>
+ <version>2.0.20</version>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk16</artifactId>
+ <version>1.46</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.6</version>
+ </dependency>
+ <!-- Test HTTP with Apache HttpComponent Core -->
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpcore-nio</artifactId>
+ <version>4.4.12</version>
+ </dependency>
+ <!-- Test WebDAV with Apache Jackrabbit Standalone -->
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-standalone</artifactId>
+ <version>${jackrabbit.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <!-- provides everything inlined. -->
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- Test WebDAV with Apache Jackrabbit2 Standalone Components -->
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-standalone-components</artifactId>
+ <version>${jackrabbit2.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-slf4j-impl</artifactId>
+ <version>2.11.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <version>2.11.2</version>
+ <scope>test</scope>
+ </dependency>
+ <!-- HDFS test dependencies -->
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-common</artifactId>
+ <version>${hadoop.version}</version>
+ <type>test-jar</type>
+ <exclusions>
+ <exclusion>
+ <!-- jackrabbit-standalone provides one, too -->
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs</artifactId>
+ <version>${hadoop.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>jsr311-api</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <distributionManagement>
+ <site>
+ <id>commons.site</id>
+ <name>Apache Commons Site</name>
+ <url>scm:svn:${commons.scmPubUrl}</url>
+ </site>
+ </distributionManagement>
+
+ <!-- Releasing VFS as a multi-module build with binary artifacts is somewhat painful. This profile hooks into the commons-parent
+ and the apache-pom to get the build done and then uses the assembly to package it up. -->
+ <profiles>
+ <profile>
+ <id>include-sandbox</id>
+ <modules>
+ <module>commons-vfs2-sandbox</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>release</id>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <!-- Don't build the archives here. They are constructed in the dist project -->
+ <execution>
+ <configuration>
+ <skipAssembly>true</skipAssembly>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <profile>
+ <id>java11+</id>
+ <activation>
+ <jdk>[11,)</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <!-- -Xmx64m: increases memory for tests on Travis CI -->
+ <!-- jdk.tls.client.protocols: For use of older protocol since DSA is no longer in the JRE -->
+ <argLine>-Xmx64m -Djdk.tls.client.protocols=TLSv1.2</argLine>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ </profiles>
+
+</project>