You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by st...@apache.org on 2016/01/21 02:07:53 UTC

[1/8] android commit: added missing node_modules

Repository: cordova-android
Updated Branches:
  refs/heads/master 320558a78 -> 44421bbc7


http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix.js b/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix.js
new file mode 100644
index 0000000..9a1ce1b
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix.js
@@ -0,0 +1,20 @@
+require(__dirname).test(
+  { xml : "<xml:root/>"
+  , expect :
+    [
+      [ "opentag"
+      , { name: "xml:root"
+        , uri: "http://www.w3.org/XML/1998/namespace"
+        , prefix: "xml"
+        , local: "root"
+        , attributes: {}
+        , ns: {}
+        }
+      ]
+    , ["closetag", "xml:root"]
+    ]
+  , strict : true
+  , opt : { xmlns: true }
+  }
+)
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-redefine.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-redefine.js b/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-redefine.js
new file mode 100644
index 0000000..1eba9c7
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-redefine.js
@@ -0,0 +1,40 @@
+require(__dirname).test(
+  { xml : "<xml:root xmlns:xml='ERROR'/>"
+  , expect :
+    [ ["error"
+      , "xml: prefix must be bound to http://www.w3.org/XML/1998/namespace\n"
+                        + "Actual: ERROR\n"
+      + "Line: 0\nColumn: 27\nChar: '"
+      ]
+    , [ "attribute"
+      , { name: "xmlns:xml"
+        , local: "xml"
+        , prefix: "xmlns"
+        , uri: "http://www.w3.org/2000/xmlns/"
+        , value: "ERROR"
+        }
+      ]
+    , [ "opentag"
+      , { name: "xml:root"
+        , uri: "http://www.w3.org/XML/1998/namespace"
+        , prefix: "xml"
+        , local: "root"
+        , attributes:
+          { "xmlns:xml":
+            { name: "xmlns:xml"
+            , local: "xml"
+            , prefix: "xmlns"
+            , uri: "http://www.w3.org/2000/xmlns/"
+            , value: "ERROR"
+            }
+          }
+        , ns: {}
+        }
+      ]
+    , ["closetag", "xml:root"]
+    ]
+  , strict : true
+  , opt : { xmlns: true }
+  }
+)
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/properties-parser/play-ground.js
----------------------------------------------------------------------
diff --git a/node_modules/properties-parser/play-ground.js b/node_modules/properties-parser/play-ground.js
new file mode 100644
index 0000000..ffbcf62
--- /dev/null
+++ b/node_modules/properties-parser/play-ground.js
@@ -0,0 +1,17 @@
+var parser = require("./");
+var editor = parser.createEditor();
+
+editor.set("ok", "hi");
+editor.set("hi", "ok");
+
+console.log(editor.toString());
+
+editor.unset("hi");
+
+console.log("===================");
+console.log(editor.toString());
+
+editor.unset("ok");
+
+console.log("===================");
+console.log(editor.toString());

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/properties-parser/test/ReadProperties.class
----------------------------------------------------------------------
diff --git a/node_modules/properties-parser/test/ReadProperties.class b/node_modules/properties-parser/test/ReadProperties.class
new file mode 100755
index 0000000..f40792b
Binary files /dev/null and b/node_modules/properties-parser/test/ReadProperties.class differ

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/properties-parser/test/ReadProperties.java
----------------------------------------------------------------------
diff --git a/node_modules/properties-parser/test/ReadProperties.java b/node_modules/properties-parser/test/ReadProperties.java
new file mode 100644
index 0000000..12e4472
--- /dev/null
+++ b/node_modules/properties-parser/test/ReadProperties.java
@@ -0,0 +1,61 @@
+import java.io.*;
+import java.util.*;
+
+public class ReadProperties {
+	public static void main(String[] args) throws IOException {
+		if(args.length <= 0) { System.out.println("No file provided."); return; }
+
+		File f = new File(args[0]);
+
+		if(!f.exists()) { System.out.println("File not found: " + args[0]); return; }
+
+		Properties prop = new Properties();
+		prop.load(new FileInputStream(f));
+
+		boolean isFirst = true; // I fucking hate java, why don't they have a native string join function?
+		System.out.print("{");
+		for (Map.Entry<Object, Object> item : prop.entrySet()) {
+			String key = (String) item.getKey();
+			String value = (String) item.getValue();
+			
+			if(isFirst) { isFirst = false; }
+			else { System.out.print(","); }
+
+			System.out.print("\"" + escape(key) + "\":\"" + escape(value) + "\"");
+		}
+		System.out.print("}");
+	}
+
+	static String escape(String s) { // Taken from http://code.google.com/p/json-simple/
+		StringBuffer sb = new StringBuffer();
+		for(int i = 0; i < s.length(); i++) {
+			char ch = s.charAt(i);
+			switch(ch) {
+				case '"': sb.append("\\\""); break;
+				case '\\': sb.append("\\\\"); break;
+				case '\b': sb.append("\\b"); break;
+				case '\f': sb.append("\\f"); break;
+				case '\n': sb.append("\\n"); break;
+				case '\r': sb.append("\\r"); break;
+				case '\t': sb.append("\\t"); break;
+				case '/': sb.append("\\/"); break;
+				default:
+				//Reference: http://www.unicode.org/versions/Unicode5.1.0/
+				if (('\u0000' <= ch && ch <= '\u001F') 
+					|| ('\u007F' <= ch && ch <= '\u009F') 
+					|| ('\u2000' <= ch && ch <= '\u20FF')) {
+					String ss = Integer.toHexString(ch);
+					sb.append("\\u");
+					for(int k = ss.length(); k < 4; k++) {
+						sb.append('0');
+					}
+					sb.append(ss.toUpperCase());
+				} else {
+					sb.append(ch);
+				}
+			}
+		}
+
+		return sb.toString();
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/properties-parser/test/test-cases-copy.properties
----------------------------------------------------------------------
diff --git a/node_modules/properties-parser/test/test-cases-copy.properties b/node_modules/properties-parser/test/test-cases-copy.properties
new file mode 100644
index 0000000..04b8ecd
--- /dev/null
+++ b/node_modules/properties-parser/test/test-cases-copy.properties
@@ -0,0 +1,16 @@
+# You are reading the ".properties" entry.
+! The exclamation mark can also mark text as comments.
+lala=whatever
+website = whatever
+language = whatever
+# The backslash below tells the application to continue reading
+# the value onto the next line.
+message = whatever
+# Add spaces to the key
+key\ with\ spaces = whatever
+# Unicode
+tab : whatever
+long-unicode : whatever
+space\ separator     key val \n three
+another-test :whatever
+   null-prop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/properties-parser/test/test-cases.properties
----------------------------------------------------------------------
diff --git a/node_modules/properties-parser/test/test-cases.properties b/node_modules/properties-parser/test/test-cases.properties
new file mode 100644
index 0000000..5fc5bb7
--- /dev/null
+++ b/node_modules/properties-parser/test/test-cases.properties
@@ -0,0 +1,18 @@
+# You are reading the ".properties" entry.
+! The exclamation mark can also mark text as comments.
+lala=\u210A the foo foo \
+                    lalala;
+website = http://en.wikipedia.org/
+language = English
+# The backslash below tells the application to continue reading
+# the value onto the next line.
+message = Welcome to \
+          Wikipedia!
+# Add spaces to the key
+key\ with\ spaces = This is the value that could be looked up with the key "key with spaces".
+# Unicode
+tab : \u0009
+long-unicode : \u00000009
+space\ separator     key val \n three
+another-test ::: hihi
+   null-prop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/properties-parser/test/test.js
----------------------------------------------------------------------
diff --git a/node_modules/properties-parser/test/test.js b/node_modules/properties-parser/test/test.js
new file mode 100644
index 0000000..4b7b531
--- /dev/null
+++ b/node_modules/properties-parser/test/test.js
@@ -0,0 +1,123 @@
+var fs = require("fs");
+var assert = require("assert");
+var prop = require("../index.js");
+
+var syncData = prop.read("./test-cases.properties");
+prop.read("./test-cases.properties", function(err, data) {
+	assert.deepEqual(data, syncData);
+	assert.equal(data["lala"], 'ℊ the foo foo lalala;');
+	assert.equal(data["website"], 'http://en.wikipedia.org/');
+	assert.equal(data["language"], 'English');
+	assert.equal(data["message"], 'Welcome to Wikipedia!');
+	assert.equal(data["key with spaces"], 'This is the value that could be looked up with the key "key with spaces".');
+	assert.equal(data["tab"], '\t');
+	assert.equal(data["long-unicode"], '\u00000009');
+	assert.equal(data["space separator"], 'key val \n three');
+	assert.equal(data["another-test"], ':: hihi');
+	assert.equal(data["null-prop"], '');
+	assert.ok(data["valueOf"] == null, "Properties are set that shouldn't be (valueOf)");
+	assert.ok(data["toString"] == null, "Properties are set that shouldn't be (toString)");
+
+	console.log("Tests all passed...");
+
+	if(process.argv[2] === "repl") {
+		var repl = require("repl").start("test-repl> ");
+		repl.context.data = data;
+		repl.context.prop = prop;
+	}
+});
+
+var editor1 = prop.createEditor();
+editor1.set("basic", "prop1");
+assert.equal(editor1.toString(), "basic=prop1");
+editor1.set("basic", "prop2", "A comment\nmulti-line1");
+assert.equal(editor1.toString(), "# A comment\n# multi-line1\nbasic=prop2");
+editor1.set("basic", "prop3", "A comment\nmulti-line2");
+assert.equal(editor1.toString(), "# A comment\n# multi-line2\nbasic=prop3");
+editor1.set("basic", "prop4");
+assert.equal(editor1.toString(), "# A comment\n# multi-line2\nbasic=prop4");
+editor1.set("basic", "prop5", null); // Delete's comment
+assert.equal(editor1.toString(), "basic=prop5");
+editor1.set("basic1", "prop6");
+assert.equal(editor1.toString(), "basic=prop5\nbasic1=prop6");
+editor1.addHeadComment("Head Comment");
+assert.equal(editor1.toString(), "# Head Comment\nbasic=prop5\nbasic1=prop6");
+assert.ok(editor1.get("valueOf") == null);
+assert.ok(editor1.get("toString") == null);
+
+var editor2 = prop.createEditor("./test-cases.properties");
+assert.equal(fs.readFileSync("./test-cases.properties").toString(), editor2.toString());
+editor2.set("lala", "prop1");
+assert.ok(editor2.toString().indexOf("lala=prop1") > -1);
+editor2.set("lala", "prop2", "A comment\nmulti-line1");
+assert.ok(editor2.toString().indexOf("# A comment\n# multi-line1\nlala=prop2") > -1);
+editor2.set("lala", "prop3", "A comment\nmulti-line2");
+assert.ok(editor2.toString().indexOf("# A comment\n# multi-line2\nlala=prop3") > -1);
+editor2.set("lala", "prop4");
+assert.ok(editor2.toString().indexOf("# A comment\n# multi-line2\nlala=prop4") > -1);
+editor2.set("lala", "prop5", null); // Delete's comment
+assert.ok(editor2.toString().indexOf("! The exclamation mark can also mark text as comments.\nlala=prop5") > -1);
+editor2.set("basic-non-existing", "prop6");
+assert.ok(editor2.toString().indexOf("\nbasic-non-existing=prop6") > -1);
+editor2.addHeadComment("Head Comment");
+assert.equal(editor2.toString().indexOf("# Head Comment\n"), 0);
+assert.ok(editor2.get("valueOf") == null);
+assert.ok(editor2.get("toString") == null);
+
+var editor3 = prop.createEditor();
+editor3.set("stay", "ok");
+
+editor3.unset("key");
+editor3.unset("key", null);
+editor3.unset("key", undefined);
+assert.equal(editor3.toString().trim(), "stay=ok");
+
+editor3.set("key", "val");
+editor3.unset("key");
+assert.equal(editor3.toString().trim(), "stay=ok");
+
+editor3.set("key", "val");
+editor3.set("key", null);
+assert.equal(editor3.toString().trim(), "stay=ok");
+
+editor3.set("key", "val");
+editor3.set("key", undefined);
+assert.equal(editor3.toString().trim(), "stay=ok");
+
+prop.createEditor("./test-cases.properties", function(err, editor) {
+	var properties = {};
+	properties.lala = 'whatever';
+	properties.website = 'whatever';
+	properties.language = 'whatever';
+	properties.message = 'whatever';
+	properties['key with spaces'] = 'whatever';
+	properties.tab = 'whatever';
+	properties['long-unicode'] = 'whatever';
+	properties['another-test'] = 'whatever';
+	for (var item in properties) {
+		editor.set(item, properties[item]);
+	}
+
+	assert.equal(
+		editor.toString(),
+		'# You are reading the ".properties" entry.\n' +
+		'! The exclamation mark can also mark text as comments.\n' +
+		'lala=whatever\n' +
+		'website = whatever\n' +
+		'language = whatever\n' +
+		'# The backslash below tells the application to continue reading\n' +
+		'# the value onto the next line.\n' +
+		'message = whatever\n' +
+		'# Add spaces to the key\n' +
+		'key\\ with\\ spaces = whatever\n' +
+		'# Unicode\n' +
+		'tab : whatever\n' +
+		'long-unicode : whatever\n' +
+		'space\\ separator     key val \\n three\n' +
+		'another-test :whatever\n' +
+		'   null-prop'
+	);
+});
+
+// java ReadProperties test-cases.properties
+// javac ReadProperties.java
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org


[2/8] android commit: added missing node_modules

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/examples/test.xml
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/examples/test.xml b/node_modules/elementtree/node_modules/sax/examples/test.xml
new file mode 100644
index 0000000..801292d
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/examples/test.xml
@@ -0,0 +1,1254 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE RootElement [
+	<!ENTITY e SYSTEM "001.ent">
+]>
+<RootElement param="value">
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+    <FirstElement>
+        Some Text
+    </FirstElement>
+    <?some_pi some_attr="some_value"?>
+    <!-- this is a comment -- but this isnt part of the comment -->
+    <!-- this is a comment == and this is a part of the comment -->
+    <!-- this is a comment > and this is also part of the thing -->
+    <!invalid comment>
+    <![CDATA[ this is random stuff. & and < and > are ok in here. ]]>
+    <SecondElement param2="something">
+        Pre-Text &amp; <Inline>Inlined text</Inline> Post-text.
+        &#xF8FF;
+    </SecondElement>
+</RootElement>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/buffer-overrun.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/buffer-overrun.js b/node_modules/elementtree/node_modules/sax/test/buffer-overrun.js
new file mode 100644
index 0000000..8d12fac
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/buffer-overrun.js
@@ -0,0 +1,25 @@
+// set this really low so that I don't have to put 64 MB of xml in here.
+var sax = require("../lib/sax")
+var bl = sax.MAX_BUFFER_LENGTH
+sax.MAX_BUFFER_LENGTH = 5;
+
+require(__dirname).test({
+  expect : [
+    ["error", "Max buffer length exceeded: tagName\nLine: 0\nColumn: 15\nChar: "],
+    ["error", "Max buffer length exceeded: tagName\nLine: 0\nColumn: 30\nChar: "],
+    ["error", "Max buffer length exceeded: tagName\nLine: 0\nColumn: 45\nChar: "],
+    ["opentag", {
+     "name": "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ",
+     "attributes": {}
+    }],
+    ["text", "yo"],
+    ["closetag", "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"]
+  ]
+}).write("<abcdefghijklmn")
+  .write("opqrstuvwxyzABC")
+  .write("DEFGHIJKLMNOPQR")
+  .write("STUVWXYZ>")
+  .write("yo")
+  .write("</abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ>")
+  .close();
+sax.MAX_BUFFER_LENGTH = bl

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/cdata-chunked.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/cdata-chunked.js b/node_modules/elementtree/node_modules/sax/test/cdata-chunked.js
new file mode 100644
index 0000000..ccd5ee6
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/cdata-chunked.js
@@ -0,0 +1,11 @@
+
+require(__dirname).test({
+  expect : [
+    ["opentag", {"name": "R","attributes": {}}],
+    ["opencdata", undefined],
+    ["cdata", " this is character data  "],
+    ["closecdata", undefined],
+    ["closetag", "R"]
+  ]
+}).write("<r><![CDATA[ this is ").write("character data  ").write("]]></r>").close();
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/cdata-end-split.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/cdata-end-split.js b/node_modules/elementtree/node_modules/sax/test/cdata-end-split.js
new file mode 100644
index 0000000..b41bd00
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/cdata-end-split.js
@@ -0,0 +1,15 @@
+
+require(__dirname).test({
+  expect : [
+    ["opentag", {"name": "R","attributes": {}}],
+    ["opencdata", undefined],
+    ["cdata", " this is "],
+    ["closecdata", undefined],
+    ["closetag", "R"]
+  ]
+})
+  .write("<r><![CDATA[ this is ]")
+  .write("]>")
+  .write("</r>")
+  .close();
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/cdata-fake-end.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/cdata-fake-end.js b/node_modules/elementtree/node_modules/sax/test/cdata-fake-end.js
new file mode 100644
index 0000000..07aeac4
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/cdata-fake-end.js
@@ -0,0 +1,28 @@
+
+var p = require(__dirname).test({
+  expect : [
+    ["opentag", {"name": "R","attributes": {}}],
+    ["opencdata", undefined],
+    ["cdata", "[[[[[[[[]]]]]]]]"],
+    ["closecdata", undefined],
+    ["closetag", "R"]
+  ]
+})
+var x = "<r><![CDATA[[[[[[[[[]]]]]]]]]]></r>"
+for (var i = 0; i < x.length ; i ++) {
+  p.write(x.charAt(i))
+}
+p.close();
+
+
+var p2 = require(__dirname).test({
+  expect : [
+    ["opentag", {"name": "R","attributes": {}}],
+    ["opencdata", undefined],
+    ["cdata", "[[[[[[[[]]]]]]]]"],
+    ["closecdata", undefined],
+    ["closetag", "R"]
+  ]
+})
+var x = "<r><![CDATA[[[[[[[[[]]]]]]]]]]></r>"
+p2.write(x).close();

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/cdata-multiple.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/cdata-multiple.js b/node_modules/elementtree/node_modules/sax/test/cdata-multiple.js
new file mode 100644
index 0000000..dab2015
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/cdata-multiple.js
@@ -0,0 +1,15 @@
+
+require(__dirname).test({
+  expect : [
+    ["opentag", {"name": "R","attributes": {}}],
+    ["opencdata", undefined],
+    ["cdata", " this is "],
+    ["closecdata", undefined],
+    ["opencdata", undefined],
+    ["cdata", "character data  "],
+    ["closecdata", undefined],
+    ["closetag", "R"]
+  ]
+}).write("<r><![CDATA[ this is ]]>").write("<![CDA").write("T").write("A[")
+  .write("character data  ").write("]]></r>").close();
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/cdata.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/cdata.js b/node_modules/elementtree/node_modules/sax/test/cdata.js
new file mode 100644
index 0000000..0f09cce
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/cdata.js
@@ -0,0 +1,10 @@
+require(__dirname).test({
+  xml : "<r><![CDATA[ this is character data  ]]></r>",
+  expect : [
+    ["opentag", {"name": "R","attributes": {}}],
+    ["opencdata", undefined],
+    ["cdata", " this is character data  "],
+    ["closecdata", undefined],
+    ["closetag", "R"]
+  ]
+});

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/index.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/index.js b/node_modules/elementtree/node_modules/sax/test/index.js
new file mode 100644
index 0000000..d4e1ef4
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/index.js
@@ -0,0 +1,86 @@
+var globalsBefore = JSON.stringify(Object.keys(global))
+  , util = require("util")
+  , assert = require("assert")
+  , fs = require("fs")
+  , path = require("path")
+  , sax = require("../lib/sax")
+
+exports.sax = sax
+
+// handy way to do simple unit tests
+// if the options contains an xml string, it'll be written and the parser closed.
+// otherwise, it's assumed that the test will write and close.
+exports.test = function test (options) {
+  var xml = options.xml
+    , parser = sax.parser(options.strict, options.opt)
+    , expect = options.expect
+    , e = 0
+  sax.EVENTS.forEach(function (ev) {
+    parser["on" + ev] = function (n) {
+      if (process.env.DEBUG) {
+        console.error({ expect: expect[e]
+                      , actual: [ev, n] })
+      }
+      if (e >= expect.length && (ev === "end" || ev === "ready")) return
+      assert.ok( e < expect.length,
+        "expectation #"+e+" "+util.inspect(expect[e])+"\n"+
+        "Unexpected event: "+ev+" "+(n ? util.inspect(n) : ""))
+      var inspected = n instanceof Error ? "\n"+ n.message : util.inspect(n)
+      assert.equal(ev, expect[e][0],
+        "expectation #"+e+"\n"+
+        "Didn't get expected event\n"+
+        "expect: "+expect[e][0] + " " +util.inspect(expect[e][1])+"\n"+
+        "actual: "+ev+" "+inspected+"\n")
+      if (ev === "error") assert.equal(n.message, expect[e][1])
+      else assert.deepEqual(n, expect[e][1],
+        "expectation #"+e+"\n"+
+        "Didn't get expected argument\n"+
+        "expect: "+expect[e][0] + " " +util.inspect(expect[e][1])+"\n"+
+        "actual: "+ev+" "+inspected+"\n")
+      e++
+      if (ev === "error") parser.resume()
+    }
+  })
+  if (xml) parser.write(xml).close()
+  return parser
+}
+
+if (module === require.main) {
+  var running = true
+    , failures = 0
+
+  function fail (file, er) {
+    util.error("Failed: "+file)
+    util.error(er.stack || er.message)
+    failures ++
+  }
+
+  fs.readdir(__dirname, function (error, files) {
+    files = files.filter(function (file) {
+      return (/\.js$/.exec(file) && file !== 'index.js')
+    })
+    var n = files.length
+      , i = 0
+    console.log("0.." + n)
+    files.forEach(function (file) {
+      // run this test.
+      try {
+        require(path.resolve(__dirname, file))
+        var globalsAfter = JSON.stringify(Object.keys(global))
+        if (globalsAfter !== globalsBefore) {
+          var er = new Error("new globals introduced\n"+
+                             "expected: "+globalsBefore+"\n"+
+                             "actual:   "+globalsAfter)
+          globalsBefore = globalsAfter
+          throw er
+        }
+        console.log("ok " + (++i) + " - " + file)
+      } catch (er) {
+        console.log("not ok "+ (++i) + " - " + file)
+        fail(file, er)
+      }
+    })
+    if (!failures) return console.log("#all pass")
+    else return console.error(failures + " failure" + (failures > 1 ? "s" : ""))
+  })
+}

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/issue-23.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/issue-23.js b/node_modules/elementtree/node_modules/sax/test/issue-23.js
new file mode 100644
index 0000000..e7991b2
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/issue-23.js
@@ -0,0 +1,43 @@
+
+require(__dirname).test
+  ( { xml :
+      "<compileClassesResponse>"+
+        "<result>"+
+          "<bodyCrc>653724009</bodyCrc>"+
+          "<column>-1</column>"+
+          "<id>01pG0000002KoSUIA0</id>"+
+          "<line>-1</line>"+
+          "<name>CalendarController</name>"+
+          "<success>true</success>"+
+        "</result>"+
+      "</compileClassesResponse>"
+
+    , expect :
+      [ [ "opentag", { name: "COMPILECLASSESRESPONSE", attributes: {} } ]
+      , [ "opentag", { name : "RESULT", attributes: {} } ]
+      , [ "opentag", { name: "BODYCRC", attributes: {} } ]
+      , [ "text", "653724009" ]
+      , [ "closetag", "BODYCRC" ]
+      , [ "opentag", { name: "COLUMN", attributes: {} } ]
+      , [ "text", "-1" ]
+      , [ "closetag", "COLUMN" ]
+      , [ "opentag", { name: "ID", attributes: {} } ]
+      , [ "text", "01pG0000002KoSUIA0" ]
+      , [ "closetag", "ID" ]
+      , [ "opentag", {name: "LINE", attributes: {} } ]
+      , [ "text", "-1" ]
+      , [ "closetag", "LINE" ]
+      , [ "opentag", {name: "NAME", attributes: {} } ]
+      , [ "text", "CalendarController" ]
+      , [ "closetag", "NAME" ]
+      , [ "opentag", {name: "SUCCESS", attributes: {} } ]
+      , [ "text", "true" ]
+      , [ "closetag", "SUCCESS" ]
+      , [ "closetag", "RESULT" ]
+      , [ "closetag", "COMPILECLASSESRESPONSE" ]
+      ]
+    , strict : false
+    , opt : {}
+    }
+  )
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/issue-30.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/issue-30.js b/node_modules/elementtree/node_modules/sax/test/issue-30.js
new file mode 100644
index 0000000..c2cc809
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/issue-30.js
@@ -0,0 +1,24 @@
+// https://github.com/isaacs/sax-js/issues/33
+require(__dirname).test
+  ( { xml : "<xml>\n"+
+            "<!-- \n"+
+            "  comment with a single dash- in it\n"+
+            "-->\n"+
+            "<data/>\n"+
+            "</xml>"
+
+    , expect :
+      [ [ "opentag", { name: "xml", attributes: {} } ]
+      , [ "text", "\n" ]
+      , [ "comment", " \n  comment with a single dash- in it\n" ]
+      , [ "text", "\n" ]
+      , [ "opentag", { name: "data", attributes: {} } ]
+      , [ "closetag", "data" ]
+      , [ "text", "\n" ]
+      , [ "closetag", "xml" ]
+      ]
+    , strict : true
+    , opt : {}
+    }
+  )
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/issue-35.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/issue-35.js b/node_modules/elementtree/node_modules/sax/test/issue-35.js
new file mode 100644
index 0000000..7c521c5
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/issue-35.js
@@ -0,0 +1,15 @@
+// https://github.com/isaacs/sax-js/issues/35
+require(__dirname).test
+  ( { xml : "<xml>&#Xd;&#X0d;\n"+
+            "</xml>"
+
+    , expect :
+      [ [ "opentag", { name: "xml", attributes: {} } ]
+      , [ "text", "\r\r\n" ]
+      , [ "closetag", "xml" ]
+      ]
+    , strict : true
+    , opt : {}
+    }
+  )
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/issue-47.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/issue-47.js b/node_modules/elementtree/node_modules/sax/test/issue-47.js
new file mode 100644
index 0000000..911c7d0
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/issue-47.js
@@ -0,0 +1,13 @@
+// https://github.com/isaacs/sax-js/issues/47
+require(__dirname).test
+  ( { xml : '<a href="query.svc?x=1&y=2&z=3"/>'
+    , expect : [ 
+        [ "attribute", { name:'href', value:"query.svc?x=1&y=2&z=3"} ],
+        [ "opentag", { name: "a", attributes: { href:"query.svc?x=1&y=2&z=3"} } ],
+        [ "closetag", "a" ]
+      ]
+    , strict : true
+    , opt : {}
+    }
+  )
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/issue-49.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/issue-49.js b/node_modules/elementtree/node_modules/sax/test/issue-49.js
new file mode 100644
index 0000000..2964325
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/issue-49.js
@@ -0,0 +1,31 @@
+// https://github.com/isaacs/sax-js/issues/49
+require(__dirname).test
+  ( { xml : "<xml><script>hello world</script></xml>"
+    , expect :
+      [ [ "opentag", { name: "xml", attributes: {} } ]
+      , [ "opentag", { name: "script", attributes: {} } ]
+      , [ "text", "hello world" ]
+      , [ "closetag", "script" ]
+      , [ "closetag", "xml" ]
+      ]
+    , strict : false
+    , opt : { lowercasetags: true, noscript: true }
+    }
+  )
+
+require(__dirname).test
+  ( { xml : "<xml><script><![CDATA[hello world]]></script></xml>"
+    , expect :
+      [ [ "opentag", { name: "xml", attributes: {} } ]
+      , [ "opentag", { name: "script", attributes: {} } ]
+      , [ "opencdata", undefined ]
+      , [ "cdata", "hello world" ]
+      , [ "closecdata", undefined ]
+      , [ "closetag", "script" ]
+      , [ "closetag", "xml" ]
+      ]
+    , strict : false
+    , opt : { lowercasetags: true, noscript: true }
+    }
+  )
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/parser-position.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/parser-position.js b/node_modules/elementtree/node_modules/sax/test/parser-position.js
new file mode 100644
index 0000000..e4a68b1
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/parser-position.js
@@ -0,0 +1,28 @@
+var sax = require("../lib/sax"),
+    assert = require("assert")
+
+function testPosition(chunks, expectedEvents) {
+  var parser = sax.parser();
+  expectedEvents.forEach(function(expectation) {
+    parser['on' + expectation[0]] = function() {
+      for (var prop in expectation[1]) {
+        assert.equal(parser[prop], expectation[1][prop]);
+      }
+    }
+  });
+  chunks.forEach(function(chunk) {
+    parser.write(chunk);
+  });
+};
+
+testPosition(['<div>abcdefgh</div>'],
+             [ ['opentag',  { position:  5, startTagPosition:  1 }]
+             , ['text',     { position: 19, startTagPosition: 14 }]
+             , ['closetag', { position: 19, startTagPosition: 14 }]
+             ]);
+
+testPosition(['<div>abcde','fgh</div>'],
+             [ ['opentag',  { position:  5, startTagPosition:  1 }]
+             , ['text',     { position: 19, startTagPosition: 14 }]
+             , ['closetag', { position: 19, startTagPosition: 14 }]
+             ]);

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/script.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/script.js b/node_modules/elementtree/node_modules/sax/test/script.js
new file mode 100644
index 0000000..464c051
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/script.js
@@ -0,0 +1,12 @@
+require(__dirname).test({
+  xml : "<html><head><script>if (1 < 0) { console.log('elo there'); }</script></head></html>",
+  expect : [
+    ["opentag", {"name": "HTML","attributes": {}}],
+    ["opentag", {"name": "HEAD","attributes": {}}],
+    ["opentag", {"name": "SCRIPT","attributes": {}}],
+    ["script", "if (1 < 0) { console.log('elo there'); }"],
+    ["closetag", "SCRIPT"],
+    ["closetag", "HEAD"],
+    ["closetag", "HTML"]
+  ]
+});

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/self-closing-child-strict.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/self-closing-child-strict.js b/node_modules/elementtree/node_modules/sax/test/self-closing-child-strict.js
new file mode 100644
index 0000000..ce9c045
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/self-closing-child-strict.js
@@ -0,0 +1,40 @@
+
+require(__dirname).test({
+  xml :
+  "<root>"+
+    "<child>" +
+      "<haha />" +
+    "</child>" +
+    "<monkey>" +
+      "=(|)" +
+    "</monkey>" +
+  "</root>",
+  expect : [
+    ["opentag", {
+     "name": "root",
+     "attributes": {}
+    }],
+    ["opentag", {
+     "name": "child",
+     "attributes": {}
+    }],
+    ["opentag", {
+     "name": "haha",
+     "attributes": {}
+    }],
+    ["closetag", "haha"],
+    ["closetag", "child"],
+    ["opentag", {
+     "name": "monkey",
+     "attributes": {}
+    }],
+    ["text", "=(|)"],
+    ["closetag", "monkey"],
+    ["closetag", "root"],
+    ["end"],
+    ["ready"]
+  ],
+  strict : true,
+  opt : {}
+});
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/self-closing-child.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/self-closing-child.js b/node_modules/elementtree/node_modules/sax/test/self-closing-child.js
new file mode 100644
index 0000000..bc6b52b
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/self-closing-child.js
@@ -0,0 +1,40 @@
+
+require(__dirname).test({
+  xml :
+  "<root>"+
+    "<child>" +
+      "<haha />" +
+    "</child>" +
+    "<monkey>" +
+      "=(|)" +
+    "</monkey>" +
+  "</root>",
+  expect : [
+    ["opentag", {
+     "name": "ROOT",
+     "attributes": {}
+    }],
+    ["opentag", {
+     "name": "CHILD",
+     "attributes": {}
+    }],
+    ["opentag", {
+     "name": "HAHA",
+     "attributes": {}
+    }],
+    ["closetag", "HAHA"],
+    ["closetag", "CHILD"],
+    ["opentag", {
+     "name": "MONKEY",
+     "attributes": {}
+    }],
+    ["text", "=(|)"],
+    ["closetag", "MONKEY"],
+    ["closetag", "ROOT"],
+    ["end"],
+    ["ready"]
+  ],
+  strict : false,
+  opt : {}
+});
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/self-closing-tag.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/self-closing-tag.js b/node_modules/elementtree/node_modules/sax/test/self-closing-tag.js
new file mode 100644
index 0000000..b2c5736
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/self-closing-tag.js
@@ -0,0 +1,25 @@
+
+require(__dirname).test({
+  xml :
+  "<root>   "+
+    "<haha /> "+
+    "<haha/>  "+
+    "<monkey> "+
+      "=(|)     "+
+    "</monkey>"+
+  "</root>  ",
+  expect : [
+    ["opentag", {name:"ROOT", attributes:{}}],
+    ["opentag", {name:"HAHA", attributes:{}}],
+    ["closetag", "HAHA"],
+    ["opentag", {name:"HAHA", attributes:{}}],
+    ["closetag", "HAHA"],
+    // ["opentag", {name:"HAHA", attributes:{}}],
+    // ["closetag", "HAHA"],
+    ["opentag", {name:"MONKEY", attributes:{}}],
+    ["text", "=(|)"],
+    ["closetag", "MONKEY"],
+    ["closetag", "ROOT"]
+  ],
+  opt : { trim : true }
+});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/stray-ending.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/stray-ending.js b/node_modules/elementtree/node_modules/sax/test/stray-ending.js
new file mode 100644
index 0000000..6b0aa7f
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/stray-ending.js
@@ -0,0 +1,17 @@
+// stray ending tags should just be ignored in non-strict mode.
+// https://github.com/isaacs/sax-js/issues/32
+require(__dirname).test
+  ( { xml :
+      "<a><b></c></b></a>"
+    , expect :
+      [ [ "opentag", { name: "A", attributes: {} } ]
+      , [ "opentag", { name: "B", attributes: {} } ]
+      , [ "text", "</c>" ]
+      , [ "closetag", "B" ]
+      , [ "closetag", "A" ]
+      ]
+    , strict : false
+    , opt : {}
+    }
+  )
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/trailing-non-whitespace.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/trailing-non-whitespace.js b/node_modules/elementtree/node_modules/sax/test/trailing-non-whitespace.js
new file mode 100644
index 0000000..3e1fb2e
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/trailing-non-whitespace.js
@@ -0,0 +1,17 @@
+
+require(__dirname).test({
+  xml : "<span>Welcome,</span> to monkey land",
+  expect : [
+    ["opentag", {
+     "name": "SPAN",
+     "attributes": {}
+    }],
+    ["text", "Welcome,"],
+    ["closetag", "SPAN"],
+    ["text", " to monkey land"],
+    ["end"],
+    ["ready"]
+  ],
+  strict : false,
+  opt : {}
+});

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/unquoted.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/unquoted.js b/node_modules/elementtree/node_modules/sax/test/unquoted.js
new file mode 100644
index 0000000..79f1d0b
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/unquoted.js
@@ -0,0 +1,17 @@
+// unquoted attributes should be ok in non-strict mode
+// https://github.com/isaacs/sax-js/issues/31
+require(__dirname).test
+  ( { xml :
+      "<span class=test hello=world></span>"
+    , expect :
+      [ [ "attribute", { name: "class", value: "test" } ]
+      , [ "attribute", { name: "hello", value: "world" } ]
+      , [ "opentag", { name: "SPAN",
+                       attributes: { class: "test", hello: "world" } } ]
+      , [ "closetag", "SPAN" ]
+      ]
+    , strict : false
+    , opt : {}
+    }
+  )
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/xmlns-issue-41.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/xmlns-issue-41.js b/node_modules/elementtree/node_modules/sax/test/xmlns-issue-41.js
new file mode 100644
index 0000000..596d82b
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/xmlns-issue-41.js
@@ -0,0 +1,67 @@
+var t = require(__dirname)
+
+  , xmls = // should be the same both ways.
+    [ "<parent xmlns:a='http://ATTRIBUTE' a:attr='value' />"
+    , "<parent a:attr='value' xmlns:a='http://ATTRIBUTE' />" ]
+
+  , ex1 =
+    [ [ "opennamespace"
+      , { prefix: "a"
+        , uri: "http://ATTRIBUTE"
+        }
+      ]
+    , [ "attribute"
+      , { name: "xmlns:a"
+        , value: "http://ATTRIBUTE"
+        , prefix: "xmlns"
+        , local: "a"
+        , uri: "http://www.w3.org/2000/xmlns/"
+        }
+      ]
+    , [ "attribute"
+      , { name: "a:attr"
+        , local: "attr"
+        , prefix: "a"
+        , uri: "http://ATTRIBUTE"
+        , value: "value"
+        }
+      ]
+    , [ "opentag"
+      , { name: "parent"
+        , uri: ""
+        , prefix: ""
+        , local: "parent"
+        , attributes:
+          { "a:attr":
+            { name: "a:attr"
+            , local: "attr"
+            , prefix: "a"
+            , uri: "http://ATTRIBUTE"
+            , value: "value"
+            }
+          , "xmlns:a":
+            { name: "xmlns:a"
+            , local: "a"
+            , prefix: "xmlns"
+            , uri: "http://www.w3.org/2000/xmlns/"
+            , value: "http://ATTRIBUTE"
+            }
+          }
+        , ns: {"a": "http://ATTRIBUTE"}
+        }
+      ]
+    , ["closetag", "parent"]
+    , ["closenamespace", { prefix: "a", uri: "http://ATTRIBUTE" }]
+    ]
+
+  // swap the order of elements 2 and 1
+  , ex2 = [ex1[0], ex1[2], ex1[1]].concat(ex1.slice(3))
+  , expected = [ex1, ex2]
+
+xmls.forEach(function (x, i) {
+  t.test({ xml: x
+         , expect: expected[i]
+         , strict: true
+         , opt: { xmlns: true }
+         })
+})

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/xmlns-rebinding.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/xmlns-rebinding.js b/node_modules/elementtree/node_modules/sax/test/xmlns-rebinding.js
new file mode 100644
index 0000000..f464876
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/xmlns-rebinding.js
@@ -0,0 +1,59 @@
+
+require(__dirname).test
+  ( { xml :
+      "<root xmlns:x='x1' xmlns:y='y1' x:a='x1' y:a='y1'>"+
+        "<rebind xmlns:x='x2'>"+
+          "<check x:a='x2' y:a='y1'/>"+
+        "</rebind>"+
+        "<check x:a='x1' y:a='y1'/>"+
+      "</root>"
+
+    , expect :
+      [ [ "opennamespace", { prefix: "x", uri: "x1" } ]
+      , [ "opennamespace", { prefix: "y", uri: "y1" } ]
+      , [ "attribute", { name: "xmlns:x", value: "x1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } ]
+      , [ "attribute", { name: "xmlns:y", value: "y1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "y" } ]
+      , [ "attribute", { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } ]
+      , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ]
+      , [ "opentag", { name: "root", uri: "", prefix: "", local: "root",
+            attributes: { "xmlns:x": { name: "xmlns:x", value: "x1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" }
+                        , "xmlns:y": { name: "xmlns:y", value: "y1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "y" }
+                        , "x:a": { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" }
+                        , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } },
+            ns: { x: 'x1', y: 'y1' } } ]
+
+      , [ "opennamespace", { prefix: "x", uri: "x2" } ]
+      , [ "attribute", { name: "xmlns:x", value: "x2", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } ]
+      , [ "opentag", { name: "rebind", uri: "", prefix: "", local: "rebind",
+            attributes: { "xmlns:x": { name: "xmlns:x", value: "x2", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } },
+            ns: { x: 'x2' } } ]
+
+      , [ "attribute", { name: "x:a", value: "x2", uri: "x2", prefix: "x", local: "a" } ]
+      , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ]
+      , [ "opentag", { name: "check", uri: "", prefix: "", local: "check",
+            attributes: { "x:a": { name: "x:a", value: "x2", uri: "x2", prefix: "x", local: "a" }
+                        , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } },
+            ns: { x: 'x2' } } ]
+
+      , [ "closetag", "check" ]
+
+      , [ "closetag", "rebind" ]
+      , [ "closenamespace", { prefix: "x", uri: "x2" } ]
+
+      , [ "attribute", { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } ]
+      , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ]
+      , [ "opentag", { name: "check", uri: "", prefix: "", local: "check",
+            attributes: { "x:a": { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" }
+                        , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } },
+            ns: { x: 'x1', y: 'y1' } } ]
+      , [ "closetag", "check" ]
+
+      , [ "closetag", "root" ]
+      , [ "closenamespace", { prefix: "x", uri: "x1" } ]
+      , [ "closenamespace", { prefix: "y", uri: "y1" } ]
+      ]
+    , strict : true
+    , opt : { xmlns: true }
+    }
+  )
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/xmlns-strict.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/xmlns-strict.js b/node_modules/elementtree/node_modules/sax/test/xmlns-strict.js
new file mode 100644
index 0000000..4ad615b
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/xmlns-strict.js
@@ -0,0 +1,71 @@
+
+require(__dirname).test
+  ( { xml :
+      "<root>"+
+        "<plain attr='normal'/>"+
+        "<ns1 xmlns='uri:default'>"+
+          "<plain attr='normal'/>"+
+        "</ns1>"+
+        "<ns2 xmlns:a='uri:nsa'>"+
+          "<plain attr='normal'/>"+
+          "<a:ns a:attr='namespaced'/>"+
+        "</ns2>"+
+      "</root>"
+
+    , expect :
+      [ [ "opentag", { name: "root", prefix: "", local: "root", uri: "",
+            attributes: {}, ns: {} } ]
+
+      , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ]
+      , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "",
+            attributes: { "attr": { name: "attr", value: "normal", uri: "", prefix: "", local: "attr", uri: "" } },
+            ns: {} } ]
+      , [ "closetag", "plain" ]
+
+      , [ "opennamespace", { prefix: "", uri: "uri:default" } ]
+
+      , [ "attribute", { name: "xmlns", value: "uri:default", prefix: "xmlns", local: "", uri: "http://www.w3.org/2000/xmlns/" } ]
+      , [ "opentag", { name: "ns1", prefix: "", local: "ns1", uri: "uri:default",
+            attributes: { "xmlns": { name: "xmlns", value: "uri:default", prefix: "xmlns", local: "", uri: "http://www.w3.org/2000/xmlns/" } },
+            ns: { "": "uri:default" } } ]
+
+      , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "uri:default" } ]
+      , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "uri:default", ns: { '': 'uri:default' },
+            attributes: { "attr": { name: "attr", value: "normal", prefix: "", local: "attr", uri: "uri:default" } } } ]
+      , [ "closetag", "plain" ]
+
+      , [ "closetag", "ns1" ]
+
+      , [ "closenamespace", { prefix: "", uri: "uri:default" } ]
+
+      , [ "opennamespace", { prefix: "a", uri: "uri:nsa" } ]
+
+      , [ "attribute", { name: "xmlns:a", value: "uri:nsa", prefix: "xmlns", local: "a", uri: "http://www.w3.org/2000/xmlns/" } ]
+
+      , [ "opentag", { name: "ns2", prefix: "", local: "ns2", uri: "",
+            attributes: { "xmlns:a": { name: "xmlns:a", value: "uri:nsa", prefix: "xmlns", local: "a", uri: "http://www.w3.org/2000/xmlns/" } },
+            ns: { a: "uri:nsa" } } ]
+
+      , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ]
+      , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "",
+            attributes: { "attr": { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } },
+            ns: { a: 'uri:nsa' } } ]
+      , [ "closetag", "plain" ]
+
+      , [ "attribute", { name: "a:attr", value: "namespaced", prefix: "a", local: "attr", uri: "uri:nsa" } ]
+      , [ "opentag", { name: "a:ns", prefix: "a", local: "ns", uri: "uri:nsa",
+            attributes: { "a:attr": { name: "a:attr", value: "namespaced", prefix: "a", local: "attr", uri: "uri:nsa" } },
+            ns: { a: 'uri:nsa' } } ]
+      , [ "closetag", "a:ns" ]
+
+      , [ "closetag", "ns2" ]
+
+      , [ "closenamespace", { prefix: "a", uri: "uri:nsa" } ]
+
+      , [ "closetag", "root" ]
+      ]
+    , strict : true
+    , opt : { xmlns: true }
+    }
+  )
+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/xmlns-unbound.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/xmlns-unbound.js b/node_modules/elementtree/node_modules/sax/test/xmlns-unbound.js
new file mode 100644
index 0000000..2944b87
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/xmlns-unbound.js
@@ -0,0 +1,15 @@
+
+require(__dirname).test(
+  { strict : true
+  , opt : { xmlns: true }
+  , expect :
+    [ ["error", "Unbound namespace prefix: \"unbound\"\nLine: 0\nColumn: 28\nChar: >"]
+
+    , [ "attribute", { name: "unbound:attr", value: "value", uri: "unbound", prefix: "unbound", local: "attr" } ]
+    , [ "opentag", { name: "root", uri: "", prefix: "", local: "root",
+          attributes: { "unbound:attr": { name: "unbound:attr", value: "value", uri: "unbound", prefix: "unbound", local: "attr" } },
+          ns: {} } ]
+    , [ "closetag", "root" ]
+    ]
+  }
+).write("<root unbound:attr='value'/>")

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js b/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js
new file mode 100644
index 0000000..16da771
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js
@@ -0,0 +1,35 @@
+require(__dirname).test(
+  { xml : "<root xml:lang='en'/>"
+  , expect :
+    [ [ "attribute"
+      , { name: "xml:lang"
+        , local: "lang"
+        , prefix: "xml"
+        , uri: "http://www.w3.org/XML/1998/namespace"
+        , value: "en"
+        }
+      ]
+    , [ "opentag"
+      , { name: "root"
+        , uri: ""
+        , prefix: ""
+        , local: "root"
+        , attributes:
+          { "xml:lang":
+            { name: "xml:lang"
+            , local: "lang"
+            , prefix: "xml"
+            , uri: "http://www.w3.org/XML/1998/namespace"
+            , value: "en"
+            }
+          }
+        , ns: {}
+        }
+      ]
+    , ["closetag", "root"]
+    ]
+  , strict : true
+  , opt : { xmlns: true }
+  }
+)
+


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org


[7/8] android commit: added missing node_modules

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/test/int64.bplist
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/test/int64.bplist b/node_modules/cordova-common/node_modules/bplist-parser/test/int64.bplist
new file mode 100644
index 0000000..6da9c04
Binary files /dev/null and b/node_modules/cordova-common/node_modules/bplist-parser/test/int64.bplist differ

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/test/int64.xml
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/test/int64.xml b/node_modules/cordova-common/node_modules/bplist-parser/test/int64.xml
new file mode 100644
index 0000000..cc6cb03
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/bplist-parser/test/int64.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+  <dict>
+    <key>zero</key>
+    <integer>0</integer>
+    <key>int64item</key>
+    <integer>12345678901234567890</integer>
+  </dict>
+</plist>

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/test/parseTest.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/test/parseTest.js b/node_modules/cordova-common/node_modules/bplist-parser/test/parseTest.js
new file mode 100644
index 0000000..67e7bfa
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/bplist-parser/test/parseTest.js
@@ -0,0 +1,159 @@
+'use strict';
+
+// tests are adapted from https://github.com/TooTallNate/node-plist
+
+var path = require('path');
+var nodeunit = require('nodeunit');
+var bplist = require('../');
+
+module.exports = {
+  'iTunes Small': function (test) {
+    var file = path.join(__dirname, "iTunes-small.bplist");
+    var startTime1 = new Date();
+
+    bplist.parseFile(file, function (err, dicts) {
+      if (err) {
+        throw err;
+      }
+
+      var endTime = new Date();
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime1) + 'ms');
+      var dict = dicts[0];
+      test.equal(dict['Application Version'], "9.0.3");
+      test.equal(dict['Library Persistent ID'], "6F81D37F95101437");
+      test.done();
+    });
+  },
+
+  'sample1': function (test) {
+    var file = path.join(__dirname, "sample1.bplist");
+    var startTime = new Date();
+
+    bplist.parseFile(file, function (err, dicts) {
+      if (err) {
+        throw err;
+      }
+
+      var endTime = new Date();
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
+      var dict = dicts[0];
+      test.equal(dict['CFBundleIdentifier'], 'com.apple.dictionary.MySample');
+      test.done();
+    });
+  },
+
+  'sample2': function (test) {
+    var file = path.join(__dirname, "sample2.bplist");
+    var startTime = new Date();
+
+    bplist.parseFile(file, function (err, dicts) {
+      if (err) {
+        throw err;
+      }
+
+      var endTime = new Date();
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
+      var dict = dicts[0];
+      test.equal(dict['PopupMenu'][2]['Key'], "\n        #import <Cocoa/Cocoa.h>\n\n#import <MacRuby/MacRuby.h>\n\nint main(int argc, char *argv[])\n{\n  return macruby_main(\"rb_main.rb\", argc, argv);\n}\n");
+      test.done();
+    });
+  },
+
+  'airplay': function (test) {
+    var file = path.join(__dirname, "airplay.bplist");
+    var startTime = new Date();
+
+    bplist.parseFile(file, function (err, dicts) {
+      if (err) {
+        throw err;
+      }
+
+      var endTime = new Date();
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
+
+      var dict = dicts[0];
+      test.equal(dict['duration'], 5555.0495000000001);
+      test.equal(dict['position'], 4.6269989039999997);
+      test.done();
+    });
+  },
+
+  'utf16': function (test) {
+    var file = path.join(__dirname, "utf16.bplist");
+    var startTime = new Date();
+
+    bplist.parseFile(file, function (err, dicts) {
+      if (err) {
+        throw err;
+      }
+
+      var endTime = new Date();
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
+
+      var dict = dicts[0];
+      test.equal(dict['CFBundleName'], 'sellStuff');
+      test.equal(dict['CFBundleShortVersionString'], '2.6.1');
+      test.equal(dict['NSHumanReadableCopyright'], '©2008-2012, sellStuff, Inc.');
+      test.done();
+    });
+  },
+
+  'utf16chinese': function (test) {
+    var file = path.join(__dirname, "utf16_chinese.plist");
+    var startTime = new Date();
+
+    bplist.parseFile(file, function (err, dicts) {
+      if (err) {
+        throw err;
+      }
+
+      var endTime = new Date();
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
+
+      var dict = dicts[0];
+      test.equal(dict['CFBundleName'], '天翼阅读');
+      test.equal(dict['CFBundleDisplayName'], '天翼阅读');
+      test.done();
+    });
+  },
+
+
+
+  'uid': function (test) {
+    var file = path.join(__dirname, "uid.bplist");
+    var startTime = new Date();
+
+    bplist.parseFile(file, function (err, dicts) {
+      if (err) {
+        throw err;
+      }
+
+      var endTime = new Date();
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
+
+      var dict = dicts[0];
+      test.deepEqual(dict['$objects'][1]['NS.keys'], [{UID:2}, {UID:3}, {UID:4}]);
+      test.deepEqual(dict['$objects'][1]['NS.objects'], [{UID: 5}, {UID:6}, {UID:7}]);
+      test.deepEqual(dict['$top']['root'], {UID:1});
+      test.done();
+    });
+  },
+  
+  'int64': function (test) {
+    var file = path.join(__dirname, "int64.bplist");
+    var startTime = new Date();
+
+    bplist.parseFile(file, function (err, dicts) {
+      if (err) {
+        throw err;
+      }
+
+      var endTime = new Date();
+      console.log('Parsed "' + file + '" in ' + (endTime - startTime) + 'ms');
+      var dict = dicts[0];
+      test.equal(dict['zero'], '0');
+      test.equal(dict['int64item'], '12345678901234567890');
+      test.done();
+    });
+  }
+};

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/test/sample1.bplist
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/test/sample1.bplist b/node_modules/cordova-common/node_modules/bplist-parser/test/sample1.bplist
new file mode 100644
index 0000000..5b808ff
Binary files /dev/null and b/node_modules/cordova-common/node_modules/bplist-parser/test/sample1.bplist differ

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/test/sample2.bplist
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/test/sample2.bplist b/node_modules/cordova-common/node_modules/bplist-parser/test/sample2.bplist
new file mode 100644
index 0000000..fc42979
Binary files /dev/null and b/node_modules/cordova-common/node_modules/bplist-parser/test/sample2.bplist differ

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/test/uid.bplist
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/test/uid.bplist b/node_modules/cordova-common/node_modules/bplist-parser/test/uid.bplist
new file mode 100644
index 0000000..59f341e
Binary files /dev/null and b/node_modules/cordova-common/node_modules/bplist-parser/test/uid.bplist differ

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/test/utf16.bplist
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/test/utf16.bplist b/node_modules/cordova-common/node_modules/bplist-parser/test/utf16.bplist
new file mode 100644
index 0000000..ba4bcfa
Binary files /dev/null and b/node_modules/cordova-common/node_modules/bplist-parser/test/utf16.bplist differ

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/test/utf16_chinese.plist
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/test/utf16_chinese.plist b/node_modules/cordova-common/node_modules/bplist-parser/test/utf16_chinese.plist
new file mode 100755
index 0000000..ba1e2d7
Binary files /dev/null and b/node_modules/cordova-common/node_modules/bplist-parser/test/utf16_chinese.plist differ

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/cordova-registry-mapper/tests/test.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/cordova-registry-mapper/tests/test.js b/node_modules/cordova-common/node_modules/cordova-registry-mapper/tests/test.js
new file mode 100644
index 0000000..35343be
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/cordova-registry-mapper/tests/test.js
@@ -0,0 +1,11 @@
+var test = require('tape');
+var oldToNew = require('../index').oldToNew;
+var newToOld = require('../index').newToOld;
+
+test('plugin mappings exist', function(t) {
+    t.plan(2);
+
+    t.equal('cordova-plugin-device', oldToNew['org.apache.cordova.device']);
+
+    t.equal('org.apache.cordova.device', newToOld['cordova-plugin-device']);
+})

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md b/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
new file mode 100644
index 0000000..2cdc8e4
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
@@ -0,0 +1,21 @@
+(MIT)
+
+Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js b/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js
new file mode 100644
index 0000000..f5e98e3
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js
@@ -0,0 +1,84 @@
+var test = require('tape');
+var balanced = require('..');
+
+test('balanced', function(t) {
+  t.deepEqual(balanced('{', '}', 'pre{in{nest}}post'), {
+    start: 3,
+    end: 12,
+    pre: 'pre',
+    body: 'in{nest}',
+    post: 'post'
+  });
+  t.deepEqual(balanced('{', '}', '{{{{{{{{{in}post'), {
+    start: 8,
+    end: 11,
+    pre: '{{{{{{{{',
+    body: 'in',
+    post: 'post'
+  });
+  t.deepEqual(balanced('{', '}', 'pre{body{in}post'), {
+    start: 8,
+    end: 11,
+    pre: 'pre{body',
+    body: 'in',
+    post: 'post'
+  });
+  t.deepEqual(balanced('{', '}', 'pre}{in{nest}}post'), {
+    start: 4,
+    end: 13,
+    pre: 'pre}',
+    body: 'in{nest}',
+    post: 'post'
+  });
+  t.deepEqual(balanced('{', '}', 'pre{body}between{body2}post'), {
+    start: 3,
+    end: 8,
+    pre: 'pre',
+    body: 'body',
+    post: 'between{body2}post'
+  });
+  t.notOk(balanced('{', '}', 'nope'), 'should be notOk');
+  t.deepEqual(balanced('<b>', '</b>', 'pre<b>in<b>nest</b></b>post'), {
+    start: 3,
+    end: 19,
+    pre: 'pre',
+    body: 'in<b>nest</b>',
+    post: 'post'
+  });
+  t.deepEqual(balanced('<b>', '</b>', 'pre</b><b>in<b>nest</b></b>post'), {
+    start: 7,
+    end: 23,
+    pre: 'pre</b>',
+    body: 'in<b>nest</b>',
+    post: 'post'
+  });
+  t.deepEqual(balanced('{{', '}}', 'pre{{{in}}}post'), {
+    start: 3,
+    end: 9,
+    pre: 'pre',
+    body: '{in}',
+    post: 'post'
+  });
+  t.deepEqual(balanced('{{{', '}}', 'pre{{{in}}}post'), {
+    start: 3,
+    end: 8,
+    pre: 'pre',
+    body: 'in',
+    post: '}post'
+  });
+  t.deepEqual(balanced('{', '}', 'pre{{first}in{second}post'), {
+    start: 4,
+    end: 10,
+    pre: 'pre{',
+    body: 'first',
+    post: 'in{second}post'
+  });
+  t.deepEqual(balanced('<?', '?>', 'pre<?>post'), {
+    start: 3,
+    end: 4,
+    pre: 'pre',
+    body: '',
+    post: 'post'
+  });
+  t.end();
+});

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
new file mode 100644
index 0000000..3365621
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
@@ -0,0 +1,6 @@
+var concatMap = require('../');
+var xs = [ 1, 2, 3, 4, 5, 6 ];
+var ys = concatMap(xs, function (x) {
+    return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
+});
+console.dir(ys);

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
new file mode 100644
index 0000000..fdbd702
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
@@ -0,0 +1,39 @@
+var concatMap = require('../');
+var test = require('tape');
+
+test('empty or not', function (t) {
+    var xs = [ 1, 2, 3, 4, 5, 6 ];
+    var ixes = [];
+    var ys = concatMap(xs, function (x, ix) {
+        ixes.push(ix);
+        return x % 2 ? [ x - 0.1, x, x + 0.1 ] : [];
+    });
+    t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]);
+    t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]);
+    t.end();
+});
+
+test('always something', function (t) {
+    var xs = [ 'a', 'b', 'c', 'd' ];
+    var ys = concatMap(xs, function (x) {
+        return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ];
+    });
+    t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
+    t.end();
+});
+
+test('scalars', function (t) {
+    var xs = [ 'a', 'b', 'c', 'd' ];
+    var ys = concatMap(xs, function (x) {
+        return x === 'b' ? [ 'B', 'B', 'B' ] : x;
+    });
+    t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]);
+    t.end();
+});
+
+test('undefs', function (t) {
+    var xs = [ 'a', 'b', 'c', 'd' ];
+    var ys = concatMap(xs, function () {});
+    t.same(ys, [ undefined, undefined, undefined, undefined ]);
+    t.end();
+});

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/osenv/test/unix.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/osenv/test/unix.js b/node_modules/cordova-common/node_modules/osenv/test/unix.js
new file mode 100644
index 0000000..f87cbfb
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/osenv/test/unix.js
@@ -0,0 +1,71 @@
+// only run this test on windows
+// pretending to be another platform is too hacky, since it breaks
+// how the underlying system looks up module paths and runs
+// child processes, and all that stuff is cached.
+if (process.platform === 'win32') {
+  console.log('TAP Version 13\n' +
+              '1..0\n' +
+              '# Skip unix tests, this is not unix\n')
+  return
+}
+var tap = require('tap')
+
+// like unix, but funny
+process.env.USER = 'sirUser'
+process.env.HOME = '/home/sirUser'
+process.env.HOSTNAME = 'my-machine'
+process.env.TMPDIR = '/tmpdir'
+process.env.TMP = '/tmp'
+process.env.TEMP = '/temp'
+process.env.PATH = '/opt/local/bin:/usr/local/bin:/usr/bin/:bin'
+process.env.PS1 = '(o_o) $ '
+process.env.EDITOR = 'edit'
+process.env.VISUAL = 'visualedit'
+process.env.SHELL = 'zsh'
+
+tap.test('basic unix sanity test', function (t) {
+  var osenv = require('../osenv.js')
+
+  t.equal(osenv.user(), process.env.USER)
+  t.equal(osenv.home(), process.env.HOME)
+  t.equal(osenv.hostname(), process.env.HOSTNAME)
+  t.same(osenv.path(), process.env.PATH.split(':'))
+  t.equal(osenv.prompt(), process.env.PS1)
+  t.equal(osenv.tmpdir(), process.env.TMPDIR)
+
+  // mildly evil, but it's for a test.
+  process.env.TMPDIR = ''
+  delete require.cache[require.resolve('../osenv.js')]
+  var osenv = require('../osenv.js')
+  t.equal(osenv.tmpdir(), process.env.TMP)
+
+  process.env.TMP = ''
+  delete require.cache[require.resolve('../osenv.js')]
+  var osenv = require('../osenv.js')
+  t.equal(osenv.tmpdir(), process.env.TEMP)
+
+  process.env.TEMP = ''
+  delete require.cache[require.resolve('../osenv.js')]
+  var osenv = require('../osenv.js')
+  osenv.home = function () { return null }
+  t.equal(osenv.tmpdir(), '/tmp')
+
+  t.equal(osenv.editor(), 'edit')
+  process.env.EDITOR = ''
+  delete require.cache[require.resolve('../osenv.js')]
+  var osenv = require('../osenv.js')
+  t.equal(osenv.editor(), 'visualedit')
+
+  process.env.VISUAL = ''
+  delete require.cache[require.resolve('../osenv.js')]
+  var osenv = require('../osenv.js')
+  t.equal(osenv.editor(), 'vi')
+
+  t.equal(osenv.shell(), 'zsh')
+  process.env.SHELL = ''
+  delete require.cache[require.resolve('../osenv.js')]
+  var osenv = require('../osenv.js')
+  t.equal(osenv.shell(), 'bash')
+
+  t.end()
+})

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/osenv/test/windows.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/osenv/test/windows.js b/node_modules/cordova-common/node_modules/osenv/test/windows.js
new file mode 100644
index 0000000..c9d837a
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/osenv/test/windows.js
@@ -0,0 +1,74 @@
+// only run this test on windows
+// pretending to be another platform is too hacky, since it breaks
+// how the underlying system looks up module paths and runs
+// child processes, and all that stuff is cached.
+if (process.platform !== 'win32') {
+  console.log('TAP version 13\n' +
+              '1..0 # Skip windows tests, this is not windows\n')
+  return
+}
+
+// load this before clubbing the platform name.
+var tap = require('tap')
+
+process.env.windir = 'c:\\windows'
+process.env.USERDOMAIN = 'some-domain'
+process.env.USERNAME = 'sirUser'
+process.env.USERPROFILE = 'C:\\Users\\sirUser'
+process.env.COMPUTERNAME = 'my-machine'
+process.env.TMPDIR = 'C:\\tmpdir'
+process.env.TMP = 'C:\\tmp'
+process.env.TEMP = 'C:\\temp'
+process.env.Path = 'C:\\Program Files\\;C:\\Binary Stuff\\bin'
+process.env.PROMPT = '(o_o) $ '
+process.env.EDITOR = 'edit'
+process.env.VISUAL = 'visualedit'
+process.env.ComSpec = 'some-com'
+
+tap.test('basic windows sanity test', function (t) {
+  var osenv = require('../osenv.js')
+
+  t.equal(osenv.user(),
+          process.env.USERDOMAIN + '\\' + process.env.USERNAME)
+  t.equal(osenv.home(), process.env.USERPROFILE)
+  t.equal(osenv.hostname(), process.env.COMPUTERNAME)
+  t.same(osenv.path(), process.env.Path.split(';'))
+  t.equal(osenv.prompt(), process.env.PROMPT)
+  t.equal(osenv.tmpdir(), process.env.TMPDIR)
+
+  // mildly evil, but it's for a test.
+  process.env.TMPDIR = ''
+  delete require.cache[require.resolve('../osenv.js')]
+  var osenv = require('../osenv.js')
+  t.equal(osenv.tmpdir(), process.env.TMP)
+
+  process.env.TMP = ''
+  delete require.cache[require.resolve('../osenv.js')]
+  var osenv = require('../osenv.js')
+  t.equal(osenv.tmpdir(), process.env.TEMP)
+
+  process.env.TEMP = ''
+  delete require.cache[require.resolve('../osenv.js')]
+  var osenv = require('../osenv.js')
+  osenv.home = function () { return null }
+  t.equal(osenv.tmpdir(), 'c:\\windows\\temp')
+
+  t.equal(osenv.editor(), 'edit')
+  process.env.EDITOR = ''
+  delete require.cache[require.resolve('../osenv.js')]
+  var osenv = require('../osenv.js')
+  t.equal(osenv.editor(), 'visualedit')
+
+  process.env.VISUAL = ''
+  delete require.cache[require.resolve('../osenv.js')]
+  var osenv = require('../osenv.js')
+  t.equal(osenv.editor(), 'notepad.exe')
+
+  t.equal(osenv.shell(), 'some-com')
+  process.env.ComSpec = ''
+  delete require.cache[require.resolve('../osenv.js')]
+  var osenv = require('../osenv.js')
+  t.equal(osenv.shell(), 'cmd')
+
+  t.end()
+})

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/plist/node_modules/base64-js/test/url-safe.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/plist/node_modules/base64-js/test/url-safe.js b/node_modules/cordova-common/node_modules/plist/node_modules/base64-js/test/url-safe.js
new file mode 100644
index 0000000..dc437e9
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/plist/node_modules/base64-js/test/url-safe.js
@@ -0,0 +1,18 @@
+var test = require('tape'),
+  b64 = require('../lib/b64');
+
+test('decode url-safe style base64 strings', function (t) {
+  var expected = [0xff, 0xff, 0xbe, 0xff, 0xef, 0xbf, 0xfb, 0xef, 0xff];
+
+  var actual = b64.toByteArray('//++/++/++//');
+  for (var i = 0; i < actual.length; i++) {
+    t.equal(actual[i], expected[i])
+  }
+
+  actual = b64.toByteArray('__--_--_--__');
+  for (var i = 0; i < actual.length; i++) {
+    t.equal(actual[i], expected[i])
+  }
+  
+  t.end();
+});

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/semver/bin/semver
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/semver/bin/semver b/node_modules/cordova-common/node_modules/semver/bin/semver
new file mode 100755
index 0000000..c5f2e85
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/semver/bin/semver
@@ -0,0 +1,133 @@
+#!/usr/bin/env node
+// Standalone semver comparison program.
+// Exits successfully and prints matching version(s) if
+// any supplied version is valid and passes all tests.
+
+var argv = process.argv.slice(2)
+  , versions = []
+  , range = []
+  , gt = []
+  , lt = []
+  , eq = []
+  , inc = null
+  , version = require("../package.json").version
+  , loose = false
+  , identifier = undefined
+  , semver = require("../semver")
+  , reverse = false
+
+main()
+
+function main () {
+  if (!argv.length) return help()
+  while (argv.length) {
+    var a = argv.shift()
+    var i = a.indexOf('=')
+    if (i !== -1) {
+      a = a.slice(0, i)
+      argv.unshift(a.slice(i + 1))
+    }
+    switch (a) {
+      case "-rv": case "-rev": case "--rev": case "--reverse":
+        reverse = true
+        break
+      case "-l": case "--loose":
+        loose = true
+        break
+      case "-v": case "--version":
+        versions.push(argv.shift())
+        break
+      case "-i": case "--inc": case "--increment":
+        switch (argv[0]) {
+          case "major": case "minor": case "patch": case "prerelease":
+          case "premajor": case "preminor": case "prepatch":
+            inc = argv.shift()
+            break
+          default:
+            inc = "patch"
+            break
+        }
+        break
+      case "--preid":
+        identifier = argv.shift()
+        break
+      case "-r": case "--range":
+        range.push(argv.shift())
+        break
+      case "-h": case "--help": case "-?":
+        return help()
+      default:
+        versions.push(a)
+        break
+    }
+  }
+
+  versions = versions.filter(function (v) {
+    return semver.valid(v, loose)
+  })
+  if (!versions.length) return fail()
+  if (inc && (versions.length !== 1 || range.length))
+    return failInc()
+
+  for (var i = 0, l = range.length; i < l ; i ++) {
+    versions = versions.filter(function (v) {
+      return semver.satisfies(v, range[i], loose)
+    })
+    if (!versions.length) return fail()
+  }
+  return success(versions)
+}
+
+function failInc () {
+  console.error("--inc can only be used on a single version with no range")
+  fail()
+}
+
+function fail () { process.exit(1) }
+
+function success () {
+  var compare = reverse ? "rcompare" : "compare"
+  versions.sort(function (a, b) {
+    return semver[compare](a, b, loose)
+  }).map(function (v) {
+    return semver.clean(v, loose)
+  }).map(function (v) {
+    return inc ? semver.inc(v, inc, loose, identifier) : v
+  }).forEach(function (v,i,_) { console.log(v) })
+}
+
+function help () {
+  console.log(["SemVer " + version
+              ,""
+              ,"A JavaScript implementation of the http://semver.org/ specification"
+              ,"Copyright Isaac Z. Schlueter"
+              ,""
+              ,"Usage: semver [options] <version> [<version> [...]]"
+              ,"Prints valid versions sorted by SemVer precedence"
+              ,""
+              ,"Options:"
+              ,"-r --range <range>"
+              ,"        Print versions that match the specified range."
+              ,""
+              ,"-i --increment [<level>]"
+              ,"        Increment a version by the specified level.  Level can"
+              ,"        be one of: major, minor, patch, premajor, preminor,"
+              ,"        prepatch, or prerelease.  Default level is 'patch'."
+              ,"        Only one version may be specified."
+              ,""
+              ,"--preid <identifier>"
+              ,"        Identifier to be used to prefix premajor, preminor,"
+              ,"        prepatch or prerelease version increments."
+              ,""
+              ,"-l --loose"
+              ,"        Interpret versions and ranges loosely"
+              ,""
+              ,"Program exits successfully if any valid version satisfies"
+              ,"all supplied ranges, and prints all satisfying versions."
+              ,""
+              ,"If no satisfying versions are found, then exits failure."
+              ,""
+              ,"Versions are printed in ascending order, so supplying"
+              ,"multiple versions to the utility will just sort them."
+              ].join("\n"))
+}

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/semver/range.bnf
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/semver/range.bnf b/node_modules/cordova-common/node_modules/semver/range.bnf
new file mode 100644
index 0000000..000df92
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/semver/range.bnf
@@ -0,0 +1,16 @@
+range-set  ::= range ( logical-or range ) *
+logical-or ::= ( ' ' ) * '||' ( ' ' ) *
+range      ::= hyphen | simple ( ' ' simple ) * | ''
+hyphen     ::= partial ' - ' partial
+simple     ::= primitive | partial | tilde | caret
+primitive  ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial
+partial    ::= xr ( '.' xr ( '.' xr qualifier ? )? )?
+xr         ::= 'x' | 'X' | '*' | nr
+nr         ::= '0' | ['1'-'9']['0'-'9']+
+tilde      ::= '~' partial
+caret      ::= '^' partial
+qualifier  ::= ( '-' pre )? ( '+' build )?
+pre        ::= parts
+build      ::= parts
+parts      ::= part ( '.' part ) *
+part       ::= nr | [-0-9A-Za-z]+

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/semver/test/big-numbers.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/semver/test/big-numbers.js b/node_modules/cordova-common/node_modules/semver/test/big-numbers.js
new file mode 100644
index 0000000..c051864
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/semver/test/big-numbers.js
@@ -0,0 +1,31 @@
+var test = require('tap').test
+var semver = require('../')
+
+test('long version is too long', function (t) {
+  var v = '1.2.' + new Array(256).join('1')
+  t.throws(function () {
+    new semver.SemVer(v)
+  })
+  t.equal(semver.valid(v, false), null)
+  t.equal(semver.valid(v, true), null)
+  t.equal(semver.inc(v, 'patch'), null)
+  t.end()
+})
+
+test('big number is like too long version', function (t) {
+  var v = '1.2.' + new Array(100).join('1')
+  t.throws(function () {
+    new semver.SemVer(v)
+  })
+  t.equal(semver.valid(v, false), null)
+  t.equal(semver.valid(v, true), null)
+  t.equal(semver.inc(v, 'patch'), null)
+  t.end()
+})
+
+test('parsing null does not throw', function (t) {
+  t.equal(semver.parse(null), null)
+  t.equal(semver.parse({}), null)
+  t.equal(semver.parse(new semver.SemVer('1.2.3')).version, '1.2.3')
+  t.end()
+})

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/semver/test/clean.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/semver/test/clean.js b/node_modules/cordova-common/node_modules/semver/test/clean.js
new file mode 100644
index 0000000..9e268de
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/semver/test/clean.js
@@ -0,0 +1,29 @@
+var tap = require('tap');
+var test = tap.test;
+var semver = require('../semver.js');
+var clean = semver.clean;
+
+test('\nclean tests', function(t) {
+	// [range, version]
+	// Version should be detectable despite extra characters
+	[
+		['1.2.3', '1.2.3'],
+		[' 1.2.3 ', '1.2.3'],
+		[' 1.2.3-4 ', '1.2.3-4'],
+		[' 1.2.3-pre ', '1.2.3-pre'],
+		['  =v1.2.3   ', '1.2.3'],
+		['v1.2.3', '1.2.3'],
+		[' v1.2.3 ', '1.2.3'],
+		['\t1.2.3', '1.2.3'],
+		['>1.2.3', null],
+		['~1.2.3', null],
+		['<=1.2.3', null],
+		['1.2.x', null]
+	].forEach(function(tuple) {
+			var range = tuple[0];
+			var version = tuple[1];
+			var msg = 'clean(' + range + ') = ' + version;
+			t.equal(clean(range), version, msg);
+		});
+	t.end();
+});

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/semver/test/gtr.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/semver/test/gtr.js b/node_modules/cordova-common/node_modules/semver/test/gtr.js
new file mode 100644
index 0000000..bbb8789
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/semver/test/gtr.js
@@ -0,0 +1,173 @@
+var tap = require('tap');
+var test = tap.test;
+var semver = require('../semver.js');
+var gtr = semver.gtr;
+
+test('\ngtr tests', function(t) {
+  // [range, version, loose]
+  // Version should be greater than range
+  [
+    ['~1.2.2', '1.3.0'],
+    ['~0.6.1-1', '0.7.1-1'],
+    ['1.0.0 - 2.0.0', '2.0.1'],
+    ['1.0.0', '1.0.1-beta1'],
+    ['1.0.0', '2.0.0'],
+    ['<=2.0.0', '2.1.1'],
+    ['<=2.0.0', '3.2.9'],
+    ['<2.0.0', '2.0.0'],
+    ['0.1.20 || 1.2.4', '1.2.5'],
+    ['2.x.x', '3.0.0'],
+    ['1.2.x', '1.3.0'],
+    ['1.2.x || 2.x', '3.0.0'],
+    ['2.*.*', '5.0.1'],
+    ['1.2.*', '1.3.3'],
+    ['1.2.* || 2.*', '4.0.0'],
+    ['2', '3.0.0'],
+    ['2.3', '2.4.2'],
+    ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0
+    ['~2.4', '2.5.5'],
+    ['~>3.2.1', '3.3.0'], // >=3.2.1 <3.3.0
+    ['~1', '2.2.3'], // >=1.0.0 <2.0.0
+    ['~>1', '2.2.4'],
+    ['~> 1', '3.2.3'],
+    ['~1.0', '1.1.2'], // >=1.0.0 <1.1.0
+    ['~ 1.0', '1.1.0'],
+    ['<1.2', '1.2.0'],
+    ['< 1.2', '1.2.1'],
+    ['1', '2.0.0beta', true],
+    ['~v0.5.4-pre', '0.6.0'],
+    ['~v0.5.4-pre', '0.6.1-pre'],
+    ['=0.7.x', '0.8.0'],
+    ['=0.7.x', '0.8.0-asdf'],
+    ['<0.7.x', '0.7.0'],
+    ['~1.2.2', '1.3.0'],
+    ['1.0.0 - 2.0.0', '2.2.3'],
+    ['1.0.0', '1.0.1'],
+    ['<=2.0.0', '3.0.0'],
+    ['<=2.0.0', '2.9999.9999'],
+    ['<=2.0.0', '2.2.9'],
+    ['<2.0.0', '2.9999.9999'],
+    ['<2.0.0', '2.2.9'],
+    ['2.x.x', '3.1.3'],
+    ['1.2.x', '1.3.3'],
+    ['1.2.x || 2.x', '3.1.3'],
+    ['2.*.*', '3.1.3'],
+    ['1.2.*', '1.3.3'],
+    ['1.2.* || 2.*', '3.1.3'],
+    ['2', '3.1.2'],
+    ['2.3', '2.4.1'],
+    ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0
+    ['~>3.2.1', '3.3.2'], // >=3.2.1 <3.3.0
+    ['~1', '2.2.3'], // >=1.0.0 <2.0.0
+    ['~>1', '2.2.3'],
+    ['~1.0', '1.1.0'], // >=1.0.0 <1.1.0
+    ['<1', '1.0.0'],
+    ['1', '2.0.0beta', true],
+    ['<1', '1.0.0beta', true],
+    ['< 1', '1.0.0beta', true],
+    ['=0.7.x', '0.8.2'],
+    ['<0.7.x', '0.7.2']
+  ].forEach(function(tuple) {
+    var range = tuple[0];
+    var version = tuple[1];
+    var loose = tuple[2] || false;
+    var msg = 'gtr(' + version + ', ' + range + ', ' + loose + ')';
+    t.ok(gtr(version, range, loose), msg);
+  });
+  t.end();
+});
+
+test('\nnegative gtr tests', function(t) {
+  // [range, version, loose]
+  // Version should NOT be greater than range
+  [
+    ['~0.6.1-1', '0.6.1-1'],
+    ['1.0.0 - 2.0.0', '1.2.3'],
+    ['1.0.0 - 2.0.0', '0.9.9'],
+    ['1.0.0', '1.0.0'],
+    ['>=*', '0.2.4'],
+    ['', '1.0.0', true],
+    ['*', '1.2.3'],
+    ['*', 'v1.2.3-foo'],
+    ['>=1.0.0', '1.0.0'],
+    ['>=1.0.0', '1.0.1'],
+    ['>=1.0.0', '1.1.0'],
+    ['>1.0.0', '1.0.1'],
+    ['>1.0.0', '1.1.0'],
+    ['<=2.0.0', '2.0.0'],
+    ['<=2.0.0', '1.9999.9999'],
+    ['<=2.0.0', '0.2.9'],
+    ['<2.0.0', '1.9999.9999'],
+    ['<2.0.0', '0.2.9'],
+    ['>= 1.0.0', '1.0.0'],
+    ['>=  1.0.0', '1.0.1'],
+    ['>=   1.0.0', '1.1.0'],
+    ['> 1.0.0', '1.0.1'],
+    ['>  1.0.0', '1.1.0'],
+    ['<=   2.0.0', '2.0.0'],
+    ['<= 2.0.0', '1.9999.9999'],
+    ['<=  2.0.0', '0.2.9'],
+    ['<    2.0.0', '1.9999.9999'],
+    ['<\t2.0.0', '0.2.9'],
+    ['>=0.1.97', 'v0.1.97'],
+    ['>=0.1.97', '0.1.97'],
+    ['0.1.20 || 1.2.4', '1.2.4'],
+    ['0.1.20 || >1.2.4', '1.2.4'],
+    ['0.1.20 || 1.2.4', '1.2.3'],
+    ['0.1.20 || 1.2.4', '0.1.20'],
+    ['>=0.2.3 || <0.0.1', '0.0.0'],
+    ['>=0.2.3 || <0.0.1', '0.2.3'],
+    ['>=0.2.3 || <0.0.1', '0.2.4'],
+    ['||', '1.3.4'],
+    ['2.x.x', '2.1.3'],
+    ['1.2.x', '1.2.3'],
+    ['1.2.x || 2.x', '2.1.3'],
+    ['1.2.x || 2.x', '1.2.3'],
+    ['x', '1.2.3'],
+    ['2.*.*', '2.1.3'],
+    ['1.2.*', '1.2.3'],
+    ['1.2.* || 2.*', '2.1.3'],
+    ['1.2.* || 2.*', '1.2.3'],
+    ['1.2.* || 2.*', '1.2.3'],
+    ['*', '1.2.3'],
+    ['2', '2.1.2'],
+    ['2.3', '2.3.1'],
+    ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0
+    ['~2.4', '2.4.5'],
+    ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0
+    ['~1', '1.2.3'], // >=1.0.0 <2.0.0
+    ['~>1', '1.2.3'],
+    ['~> 1', '1.2.3'],
+    ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0
+    ['~ 1.0', '1.0.2'],
+    ['>=1', '1.0.0'],
+    ['>= 1', '1.0.0'],
+    ['<1.2', '1.1.1'],
+    ['< 1.2', '1.1.1'],
+    ['1', '1.0.0beta', true],
+    ['~v0.5.4-pre', '0.5.5'],
+    ['~v0.5.4-pre', '0.5.4'],
+    ['=0.7.x', '0.7.2'],
+    ['>=0.7.x', '0.7.2'],
+    ['=0.7.x', '0.7.0-asdf'],
+    ['>=0.7.x', '0.7.0-asdf'],
+    ['<=0.7.x', '0.6.2'],
+    ['>0.2.3 >0.2.4 <=0.2.5', '0.2.5'],
+    ['>=0.2.3 <=0.2.4', '0.2.4'],
+    ['1.0.0 - 2.0.0', '2.0.0'],
+    ['^1', '0.0.0-0'],
+    ['^3.0.0', '2.0.0'],
+    ['^1.0.0 || ~2.0.1', '2.0.0'],
+    ['^0.1.0 || ~3.0.1 || 5.0.0', '3.2.0'],
+    ['^0.1.0 || ~3.0.1 || 5.0.0', '1.0.0beta', true],
+    ['^0.1.0 || ~3.0.1 || 5.0.0', '5.0.0-0', true],
+    ['^0.1.0 || ~3.0.1 || >4 <=5.0.0', '3.5.0']
+  ].forEach(function(tuple) {
+    var range = tuple[0];
+    var version = tuple[1];
+    var loose = tuple[2] || false;
+    var msg = '!gtr(' + version + ', ' + range + ', ' + loose + ')';
+    t.notOk(gtr(version, range, loose), msg);
+  });
+  t.end();
+});

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/semver/test/index.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/semver/test/index.js b/node_modules/cordova-common/node_modules/semver/test/index.js
new file mode 100644
index 0000000..47c3f5f
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/semver/test/index.js
@@ -0,0 +1,698 @@
+'use strict';
+
+var tap = require('tap');
+var test = tap.test;
+var semver = require('../semver.js');
+var eq = semver.eq;
+var gt = semver.gt;
+var lt = semver.lt;
+var neq = semver.neq;
+var cmp = semver.cmp;
+var gte = semver.gte;
+var lte = semver.lte;
+var satisfies = semver.satisfies;
+var validRange = semver.validRange;
+var inc = semver.inc;
+var diff = semver.diff;
+var replaceStars = semver.replaceStars;
+var toComparators = semver.toComparators;
+var SemVer = semver.SemVer;
+var Range = semver.Range;
+
+test('\ncomparison tests', function(t) {
+  // [version1, version2]
+  // version1 should be greater than version2
+  [['0.0.0', '0.0.0-foo'],
+    ['0.0.1', '0.0.0'],
+    ['1.0.0', '0.9.9'],
+    ['0.10.0', '0.9.0'],
+    ['0.99.0', '0.10.0'],
+    ['2.0.0', '1.2.3'],
+    ['v0.0.0', '0.0.0-foo', true],
+    ['v0.0.1', '0.0.0', true],
+    ['v1.0.0', '0.9.9', true],
+    ['v0.10.0', '0.9.0', true],
+    ['v0.99.0', '0.10.0', true],
+    ['v2.0.0', '1.2.3', true],
+    ['0.0.0', 'v0.0.0-foo', true],
+    ['0.0.1', 'v0.0.0', true],
+    ['1.0.0', 'v0.9.9', true],
+    ['0.10.0', 'v0.9.0', true],
+    ['0.99.0', 'v0.10.0', true],
+    ['2.0.0', 'v1.2.3', true],
+    ['1.2.3', '1.2.3-asdf'],
+    ['1.2.3', '1.2.3-4'],
+    ['1.2.3', '1.2.3-4-foo'],
+    ['1.2.3-5-foo', '1.2.3-5'],
+    ['1.2.3-5', '1.2.3-4'],
+    ['1.2.3-5-foo', '1.2.3-5-Foo'],
+    ['3.0.0', '2.7.2+asdf'],
+    ['1.2.3-a.10', '1.2.3-a.5'],
+    ['1.2.3-a.b', '1.2.3-a.5'],
+    ['1.2.3-a.b', '1.2.3-a'],
+    ['1.2.3-a.b.c.10.d.5', '1.2.3-a.b.c.5.d.100'],
+    ['1.2.3-r2', '1.2.3-r100'],
+    ['1.2.3-r100', '1.2.3-R2']
+  ].forEach(function(v) {
+    var v0 = v[0];
+    var v1 = v[1];
+    var loose = v[2];
+    t.ok(gt(v0, v1, loose), "gt('" + v0 + "', '" + v1 + "')");
+    t.ok(lt(v1, v0, loose), "lt('" + v1 + "', '" + v0 + "')");
+    t.ok(!gt(v1, v0, loose), "!gt('" + v1 + "', '" + v0 + "')");
+    t.ok(!lt(v0, v1, loose), "!lt('" + v0 + "', '" + v1 + "')");
+    t.ok(eq(v0, v0, loose), "eq('" + v0 + "', '" + v0 + "')");
+    t.ok(eq(v1, v1, loose), "eq('" + v1 + "', '" + v1 + "')");
+    t.ok(neq(v0, v1, loose), "neq('" + v0 + "', '" + v1 + "')");
+    t.ok(cmp(v1, '==', v1, loose), "cmp('" + v1 + "' == '" + v1 + "')");
+    t.ok(cmp(v0, '>=', v1, loose), "cmp('" + v0 + "' >= '" + v1 + "')");
+    t.ok(cmp(v1, '<=', v0, loose), "cmp('" + v1 + "' <= '" + v0 + "')");
+    t.ok(cmp(v0, '!=', v1, loose), "cmp('" + v0 + "' != '" + v1 + "')");
+  });
+  t.end();
+});
+
+test('\nequality tests', function(t) {
+  // [version1, version2]
+  // version1 should be equivalent to version2
+  [['1.2.3', 'v1.2.3', true],
+    ['1.2.3', '=1.2.3', true],
+    ['1.2.3', 'v 1.2.3', true],
+    ['1.2.3', '= 1.2.3', true],
+    ['1.2.3', ' v1.2.3', true],
+    ['1.2.3', ' =1.2.3', true],
+    ['1.2.3', ' v 1.2.3', true],
+    ['1.2.3', ' = 1.2.3', true],
+    ['1.2.3-0', 'v1.2.3-0', true],
+    ['1.2.3-0', '=1.2.3-0', true],
+    ['1.2.3-0', 'v 1.2.3-0', true],
+    ['1.2.3-0', '= 1.2.3-0', true],
+    ['1.2.3-0', ' v1.2.3-0', true],
+    ['1.2.3-0', ' =1.2.3-0', true],
+    ['1.2.3-0', ' v 1.2.3-0', true],
+    ['1.2.3-0', ' = 1.2.3-0', true],
+    ['1.2.3-1', 'v1.2.3-1', true],
+    ['1.2.3-1', '=1.2.3-1', true],
+    ['1.2.3-1', 'v 1.2.3-1', true],
+    ['1.2.3-1', '= 1.2.3-1', true],
+    ['1.2.3-1', ' v1.2.3-1', true],
+    ['1.2.3-1', ' =1.2.3-1', true],
+    ['1.2.3-1', ' v 1.2.3-1', true],
+    ['1.2.3-1', ' = 1.2.3-1', true],
+    ['1.2.3-beta', 'v1.2.3-beta', true],
+    ['1.2.3-beta', '=1.2.3-beta', true],
+    ['1.2.3-beta', 'v 1.2.3-beta', true],
+    ['1.2.3-beta', '= 1.2.3-beta', true],
+    ['1.2.3-beta', ' v1.2.3-beta', true],
+    ['1.2.3-beta', ' =1.2.3-beta', true],
+    ['1.2.3-beta', ' v 1.2.3-beta', true],
+    ['1.2.3-beta', ' = 1.2.3-beta', true],
+    ['1.2.3-beta+build', ' = 1.2.3-beta+otherbuild', true],
+    ['1.2.3+build', ' = 1.2.3+otherbuild', true],
+    ['1.2.3-beta+build', '1.2.3-beta+otherbuild'],
+    ['1.2.3+build', '1.2.3+otherbuild'],
+    ['  v1.2.3+build', '1.2.3+otherbuild']
+  ].forEach(function(v) {
+    var v0 = v[0];
+    var v1 = v[1];
+    var loose = v[2];
+    t.ok(eq(v0, v1, loose), "eq('" + v0 + "', '" + v1 + "')");
+    t.ok(!neq(v0, v1, loose), "!neq('" + v0 + "', '" + v1 + "')");
+    t.ok(cmp(v0, '==', v1, loose), 'cmp(' + v0 + '==' + v1 + ')');
+    t.ok(!cmp(v0, '!=', v1, loose), '!cmp(' + v0 + '!=' + v1 + ')');
+    t.ok(!cmp(v0, '===', v1, loose), '!cmp(' + v0 + '===' + v1 + ')');
+    t.ok(cmp(v0, '!==', v1, loose), 'cmp(' + v0 + '!==' + v1 + ')');
+    t.ok(!gt(v0, v1, loose), "!gt('" + v0 + "', '" + v1 + "')");
+    t.ok(gte(v0, v1, loose), "gte('" + v0 + "', '" + v1 + "')");
+    t.ok(!lt(v0, v1, loose), "!lt('" + v0 + "', '" + v1 + "')");
+    t.ok(lte(v0, v1, loose), "lte('" + v0 + "', '" + v1 + "')");
+  });
+  t.end();
+});
+
+
+test('\nrange tests', function(t) {
+  // [range, version]
+  // version should be included by range
+  [['1.0.0 - 2.0.0', '1.2.3'],
+    ['^1.2.3+build', '1.2.3'],
+    ['^1.2.3+build', '1.3.0'],
+    ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '1.2.3'],
+    ['1.2.3pre+asdf - 2.4.3-pre+asdf', '1.2.3', true],
+    ['1.2.3-pre+asdf - 2.4.3pre+asdf', '1.2.3', true],
+    ['1.2.3pre+asdf - 2.4.3pre+asdf', '1.2.3', true],
+    ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '1.2.3-pre.2'],
+    ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '2.4.3-alpha'],
+    ['1.2.3+asdf - 2.4.3+asdf', '1.2.3'],
+    ['1.0.0', '1.0.0'],
+    ['>=*', '0.2.4'],
+    ['', '1.0.0'],
+    ['*', '1.2.3'],
+    ['*', 'v1.2.3', true],
+    ['>=1.0.0', '1.0.0'],
+    ['>=1.0.0', '1.0.1'],
+    ['>=1.0.0', '1.1.0'],
+    ['>1.0.0', '1.0.1'],
+    ['>1.0.0', '1.1.0'],
+    ['<=2.0.0', '2.0.0'],
+    ['<=2.0.0', '1.9999.9999'],
+    ['<=2.0.0', '0.2.9'],
+    ['<2.0.0', '1.9999.9999'],
+    ['<2.0.0', '0.2.9'],
+    ['>= 1.0.0', '1.0.0'],
+    ['>=  1.0.0', '1.0.1'],
+    ['>=   1.0.0', '1.1.0'],
+    ['> 1.0.0', '1.0.1'],
+    ['>  1.0.0', '1.1.0'],
+    ['<=   2.0.0', '2.0.0'],
+    ['<= 2.0.0', '1.9999.9999'],
+    ['<=  2.0.0', '0.2.9'],
+    ['<    2.0.0', '1.9999.9999'],
+    ['<\t2.0.0', '0.2.9'],
+    ['>=0.1.97', 'v0.1.97', true],
+    ['>=0.1.97', '0.1.97'],
+    ['0.1.20 || 1.2.4', '1.2.4'],
+    ['>=0.2.3 || <0.0.1', '0.0.0'],
+    ['>=0.2.3 || <0.0.1', '0.2.3'],
+    ['>=0.2.3 || <0.0.1', '0.2.4'],
+    ['||', '1.3.4'],
+    ['2.x.x', '2.1.3'],
+    ['1.2.x', '1.2.3'],
+    ['1.2.x || 2.x', '2.1.3'],
+    ['1.2.x || 2.x', '1.2.3'],
+    ['x', '1.2.3'],
+    ['2.*.*', '2.1.3'],
+    ['1.2.*', '1.2.3'],
+    ['1.2.* || 2.*', '2.1.3'],
+    ['1.2.* || 2.*', '1.2.3'],
+    ['*', '1.2.3'],
+    ['2', '2.1.2'],
+    ['2.3', '2.3.1'],
+    ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0
+    ['~2.4', '2.4.5'],
+    ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0,
+    ['~1', '1.2.3'], // >=1.0.0 <2.0.0
+    ['~>1', '1.2.3'],
+    ['~> 1', '1.2.3'],
+    ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0,
+    ['~ 1.0', '1.0.2'],
+    ['~ 1.0.3', '1.0.12'],
+    ['>=1', '1.0.0'],
+    ['>= 1', '1.0.0'],
+    ['<1.2', '1.1.1'],
+    ['< 1.2', '1.1.1'],
+    ['~v0.5.4-pre', '0.5.5'],
+    ['~v0.5.4-pre', '0.5.4'],
+    ['=0.7.x', '0.7.2'],
+    ['<=0.7.x', '0.7.2'],
+    ['>=0.7.x', '0.7.2'],
+    ['<=0.7.x', '0.6.2'],
+    ['~1.2.1 >=1.2.3', '1.2.3'],
+    ['~1.2.1 =1.2.3', '1.2.3'],
+    ['~1.2.1 1.2.3', '1.2.3'],
+    ['~1.2.1 >=1.2.3 1.2.3', '1.2.3'],
+    ['~1.2.1 1.2.3 >=1.2.3', '1.2.3'],
+    ['~1.2.1 1.2.3', '1.2.3'],
+    ['>=1.2.1 1.2.3', '1.2.3'],
+    ['1.2.3 >=1.2.1', '1.2.3'],
+    ['>=1.2.3 >=1.2.1', '1.2.3'],
+    ['>=1.2.1 >=1.2.3', '1.2.3'],
+    ['>=1.2', '1.2.8'],
+    ['^1.2.3', '1.8.1'],
+    ['^0.1.2', '0.1.2'],
+    ['^0.1', '0.1.2'],
+    ['^1.2', '1.4.2'],
+    ['^1.2 ^1', '1.4.2'],
+    ['^1.2.3-alpha', '1.2.3-pre'],
+    ['^1.2.0-alpha', '1.2.0-pre'],
+    ['^0.0.1-alpha', '0.0.1-beta']
+  ].forEach(function(v) {
+    var range = v[0];
+    var ver = v[1];
+    var loose = v[2];
+    t.ok(satisfies(ver, range, loose), range + ' satisfied by ' + ver);
+  });
+  t.end();
+});
+
+test('\nnegative range tests', function(t) {
+  // [range, version]
+  // version should not be included by range
+  [['1.0.0 - 2.0.0', '2.2.3'],
+    ['1.2.3+asdf - 2.4.3+asdf', '1.2.3-pre.2'],
+    ['1.2.3+asdf - 2.4.3+asdf', '2.4.3-alpha'],
+    ['^1.2.3+build', '2.0.0'],
+    ['^1.2.3+build', '1.2.0'],
+    ['^1.2.3', '1.2.3-pre'],
+    ['^1.2', '1.2.0-pre'],
+    ['>1.2', '1.3.0-beta'],
+    ['<=1.2.3', '1.2.3-beta'],
+    ['^1.2.3', '1.2.3-beta'],
+    ['=0.7.x', '0.7.0-asdf'],
+    ['>=0.7.x', '0.7.0-asdf'],
+    ['1', '1.0.0beta', true],
+    ['<1', '1.0.0beta', true],
+    ['< 1', '1.0.0beta', true],
+    ['1.0.0', '1.0.1'],
+    ['>=1.0.0', '0.0.0'],
+    ['>=1.0.0', '0.0.1'],
+    ['>=1.0.0', '0.1.0'],
+    ['>1.0.0', '0.0.1'],
+    ['>1.0.0', '0.1.0'],
+    ['<=2.0.0', '3.0.0'],
+    ['<=2.0.0', '2.9999.9999'],
+    ['<=2.0.0', '2.2.9'],
+    ['<2.0.0', '2.9999.9999'],
+    ['<2.0.0', '2.2.9'],
+    ['>=0.1.97', 'v0.1.93', true],
+    ['>=0.1.97', '0.1.93'],
+    ['0.1.20 || 1.2.4', '1.2.3'],
+    ['>=0.2.3 || <0.0.1', '0.0.3'],
+    ['>=0.2.3 || <0.0.1', '0.2.2'],
+    ['2.x.x', '1.1.3'],
+    ['2.x.x', '3.1.3'],
+    ['1.2.x', '1.3.3'],
+    ['1.2.x || 2.x', '3.1.3'],
+    ['1.2.x || 2.x', '1.1.3'],
+    ['2.*.*', '1.1.3'],
+    ['2.*.*', '3.1.3'],
+    ['1.2.*', '1.3.3'],
+    ['1.2.* || 2.*', '3.1.3'],
+    ['1.2.* || 2.*', '1.1.3'],
+    ['2', '1.1.2'],
+    ['2.3', '2.4.1'],
+    ['~2.4', '2.5.0'], // >=2.4.0 <2.5.0
+    ['~2.4', '2.3.9'],
+    ['~>3.2.1', '3.3.2'], // >=3.2.1 <3.3.0
+    ['~>3.2.1', '3.2.0'], // >=3.2.1 <3.3.0
+    ['~1', '0.2.3'], // >=1.0.0 <2.0.0
+    ['~>1', '2.2.3'],
+    ['~1.0', '1.1.0'], // >=1.0.0 <1.1.0
+    ['<1', '1.0.0'],
+    ['>=1.2', '1.1.1'],
+    ['1', '2.0.0beta', true],
+    ['~v0.5.4-beta', '0.5.4-alpha'],
+    ['=0.7.x', '0.8.2'],
+    ['>=0.7.x', '0.6.2'],
+    ['<0.7.x', '0.7.2'],
+    ['<1.2.3', '1.2.3-beta'],
+    ['=1.2.3', '1.2.3-beta'],
+    ['>1.2', '1.2.8'],
+    ['^1.2.3', '2.0.0-alpha'],
+    ['^1.2.3', '1.2.2'],
+    ['^1.2', '1.1.9'],
+    ['*', 'v1.2.3-foo', true],
+    // invalid ranges never satisfied!
+    ['blerg', '1.2.3'],
+    ['git+https://user:password0123@github.com/foo', '123.0.0', true],
+    ['^1.2.3', '2.0.0-pre']
+  ].forEach(function(v) {
+    var range = v[0];
+    var ver = v[1];
+    var loose = v[2];
+    var found = satisfies(ver, range, loose);
+    t.ok(!found, ver + ' not satisfied by ' + range);
+  });
+  t.end();
+});
+
+test('\nincrement versions test', function(t) {
+//  [version, inc, result, identifier]
+//  inc(version, inc) -> result
+  [['1.2.3', 'major', '2.0.0'],
+    ['1.2.3', 'minor', '1.3.0'],
+    ['1.2.3', 'patch', '1.2.4'],
+    ['1.2.3tag', 'major', '2.0.0', true],
+    ['1.2.3-tag', 'major', '2.0.0'],
+    ['1.2.3', 'fake', null],
+    ['1.2.0-0', 'patch', '1.2.0'],
+    ['fake', 'major', null],
+    ['1.2.3-4', 'major', '2.0.0'],
+    ['1.2.3-4', 'minor', '1.3.0'],
+    ['1.2.3-4', 'patch', '1.2.3'],
+    ['1.2.3-alpha.0.beta', 'major', '2.0.0'],
+    ['1.2.3-alpha.0.beta', 'minor', '1.3.0'],
+    ['1.2.3-alpha.0.beta', 'patch', '1.2.3'],
+    ['1.2.4', 'prerelease', '1.2.5-0'],
+    ['1.2.3-0', 'prerelease', '1.2.3-1'],
+    ['1.2.3-alpha.0', 'prerelease', '1.2.3-alpha.1'],
+    ['1.2.3-alpha.1', 'prerelease', '1.2.3-alpha.2'],
+    ['1.2.3-alpha.2', 'prerelease', '1.2.3-alpha.3'],
+    ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-alpha.1.beta'],
+    ['1.2.3-alpha.1.beta', 'prerelease', '1.2.3-alpha.2.beta'],
+    ['1.2.3-alpha.2.beta', 'prerelease', '1.2.3-alpha.3.beta'],
+    ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-alpha.10.1.beta'],
+    ['1.2.3-alpha.10.1.beta', 'prerelease', '1.2.3-alpha.10.2.beta'],
+    ['1.2.3-alpha.10.2.beta', 'prerelease', '1.2.3-alpha.10.3.beta'],
+    ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-alpha.10.beta.1'],
+    ['1.2.3-alpha.10.beta.1', 'prerelease', '1.2.3-alpha.10.beta.2'],
+    ['1.2.3-alpha.10.beta.2', 'prerelease', '1.2.3-alpha.10.beta.3'],
+    ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-alpha.10.beta'],
+    ['1.2.3-alpha.10.beta', 'prerelease', '1.2.3-alpha.11.beta'],
+    ['1.2.3-alpha.11.beta', 'prerelease', '1.2.3-alpha.12.beta'],
+    ['1.2.0', 'prepatch', '1.2.1-0'],
+    ['1.2.0-1', 'prepatch', '1.2.1-0'],
+    ['1.2.0', 'preminor', '1.3.0-0'],
+    ['1.2.3-1', 'preminor', '1.3.0-0'],
+    ['1.2.0', 'premajor', '2.0.0-0'],
+    ['1.2.3-1', 'premajor', '2.0.0-0'],
+    ['1.2.0-1', 'minor', '1.2.0'],
+    ['1.0.0-1', 'major', '1.0.0'],
+
+    ['1.2.3', 'major', '2.0.0', false, 'dev'],
+    ['1.2.3', 'minor', '1.3.0', false, 'dev'],
+    ['1.2.3', 'patch', '1.2.4', false, 'dev'],
+    ['1.2.3tag', 'major', '2.0.0', true, 'dev'],
+    ['1.2.3-tag', 'major', '2.0.0', false, 'dev'],
+    ['1.2.3', 'fake', null, false, 'dev'],
+    ['1.2.0-0', 'patch', '1.2.0', false, 'dev'],
+    ['fake', 'major', null, false, 'dev'],
+    ['1.2.3-4', 'major', '2.0.0', false, 'dev'],
+    ['1.2.3-4', 'minor', '1.3.0', false, 'dev'],
+    ['1.2.3-4', 'patch', '1.2.3', false, 'dev'],
+    ['1.2.3-alpha.0.beta', 'major', '2.0.0', false, 'dev'],
+    ['1.2.3-alpha.0.beta', 'minor', '1.3.0', false, 'dev'],
+    ['1.2.3-alpha.0.beta', 'patch', '1.2.3', false, 'dev'],
+    ['1.2.4', 'prerelease', '1.2.5-dev.0', false, 'dev'],
+    ['1.2.3-0', 'prerelease', '1.2.3-dev.0', false, 'dev'],
+    ['1.2.3-alpha.0', 'prerelease', '1.2.3-dev.0', false, 'dev'],
+    ['1.2.3-alpha.0', 'prerelease', '1.2.3-alpha.1', false, 'alpha'],
+    ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'],
+    ['1.2.3-alpha.0.beta', 'prerelease', '1.2.3-alpha.1.beta', false, 'alpha'],
+    ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'],
+    ['1.2.3-alpha.10.0.beta', 'prerelease', '1.2.3-alpha.10.1.beta', false, 'alpha'],
+    ['1.2.3-alpha.10.1.beta', 'prerelease', '1.2.3-alpha.10.2.beta', false, 'alpha'],
+    ['1.2.3-alpha.10.2.beta', 'prerelease', '1.2.3-alpha.10.3.beta', false, 'alpha'],
+    ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-dev.0', false, 'dev'],
+    ['1.2.3-alpha.10.beta.0', 'prerelease', '1.2.3-alpha.10.beta.1', false, 'alpha'],
+    ['1.2.3-alpha.10.beta.1', 'prerelease', '1.2.3-alpha.10.beta.2', false, 'alpha'],
+    ['1.2.3-alpha.10.beta.2', 'prerelease', '1.2.3-alpha.10.beta.3', false, 'alpha'],
+    ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-dev.0', false, 'dev'],
+    ['1.2.3-alpha.9.beta', 'prerelease', '1.2.3-alpha.10.beta', false, 'alpha'],
+    ['1.2.3-alpha.10.beta', 'prerelease', '1.2.3-alpha.11.beta', false, 'alpha'],
+    ['1.2.3-alpha.11.beta', 'prerelease', '1.2.3-alpha.12.beta', false, 'alpha'],
+    ['1.2.0', 'prepatch', '1.2.1-dev.0', false, 'dev'],
+    ['1.2.0-1', 'prepatch', '1.2.1-dev.0', false, 'dev'],
+    ['1.2.0', 'preminor', '1.3.0-dev.0', false, 'dev'],
+    ['1.2.3-1', 'preminor', '1.3.0-dev.0', false, 'dev'],
+    ['1.2.0', 'premajor', '2.0.0-dev.0', false, 'dev'],
+    ['1.2.3-1', 'premajor', '2.0.0-dev.0', false, 'dev'],
+    ['1.2.0-1', 'minor', '1.2.0', false, 'dev'],
+    ['1.0.0-1', 'major', '1.0.0', false, 'dev'],
+    ['1.2.3-dev.bar', 'prerelease', '1.2.3-dev.0', false, 'dev']
+
+  ].forEach(function(v) {
+    var pre = v[0];
+    var what = v[1];
+    var wanted = v[2];
+    var loose = v[3];
+    var id = v[4];
+    var found = inc(pre, what, loose, id);
+    var cmd = 'inc(' + pre + ', ' + what + ', ' + id + ')';
+    t.equal(found, wanted, cmd + ' === ' + wanted);
+
+    var parsed = semver.parse(pre, loose);
+    if (wanted) {
+      parsed.inc(what, id);
+      t.equal(parsed.version, wanted, cmd + ' object version updated');
+      t.equal(parsed.raw, wanted, cmd + ' object raw field updated');
+    } else if (parsed) {
+      t.throws(function () {
+        parsed.inc(what, id)
+      })
+    } else {
+      t.equal(parsed, null)
+    }
+  });
+
+  t.end();
+});
+
+test('\ndiff versions test', function(t) {
+//  [version1, version2, result]
+//  diff(version1, version2) -> result
+  [['1.2.3', '0.2.3', 'major'],
+    ['1.4.5', '0.2.3', 'major'],
+    ['1.2.3', '2.0.0-pre', 'premajor'],
+    ['1.2.3', '1.3.3', 'minor'],
+    ['1.0.1', '1.1.0-pre', 'preminor'],
+    ['1.2.3', '1.2.4', 'patch'],
+    ['1.2.3', '1.2.4-pre', 'prepatch'],
+    ['0.0.1', '0.0.1-pre', 'prerelease'],
+    ['0.0.1', '0.0.1-pre-2', 'prerelease'],
+    ['1.1.0', '1.1.0-pre', 'prerelease'],
+    ['1.1.0-pre-1', '1.1.0-pre-2', 'prerelease'],
+    ['1.0.0', '1.0.0', null]
+
+  ].forEach(function(v) {
+    var version1 = v[0];
+    var version2 = v[1];
+    var wanted = v[2];
+    var found = diff(version1, version2);
+    var cmd = 'diff(' + version1 + ', ' + version2 + ')';
+    t.equal(found, wanted, cmd + ' === ' + wanted);
+  });
+
+  t.end();
+});
+
+test('\nvalid range test', function(t) {
+  // [range, result]
+  // validRange(range) -> result
+  // translate ranges into their canonical form
+  [['1.0.0 - 2.0.0', '>=1.0.0 <=2.0.0'],
+    ['1.0.0', '1.0.0'],
+    ['>=*', '*'],
+    ['', '*'],
+    ['*', '*'],
+    ['*', '*'],
+    ['>=1.0.0', '>=1.0.0'],
+    ['>1.0.0', '>1.0.0'],
+    ['<=2.0.0', '<=2.0.0'],
+    ['1', '>=1.0.0 <2.0.0'],
+    ['<=2.0.0', '<=2.0.0'],
+    ['<=2.0.0', '<=2.0.0'],
+    ['<2.0.0', '<2.0.0'],
+    ['<2.0.0', '<2.0.0'],
+    ['>= 1.0.0', '>=1.0.0'],
+    ['>=  1.0.0', '>=1.0.0'],
+    ['>=   1.0.0', '>=1.0.0'],
+    ['> 1.0.0', '>1.0.0'],
+    ['>  1.0.0', '>1.0.0'],
+    ['<=   2.0.0', '<=2.0.0'],
+    ['<= 2.0.0', '<=2.0.0'],
+    ['<=  2.0.0', '<=2.0.0'],
+    ['<    2.0.0', '<2.0.0'],
+    ['<	2.0.0', '<2.0.0'],
+    ['>=0.1.97', '>=0.1.97'],
+    ['>=0.1.97', '>=0.1.97'],
+    ['0.1.20 || 1.2.4', '0.1.20||1.2.4'],
+    ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'],
+    ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'],
+    ['>=0.2.3 || <0.0.1', '>=0.2.3||<0.0.1'],
+    ['||', '||'],
+    ['2.x.x', '>=2.0.0 <3.0.0'],
+    ['1.2.x', '>=1.2.0 <1.3.0'],
+    ['1.2.x || 2.x', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'],
+    ['1.2.x || 2.x', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'],
+    ['x', '*'],
+    ['2.*.*', '>=2.0.0 <3.0.0'],
+    ['1.2.*', '>=1.2.0 <1.3.0'],
+    ['1.2.* || 2.*', '>=1.2.0 <1.3.0||>=2.0.0 <3.0.0'],
+    ['*', '*'],
+    ['2', '>=2.0.0 <3.0.0'],
+    ['2.3', '>=2.3.0 <2.4.0'],
+    ['~2.4', '>=2.4.0 <2.5.0'],
+    ['~2.4', '>=2.4.0 <2.5.0'],
+    ['~>3.2.1', '>=3.2.1 <3.3.0'],
+    ['~1', '>=1.0.0 <2.0.0'],
+    ['~>1', '>=1.0.0 <2.0.0'],
+    ['~> 1', '>=1.0.0 <2.0.0'],
+    ['~1.0', '>=1.0.0 <1.1.0'],
+    ['~ 1.0', '>=1.0.0 <1.1.0'],
+    ['^0', '>=0.0.0 <1.0.0'],
+    ['^ 1', '>=1.0.0 <2.0.0'],
+    ['^0.1', '>=0.1.0 <0.2.0'],
+    ['^1.0', '>=1.0.0 <2.0.0'],
+    ['^1.2', '>=1.2.0 <2.0.0'],
+    ['^0.0.1', '>=0.0.1 <0.0.2'],
+    ['^0.0.1-beta', '>=0.0.1-beta <0.0.2'],
+    ['^0.1.2', '>=0.1.2 <0.2.0'],
+    ['^1.2.3', '>=1.2.3 <2.0.0'],
+    ['^1.2.3-beta.4', '>=1.2.3-beta.4 <2.0.0'],
+    ['<1', '<1.0.0'],
+    ['< 1', '<1.0.0'],
+    ['>=1', '>=1.0.0'],
+    ['>= 1', '>=1.0.0'],
+    ['<1.2', '<1.2.0'],
+    ['< 1.2', '<1.2.0'],
+    ['1', '>=1.0.0 <2.0.0'],
+    ['>01.02.03', '>1.2.3', true],
+    ['>01.02.03', null],
+    ['~1.2.3beta', '>=1.2.3-beta <1.3.0', true],
+    ['~1.2.3beta', null],
+    ['^ 1.2 ^ 1', '>=1.2.0 <2.0.0 >=1.0.0 <2.0.0']
+  ].forEach(function(v) {
+    var pre = v[0];
+    var wanted = v[1];
+    var loose = v[2];
+    var found = validRange(pre, loose);
+
+    t.equal(found, wanted, 'validRange(' + pre + ') === ' + wanted);
+  });
+
+  t.end();
+});
+
+test('\ncomparators test', function(t) {
+  // [range, comparators]
+  // turn range into a set of individual comparators
+  [['1.0.0 - 2.0.0', [['>=1.0.0', '<=2.0.0']]],
+    ['1.0.0', [['1.0.0']]],
+    ['>=*', [['']]],
+    ['', [['']]],
+    ['*', [['']]],
+    ['*', [['']]],
+    ['>=1.0.0', [['>=1.0.0']]],
+    ['>=1.0.0', [['>=1.0.0']]],
+    ['>=1.0.0', [['>=1.0.0']]],
+    ['>1.0.0', [['>1.0.0']]],
+    ['>1.0.0', [['>1.0.0']]],
+    ['<=2.0.0', [['<=2.0.0']]],
+    ['1', [['>=1.0.0', '<2.0.0']]],
+    ['<=2.0.0', [['<=2.0.0']]],
+    ['<=2.0.0', [['<=2.0.0']]],
+    ['<2.0.0', [['<2.0.0']]],
+    ['<2.0.0', [['<2.0.0']]],
+    ['>= 1.0.0', [['>=1.0.0']]],
+    ['>=  1.0.0', [['>=1.0.0']]],
+    ['>=   1.0.0', [['>=1.0.0']]],
+    ['> 1.0.0', [['>1.0.0']]],
+    ['>  1.0.0', [['>1.0.0']]],
+    ['<=   2.0.0', [['<=2.0.0']]],
+    ['<= 2.0.0', [['<=2.0.0']]],
+    ['<=  2.0.0', [['<=2.0.0']]],
+    ['<    2.0.0', [['<2.0.0']]],
+    ['<\t2.0.0', [['<2.0.0']]],
+    ['>=0.1.97', [['>=0.1.97']]],
+    ['>=0.1.97', [['>=0.1.97']]],
+    ['0.1.20 || 1.2.4', [['0.1.20'], ['1.2.4']]],
+    ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]],
+    ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]],
+    ['>=0.2.3 || <0.0.1', [['>=0.2.3'], ['<0.0.1']]],
+    ['||', [[''], ['']]],
+    ['2.x.x', [['>=2.0.0', '<3.0.0']]],
+    ['1.2.x', [['>=1.2.0', '<1.3.0']]],
+    ['1.2.x || 2.x', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]],
+    ['1.2.x || 2.x', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]],
+    ['x', [['']]],
+    ['2.*.*', [['>=2.0.0', '<3.0.0']]],
+    ['1.2.*', [['>=1.2.0', '<1.3.0']]],
+    ['1.2.* || 2.*', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]],
+    ['1.2.* || 2.*', [['>=1.2.0', '<1.3.0'], ['>=2.0.0', '<3.0.0']]],
+    ['*', [['']]],
+    ['2', [['>=2.0.0', '<3.0.0']]],
+    ['2.3', [['>=2.3.0', '<2.4.0']]],
+    ['~2.4', [['>=2.4.0', '<2.5.0']]],
+    ['~2.4', [['>=2.4.0', '<2.5.0']]],
+    ['~>3.2.1', [['>=3.2.1', '<3.3.0']]],
+    ['~1', [['>=1.0.0', '<2.0.0']]],
+    ['~>1', [['>=1.0.0', '<2.0.0']]],
+    ['~> 1', [['>=1.0.0', '<2.0.0']]],
+    ['~1.0', [['>=1.0.0', '<1.1.0']]],
+    ['~ 1.0', [['>=1.0.0', '<1.1.0']]],
+    ['~ 1.0.3', [['>=1.0.3', '<1.1.0']]],
+    ['~> 1.0.3', [['>=1.0.3', '<1.1.0']]],
+    ['<1', [['<1.0.0']]],
+    ['< 1', [['<1.0.0']]],
+    ['>=1', [['>=1.0.0']]],
+    ['>= 1', [['>=1.0.0']]],
+    ['<1.2', [['<1.2.0']]],
+    ['< 1.2', [['<1.2.0']]],
+    ['1', [['>=1.0.0', '<2.0.0']]],
+    ['1 2', [['>=1.0.0', '<2.0.0', '>=2.0.0', '<3.0.0']]],
+    ['1.2 - 3.4.5', [['>=1.2.0', '<=3.4.5']]],
+    ['1.2.3 - 3.4', [['>=1.2.3', '<3.5.0']]],
+    ['1.2.3 - 3', [['>=1.2.3', '<4.0.0']]],
+    ['>*', [['<0.0.0']]],
+    ['<*', [['<0.0.0']]]
+  ].forEach(function(v) {
+    var pre = v[0];
+    var wanted = v[1];
+    var found = toComparators(v[0]);
+    var jw = JSON.stringify(wanted);
+    t.equivalent(found, wanted, 'toComparators(' + pre + ') === ' + jw);
+  });
+
+  t.end();
+});
+
+test('\ninvalid version numbers', function(t) {
+  ['1.2.3.4',
+   'NOT VALID',
+   1.2,
+   null,
+   'Infinity.NaN.Infinity'
+  ].forEach(function(v) {
+    t.throws(function() {
+      new SemVer(v);
+    }, {name:'TypeError', message:'Invalid Version: ' + v});
+  });
+
+  t.end();
+});
+
+test('\nstrict vs loose version numbers', function(t) {
+  [['=1.2.3', '1.2.3'],
+    ['01.02.03', '1.2.3'],
+    ['1.2.3-beta.01', '1.2.3-beta.1'],
+    ['   =1.2.3', '1.2.3'],
+    ['1.2.3foo', '1.2.3-foo']
+  ].forEach(function(v) {
+    var loose = v[0];
+    var strict = v[1];
+    t.throws(function() {
+      new SemVer(loose);
+    });
+    var lv = new SemVer(loose, true);
+    t.equal(lv.version, strict);
+    t.ok(eq(loose, strict, true));
+    t.throws(function() {
+      eq(loose, strict);
+    });
+    t.throws(function() {
+      new SemVer(strict).compare(loose);
+    });
+  });
+  t.end();
+});
+
+test('\nstrict vs loose ranges', function(t) {
+  [['>=01.02.03', '>=1.2.3'],
+    ['~1.02.03beta', '>=1.2.3-beta <1.3.0']
+  ].forEach(function(v) {
+    var loose = v[0];
+    var comps = v[1];
+    t.throws(function() {
+      new Range(loose);
+    });
+    t.equal(new Range(loose, true).range, comps);
+  });
+  t.end();
+});
+
+test('\nmax satisfying', function(t) {
+  [[['1.2.3', '1.2.4'], '1.2', '1.2.4'],
+    [['1.2.4', '1.2.3'], '1.2', '1.2.4'],
+    [['1.2.3', '1.2.4', '1.2.5', '1.2.6'], '~1.2.3', '1.2.6'],
+    [['1.1.0', '1.2.0', '1.2.1', '1.3.0', '2.0.0b1', '2.0.0b2', '2.0.0b3', '2.0.0', '2.1.0'], '~2.0.0', '2.0.0', true]
+  ].forEach(function(v) {
+    var versions = v[0];
+    var range = v[1];
+    var expect = v[2];
+    var loose = v[3];
+    var actual = semver.maxSatisfying(versions, range, loose);
+    t.equal(actual, expect);
+  });
+  t.end();
+});

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/semver/test/ltr.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/semver/test/ltr.js b/node_modules/cordova-common/node_modules/semver/test/ltr.js
new file mode 100644
index 0000000..0f7167d
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/semver/test/ltr.js
@@ -0,0 +1,181 @@
+var tap = require('tap');
+var test = tap.test;
+var semver = require('../semver.js');
+var ltr = semver.ltr;
+
+test('\nltr tests', function(t) {
+  // [range, version, loose]
+  // Version should be less than range
+  [
+    ['~1.2.2', '1.2.1'],
+    ['~0.6.1-1', '0.6.1-0'],
+    ['1.0.0 - 2.0.0', '0.0.1'],
+    ['1.0.0-beta.2', '1.0.0-beta.1'],
+    ['1.0.0', '0.0.0'],
+    ['>=2.0.0', '1.1.1'],
+    ['>=2.0.0', '1.2.9'],
+    ['>2.0.0', '2.0.0'],
+    ['0.1.20 || 1.2.4', '0.1.5'],
+    ['2.x.x', '1.0.0'],
+    ['1.2.x', '1.1.0'],
+    ['1.2.x || 2.x', '1.0.0'],
+    ['2.*.*', '1.0.1'],
+    ['1.2.*', '1.1.3'],
+    ['1.2.* || 2.*', '1.1.9999'],
+    ['2', '1.0.0'],
+    ['2.3', '2.2.2'],
+    ['~2.4', '2.3.0'], // >=2.4.0 <2.5.0
+    ['~2.4', '2.3.5'],
+    ['~>3.2.1', '3.2.0'], // >=3.2.1 <3.3.0
+    ['~1', '0.2.3'], // >=1.0.0 <2.0.0
+    ['~>1', '0.2.4'],
+    ['~> 1', '0.2.3'],
+    ['~1.0', '0.1.2'], // >=1.0.0 <1.1.0
+    ['~ 1.0', '0.1.0'],
+    ['>1.2', '1.2.0'],
+    ['> 1.2', '1.2.1'],
+    ['1', '0.0.0beta', true],
+    ['~v0.5.4-pre', '0.5.4-alpha'],
+    ['~v0.5.4-pre', '0.5.4-alpha'],
+    ['=0.7.x', '0.6.0'],
+    ['=0.7.x', '0.6.0-asdf'],
+    ['>=0.7.x', '0.6.0'],
+    ['~1.2.2', '1.2.1'],
+    ['1.0.0 - 2.0.0', '0.2.3'],
+    ['1.0.0', '0.0.1'],
+    ['>=2.0.0', '1.0.0'],
+    ['>=2.0.0', '1.9999.9999'],
+    ['>=2.0.0', '1.2.9'],
+    ['>2.0.0', '2.0.0'],
+    ['>2.0.0', '1.2.9'],
+    ['2.x.x', '1.1.3'],
+    ['1.2.x', '1.1.3'],
+    ['1.2.x || 2.x', '1.1.3'],
+    ['2.*.*', '1.1.3'],
+    ['1.2.*', '1.1.3'],
+    ['1.2.* || 2.*', '1.1.3'],
+    ['2', '1.9999.9999'],
+    ['2.3', '2.2.1'],
+    ['~2.4', '2.3.0'], // >=2.4.0 <2.5.0
+    ['~>3.2.1', '2.3.2'], // >=3.2.1 <3.3.0
+    ['~1', '0.2.3'], // >=1.0.0 <2.0.0
+    ['~>1', '0.2.3'],
+    ['~1.0', '0.0.0'], // >=1.0.0 <1.1.0
+    ['>1', '1.0.0'],
+    ['2', '1.0.0beta', true],
+    ['>1', '1.0.0beta', true],
+    ['> 1', '1.0.0beta', true],
+    ['=0.7.x', '0.6.2'],
+    ['=0.7.x', '0.7.0-asdf'],
+    ['^1', '1.0.0-0'],
+    ['>=0.7.x', '0.7.0-asdf'],
+    ['1', '1.0.0beta', true],
+    ['>=0.7.x', '0.6.2'],
+    ['>1.2.3', '1.3.0-alpha']
+  ].forEach(function(tuple) {
+    var range = tuple[0];
+    var version = tuple[1];
+    var loose = tuple[2] || false;
+    var msg = 'ltr(' + version + ', ' + range + ', ' + loose + ')';
+    t.ok(ltr(version, range, loose), msg);
+  });
+  t.end();
+});
+
+test('\nnegative ltr tests', function(t) {
+  // [range, version, loose]
+  // Version should NOT be less than range
+  [
+    ['~ 1.0', '1.1.0'],
+    ['~0.6.1-1', '0.6.1-1'],
+    ['1.0.0 - 2.0.0', '1.2.3'],
+    ['1.0.0 - 2.0.0', '2.9.9'],
+    ['1.0.0', '1.0.0'],
+    ['>=*', '0.2.4'],
+    ['', '1.0.0', true],
+    ['*', '1.2.3'],
+    ['>=1.0.0', '1.0.0'],
+    ['>=1.0.0', '1.0.1'],
+    ['>=1.0.0', '1.1.0'],
+    ['>1.0.0', '1.0.1'],
+    ['>1.0.0', '1.1.0'],
+    ['<=2.0.0', '2.0.0'],
+    ['<=2.0.0', '1.9999.9999'],
+    ['<=2.0.0', '0.2.9'],
+    ['<2.0.0', '1.9999.9999'],
+    ['<2.0.0', '0.2.9'],
+    ['>= 1.0.0', '1.0.0'],
+    ['>=  1.0.0', '1.0.1'],
+    ['>=   1.0.0', '1.1.0'],
+    ['> 1.0.0', '1.0.1'],
+    ['>  1.0.0', '1.1.0'],
+    ['<=   2.0.0', '2.0.0'],
+    ['<= 2.0.0', '1.9999.9999'],
+    ['<=  2.0.0', '0.2.9'],
+    ['<    2.0.0', '1.9999.9999'],
+    ['<\t2.0.0', '0.2.9'],
+    ['>=0.1.97', 'v0.1.97'],
+    ['>=0.1.97', '0.1.97'],
+    ['0.1.20 || 1.2.4', '1.2.4'],
+    ['0.1.20 || >1.2.4', '1.2.4'],
+    ['0.1.20 || 1.2.4', '1.2.3'],
+    ['0.1.20 || 1.2.4', '0.1.20'],
+    ['>=0.2.3 || <0.0.1', '0.0.0'],
+    ['>=0.2.3 || <0.0.1', '0.2.3'],
+    ['>=0.2.3 || <0.0.1', '0.2.4'],
+    ['||', '1.3.4'],
+    ['2.x.x', '2.1.3'],
+    ['1.2.x', '1.2.3'],
+    ['1.2.x || 2.x', '2.1.3'],
+    ['1.2.x || 2.x', '1.2.3'],
+    ['x', '1.2.3'],
+    ['2.*.*', '2.1.3'],
+    ['1.2.*', '1.2.3'],
+    ['1.2.* || 2.*', '2.1.3'],
+    ['1.2.* || 2.*', '1.2.3'],
+    ['1.2.* || 2.*', '1.2.3'],
+    ['*', '1.2.3'],
+    ['2', '2.1.2'],
+    ['2.3', '2.3.1'],
+    ['~2.4', '2.4.0'], // >=2.4.0 <2.5.0
+    ['~2.4', '2.4.5'],
+    ['~>3.2.1', '3.2.2'], // >=3.2.1 <3.3.0
+    ['~1', '1.2.3'], // >=1.0.0 <2.0.0
+    ['~>1', '1.2.3'],
+    ['~> 1', '1.2.3'],
+    ['~1.0', '1.0.2'], // >=1.0.0 <1.1.0
+    ['~ 1.0', '1.0.2'],
+    ['>=1', '1.0.0'],
+    ['>= 1', '1.0.0'],
+    ['<1.2', '1.1.1'],
+    ['< 1.2', '1.1.1'],
+    ['~v0.5.4-pre', '0.5.5'],
+    ['~v0.5.4-pre', '0.5.4'],
+    ['=0.7.x', '0.7.2'],
+    ['>=0.7.x', '0.7.2'],
+    ['<=0.7.x', '0.6.2'],
+    ['>0.2.3 >0.2.4 <=0.2.5', '0.2.5'],
+    ['>=0.2.3 <=0.2.4', '0.2.4'],
+    ['1.0.0 - 2.0.0', '2.0.0'],
+    ['^3.0.0', '4.0.0'],
+    ['^1.0.0 || ~2.0.1', '2.0.0'],
+    ['^0.1.0 || ~3.0.1 || 5.0.0', '3.2.0'],
+    ['^0.1.0 || ~3.0.1 || 5.0.0', '1.0.0beta', true],
+    ['^0.1.0 || ~3.0.1 || 5.0.0', '5.0.0-0', true],
+    ['^0.1.0 || ~3.0.1 || >4 <=5.0.0', '3.5.0'],
+    ['^1.0.0alpha', '1.0.0beta', true],
+    ['~1.0.0alpha', '1.0.0beta', true],
+    ['^1.0.0-alpha', '1.0.0beta', true],
+    ['~1.0.0-alpha', '1.0.0beta', true],
+    ['^1.0.0-alpha', '1.0.0-beta'],
+    ['~1.0.0-alpha', '1.0.0-beta'],
+    ['=0.1.0', '1.0.0']
+  ].forEach(function(tuple) {
+    var range = tuple[0];
+    var version = tuple[1];
+    var loose = tuple[2] || false;
+    var msg = '!ltr(' + version + ', ' + range + ', ' + loose + ')';
+    t.notOk(ltr(version, range, loose), msg);
+  });
+  t.end();
+});

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/semver/test/major-minor-patch.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/semver/test/major-minor-patch.js b/node_modules/cordova-common/node_modules/semver/test/major-minor-patch.js
new file mode 100644
index 0000000..e9d4039
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/semver/test/major-minor-patch.js
@@ -0,0 +1,72 @@
+var tap = require('tap');
+var test = tap.test;
+var semver = require('../semver.js');
+
+test('\nmajor tests', function(t) {
+  // [range, version]
+  // Version should be detectable despite extra characters
+  [
+    ['1.2.3', 1],
+    [' 1.2.3 ', 1],
+    [' 2.2.3-4 ', 2],
+    [' 3.2.3-pre ', 3],
+    ['v5.2.3', 5],
+    [' v8.2.3 ', 8],
+    ['\t13.2.3', 13],
+    ['=21.2.3', 21, true],
+    ['v=34.2.3', 34, true]
+  ].forEach(function(tuple) {
+    var range = tuple[0];
+    var version = tuple[1];
+    var loose = tuple[2] || false;
+    var msg = 'major(' + range + ') = ' + version;
+    t.equal(semver.major(range, loose), version, msg);
+  });
+  t.end();
+});
+
+test('\nminor tests', function(t) {
+  // [range, version]
+  // Version should be detectable despite extra characters
+  [
+    ['1.1.3', 1],
+    [' 1.1.3 ', 1],
+    [' 1.2.3-4 ', 2],
+    [' 1.3.3-pre ', 3],
+    ['v1.5.3', 5],
+    [' v1.8.3 ', 8],
+    ['\t1.13.3', 13],
+    ['=1.21.3', 21, true],
+    ['v=1.34.3', 34, true]
+  ].forEach(function(tuple) {
+    var range = tuple[0];
+    var version = tuple[1];
+    var loose = tuple[2] || false;
+    var msg = 'minor(' + range + ') = ' + version;
+    t.equal(semver.minor(range, loose), version, msg);
+  });
+  t.end();
+});
+
+test('\npatch tests', function(t) {
+  // [range, version]
+  // Version should be detectable despite extra characters
+  [
+    ['1.2.1', 1],
+    [' 1.2.1 ', 1],
+    [' 1.2.2-4 ', 2],
+    [' 1.2.3-pre ', 3],
+    ['v1.2.5', 5],
+    [' v1.2.8 ', 8],
+    ['\t1.2.13', 13],
+    ['=1.2.21', 21, true],
+    ['v=1.2.34', 34, true]
+  ].forEach(function(tuple) {
+    var range = tuple[0];
+    var version = tuple[1];
+    var loose = tuple[2] || false;
+    var msg = 'patch(' + range + ') = ' + version;
+    t.equal(semver.patch(range, loose), version, msg);
+  });
+  t.end();
+});


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org


[5/8] android commit: added missing node_modules

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/examples/example.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/examples/example.js b/node_modules/elementtree/node_modules/sax/examples/example.js
new file mode 100644
index 0000000..e7f81e6
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/examples/example.js
@@ -0,0 +1,41 @@
+
+var fs = require("fs"),
+  sys = require("sys"),
+  path = require("path"),
+  xml = fs.cat(path.join(__dirname, "test.xml")),
+  sax = require("../lib/sax"),
+  strict = sax.parser(true),
+  loose = sax.parser(false, {trim:true}),
+  inspector = function (ev) { return function (data) {
+    // sys.error("");
+    // sys.error(ev+": "+sys.inspect(data));
+    // for (var i in data) sys.error(i+ " "+sys.inspect(data[i]));
+    // sys.error(this.line+":"+this.column);
+  }};
+
+xml.addCallback(function (xml) {
+  // strict.write(xml);
+  
+  sax.EVENTS.forEach(function (ev) {
+    loose["on"+ev] = inspector(ev);
+  });
+  loose.onend = function () {
+    // sys.error("end");
+    // sys.error(sys.inspect(loose));
+  };
+  
+  // do this one char at a time to verify that it works.
+  // (function () {
+  //   if (xml) {
+  //     loose.write(xml.substr(0,1000));
+  //     xml = xml.substr(1000);
+  //     process.nextTick(arguments.callee);
+  //   } else loose.close();
+  // })();
+  
+  for (var i = 0; i < 1000; i ++) {
+    loose.write(xml);
+    loose.close();
+  }
+
+});

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/examples/get-products.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/examples/get-products.js b/node_modules/elementtree/node_modules/sax/examples/get-products.js
new file mode 100644
index 0000000..9e8d74a
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/examples/get-products.js
@@ -0,0 +1,58 @@
+// pull out /GeneralSearchResponse/categories/category/items/product tags
+// the rest we don't care about.
+
+var sax = require("../lib/sax.js")
+var fs = require("fs")
+var path = require("path")
+var xmlFile = path.resolve(__dirname, "shopping.xml")
+var util = require("util")
+var http = require("http")
+
+fs.readFile(xmlFile, function (er, d) {
+  http.createServer(function (req, res) {
+    if (er) throw er
+    var xmlstr = d.toString("utf8")
+
+    var parser = sax.parser(true)
+    var products = []
+    var product = null
+    var currentTag = null
+
+    parser.onclosetag = function (tagName) {
+      if (tagName === "product") {
+        products.push(product)
+        currentTag = product = null
+        return
+      }
+      if (currentTag && currentTag.parent) {
+        var p = currentTag.parent
+        delete currentTag.parent
+        currentTag = p
+      }
+    }
+
+    parser.onopentag = function (tag) {
+      if (tag.name !== "product" && !product) return
+      if (tag.name === "product") {
+        product = tag
+      }
+      tag.parent = currentTag
+      tag.children = []
+      tag.parent && tag.parent.children.push(tag)
+      currentTag = tag
+    }
+
+    parser.ontext = function (text) {
+      if (currentTag) currentTag.children.push(text)
+    }
+
+    parser.onend = function () {
+      var out = util.inspect(products, false, 3, true)
+      res.writeHead(200, {"content-type":"application/json"})
+      res.end("{\"ok\":true}")
+      // res.end(JSON.stringify(products))
+    }
+
+    parser.write(xmlstr).end()
+  }).listen(1337)
+})

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/examples/hello-world.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/examples/hello-world.js b/node_modules/elementtree/node_modules/sax/examples/hello-world.js
new file mode 100644
index 0000000..cbfa518
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/examples/hello-world.js
@@ -0,0 +1,4 @@
+require("http").createServer(function (req, res) {
+  res.writeHead(200, {"content-type":"application/json"})
+  res.end(JSON.stringify({ok: true}))
+}).listen(1337)

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/examples/not-pretty.xml
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/examples/not-pretty.xml b/node_modules/elementtree/node_modules/sax/examples/not-pretty.xml
new file mode 100644
index 0000000..9592852
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/examples/not-pretty.xml
@@ -0,0 +1,8 @@
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/examples/pretty-print.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/examples/pretty-print.js b/node_modules/elementtree/node_modules/sax/examples/pretty-print.js
new file mode 100644
index 0000000..cd6aca9
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/examples/pretty-print.js
@@ -0,0 +1,74 @@
+var sax = require("../lib/sax")
+  , printer = sax.createStream(false, {lowercasetags:true, trim:true})
+  , fs = require("fs")
+
+function entity (str) {
+  return str.replace('"', '&quot;')
+}
+
+printer.tabstop = 2
+printer.level = 0
+printer.indent = function () {
+  print("\n")
+  for (var i = this.level; i > 0; i --) {
+    for (var j = this.tabstop; j > 0; j --) {
+      print(" ")
+    }
+  }
+}
+printer.on("opentag", function (tag) {
+  this.indent()
+  this.level ++
+  print("<"+tag.name)
+  for (var i in tag.attributes) {
+    print(" "+i+"=\""+entity(tag.attributes[i])+"\"")
+  }
+  print(">")
+})
+
+printer.on("text", ontext)
+printer.on("doctype", ontext)
+function ontext (text) {
+  this.indent()
+  print(text)
+}
+
+printer.on("closetag", function (tag) {
+  this.level --
+  this.indent()
+  print("</"+tag+">")
+})
+
+printer.on("cdata", function (data) {
+  this.indent()
+  print("<![CDATA["+data+"]]>")
+})
+
+printer.on("comment", function (comment) {
+  this.indent()
+  print("<!--"+comment+"-->")
+})
+
+printer.on("error", function (error) {
+  console.error(error)
+  throw error
+})
+
+if (!process.argv[2]) {
+  throw new Error("Please provide an xml file to prettify\n"+
+    "TODO: read from stdin or take a file")
+}
+var xmlfile = require("path").join(process.cwd(), process.argv[2])
+var fstr = fs.createReadStream(xmlfile, { encoding: "utf8" })
+
+function print (c) {
+  if (!process.stdout.write(c)) {
+    fstr.pause()
+  }
+}
+
+process.stdout.on("drain", function () {
+  fstr.resume()
+})
+
+fstr.pipe(printer)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org


[4/8] android commit: added missing node_modules

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/examples/shopping.xml
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/examples/shopping.xml b/node_modules/elementtree/node_modules/sax/examples/shopping.xml
new file mode 100644
index 0000000..223c6c6
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/examples/shopping.xml
@@ -0,0 +1,2 @@
+
+<GeneralSearchResponse xmlns="urn:types.partner.api.shopping.com"><serverDetail><apiEnv>sandbox</apiEnv><apiVersion>3.1 r31.Kadu4DC.phase3</apiVersion><buildNumber>5778</buildNumber><buildTimestamp>2011.10.06 15:37:23 PST</buildTimestamp><requestId>p2.a121bc2aaf029435dce6</requestId><timestamp>2011-10-21T18:38:45.982-04:00</timestamp><responseTime>P0Y0M0DT0H0M0.169S</responseTime></serverDetail><exceptions exceptionCount="1"><exception type="warning"><code>1112</code><message>You are currently using the SDC API sandbox environment!  No clicks to merchant URLs from this response will be paid.  Please change the host of your API requests to 'publisher.api.shopping.com' when you have finished development and testing</message></exception></exceptions><clientTracking height="19" type="logo" width="106"><sourceURL>http://statTest.dealtime.com/pixel/noscript?PV_EvnTyp=APPV&amp;APPV_APITSP=10%2F21%2F11_06%3A38%3A45_PM&amp;APPV_DSPRQSID=p2.a121bc2aaf029435dce6&amp;APPV_IMGURL=http://img.shop
 ping.com/sc/glb/sdc_logo_106x19.gif&amp;APPV_LI_LNKINID=7000610&amp;APPV_LI_SBMKYW=nikon&amp;APPV_MTCTYP=1000&amp;APPV_PRTID=2002&amp;APPV_BrnID=14804</sourceURL><hrefURL>http://www.shopping.com/digital-cameras/products</hrefURL><titleText>Digital Cameras</titleText><altText>Digital Cameras</altText></clientTracking><searchHistory><categorySelection id="3"><name>Electronics</name><categoryURL>http://www.shopping.com/xCH-electronics-nikon~linkin_id-7000610?oq=nikon</categoryURL></categorySelection><categorySelection id="449"><name>Cameras and Photography</name><categoryURL>http://www.shopping.com/xCH-cameras_and_photography-nikon~linkin_id-7000610?oq=nikon</categoryURL></categorySelection><categorySelection id="7185"><name>Digital Cameras</name><categoryURL>http://www.shopping.com/digital-cameras/nikon/products?oq=nikon&amp;linkin_id=7000610</categoryURL></categorySelection><dynamicNavigationHistory><keywordSearch dropped="false" modified="false"><originalKeyword>nikon</originalKeywo
 rd><resultKeyword>nikon</resultKeyword></keywordSearch></dynamicNavigationHistory></searchHistory><categories matchedCategoryCount="1" returnedCategoryCount="1"><category id="7185"><name>Digital Cameras</name><categoryURL>http://www.shopping.com/digital-cameras/nikon/products?oq=nikon&amp;linkin_id=7000610</categoryURL><items matchedItemCount="322" pageNumber="1" returnedItemCount="5"><product id="101677489"><name>Nikon D3100 Digital Camera</name><shortDescription>14.2 Megapixel, SLR Camera, 3 in. LCD Screen, With High Definition Video, Weight: 1 lb.</shortDescription><fullDescription>The Nikon D3100 digital SLR camera speaks to the growing ranks of enthusiastic D-SLR users and aspiring photographers by providing an easy-to-use and affordable entrance to the world of Nikon D-SLR’s. The 14.2-megapixel D3100 has powerful features, such as the enhanced Guide Mode that makes it easy to unleash creative potential and capture memories with still images and full HD video. Like having a p
 ersonal photo tutor at your fingertips, this unique feature provides a simple graphical interface on the camera’s LCD that guides users by suggesting and/or adjusting camera settings to achieve the desired end result images. The D3100 is also the world’s first D-SLR to introduce full time auto focus (AF) in Live View and D-Movie mode to effortlessly achieve the critical focus needed when shooting Full HD 1080p video.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/93/bc/04/101677489-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/93/bc/04/101677489-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shopping.com/i
 mages/pi/93/bc/04/101677489-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/93/bc/04/101677489-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="500" width="606"><sourceURL>http://di1.shopping.com/images/pi/93/bc/04/101677489-606x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image></images><rating><reviewCount>9</reviewCount><rating>4.56</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/pr/sdc_stars_sm_4.5.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/Nikon-D3100/reviews~linkin_id-7000610</reviewURL></rating><minPrice>429.00</minPrice><maxPrice>1360.00</maxPrice><productOffersURL>http://www.shopping.com/Nikon-D310
 0/prices~linkin_id-7000610</productOffersURL><productSpecsURL>http://www.shopping.com/Nikon-D3100/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="64" pageNumber="1" returnedOfferCount="5"><offer featured="false" id="-ZW6BMZqz6fbS-aULwga_g==" smartBuy="false" used="false"><name>Nikon D3100 Digital SLR Camera with 18-55mm NIKKOR VR Lens</name><description>The Nikon D3100 Digital SLR Camera is an affordable  compact  and lightweight photographic power-house. It features the all-purpose 18-55mm VR lens  a high-resolution 14.2 MP CMOS sensor along with a feature set that's comprehensive yet easy to navigate - the intuitive onboard learn-as-you grow guide mode allows the photographer to understand what the 3100 can do quickly and easily. Capture beautiful pictures and amazing Full HD 1080p movies with sound and full-time autofocus.  Availabilty: In Stock!</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" heigh
 t="100" width="100"><sourceURL>http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" he
 ight="350" width="350"><sourceURL>http://di102.shopping.com/images/di/2d/5a/57/36424d5a717a366662532d61554c7767615f67-350x350-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Free Shipping with Any Purchase!</storeNotes><basePrice currency="USD">529.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">799.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=647&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=475674&amp;crawler_id=475674&amp;dealId=-ZW6BMZqz6fbS-aULwga_g%3D%3D&amp;url=http%3A%2F%2Fwww.fumfie.com%2Fproduct%2F343.5%2Fshopping-com%3F&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D3100+Digital+SLR+Camera+with+18-55mm+NIKKOR+VR+Lens&amp;dlprc=529.0&amp;crn=&amp;istrsm
 rc=1&amp;isathrsl=0&amp;AR=1&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=101677489&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=1&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=1&amp;SL=1&amp;FS=1&amp;code=&amp;acode=658&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="475674" trusted="true"><name>FumFie</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/475674.gif</sourceURL></logo><phoneNumber>866 666 9198</phoneNumber><ratingInfo><reviewCount>560</reviewCount><rating>4.27</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_45.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_fumfie~MRD-475674~S-1~linkin_id-7000610</reviewURL></ratingInfo><
 countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>F343C5</sku></offer><offer featured="false" id="md1e9lD8vdOu4FHQfJqKng==" smartBuy="false" used="false"><name>Nikon Nikon D3100 14.2MP Digital SLR Camera with 18-55mm f/3.5-5.6 AF-S DX VR, Cameras</name><description>Nikon D3100 14.2MP Digital SLR Camera with 18-55mm f/3.5-5.6 AF-S DX VR</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&am
 p;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="352" width="385"><sourceURL>http://di109.shopping.com/images/di/6d/64/31/65396c443876644f7534464851664a714b6e67-385x352-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">549.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></tot
 alPrice><originalPrice currency="USD">549.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=779&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=305814&amp;crawler_id=305814&amp;dealId=md1e9lD8vdOu4FHQfJqKng%3D%3D&amp;url=http%3A%2F%2Fwww.electronics-expo.com%2Findex.php%3Fpage%3Ditem%26id%3DNIKD3100%26source%3DSideCar%26scpid%3D8%26scid%3Dscsho318727%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+Nikon+D3100+14.2MP+Digital+SLR+Camera+with+18-55mm+f%2F3.5-5.6+AF-S+DX+VR%2C+Cameras&amp;dlprc=549.0&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=9&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=101677489&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=9&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=771&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=
 &amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="305814" trusted="true"><name>Electronics Expo</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/305814.gif</sourceURL></logo><phoneNumber>1-888-707-EXPO</phoneNumber><ratingInfo><reviewCount>371</reviewCount><rating>3.90</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_4.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_electronics_expo~MRD-305814~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>NIKD3100</sku></offer><offer featured="false" id="yYuaXnDFtCY7rDUjkY2aaw==" smartBuy="false" used="false"><name>Nikon D3100 14.2-Megapixel Digital SLR Camera With 18-55mm Zoom-Nikkor Lens, Black</name><description>
 Split-second shutter response captures shots other cameras may have missed Helps eliminate the frustration of shutter delay! 14.2-megapixels for enlargements worth framing and hanging. Takes breathtaking 1080p HD movies. ISO sensitivity from 100-1600 for bright or dimly lit settings. 3.0in. color LCD for beautiful, wide-angle framing and viewing. In-camera image editing lets you retouch with no PC. Automatic scene modes include Child, Sports, Night Portrait and more. Accepts SDHC memory cards. Nikon D3100 14.2-Megapixel Digital SLR Camera With 18-55mm Zoom-Nikkor Lens, Black is one of many Digital SLR Cameras available through Office Depot. Made by Nikon.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di109.shopping.com/images/di/79/59/75/61586e4446744359377244556a6b5932616177-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</so
 urceURL></image><image available="true" height="200" width="200"><sourceURL>http://di109.shopping.com/images/di/79/59/75/61586e4446744359377244556a6b5932616177-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="250" width="250"><sourceURL>http://di109.shopping.com/images/di/79/59/75/61586e4446744359377244556a6b5932616177-250x250-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image></imageList><stockStatus>in-s
 tock</stockStatus><basePrice currency="USD">549.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">699.99</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=698&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=467671&amp;crawler_id=467671&amp;dealId=yYuaXnDFtCY7rDUjkY2aaw%3D%3D&amp;url=http%3A%2F%2Flink.mercent.com%2Fredirect.ashx%3Fmr%3AmerchantID%3DOfficeDepot%26mr%3AtrackingCode%3DCEC9669E-6ABC-E011-9F24-0019B9C043EB%26mr%3AtargetUrl%3Dhttp%3A%2F%2Fwww.officedepot.com%2Fa%2Fproducts%2F486292%2FNikon-D3100-142-Megapixel-Digital-SLR%2F%253fcm_mmc%253dMercent-_-Shopping-_-Cameras_and_Camcorders-_-486292&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D3100+14.2-Megapixel+Digital+SLR+Camera+With+18-55mm+Zoom-Nikkor+Lens%2C+Black&amp;dlprc=549.99&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=10&amp;N
 G=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=101677489&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=10&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=1&amp;SL=1&amp;FS=1&amp;code=&amp;acode=690&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="467671" trusted="true"><name>Office Depot</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/467671.gif</sourceURL></logo><phoneNumber>1-800-GO-DEPOT</phoneNumber><ratingInfo><reviewCount>135</reviewCount><rating>2.37</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_office_depot_4158555~MRD-467671~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag
  height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>486292</sku></offer><offer featured="false" id="Rl56U7CuiTYsH4MGZ02lxQ==" smartBuy="false" used="false"><name>Nikon® D3100™ 14.2MP Digital SLR with 18-55mm Lens</name><description>The Nikon D3100 DSLR will surprise you with its simplicity and impress you with superb results.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di103.shopping.com/images/di/52/6c/35/36553743756954597348344d475a30326c7851-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di103.shopping.com/images/di/52/6c/35/36553743756954597348344d475a30326c7851-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=11
 1021183845&amp;r=4</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="220" width="220"><sourceURL>http://di103.shopping.com/images/di/52/6c/35/36553743756954597348344d475a30326c7851-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">549.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.05</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">549.99</originalPrice><offerUR
 L>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=332477&amp;crawler_id=332477&amp;dealId=Rl56U7CuiTYsH4MGZ02lxQ%3D%3D&amp;url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D903483107%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon%C2%AE+D3100%E2%84%A2+14.2MP+Digital+SLR+with+18-55mm+Lens&amp;dlprc=549.99&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=11&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=101677489&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=11&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=0&amp;code=&amp;acode=496&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="332477" trusted="false"><name>RadioShack</name><lo
 go available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/332477.gif</sourceURL></logo><ratingInfo><reviewCount>24</reviewCount><rating>2.25</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>9614867</sku></offer><offer featured="false" id="huS6xZKDKaKMTMP71eI6DA==" smartBuy="false" used="false"><name>Nikon D3100 SLR w/Nikon 18-55mm VR &amp; 55-200mm VR Lenses</name><description>14.2 Megapixels3" LCDLive ViewHD 1080p Video w/ Sound &amp; Autofocus11-point Autofocus3 Frames per Second ShootingISO 100 to 3200 (Expand to 12800-Hi2)Self Cleaning SensorEXPEED 2, Image Processing EngineScene Recognition S
 ystem</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a
 121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="345" width="345"><sourceURL>http://di105.shopping.com/images/di/68/75/53/36785a4b444b614b4d544d5037316549364441-345x345-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">695.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">695.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=371&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=487342&amp;crawler_id=487342&amp;dealId=huS6xZKDKaKMTMP71eI6DA%3D%3D&amp;url=http%3A%2F%2Fwww.rythercamera.com%2Fcatalog%2Fproduct_info.php%3Fcsv%3Dsh%26products_id%3D32983%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;Dea
 lName=Nikon+D3100+SLR+w%2FNikon+18-55mm+VR+%26+55-200mm+VR+Lenses&amp;dlprc=695.0&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=15&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=101677489&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=15&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=379&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="487342" trusted="false"><name>RytherCamera.com</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/487342.gif</sourceURL></logo><phoneNumber>1-877-644-7593</phoneNumber><ratingInfo><reviewCount>0</reviewCount></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countr
 yCode></countryFlag></store><sku>32983</sku></offer></offers></product><product id="95397883"><name>Nikon COOLPIX S203 Digital Camera</name><shortDescription>10 Megapixel, Ultra-Compact Camera, 2.5 in. LCD Screen, 3x Optical Zoom, With Video Capability, Weight: 0.23 lb.</shortDescription><fullDescription>With 10.34 mega pixel, electronic VR vibration reduction, 5-level brightness adjustment, 3x optical zoom, and TFT LCD, Nikon Coolpix s203 fulfills all the demands of any photographer. The digital camera has an inbuilt memory of 44MB and an external memory slot made for all kinds of SD (Secure Digital) cards.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-200x200-0-0.jp
 g?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="499" width="500"><sourceURL>http://di1.shopping.com/images/pi/c4/ef/1b/95397883-500x499-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image></images><rating><reviewCount>0</reviewCount></rating><minPrice>139.00</minPrice><maxPrice>139.00</maxPrice><productOffersURL>http://www.shopping.com/Nikon-Coolpix-S203/prices~linkin_id-7000610</productO
 ffersURL><productSpecsURL>http://www.shopping.com/Nikon-Coolpix-S203/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="1" pageNumber="1" returnedOfferCount="1"><offer featured="false" id="sBd2JnIEPM-A_lBAM1RZgQ==" smartBuy="false" used="false"><name>Nikon Coolpix S203 Digital Camera (Red)</name><description>With 10.34 mega pixel, electronic VR vibration reduction, 5-level brightness adjustment, 3x optical zoom, and TFT LCD, Nikon Coolpix s203 fulfills all the demands of any photographer. The digital camera has an inbuilt memory of 44MB and an external memory slot made for all kinds of SD (Secure Digital) cards.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image avail
 able="true" height="200" width="200"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="500" width="500"><sourceURL>http://di108.shopping.com/images/di/73/42/64/324a6e4945504d2d415f6c42414d31525a6751-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=1
 11021183845&amp;r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Fantastic prices with ease &amp; comfort of Amazon.com!</storeNotes><basePrice currency="USD">139.00</basePrice><shippingCost currency="USD">9.50</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">139.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=566&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=301531&amp;crawler_id=1903313&amp;dealId=sBd2JnIEPM-A_lBAM1RZgQ%3D%3D&amp;url=http%3A%2F%2Fwww.amazon.com%2Fdp%2FB002T964IM%2Fref%3Dasc_df_B002T964IM1751618%3Fsmid%3DA22UHVNXG98FAT%26tag%3Ddealtime-ce-mp01feed-20%26linkCode%3Dasn%26creative%3D395105%26creativeASIN%3DB002T964IM&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+Coolpix+S203+Digital+Camera+%28Red%29&amp;dlprc=139.0&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=63&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdc
 prod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=95397883&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=63&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=0&amp;code=&amp;acode=518&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="301531" trusted="false"><name>Amazon Marketplace</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/301531.gif</sourceURL></logo><ratingInfo><reviewCount>213</reviewCount><rating>2.73</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_amazon_marketplace_9689~MRD-301531~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif
 </sourceURL><countryCode>US</countryCode></countryFlag></store><sku>B002T964IM</sku></offer></offers></product><product id="106834268"><name>Nikon S3100 Digital Camera</name><shortDescription>14.5 Megapixel, Compact Camera, 2.7 in. LCD Screen, 5x Optical Zoom, With High Definition Video, Weight: 0.23 lb.</shortDescription><fullDescription>This digital camera features a wide-angle optical Zoom-NIKKOR glass lens that allows you to capture anything from landscapes to portraits to action shots. The high-definition movie mode with one-touch recording makes it easy to capture video clips.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-200x200-0-0.jpg?p=p2.a121bc2aaf029435d
 ce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="387" width="507"><sourceURL>http://di1.shopping.com/images/pi/66/2d/33/106834268-507x387-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image></images><rating><reviewCount>1</reviewCount><rating>2.00</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/pr/sdc_stars_sm_2.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/ni
 kon-s3100/reviews~linkin_id-7000610</reviewURL></rating><minPrice>99.95</minPrice><maxPrice>134.95</maxPrice><productOffersURL>http://www.shopping.com/nikon-s3100/prices~linkin_id-7000610</productOffersURL><productSpecsURL>http://www.shopping.com/nikon-s3100/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="67" pageNumber="1" returnedOfferCount="5"><offer featured="false" id="UUyGoqV8r0-xrkn-rnGNbg==" smartBuy="false" used="false"><name>CoolPix S3100 14 Megapixel Compact Digital Camera- Red</name><description>Nikon Coolpix S3100 - Digital camera - compact - 14.0 Mpix - optical zoom: 5 x - supported memory: SD, SDXC, SDHC - red</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></im
 age><image available="true" height="200" width="200"><sourceURL>http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di111.shopping.com/images/di/55/55/79/476f71563872302d78726b6e2d726e474e6267-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Get 30 days FREE SHIPPING w/ ShipVantage</storeNotes><basePrice currency="USD">119.95</basePrice><tax checkSite="true"></tax><shippingCost currency=
 "USD">6.95</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">139.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=485615&amp;crawler_id=485615&amp;dealId=UUyGoqV8r0-xrkn-rnGNbg%3D%3D&amp;url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBJpFHJ3Yx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmDAJeU1oyGG0GcBdhGwUGCAVqYF9SO0xSN1sZdmA7dmMdBQAJB24qX1NbQxI6AjA2ME5dVFULPDsGPFcQTTdaLTA6SR0OFlQvPAwMDxYcYlxIVkcoLTcCDA%3D%3D%26nAID%3D13736960%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=CoolPix+S3100+14+Megapixel+Compact+Digital+Camera-+Red&amp;dlprc=119.95&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=28&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=106834268&amp;brnId=14804&amp;IsFtr=0&a
 mp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=28&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=1&amp;FS=0&amp;code=&amp;acode=583&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="485615" trusted="true"><name>Sears</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/485615.gif</sourceURL></logo><phoneNumber>1-800-349-4358</phoneNumber><ratingInfo><reviewCount>888</reviewCount><rating>2.85</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_3.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>00337013000</sku></offer>
 <offer featured="false" id="X87AwXlW1dXoMXk4QQDToQ==" smartBuy="false" used="false"><name>COOLPIX S3100 Pink</name><description>Nikon Coolpix S3100 - Digital camera - compact - 14.0 Mpix - optical zoom: 5 x - supported memory: SD, SDXC, SDHC - pink</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144
 546f51-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di111.shopping.com/images/di/58/38/37/4177586c573164586f4d586b34515144546f51-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Get 30 days FREE SHIPPING w/ ShipVantage</storeNotes><basePrice currency="USD">119.95</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.95</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">139.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=485615&amp;crawler_id=485615&amp;dealId=X87AwXlW1dXoMXk4QQDToQ%3D%3D&amp;url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBJpFHJxYx0CTAIC
 I2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmb2JcUFxDEGsPc3QDEkFZVQ0WFhdRW0MWbgYWDlxzdGMdAVQWRi0xDAwPFhw9TSobb05eWVVYKzsLTFVVQi5RICs3SA8MU1s2MQQKD1wf%26nAID%3D13736960%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=COOLPIX+S3100+Pink&amp;dlprc=119.95&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=31&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=106834268&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=31&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=1&amp;FS=0&amp;code=&amp;acode=583&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="485615" trusted="true"><name>Sears</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/485615.gif</
 sourceURL></logo><phoneNumber>1-800-349-4358</phoneNumber><ratingInfo><reviewCount>888</reviewCount><rating>2.85</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_3.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>00337015000</sku></offer><offer featured="false" id="nvFwnpfA4rlA1Dbksdsa0w==" smartBuy="false" used="false"><name>Nikon Coolpix S3100 14.0 MP Digital Camera - Silver</name><description>Nikon Coolpix S3100 14.0 MP Digital Camera - Silver</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di109.shopping.com/images/di/6e/76/46/776e70664134726c413144626b736473613077-100x100-0-0.jpg
 ?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di109.shopping.com/images/di/6e/76/46/776e70664134726c413144626b736473613077-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="270" width="270"><sourceURL>http://di109.shopping.com/images/di/6e/76/46/776e70664134726c413144626b736473613077-270x270-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&am
 p;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">109.97</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">109.97</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=803&amp;BEFID=7185&amp;aon=%5E&amp;MerchantID=475774&amp;crawler_id=475774&amp;dealId=nvFwnpfA4rlA1Dbksdsa0w%3D%3D&amp;url=http%3A%2F%2Fwww.thewiz.com%2Fcatalog%2Fproduct.jsp%3FmodelNo%3DS3100SILVER%26gdftrk%3DgdfV2677_a_7c996_a_7c4049_a_7c26262&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+Coolpix+S3100+14.0+MP+Digital+Camera+-+Silver&amp;dlprc=109.97&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=33&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=106834268&amp;brnId=14804&amp;Is
 Ftr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=33&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=797&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="475774" trusted="false"><name>TheWiz.com</name><logo available="false" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/475774.gif</sourceURL></logo><phoneNumber>877-542-6988</phoneNumber><ratingInfo><reviewCount>0</reviewCount></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>26262</sku></offer><offer featured="false" id="5GtaN2NeryKwps-Se2l-4g==" smartBuy="false" used="false"><name>Nikon� COOLPIX� S3100 14MP Digital Camera (Silver)</name><description>The Nikon COOLPIX S3100 is the easy way to share your life and stay c
 onnected.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di102.shopping.com/images/di/35/47/74/614e324e6572794b7770732d5365326c2d3467-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di102.shopping.com/images/di/35/47/74/614e324e6572794b7770732d5365326c2d3467-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=70
 00610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="220" width="220"><sourceURL>http://di102.shopping.com/images/di/35/47/74/614e324e6572794b7770732d5365326c2d3467-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">119.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.05</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">119.99</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=332477&amp;crawler_id=332477&amp;dealId=5GtaN2NeryKwps-Se2l-4g%3D%3D&amp;url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D848064082%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon%C3%AF%C2%BF%C2%BD+COOLPIX%C3%AF%C2%BF%C2%BD+S3100+14MP+Di
 gital+Camera+%28Silver%29&amp;dlprc=119.99&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=37&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=106834268&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=37&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=0&amp;code=&amp;acode=509&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="332477" trusted="false"><name>RadioShack</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/332477.gif</sourceURL></logo><ratingInfo><reviewCount>24</reviewCount><rating>2.25</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linki
 n_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>10101095</sku></offer><offer featured="false" id="a43m0RXulX38zCnQjU59jw==" smartBuy="false" used="false"><name>COOLPIX S3100 Yellow</name><description>Nikon Coolpix S3100 - Digital camera - compact - 14.0 Mpix - optical zoom: 5 x - supported memory: SD, SDXC, SDHC - yellow</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-200x200-0-0.jpg?p=p2.a121bc2aaf0294
 35dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di107.shopping.com/images/di/61/34/33/6d305258756c5833387a436e516a5535396a77-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Get 30 days FREE SHIPPING w/ ShipVantage</storeNotes><basePrice currency="USD">119.95</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.95</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">139.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?b
 m=578&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=485615&amp;crawler_id=485615&amp;dealId=a43m0RXulX38zCnQjU59jw%3D%3D&amp;url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBJpFHJwYx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmb2JcUFxDEGoPc3QDEkFZVQ0WFhdRW0MWbgYWDlxzdGMdAVQWRi0xDAwPFhw9TSobb05eWVVYKzsLTFVVQi5RICs3SA8MU1s2MQQKD1wf%26nAID%3D13736960%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=COOLPIX+S3100+Yellow&amp;dlprc=119.95&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=38&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=106834268&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=38&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=1&amp;FS=0&amp;code=&amp;acode=583&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR
 =&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="485615" trusted="true"><name>Sears</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/485615.gif</sourceURL></logo><phoneNumber>1-800-349-4358</phoneNumber><ratingInfo><reviewCount>888</reviewCount><rating>2.85</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_3.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>00337014000</sku></offer></offers></product><product id="99671132"><name>Nikon D90 Digital Camera</name><shortDescription>12.3 Megapixel, Point and Shoot Camera, 3 in. LCD Screen, With Video Capability, Weight: 1.36 lb.</shortDescription><fullDescription>Untitle
 d Document Nikon D90 SLR Digital Camera With 28-80mm 75-300mm Lens Kit The Nikon D90 SLR Digital Camera, with its 12.3-megapixel DX-format CMOS, 3" High resolution LCD display, Scene Recognition System, Picture Control, Active D-Lighting, and one-button Live View, provides photo enthusiasts with the image quality and performance they need to pursue their own vision while still being intuitive enough for use as an everyday camera.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/52/fb/d3/99671132-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/52/fb/d3/99671132-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shoppin
 g.com/images/pi/52/fb/d3/99671132-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/52/fb/d3/99671132-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="255" width="499"><sourceURL>http://di1.shopping.com/images/pi/52/fb/d3/99671132-499x255-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image></images><rating><reviewCount>7</reviewCount><rating>5.00</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/pr/sdc_stars_sm_5.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/Nikon-D90-with-18-270mm-Lens/reviews~linkin_id-7000610</reviewURL></rating><minPrice>689.00</minPrice><maxPrice>2299.00</maxPrice><productOffersURL>http://www.shop
 ping.com/Nikon-D90-with-18-270mm-Lens/prices~linkin_id-7000610</productOffersURL><productSpecsURL>http://www.shopping.com/Nikon-D90-with-18-270mm-Lens/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="43" pageNumber="1" returnedOfferCount="5"><offer featured="false" id="GU5JJkpUAxe5HujB7fkwAA==" smartBuy="false" used="false"><name>Nikon® D90 12.3MP Digital SLR Camera (Body Only)</name><description>The Nikon D90 will make you rethink what a digital SLR camera can achieve.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di106.shopping.com/images/di/47/55/35/4a4a6b70554178653548756a4237666b774141-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di106.shopping.com/images/di/47/55/35/4a4a6b70554178653548756a4237666b774141-200x200-0-
 0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="220" width="220"><sourceURL>http://di106.shopping.com/images/di/47/55/35/4a4a6b70554178653548756a4237666b774141-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">1015.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.05</shippingCost><totalPrice checkSite="true"></
 totalPrice><originalPrice currency="USD">1015.99</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=332477&amp;crawler_id=332477&amp;dealId=GU5JJkpUAxe5HujB7fkwAA%3D%3D&amp;url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D851830266%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon%C2%AE+D90+12.3MP+Digital+SLR+Camera+%28Body+Only%29&amp;dlprc=1015.99&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=14&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=99671132&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=14&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=0&amp;code=&amp;acode=496&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedResel
 ler="false" id="332477" trusted="false"><name>RadioShack</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/332477.gif</sourceURL></logo><ratingInfo><reviewCount>24</reviewCount><rating>2.25</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>10148659</sku></offer><offer featured="false" id="XhURuSC-spBbTIDfo4qfzQ==" smartBuy="false" used="false"><name>Nikon D90 SLR Digital Camera (Camera Body)</name><description>The Nikon D90 SLR Digital Camera  with its 12.3-megapixel DX-format CCD  3" High resolution LCD display  Scene Recognition System  Picture Control  Active D-Lighting  and one
 -button Live View  provides photo enthusiasts with the image quality and performance they need to pursue their own vision while still being intuitive enough for use as an everyday camera. In addition  the D90 introduces the D-Movie mode  allowing for the first time  an interchangeable lens SLR camera that is capable of recording 720p HD movie clips.  Availabilty: In Stock</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image avai
 lable="true" height="300" width="300"><sourceURL>http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="350" width="350"><sourceURL>http://di109.shopping.com/images/di/58/68/55/527553432d73704262544944666f3471667a51-350x350-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Free Shipping with Any Purchase!</storeNotes><basePrice currency="USD">689.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><ori
 ginalPrice currency="USD">900.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=647&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=475674&amp;crawler_id=475674&amp;dealId=XhURuSC-spBbTIDfo4qfzQ%3D%3D&amp;url=http%3A%2F%2Fwww.fumfie.com%2Fproduct%2F169.5%2Fshopping-com%3F&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D90+SLR+Digital+Camera+%28Camera+Body%29&amp;dlprc=689.0&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=16&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=99671132&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=16&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=1&amp;SL=1&amp;FS=1&amp;code=&amp;acode=658&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="475674" trusted="true">
 <name>FumFie</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/475674.gif</sourceURL></logo><phoneNumber>866 666 9198</phoneNumber><ratingInfo><reviewCount>560</reviewCount><rating>4.27</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_45.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_fumfie~MRD-475674~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>F169C5</sku></offer><offer featured="false" id="o0Px_XLWDbrxAYRy3rCmyQ==" smartBuy="false" used="false"><name>Nikon D90 SLR w/Nikon 18-105mm VR &amp; 55-200mm VR Lenses</name><description>12.3 MegapixelDX Format CMOS Sensor3" VGA LCD DisplayLive ViewSelf Cleaning SensorD-Movie ModeHigh Sensitivity (ISO 3200)4.5 fps BurstIn-Camera Image Editing</description><c
 ategoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d
 7951-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="500" width="500"><sourceURL>http://di101.shopping.com/images/di/6f/30/50/785f584c5744627278415952793372436d7951-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">1189.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">1189.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=371&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=487342&amp;crawler_id=487342&amp;dealId=o0Px_XLWDbrxAYRy3rCmyQ%3D%3D&amp;url=http%3A%2F%2Fwww.rythercamera.com%2Fcatalog%2Fproduct_info.php%3Fcsv%3Dsh%26products_id%3D30619%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2
 .a121bc2aaf029435dce6&amp;DealName=Nikon+D90+SLR+w%2FNikon+18-105mm+VR+%26+55-200mm+VR+Lenses&amp;dlprc=1189.0&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=20&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=99671132&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=20&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=379&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="487342" trusted="false"><name>RytherCamera.com</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/487342.gif</sourceURL></logo><phoneNumber>1-877-644-7593</phoneNumber><ratingInfo><reviewCount>0</reviewCount></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourc
 eURL><countryCode>US</countryCode></countryFlag></store><sku>30619</sku></offer><offer featured="false" id="4HgbWJSJ8ssgIf8B0MXIwA==" smartBuy="false" used="false"><name>Nikon D90 12.3 Megapixel Digital SLR Camera (Body Only)</name><description>Fusing 12.3 megapixel image quality and a cinematic 24fps D-Movie Mode, the Nikon D90 exceeds the demands of passionate photographers. Coupled with Nikon's EXPEED image processing technologies and NIKKOR optics, breathtaking image fidelity is assured. Combined with fast 0.15ms power-up and split-second 65ms shooting lag, dramatic action and decisive moments are captured easily. Effective 4-frequency, ultrasonic sensor cleaning frees image degrading dust particles from the sensor's optical low pass filter.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di110.shopping.com/images/di/34/48/67/62574a534a3873736749663842304d58497741-100x100-0-
 0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di110.shopping.com/images/di/34/48/67/62574a534a3873736749663842304d58497741-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di110.shopping.com/images/di/34/48/67/62574a534a3873736749663842304d58497741-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>FREE FEDEX 2-3 DAY DELIVERY</storeNotes><basePrice currency="USD">899.95</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">899.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/Dea
 lFrame.cmp?bm=269&amp;BEFID=7185&amp;aon=%5E&amp;MerchantID=9296&amp;crawler_id=811558&amp;dealId=4HgbWJSJ8ssgIf8B0MXIwA%3D%3D&amp;url=http%3A%2F%2Fwww.pcnation.com%2Foptics-gallery%2Fdetails.asp%3Faffid%3D305%26item%3D2N145P&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D90+12.3+Megapixel+Digital+SLR+Camera+%28Body+Only%29&amp;dlprc=899.95&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=21&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=99671132&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=21&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=257&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="9296" trusted="true"><name>PCNation</name><logo available="true" height="31" width="8
 8"><sourceURL>http://img.shopping.com/cctool/merch_logos/9296.gif</sourceURL></logo><phoneNumber>800-470-7079</phoneNumber><ratingInfo><reviewCount>1622</reviewCount><rating>4.43</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_45.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_pcnation_9689~MRD-9296~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>2N145P</sku></offer><offer featured="false" id="UNDa3uMDZXOnvD_7sTILYg==" smartBuy="false" used="false"><name>Nikon D90 12.3MP Digital SLR Camera (Body Only)</name><description>Fusing 12.3-megapixel image quality inherited from the award-winning D300 with groundbreaking features, the D90's breathtaking, low-noise image quality is further advanced with EXPEED image processing. Split-second shutter response and contin
 uous shooting at up to 4.5 frames-per-second provide the power to capture fast action and precise moments perfectly, while Nikon's exclusive Scene Recognition System contributes to faster 11-area autofocus performance, finer white balance detection and more. The D90 delivers the control passionate photographers demand, utilizing comprehensive exposure functions and the intelligence of 3D Color Matrix Metering II. Stunning results come to life on a 3-inch 920,000-dot color LCD monitor, providing accurate image review, Live View composition and brilliant playback of the D90's cinematic-quality 24-fps HD D-Movie mode.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" h
 eight="200" width="200"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="500" width="500"><sourceURL>http://di102.shopping.com/images/di/55/4e/44/6133754d445a584f6e76445f377354494c5967-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&a
 mp;r=5</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Fantastic prices with ease &amp; comfort of Amazon.com!</storeNotes><basePrice currency="USD">780.00</basePrice><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">780.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=566&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=301531&amp;crawler_id=1903313&amp;dealId=UNDa3uMDZXOnvD_7sTILYg%3D%3D&amp;url=http%3A%2F%2Fwww.amazon.com%2Fdp%2FB001ET5U92%2Fref%3Dasc_df_B001ET5U921751618%3Fsmid%3DAHF4SYKP09WBH%26tag%3Ddealtime-ce-mp01feed-20%26linkCode%3Dasn%26creative%3D395105%26creativeASIN%3DB001ET5U92&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D90+12.3MP+Digital+SLR+Camera+%28Body+Only%29&amp;dlprc=780.0&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=29&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&a
 mp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=99671132&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=29&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=520&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="301531" trusted="false"><name>Amazon Marketplace</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/301531.gif</sourceURL></logo><ratingInfo><reviewCount>213</reviewCount><rating>2.73</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_amazon_marketplace_9689~MRD-301531~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sour
 ceURL><countryCode>US</countryCode></countryFlag></store><sku>B001ET5U92</sku></offer></offers></product><product id="70621646"><name>Nikon D90 Digital Camera with 18-105mm lens</name><shortDescription>12.9 Megapixel, SLR Camera, 3 in. LCD Screen, 5.8x Optical Zoom, With Video Capability, Weight: 2.3 lb.</shortDescription><fullDescription>Its 12.3 megapixel DX-format CMOS image sensor and EXPEED image processing system offer outstanding image quality across a wide ISO light sensitivity range. Live View mode lets you compose and shoot via the high-resolution 3-inch LCD monitor, and an advanced Scene Recognition System and autofocus performance help capture images with astounding accuracy. Movies can be shot in Motion JPEG format using the D-Movie function. The camera’s large image sensor ensures exceptional movie image quality and you can create dramatic effects by shooting with a wide range of interchangeable NIKKOR lenses, from wide-angle to macro to fisheye, or by adjusting the 
 lens aperture and experimenting with depth-of-field. The D90 – designed to fuel your passion for photography.</fullDescription><images><image available="true" height="100" width="100"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&
 amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image><image available="true" height="489" width="490"><sourceURL>http://di1.shopping.com/images/pi/57/6a/4f/70621646-490x489-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=2&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=5</sourceURL></image></images><rating><reviewCount>32</reviewCount><rating>4.81</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/pr/sdc_stars_sm_5.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/Nikon-D90-with-18-105mm-lens/reviews~linkin_id-7000610</reviewURL></rating><minPrice>849.95</minPrice><maxPrice>1599.95</maxPrice><productOffersURL>http://www.shopping.com/Nikon-D90-with-18-105mm-lens/prices~linkin_id-7000610</productOffersURL><productSpecsURL>http://www.shopping.com/Nikon-D90-with-18-105mm-lens/info~linkin_id-7000610</productSpecsURL><offers matchedOfferCount="25" pageNumber="1" returnedOfferCount="5"><offer featured="false" id="3o5e1VghgJPfhLvT1JFKTA==" smartBu
 y="false" used="false"><name>Nikon D90 18-105mm VR Lens</name><description>The Nikon D90 SLR Digital Camera  with its 12.3-megapixel DX-format CMOS  3" High resolution LCD display  Scene Recognition System  Picture Control  Active D-Lighting  and one-button Live View  prov</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di111.shopping.com/images/di/33/6f/35/6531566768674a5066684c7654314a464b5441-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di111.shopping.com/images/di/33/6f/35/6531566768674a5066684c7654314a464b5441-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?
 p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image><image available="true" height="260" width="260"><sourceURL>http://di111.shopping.com/images/di/33/6f/35/6531566768674a5066684c7654314a464b5441-260x260-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=1</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">849.95</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">849.95</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=419&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=9390&amp;crawler_id=1905054&amp;dealId=3o5e1V
 ghgJPfhLvT1JFKTA%3D%3D&amp;url=http%3A%2F%2Fwww.ajrichard.com%2FNikon-D90-18-105mm-VR-Lens%2Fp-292%3Frefid%3DShopping%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D90+18-105mm+VR+Lens&amp;dlprc=849.95&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=2&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=70621646&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=2&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=425&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="9390" trusted="false"><name>AJRichard</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/9390.gif</sourceURL></logo><phoneNumber>1-888-871-1256</phoneNumber><ratingInfo><
 reviewCount>3124</reviewCount><rating>4.48</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_45.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_ajrichard~MRD-9390~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>292</sku></offer><offer featured="false" id="_lYWj_jbwfsSkfcwUcDuww==" smartBuy="false" used="false"><name>Nikon D90 SLR w/Nikon 18-105mm VR Lens</name><description>12.3 MegapixelDX Format CMOS Sensor3" VGA LCD DisplayLive ViewSelf Cleaning SensorD-Movie ModeHigh Sensitivity (ISO 3200)4.5 fps BurstIn-Camera Image Editing</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-100x1
 00-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di108.shopping.com/images/di/5f/6c/59/576a5f6a62776673536b666377556344757777-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image><image available="true" height="500" width="500"><sourceURL>http://di108.shopping.com/images/di/5f
 /6c/59/576a5f6a62776673536b666377556344757777-500x500-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=2</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">909.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">0.00</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">909.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=371&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=487342&amp;crawler_id=487342&amp;dealId=_lYWj_jbwfsSkfcwUcDuww%3D%3D&amp;url=http%3A%2F%2Fwww.rythercamera.com%2Fcatalog%2Fproduct_info.php%3Fcsv%3Dsh%26products_id%3D30971%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon+D90+SLR+w%2FNikon+18-105mm+VR+Lens&amp;dlprc=909.0&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=3&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=
 DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=70621646&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=3&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=1&amp;code=&amp;acode=379&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="487342" trusted="false"><name>RytherCamera.com</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/487342.gif</sourceURL></logo><phoneNumber>1-877-644-7593</phoneNumber><ratingInfo><reviewCount>0</reviewCount></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>30971</sku></offer><offer featured="false" id="1KCclCGuWvty2XKU9skadg==" smartBuy="false" used="false"><name>25448/D90 12.3 Megapixel Digital Camera 18-105mm Zoom Lens w/ 3" Screen - 
 Black</name><description>Nikon D90 - Digital camera - SLR - 12.3 Mpix - Nikon AF-S DX 18-105mm lens - optical zoom: 5.8 x - supported memory: SD, SDHC</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-100x100-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image><image available="true" height="300" width="300"><sourceURL>http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-300x300-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&
 amp;r=3</sourceURL></image><image available="true" height="400" width="400"><sourceURL>http://di110.shopping.com/images/di/31/4b/43/636c4347755776747932584b5539736b616467-400x400-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=3</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><storeNotes>Get 30 days FREE SHIPPING w/ ShipVantage</storeNotes><basePrice currency="USD">1199.00</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">8.20</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">1199.00</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=578&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=485615&amp;crawler_id=485615&amp;dealId=1KCclCGuWvty2XKU9skadg%3D%3D&amp;url=http%3A%2F%2Fsears.rdr.channelintelligence.com%2Fgo.asp%3FfVhzOGNRAAQIASNiE1NbQBRtFXpzYx0CTAICI2BbH1lEFmgKP3QvUVpEREdlfUAUHAQPLVpFTVdtJzxAHUNYW3AhQBM0QhFvEXAbYh8EAAVmb2JcVlhCGGkPc3QDEkFZVQ0W
 FhdRW0MWbgYWDlxzdGMdAVQWRi0xDAwPFhw9TSobb05eWVVYKzsLTFVVQi5RICs3SA8MU1s2MQQKD1wf%26nAID%3D13736960%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=25448%2FD90+12.3+Megapixel+Digital+Camera+18-105mm+Zoom+Lens+w%2F+3%22+Screen+-+Black&amp;dlprc=1199.0&amp;crn=&amp;istrsmrc=1&amp;isathrsl=0&amp;AR=4&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=70621646&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1&amp;RR=4&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=0&amp;code=&amp;acode=586&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="485615" trusted="true"><name>Sears</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/485615.gif</sourceURL></logo><phoneNumber>1-
 800-349-4358</phoneNumber><ratingInfo><reviewCount>888</reviewCount><rating>2.85</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_3.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_sears_4189479~MRD-485615~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>00353197000</sku></offer><offer featured="false" id="3-VOSfVV5Jo7HlA4kJtanA==" smartBuy="false" used="false"><name>Nikon® D90 12.3MP Digital SLR with 18-105mm Lens</name><description>The Nikon D90 will make you rethink what a digital SLR camera can achieve.</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di101.shopping.com/images/di/33/2d/56/4f53665656354a6f37486c41346b4a74616e41-100x100-0-0.jpg?p=p2.a121b
 c2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="200" width="200"><sourceURL>http://di101.shopping.com/images/di/33/2d/56/4f53665656354a6f37486c41346b4a74616e41-200x200-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="false" height="300" width="300"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="false" height="400" width="400"><sourceURL>http://img.shopping.com/sc/ds/no_image_100X100.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610&amp;t=111021183845&amp;r=4</sourceURL></image><image available="true" height="220" width="220"><sourceURL>http://di101.shopping.com/images/di/33/2d/56/4f53665656354a6f37486c41346b4a74616e41-220x220-0-0.jpg?p=p2.a121bc2aaf029435dce6&amp;a=1&amp;c=1&amp;l=7000610
 &amp;t=111021183845&amp;r=4</sourceURL></image></imageList><stockStatus>in-stock</stockStatus><basePrice currency="USD">1350.99</basePrice><tax checkSite="true"></tax><shippingCost currency="USD">6.05</shippingCost><totalPrice checkSite="true"></totalPrice><originalPrice currency="USD">1350.99</originalPrice><offerURL>http://statTest.dealtime.com/DealFrame/DealFrame.cmp?bm=504&amp;BEFID=7185&amp;aon=%5E1&amp;MerchantID=332477&amp;crawler_id=332477&amp;dealId=3-VOSfVV5Jo7HlA4kJtanA%3D%3D&amp;url=http%3A%2F%2Ftracking.searchmarketing.com%2Fgsic.asp%3Faid%3D982673361%26&amp;linkin_id=7000610&amp;Issdt=111021183845&amp;searchID=p2.a121bc2aaf029435dce6&amp;DealName=Nikon%C2%AE+D90+12.3MP+Digital+SLR+with+18-105mm+Lens&amp;dlprc=1350.99&amp;crn=&amp;istrsmrc=0&amp;isathrsl=0&amp;AR=5&amp;NG=20&amp;NDP=200&amp;PN=1&amp;ST=7&amp;DB=sdcprod&amp;MT=phx-pkadudc2&amp;FPT=DSP&amp;NDS=&amp;NMS=&amp;MRS=&amp;PD=70621646&amp;brnId=14804&amp;IsFtr=0&amp;IsSmart=0&amp;DMT=&amp;op=&amp;CM=&amp;DlLng=1
 &amp;RR=5&amp;cid=&amp;semid1=&amp;semid2=&amp;IsLps=0&amp;CC=0&amp;SL=0&amp;FS=0&amp;code=&amp;acode=496&amp;category=&amp;HasLink=&amp;frameId=&amp;ND=&amp;MN=&amp;PT=&amp;prjID=&amp;GR=&amp;lnkId=&amp;VK=</offerURL><store authorizedReseller="false" id="332477" trusted="false"><name>RadioShack</name><logo available="true" height="31" width="88"><sourceURL>http://img.shopping.com/cctool/merch_logos/332477.gif</sourceURL></logo><ratingInfo><reviewCount>24</reviewCount><rating>2.25</rating><ratingImage height="18" width="91"><sourceURL>http://img.shopping.com/sc/mr/sdc_checks_25.gif</sourceURL></ratingImage><reviewURL>http://www.shopping.com/xMR-store_radioshack_9689~MRD-332477~S-1~linkin_id-7000610</reviewURL></ratingInfo><countryFlag height="11" width="18"><sourceURL>http://img.shopping.com/sc/glb/flag/US.gif</sourceURL><countryCode>US</countryCode></countryFlag></store><sku>11148905</sku></offer><offer featured="false" id="kQnB6rS4AjN5dx5h2_631g==" smartBuy="false" used="false"><n
 ame>Nikon D90 Kit 12.3-megapixel Digital SLR with 18-105mm VR Lens</name><description>Photographers, take your passion further!Now is the time for new creativity, and to rethink what a digital SLR camera can achieve. It's time for the D90, a camera with everything you would expect from Nikon's next-generation D-SLRs, and some unexpected surprises, as well. The stunning image quality is inherited from the D300, Nikon's DX-format flagship. The D90 also has Nikon's unmatched ergonomics and high performance, and now takes high-quality movies with beautifully cinematic results. The world of photography has changed, and with the D90 in your hands, it's time to make your own rules.AF-S DX NIKKOR 18-105mm f/3.5-5.6G ED VR LensWide-ratio 5.8x zoom Compact, versatile and ideal for a broad range of shooting situations, ranging from interiors and landscapes to beautiful portraits� a perfect everyday zoom. Nikon VR (Vibration Reduction) image stabilization Vibration Reduction is engineered 
 specifically for each VR NIKKOR lens and enables handheld shooting at up to 3 shutter speeds slower than would</description><categoryId>7185</categoryId><manufacturer>Nikon</manufacturer><imageList><image available="true" height="100" width="100"><sourceURL>http://di110.shopping.com/i

<TRUNCATED>

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org


[8/8] android commit: added missing node_modules

Posted by st...@apache.org.
added missing node_modules


Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/44421bbc
Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/44421bbc
Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/44421bbc

Branch: refs/heads/master
Commit: 44421bbc790f65a54f12c62f079faa94efffc3b4
Parents: 320558a
Author: Steve Gill <st...@gmail.com>
Authored: Wed Jan 20 17:07:33 2016 -0800
Committer: Steve Gill <st...@gmail.com>
Committed: Wed Jan 20 17:07:49 2016 -0800

----------------------------------------------------------------------
 .../node_modules/big-integer/.gitconfig         |    3 +
 .../node_modules/big-integer/.zuul.yml          |    8 +
 .../node_modules/big-integer/.zuulrc            |    2 +
 .../node_modules/big-integer/BigInteger.js      | 1181 +++
 .../node_modules/big-integer/BigInteger.min.js  |    1 +
 .../node_modules/big-integer/LICENSE            |   24 +
 .../node_modules/big-integer/README.md          |  506 ++
 .../node_modules/big-integer/package.json       |   70 +
 .../bplist-parser/test/airplay.bplist           |  Bin 0 -> 341 bytes
 .../bplist-parser/test/iTunes-small.bplist      |  Bin 0 -> 24433 bytes
 .../bplist-parser/test/int64.bplist             |  Bin 0 -> 84 bytes
 .../node_modules/bplist-parser/test/int64.xml   |   10 +
 .../bplist-parser/test/parseTest.js             |  159 +
 .../bplist-parser/test/sample1.bplist           |  Bin 0 -> 605 bytes
 .../bplist-parser/test/sample2.bplist           |  Bin 0 -> 384 bytes
 .../node_modules/bplist-parser/test/uid.bplist  |  Bin 0 -> 365 bytes
 .../bplist-parser/test/utf16.bplist             |  Bin 0 -> 1273 bytes
 .../bplist-parser/test/utf16_chinese.plist      |  Bin 0 -> 2362 bytes
 .../cordova-registry-mapper/tests/test.js       |   11 +
 .../node_modules/balanced-match/LICENSE.md      |   21 +
 .../balanced-match/test/balanced.js             |   84 +
 .../node_modules/concat-map/example/map.js      |    6 +
 .../node_modules/concat-map/test/map.js         |   39 +
 .../node_modules/osenv/test/unix.js             |   71 +
 .../node_modules/osenv/test/windows.js          |   74 +
 .../node_modules/base64-js/test/url-safe.js     |   18 +
 .../node_modules/semver/bin/semver              |  133 +
 .../node_modules/semver/range.bnf               |   16 +
 .../node_modules/semver/test/big-numbers.js     |   31 +
 .../node_modules/semver/test/clean.js           |   29 +
 .../node_modules/semver/test/gtr.js             |  173 +
 .../node_modules/semver/test/index.js           |  698 ++
 .../node_modules/semver/test/ltr.js             |  181 +
 .../semver/test/major-minor-patch.js            |   72 +
 .../sax/examples/big-not-pretty.xml             | 8002 ++++++++++++++++++
 .../node_modules/sax/examples/example.js        |   41 +
 .../node_modules/sax/examples/get-products.js   |   58 +
 .../node_modules/sax/examples/hello-world.js    |    4 +
 .../node_modules/sax/examples/not-pretty.xml    |    8 +
 .../node_modules/sax/examples/pretty-print.js   |   74 +
 .../node_modules/sax/examples/shopping.xml      |    2 +
 .../node_modules/sax/examples/strict.dtd        |  870 ++
 .../node_modules/sax/examples/switch-bench.js   |   45 +
 .../node_modules/sax/examples/test.html         |   15 +
 .../node_modules/sax/examples/test.xml          | 1254 +++
 .../node_modules/sax/test/buffer-overrun.js     |   25 +
 .../node_modules/sax/test/cdata-chunked.js      |   11 +
 .../node_modules/sax/test/cdata-end-split.js    |   15 +
 .../node_modules/sax/test/cdata-fake-end.js     |   28 +
 .../node_modules/sax/test/cdata-multiple.js     |   15 +
 .../elementtree/node_modules/sax/test/cdata.js  |   10 +
 .../elementtree/node_modules/sax/test/index.js  |   86 +
 .../node_modules/sax/test/issue-23.js           |   43 +
 .../node_modules/sax/test/issue-30.js           |   24 +
 .../node_modules/sax/test/issue-35.js           |   15 +
 .../node_modules/sax/test/issue-47.js           |   13 +
 .../node_modules/sax/test/issue-49.js           |   31 +
 .../node_modules/sax/test/parser-position.js    |   28 +
 .../elementtree/node_modules/sax/test/script.js |   12 +
 .../sax/test/self-closing-child-strict.js       |   40 +
 .../node_modules/sax/test/self-closing-child.js |   40 +
 .../node_modules/sax/test/self-closing-tag.js   |   25 +
 .../node_modules/sax/test/stray-ending.js       |   17 +
 .../sax/test/trailing-non-whitespace.js         |   17 +
 .../node_modules/sax/test/unquoted.js           |   17 +
 .../node_modules/sax/test/xmlns-issue-41.js     |   67 +
 .../node_modules/sax/test/xmlns-rebinding.js    |   59 +
 .../node_modules/sax/test/xmlns-strict.js       |   71 +
 .../node_modules/sax/test/xmlns-unbound.js      |   15 +
 .../test/xmlns-xml-default-prefix-attribute.js  |   35 +
 .../sax/test/xmlns-xml-default-prefix.js        |   20 +
 .../sax/test/xmlns-xml-default-redefine.js      |   40 +
 node_modules/properties-parser/play-ground.js   |   17 +
 .../properties-parser/test/ReadProperties.class |  Bin 0 -> 2613 bytes
 .../properties-parser/test/ReadProperties.java  |   61 +
 .../test/test-cases-copy.properties             |   16 +
 .../test/test-cases.properties                  |   18 +
 node_modules/properties-parser/test/test.js     |  123 +
 78 files changed, 15048 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/.gitconfig
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/.gitconfig b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/.gitconfig
new file mode 100644
index 0000000..7683432
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/.gitconfig
@@ -0,0 +1,3 @@
+[remote "github"]
+	push = +refs/heads/master:refs/heads/gh-pages
+	push = +refs/heads/master:refs/heads/master

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/.zuul.yml
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/.zuul.yml b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/.zuul.yml
new file mode 100644
index 0000000..b32b22a
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/.zuul.yml
@@ -0,0 +1,8 @@
+ui: jasmine2
+browsers:
+  - name: chrome
+    version: 27
+  - name: ie
+    version: latest
+  - name: iphone
+    version: 6.1
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/.zuulrc
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/.zuulrc b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/.zuulrc
new file mode 100644
index 0000000..5ecb992
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/.zuulrc
@@ -0,0 +1,2 @@
+sauce_username: peterolson
+sauce_key: 3553a315-10c0-4661-9d8e-7150d87064c7
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/BigInteger.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/BigInteger.js b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/BigInteger.js
new file mode 100644
index 0000000..b3f9558
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/BigInteger.js
@@ -0,0 +1,1181 @@
+var bigInt = (function (undefined) {
+    "use strict";
+
+    var BASE = 1e7,
+        LOG_BASE = 7,
+        MAX_INT = 9007199254740992,
+        MAX_INT_ARR = smallToArray(MAX_INT),
+        LOG_MAX_INT = Math.log(MAX_INT);
+
+    function BigInteger(value, sign) {
+        this.value = value;
+        this.sign = sign;
+        this.isSmall = false;
+    }
+
+    function SmallInteger(value) {
+        this.value = value;
+        this.sign = value < 0;
+        this.isSmall = true;
+    }
+
+    function isPrecise(n) {
+        return -MAX_INT < n && n < MAX_INT;
+    }
+
+    function smallToArray(n) { // For performance reasons doesn't reference BASE, need to change this function if BASE changes
+        if (n < 1e7)
+            return [n];
+        if (n < 1e14)
+            return [n % 1e7, Math.floor(n / 1e7)];
+        return [n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14)];
+    }
+
+    function arrayToSmall(arr) { // If BASE changes this function may need to change
+        trim(arr);
+        var length = arr.length;
+        if (length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) {
+            switch (length) {
+                case 0: return 0;
+                case 1: return arr[0];
+                case 2: return arr[0] + arr[1] * BASE;
+                default: return arr[0] + (arr[1] + arr[2] * BASE) * BASE;
+            }
+        }
+        return arr;
+    }
+
+    function trim(v) {
+        var i = v.length;
+        while (v[--i] === 0);
+        v.length = i + 1;
+    }
+
+    function createArray(length) { // function shamelessly stolen from Yaffle's library https://github.com/Yaffle/BigInteger
+        var x = new Array(length);
+        var i = -1;
+        while (++i < length) {
+            x[i] = 0;
+        }
+        return x;
+    }
+
+    function truncate(n) {
+        if (n > 0) return Math.floor(n);
+        return Math.ceil(n);
+    }
+
+    function add(a, b) { // assumes a and b are arrays with a.length >= b.length
+        var l_a = a.length,
+            l_b = b.length,
+            r = new Array(l_a),
+            carry = 0,
+            base = BASE,
+            sum, i;
+        for (i = 0; i < l_b; i++) {
+            sum = a[i] + b[i] + carry;
+            carry = sum >= base ? 1 : 0;
+            r[i] = sum - carry * base;
+        }
+        while (i < l_a) {
+            sum = a[i] + carry;
+            carry = sum === base ? 1 : 0;
+            r[i++] = sum - carry * base;
+        }
+        if (carry > 0) r.push(carry);
+        return r;
+    }
+
+    function addAny(a, b) {
+        if (a.length >= b.length) return add(a, b);
+        return add(b, a);
+    }
+
+    function addSmall(a, carry) { // assumes a is array, carry is number with 0 <= carry < MAX_INT
+        var l = a.length,
+            r = new Array(l),
+            base = BASE,
+            sum, i;
+        for (i = 0; i < l; i++) {
+            sum = a[i] - base + carry;
+            carry = Math.floor(sum / base);
+            r[i] = sum - carry * base;
+            carry += 1;
+        }
+        while (carry > 0) {
+            r[i++] = carry % base;
+            carry = Math.floor(carry / base);
+        }
+        return r;
+    }
+
+    BigInteger.prototype.add = function (v) {
+        var value, n = parseValue(v);
+        if (this.sign !== n.sign) {
+            return this.subtract(n.negate());
+        }
+        var a = this.value, b = n.value;
+        if (n.isSmall) {
+            return new BigInteger(addSmall(a, Math.abs(b)), this.sign);
+        }
+        return new BigInteger(addAny(a, b), this.sign);
+    };
+    BigInteger.prototype.plus = BigInteger.prototype.add;
+
+    SmallInteger.prototype.add = function (v) {
+        var n = parseValue(v);
+        var a = this.value;
+        if (a < 0 !== n.sign) {
+            return this.subtract(n.negate());
+        }
+        var b = n.value;
+        if (n.isSmall) {
+            if (isPrecise(a + b)) return new SmallInteger(a + b);
+            b = smallToArray(Math.abs(b));
+        }
+        return new BigInteger(addSmall(b, Math.abs(a)), a < 0);
+    };
+    SmallInteger.prototype.plus = SmallInteger.prototype.add;
+
+    function subtract(a, b) { // assumes a and b are arrays with a >= b
+        var a_l = a.length,
+            b_l = b.length,
+            r = new Array(a_l),
+            borrow = 0,
+            base = BASE,
+            i, difference;
+        for (i = 0; i < b_l; i++) {
+            difference = a[i] - borrow - b[i];
+            if (difference < 0) {
+                difference += base;
+                borrow = 1;
+            } else borrow = 0;
+            r[i] = difference;
+        }
+        for (i = b_l; i < a_l; i++) {
+            difference = a[i] - borrow;
+            if (difference < 0) difference += base;
+            else {
+                r[i++] = difference;
+                break;
+            }
+            r[i] = difference;
+        }
+        for (; i < a_l; i++) {
+            r[i] = a[i];
+        }
+        trim(r);
+        return r;
+    }
+
+    function subtractAny(a, b, sign) {
+        var value, isSmall;
+        if (compareAbs(a, b) >= 0) {
+            value = subtract(a,b);
+        } else {
+            value = subtract(b, a);
+            sign = !sign;
+        }
+        value = arrayToSmall(value);
+        if (typeof value === "number") {
+            if (sign) value = -value;
+            return new SmallInteger(value);
+        }
+        return new BigInteger(value, sign);
+    }
+
+    function subtractSmall(a, b, sign) { // assumes a is array, b is number with 0 <= b < MAX_INT
+        var l = a.length,
+            r = new Array(l),
+            carry = -b,
+            base = BASE,
+            i, difference;
+        for (i = 0; i < l; i++) {
+            difference = a[i] + carry;
+            carry = Math.floor(difference / base);
+            difference %= base;
+            r[i] = difference < 0 ? difference + base : difference;
+        }
+        r = arrayToSmall(r);
+        if (typeof r === "number") {
+            if (sign) r = -r;
+            return new SmallInteger(r);
+        } return new BigInteger(r, sign);
+    }
+
+    BigInteger.prototype.subtract = function (v) {
+        var n = parseValue(v);
+        if (this.sign !== n.sign) {
+            return this.add(n.negate());
+        }
+        var a = this.value, b = n.value;
+        if (n.isSmall)
+            return subtractSmall(a, Math.abs(b), this.sign);
+        return subtractAny(a, b, this.sign);
+    };
+    BigInteger.prototype.minus = BigInteger.prototype.subtract;
+
+    SmallInteger.prototype.subtract = function (v) {
+        var n = parseValue(v);
+        var a = this.value;
+        if (a < 0 !== n.sign) {
+            return this.add(n.negate());
+        }
+        var b = n.value;
+        if (n.isSmall) {
+            return new SmallInteger(a - b);
+        }
+        return subtractSmall(b, Math.abs(a), a >= 0);
+    };
+    SmallInteger.prototype.minus = SmallInteger.prototype.subtract;
+
+    BigInteger.prototype.negate = function () {
+        return new BigInteger(this.value, !this.sign);
+    };
+    SmallInteger.prototype.negate = function () {
+        var sign = this.sign;
+        var small = new SmallInteger(-this.value);
+        small.sign = !sign;
+        return small;
+    };
+
+    BigInteger.prototype.abs = function () {
+        return new BigInteger(this.value, false);
+    };
+    SmallInteger.prototype.abs = function () {
+        return new SmallInteger(Math.abs(this.value));
+    };
+
+    function multiplyLong(a, b) {
+        var a_l = a.length,
+            b_l = b.length,
+            l = a_l + b_l,
+            r = createArray(l),
+            base = BASE,
+            product, carry, i, a_i, b_j;
+        for (i = 0; i < a_l; ++i) {
+            a_i = a[i];
+            for (var j = 0; j < b_l; ++j) {
+                b_j = b[j];
+                product = a_i * b_j + r[i + j];
+                carry = Math.floor(product / base);
+                r[i + j] = product - carry * base;
+                r[i + j + 1] += carry;
+            }
+        }
+        trim(r);
+        return r;
+    }
+
+    function multiplySmall(a, b) { // assumes a is array, b is number with |b| < BASE
+        var l = a.length,
+            r = new Array(l),
+            base = BASE,
+            carry = 0,
+            product, i;
+        for (i = 0; i < l; i++) {
+            product = a[i] * b + carry;
+            carry = Math.floor(product / base);
+            r[i] = product - carry * base;
+        }
+        while (carry > 0) {
+            r[i++] = carry % base;
+            carry = Math.floor(carry / base);
+        }
+        return r;
+    }
+
+    function shiftLeft(x, n) {
+        var r = [];
+        while (n-- > 0) r.push(0);
+        return r.concat(x);
+    }
+
+    function multiplyKaratsuba(x, y) {
+        var n = Math.max(x.length, y.length);
+        
+        if (n <= 400) return multiplyLong(x, y);
+        n = Math.ceil(n / 2);
+
+        var b = x.slice(n),
+            a = x.slice(0, n),
+            d = y.slice(n),
+            c = y.slice(0, n);
+
+        var ac = multiplyKaratsuba(a, c),
+            bd = multiplyKaratsuba(b, d),
+            abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d));
+
+        return addAny(addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), shiftLeft(bd, 2 * n));
+    }
+
+    BigInteger.prototype.multiply = function (v) {
+        var value, n = parseValue(v),
+            a = this.value, b = n.value,
+            sign = this.sign !== n.sign,
+            abs;
+        if (n.isSmall) {
+            if (b === 0) return CACHE[0];
+            if (b === 1) return this;
+            if (b === -1) return this.negate();
+            abs = Math.abs(b);
+            if (abs < BASE) {
+                return new BigInteger(multiplySmall(a, abs), sign);
+            }
+            b = smallToArray(abs);
+        }
+        if (a.length + b.length > 4000) // Karatsuba is only faster for sufficiently large inputs
+            return new BigInteger(multiplyKaratsuba(a, b), sign);
+        return new BigInteger(multiplyLong(a, b), sign);
+    };
+
+    BigInteger.prototype.times = BigInteger.prototype.multiply;
+
+    function multiplySmallAndArray(a, b, sign) { // a >= 0
+        if (a < BASE) {
+            return new BigInteger(multiplySmall(b, a), sign);
+        }
+        return new BigInteger(multiplyLong(b, smallToArray(a)), sign);
+    }
+    SmallInteger.prototype["_multiplyBySmall"] = function (a) {
+            if (isPrecise(a.value * this.value)) {
+                return new SmallInteger(a.value * this.value);
+            }
+            return multiplySmallAndArray(Math.abs(a.value), smallToArray(Math.abs(this.value)), this.sign !== a.sign);
+    };
+    BigInteger.prototype["_multiplyBySmall"] = function (a) {
+            if (a.value === 0) return CACHE[0];
+            if (a.value === 1) return this;
+            if (a.value === -1) return this.negate();
+            return multiplySmallAndArray(Math.abs(a.value), this.value, this.sign !== a.sign);
+    };
+    SmallInteger.prototype.multiply = function (v) {
+        return parseValue(v)["_multiplyBySmall"](this);
+    };
+    SmallInteger.prototype.times = SmallInteger.prototype.multiply;
+
+    function square(a) {
+        var l = a.length,
+            r = createArray(l + l),
+            base = BASE,
+            product, carry, i, a_i, a_j;
+        for (i = 0; i < l; i++) {
+            a_i = a[i];
+            for (var j = 0; j < l; j++) {
+                a_j = a[j];
+                product = a_i * a_j + r[i + j];
+                carry = Math.floor(product / base);
+                r[i + j] = product - carry * base;
+                r[i + j + 1] += carry;
+            }
+        }
+        trim(r);
+        return r;
+    }
+
+    BigInteger.prototype.square = function () {
+        return new BigInteger(square(this.value), false);
+    };
+
+    SmallInteger.prototype.square = function () {
+        var value = this.value * this.value;
+        if (isPrecise(value)) return new SmallInteger(value);
+        return new BigInteger(square(smallToArray(Math.abs(this.value))), false);
+    };
+
+    function divMod1(a, b) { // Left over from previous version. Performs faster than divMod2 on smaller input sizes.
+        var a_l = a.length,
+            b_l = b.length,
+            base = BASE,
+            result = createArray(b.length),
+            divisorMostSignificantDigit = b[b_l - 1],
+            // normalization
+            lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)),
+            remainder = multiplySmall(a, lambda),
+            divisor = multiplySmall(b, lambda),
+            quotientDigit, shift, carry, borrow, i, l, q;
+        if (remainder.length <= a_l) remainder.push(0);
+        divisor.push(0);
+        divisorMostSignificantDigit = divisor[b_l - 1];
+        for (shift = a_l - b_l; shift >= 0; shift--) {
+            quotientDigit = base - 1;
+            if (remainder[shift + b_l] !== divisorMostSignificantDigit) {
+              quotientDigit = Math.floor((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) / divisorMostSignificantDigit);
+            }
+            // quotientDigit <= base - 1
+            carry = 0;
+            borrow = 0;
+            l = divisor.length;
+            for (i = 0; i < l; i++) {
+                carry += quotientDigit * divisor[i];
+                q = Math.floor(carry / base);
+                borrow += remainder[shift + i] - (carry - q * base);
+                carry = q;
+                if (borrow < 0) {
+                    remainder[shift + i] = borrow + base;
+                    borrow = -1;
+                } else {
+                    remainder[shift + i] = borrow;
+                    borrow = 0;
+                }
+            }
+            while (borrow !== 0) {
+                quotientDigit -= 1;
+                carry = 0;
+                for (i = 0; i < l; i++) {
+                    carry += remainder[shift + i] - base + divisor[i];
+                    if (carry < 0) {
+                        remainder[shift + i] = carry + base;
+                        carry = 0;
+                    } else {
+                        remainder[shift + i] = carry;
+                        carry = 1;
+                    }
+                }
+                borrow += carry;
+            }
+            result[shift] = quotientDigit;
+        }
+        // denormalization
+        remainder = divModSmall(remainder, lambda)[0];
+        return [arrayToSmall(result), arrayToSmall(remainder)];
+    }
+
+    function divMod2(a, b) { // Implementation idea shamelessly stolen from Silent Matt's library http://silentmatt.com/biginteger/
+        // Performs faster than divMod1 on larger input sizes.
+        var a_l = a.length,
+            b_l = b.length,
+            result = [],
+            part = [],
+            base = BASE,
+            guess, xlen, highx, highy, check;
+        while (a_l) {
+            part.unshift(a[--a_l]);
+            if (compareAbs(part, b) < 0) {
+                result.push(0);
+                continue;
+            }
+            xlen = part.length;
+            highx = part[xlen - 1] * base + part[xlen - 2];
+            highy = b[b_l - 1] * base + b[b_l - 2];
+            if (xlen > b_l) {
+                highx = (highx + 1) * base;
+            }
+            guess = Math.ceil(highx / highy);
+            do {
+                check = multiplySmall(b, guess);
+                if (compareAbs(check, part) <= 0) break;
+                guess--;
+            } while (guess);
+            result.push(guess);
+            part = subtract(part, check);
+        }
+        result.reverse();
+        return [arrayToSmall(result), arrayToSmall(part)];
+    }
+
+    function divModSmall(value, lambda) {
+        var length = value.length,
+            quotient = createArray(length),
+            base = BASE,
+            i, q, remainder, divisor;
+        remainder = 0;
+        for (i = length - 1; i >= 0; --i) {
+            divisor = remainder * base + value[i];
+            q = truncate(divisor / lambda);
+            remainder = divisor - q * lambda;
+            quotient[i] = q | 0;
+        }
+        return [quotient, remainder | 0];
+    }
+
+    function divModAny(self, v) {
+        var value, n = parseValue(v);
+        var a = self.value, b = n.value;
+        var quotient;
+        if (b === 0) throw new Error("Cannot divide by zero");
+        if (self.isSmall) {
+            if (n.isSmall) {
+                return [new SmallInteger(truncate(a / b)), new SmallInteger(a % b)];
+            }
+            return [CACHE[0], self];
+        }
+        if (n.isSmall) {
+            if (b === 1) return [self, CACHE[0]];
+            if (b == -1) return [self.negate(), CACHE[0]];
+            var abs = Math.abs(b);
+            if (abs < BASE) {
+                value = divModSmall(a, abs);
+                quotient = arrayToSmall(value[0]);
+                var remainder = value[1];
+                if (self.sign) remainder = -remainder;
+                if (typeof quotient === "number") {
+                    if (self.sign !== n.sign) quotient = -quotient;
+                    return [new SmallInteger(quotient), new SmallInteger(remainder)];
+                }
+                return [new BigInteger(quotient, self.sign !== n.sign), new SmallInteger(remainder)];
+            }
+            b = smallToArray(abs);
+        }
+        var comparison = compareAbs(a, b);
+        if (comparison === -1) return [CACHE[0], self];
+        if (comparison === 0) return [CACHE[self.sign === n.sign ? 1 : -1], CACHE[0]];
+
+        // divMod1 is faster on smaller input sizes
+        if (a.length + b.length <= 200)
+            value = divMod1(a, b);
+        else value = divMod2(a, b);
+
+        quotient = value[0];
+        var qSign = self.sign !== n.sign,
+            mod = value[1],
+            mSign = self.sign;
+        if (typeof quotient === "number") {
+            if (qSign) quotient = -quotient;
+            quotient = new SmallInteger(quotient);
+        } else quotient = new BigInteger(quotient, qSign);
+        if (typeof mod === "number") {
+            if (mSign) mod = -mod;
+            mod = new SmallInteger(mod);
+        } else mod = new BigInteger(mod, mSign);
+        return [quotient, mod];
+    }
+
+    BigInteger.prototype.divmod = function (v) {
+        var result = divModAny(this, v);
+        return {
+            quotient: result[0],
+            remainder: result[1]
+        };
+    };
+    SmallInteger.prototype.divmod = BigInteger.prototype.divmod;
+
+    BigInteger.prototype.divide = function (v) {
+        return divModAny(this, v)[0];
+    };
+    SmallInteger.prototype.over = SmallInteger.prototype.divide = BigInteger.prototype.over = BigInteger.prototype.divide;
+
+    BigInteger.prototype.mod = function (v) {
+        return divModAny(this, v)[1];
+    };
+    SmallInteger.prototype.remainder = SmallInteger.prototype.mod = BigInteger.prototype.remainder = BigInteger.prototype.mod;
+
+    BigInteger.prototype.pow = function (v) {
+        var n = parseValue(v),
+            a = this.value,
+            b = n.value,
+            value, x, y;
+        if (b === 0) return CACHE[1];
+        if (a === 0) return CACHE[0];
+        if (a === 1) return CACHE[1];
+        if (a === -1) return n.isEven() ? CACHE[1] : CACHE[-1];
+        if (n.sign) {
+            return CACHE[0];
+        }
+        if (!n.isSmall) throw new Error("The exponent " + n.toString() + " is too large.");
+        if (this.isSmall) {
+            if (isPrecise(value = Math.pow(a, b)))
+                return new SmallInteger(truncate(value));
+        }
+        x = this;
+        y = CACHE[1];
+        while (true) {
+            if (b & 1 === 1) {
+                y = y.times(x);
+                --b;
+            }
+            if (b === 0) break;
+            b /= 2;
+            x = x.square();
+        }
+        return y;
+    };
+    SmallInteger.prototype.pow = BigInteger.prototype.pow;
+
+    BigInteger.prototype.modPow = function (exp, mod) {
+        exp = parseValue(exp);
+        mod = parseValue(mod);
+        if (mod.isZero()) throw new Error("Cannot take modPow with modulus 0");
+        var r = CACHE[1],
+            base = this.mod(mod);
+        while (exp.isPositive()) {
+            if (base.isZero()) return CACHE[0];
+            if (exp.isOdd()) r = r.multiply(base).mod(mod);
+            exp = exp.divide(2);
+            base = base.square().mod(mod);
+        }
+        return r;
+    };
+    SmallInteger.prototype.modPow = BigInteger.prototype.modPow;
+
+    function compareAbs(a, b) {
+        if (a.length !== b.length) {
+            return a.length > b.length ? 1 : -1;
+        }
+        for (var i = a.length - 1; i >= 0; i--) {
+            if (a[i] !== b[i]) return a[i] > b[i] ? 1 : -1;
+        }
+        return 0;
+    }
+
+    BigInteger.prototype.compareAbs = function (v) {
+        var n = parseValue(v),
+            a = this.value,
+            b = n.value;
+        if (n.isSmall) return 1;
+        return compareAbs(a, b);
+    };
+    SmallInteger.prototype.compareAbs = function (v) {
+        var n = parseValue(v),
+            a = Math.abs(this.value),
+            b = n.value;
+        if (n.isSmall) {
+            b = Math.abs(b);
+            return a === b ? 0 : a > b ? 1 : -1;
+        }
+        return -1;
+    };
+
+    BigInteger.prototype.compare = function (v) {
+        // See discussion about comparison with Infinity:
+        // https://github.com/peterolson/BigInteger.js/issues/61
+        if (v === Infinity) {
+            return -1;
+        }
+        if (v === -Infinity) {
+            return 1;
+        }
+
+        var n = parseValue(v),
+            a = this.value,
+            b = n.value;
+        if (this.sign !== n.sign) {
+            return n.sign ? 1 : -1;
+        }
+        if (n.isSmall) {
+            return this.sign ? -1 : 1;
+        }
+        return compareAbs(a, b) * (this.sign ? -1 : 1);
+    };
+    BigInteger.prototype.compareTo = BigInteger.prototype.compare;
+
+    SmallInteger.prototype.compare = function (v) {
+        if (v === Infinity) {
+            return -1;
+        }
+        if (v === -Infinity) {
+            return 1;
+        }
+
+        var n = parseValue(v),
+            a = this.value,
+            b = n.value;
+        if (n.isSmall) {
+            return a == b ? 0 : a > b ? 1 : -1;
+        }
+        if (a < 0 !== n.sign) {
+            return a < 0 ? -1 : 1;
+        }
+        return a < 0 ? 1 : -1;
+    };
+    SmallInteger.prototype.compareTo = SmallInteger.prototype.compare;
+
+    BigInteger.prototype.equals = function (v) {
+        return this.compare(v) === 0;
+    };
+    SmallInteger.prototype.eq = SmallInteger.prototype.equals = BigInteger.prototype.eq = BigInteger.prototype.equals;
+
+    BigInteger.prototype.notEquals = function (v) {
+        return this.compare(v) !== 0;
+    };
+    SmallInteger.prototype.neq = SmallInteger.prototype.notEquals = BigInteger.prototype.neq = BigInteger.prototype.notEquals;
+
+    BigInteger.prototype.greater = function (v) {
+        return this.compare(v) > 0;
+    };
+    SmallInteger.prototype.gt = SmallInteger.prototype.greater = BigInteger.prototype.gt = BigInteger.prototype.greater;
+
+    BigInteger.prototype.lesser = function (v) {
+        return this.compare(v) < 0;
+    };
+    SmallInteger.prototype.lt = SmallInteger.prototype.lesser = BigInteger.prototype.lt = BigInteger.prototype.lesser;
+
+    BigInteger.prototype.greaterOrEquals = function (v) {
+        return this.compare(v) >= 0;
+    };
+    SmallInteger.prototype.geq = SmallInteger.prototype.greaterOrEquals = BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals;
+
+    BigInteger.prototype.lesserOrEquals = function (v) {
+        return this.compare(v) <= 0;
+    };
+    SmallInteger.prototype.leq = SmallInteger.prototype.lesserOrEquals = BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals;
+
+    BigInteger.prototype.isEven = function () {
+        return (this.value[0] & 1) === 0;
+    };
+    SmallInteger.prototype.isEven = function () {
+        return (this.value & 1) === 0;
+    };
+
+    BigInteger.prototype.isOdd = function () {
+        return (this.value[0] & 1) === 1;
+    };
+    SmallInteger.prototype.isOdd = function () {
+        return (this.value & 1) === 1;
+    };
+
+    BigInteger.prototype.isPositive = function () {
+        return !this.sign;
+    };
+    SmallInteger.prototype.isPositive = function () {
+        return this.value > 0;
+    };
+
+    BigInteger.prototype.isNegative = function () {
+        return this.sign;
+    };
+    SmallInteger.prototype.isNegative = function () {
+        return this.value < 0;
+    };
+
+    BigInteger.prototype.isUnit = function () {
+        return false;
+    };
+    SmallInteger.prototype.isUnit = function () {
+        return Math.abs(this.value) === 1;
+    };
+
+    BigInteger.prototype.isZero = function () {
+        return false;
+    };
+    SmallInteger.prototype.isZero = function () {
+        return this.value === 0;
+    };
+    BigInteger.prototype.isDivisibleBy = function (v) {
+        var n = parseValue(v);
+        var value = n.value;
+        if (value === 0) return false;
+        if (value === 1) return true;
+        if (value === 2) return this.isEven();
+        return this.mod(n).equals(CACHE[0]);
+    };
+    SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy;
+
+    function isBasicPrime(v) {
+        var n = v.abs();
+        if (n.isUnit()) return false;
+        if (n.equals(2) || n.equals(3) || n.equals(5)) return true;
+        if (n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) return false;
+        if (n.lesser(25)) return true;
+        // we don't know if it's prime: let the other functions figure it out
+    };
+
+    BigInteger.prototype.isPrime = function () {
+        var isPrime = isBasicPrime(this);
+        if (isPrime !== undefined) return isPrime;
+        var n = this.abs(),
+            nPrev = n.prev();
+        var a = [2, 3, 5, 7, 11, 13, 17, 19],
+            b = nPrev,
+            d, t, i, x;
+        while (b.isEven()) b = b.divide(2);
+        for (i = 0; i < a.length; i++) {
+            x = bigInt(a[i]).modPow(b, n);
+            if (x.equals(CACHE[1]) || x.equals(nPrev)) continue;
+            for (t = true, d = b; t && d.lesser(nPrev) ; d = d.multiply(2)) {
+                x = x.square().mod(n);
+                if (x.equals(nPrev)) t = false;
+            }
+            if (t) return false;
+        }
+        return true;
+    };
+    SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime;
+
+    BigInteger.prototype.isProbablePrime = function (iterations) {
+        var isPrime = isBasicPrime(this);
+        if (isPrime !== undefined) return isPrime;
+        var n = this.abs();
+        var t = iterations === undefined ? 5 : iterations;
+        // use the Fermat primality test
+        for (var i = 0; i < t; i++) {
+            var a = bigInt.randBetween(2, n.minus(2));
+            if (!a.modPow(n.prev(), n).isUnit()) return false; // definitely composite
+        }
+        return true; // large chance of being prime
+    };
+    SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime;
+
+    BigInteger.prototype.next = function () {
+        var value = this.value;
+        if (this.sign) {
+            return subtractSmall(value, 1, this.sign);
+        }
+        return new BigInteger(addSmall(value, 1), this.sign);
+    };
+    SmallInteger.prototype.next = function () {
+        var value = this.value;
+        if (value + 1 < MAX_INT) return new SmallInteger(value + 1);
+        return new BigInteger(MAX_INT_ARR, false);
+    };
+
+    BigInteger.prototype.prev = function () {
+        var value = this.value;
+        if (this.sign) {
+            return new BigInteger(addSmall(value, 1), true);
+        }
+        return subtractSmall(value, 1, this.sign);
+    };
+    SmallInteger.prototype.prev = function () {
+        var value = this.value;
+        if (value - 1 > -MAX_INT) return new SmallInteger(value - 1);
+        return new BigInteger(MAX_INT_ARR, true);
+    };
+
+    var powersOfTwo = [1];
+    while (powersOfTwo[powersOfTwo.length - 1] <= BASE) powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]);
+    var powers2Length = powersOfTwo.length, highestPower2 = powersOfTwo[powers2Length - 1];
+
+    function shift_isSmall(n) {
+        return ((typeof n === "number" || typeof n === "string") && +Math.abs(n) <= BASE) ||
+            (n instanceof BigInteger && n.value.length <= 1);
+    }
+
+    BigInteger.prototype.shiftLeft = function (n) {
+        if (!shift_isSmall(n)) {
+            throw new Error(String(n) + " is too large for shifting.");
+        }
+        n = +n;
+        if (n < 0) return this.shiftRight(-n);
+        var result = this;
+        while (n >= powers2Length) {
+            result = result.multiply(highestPower2);
+            n -= powers2Length - 1;
+        }
+        return result.multiply(powersOfTwo[n]);
+    };
+    SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft;
+
+    BigInteger.prototype.shiftRight = function (n) {
+        var remQuo;
+        if (!shift_isSmall(n)) {
+            throw new Error(String(n) + " is too large for shifting.");
+        }
+        n = +n;
+        if (n < 0) return this.shiftLeft(-n);
+        var result = this;
+        while (n >= powers2Length) {
+            if (result.isZero()) return result;
+            remQuo = divModAny(result, highestPower2);
+            result = remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];
+            n -= powers2Length - 1;
+        }
+        remQuo = divModAny(result, powersOfTwo[n]);
+        return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];
+    };
+    SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight;
+
+    function bitwise(x, y, fn) {
+        y = parseValue(y);
+        var xSign = x.isNegative(), ySign = y.isNegative();
+        var xRem = xSign ? x.not() : x,
+            yRem = ySign ? y.not() : y;
+        var xBits = [], yBits = [];
+        var xStop = false, yStop = false;
+        while (!xStop || !yStop) {
+            if (xRem.isZero()) { // virtual sign extension for simulating two's complement
+                xStop = true;
+                xBits.push(xSign ? 1 : 0);
+            }
+            else if (xSign) xBits.push(xRem.isEven() ? 1 : 0); // two's complement for negative numbers
+            else xBits.push(xRem.isEven() ? 0 : 1);
+
+            if (yRem.isZero()) {
+                yStop = true;
+                yBits.push(ySign ? 1 : 0);
+            }
+            else if (ySign) yBits.push(yRem.isEven() ? 1 : 0);
+            else yBits.push(yRem.isEven() ? 0 : 1);
+
+            xRem = xRem.over(2);
+            yRem = yRem.over(2);
+        }
+        var result = [];
+        for (var i = 0; i < xBits.length; i++) result.push(fn(xBits[i], yBits[i]));
+        var sum = bigInt(result.pop()).negate().times(bigInt(2).pow(result.length));
+        while (result.length) {
+            sum = sum.add(bigInt(result.pop()).times(bigInt(2).pow(result.length)));
+        }
+        return sum;
+    }
+
+    BigInteger.prototype.not = function () {
+        return this.negate().prev();
+    };
+    SmallInteger.prototype.not = BigInteger.prototype.not;
+
+    BigInteger.prototype.and = function (n) {
+        return bitwise(this, n, function (a, b) { return a & b; });
+    };
+    SmallInteger.prototype.and = BigInteger.prototype.and;
+
+    BigInteger.prototype.or = function (n) {
+        return bitwise(this, n, function (a, b) { return a | b; });
+    };
+    SmallInteger.prototype.or = BigInteger.prototype.or;
+
+    BigInteger.prototype.xor = function (n) {
+        return bitwise(this, n, function (a, b) { return a ^ b; });
+    };
+    SmallInteger.prototype.xor = BigInteger.prototype.xor;
+
+    var LOBMASK_I = 1 << 30, LOBMASK_BI = (BASE & -BASE) * (BASE & -BASE) | LOBMASK_I;
+    function roughLOB(n) { // get lowestOneBit (rough)
+        // SmallInteger: return Min(lowestOneBit(n), 1 << 30)
+        // BigInteger: return Min(lowestOneBit(n), 1 << 14) [BASE=1e7]
+        var v = n.value, x = typeof v === "number" ? v | LOBMASK_I : v[0] + v[1] * BASE | LOBMASK_BI;
+        return x & -x;
+    }
+
+    function max(a, b) {
+        a = parseValue(a);
+        b = parseValue(b);
+        return a.greater(b) ? a : b;
+    }
+    function min(a,b) {
+        a = parseValue(a);
+        b = parseValue(b);
+        return a.lesser(b) ? a : b;
+    }
+    function gcd(a, b) {
+        a = parseValue(a).abs();
+        b = parseValue(b).abs();
+        if (a.equals(b)) return a;
+        if (a.isZero()) return b;
+        if (b.isZero()) return a;
+        var c = CACHE[1], d, t;
+        while (a.isEven() && b.isEven()) {
+            d = Math.min(roughLOB(a), roughLOB(b));
+            a = a.divide(d);
+            b = b.divide(d);
+            c = c.multiply(d);
+        }
+        while (a.isEven()) {
+            a = a.divide(roughLOB(a));
+        }
+        do {
+            while (b.isEven()) {
+                b = b.divide(roughLOB(b));
+            }
+            if (a.greater(b)) {
+                t = b; b = a; a = t;
+            }
+            b = b.subtract(a);
+        } while (!b.isZero());
+        return c.isUnit() ? a : a.multiply(c);
+    }
+    function lcm(a, b) {
+        a = parseValue(a).abs();
+        b = parseValue(b).abs();
+        return a.divide(gcd(a, b)).multiply(b);
+    }
+    function randBetween(a, b) {
+        a = parseValue(a);
+        b = parseValue(b);
+        var low = min(a, b), high = max(a, b);
+        var range = high.subtract(low);
+        if (range.isSmall) return low.add(Math.round(Math.random() * range));
+        var length = range.value.length - 1;
+        var result = [], restricted = true;
+        for (var i = length; i >= 0; i--) {
+            var top = restricted ? range.value[i] : BASE;
+            var digit = truncate(Math.random() * top);
+            result.unshift(digit);
+            if (digit < top) restricted = false;
+        }
+        result = arrayToSmall(result);
+        return low.add(typeof result === "number" ? new SmallInteger(result) : new BigInteger(result, false));
+    }
+    var parseBase = function (text, base) {
+        var val = CACHE[0], pow = CACHE[1],
+            length = text.length;
+        if (2 <= base && base <= 36) {
+            if (length <= LOG_MAX_INT / Math.log(base)) {
+                return new SmallInteger(parseInt(text, base));
+            }
+        }
+        base = parseValue(base);
+        var digits = [];
+        var i;
+        var isNegative = text[0] === "-";
+        for (i = isNegative ? 1 : 0; i < text.length; i++) {
+            var c = text[i].toLowerCase(),
+                charCode = c.charCodeAt(0);
+            if (48 <= charCode && charCode <= 57) digits.push(parseValue(c));
+            else if (97 <= charCode && charCode <= 122) digits.push(parseValue(c.charCodeAt(0) - 87));
+            else if (c === "<") {
+                var start = i;
+                do { i++; } while (text[i] !== ">");
+                digits.push(parseValue(text.slice(start + 1, i)));
+            }
+            else throw new Error(c + " is not a valid character");
+        }
+        digits.reverse();
+        for (i = 0; i < digits.length; i++) {
+            val = val.add(digits[i].times(pow));
+            pow = pow.times(base);
+        }
+        return isNegative ? val.negate() : val;
+    };
+
+    function stringify(digit) {
+        var v = digit.value;
+        if (typeof v === "number") v = [v];
+        if (v.length === 1 && v[0] <= 35) {
+            return "0123456789abcdefghijklmnopqrstuvwxyz".charAt(v[0]);
+        }
+        return "<" + v + ">";
+    }
+    function toBase(n, base) {
+        base = bigInt(base);
+        if (base.isZero()) {
+            if (n.isZero()) return "0";
+            throw new Error("Cannot convert nonzero numbers to base 0.");
+        }
+        if (base.equals(-1)) {
+            if (n.isZero()) return "0";
+            if (n.isNegative()) return new Array(1 - n).join("10");
+            return "1" + new Array(+n).join("01");
+        }
+        var minusSign = "";
+        if (n.isNegative() && base.isPositive()) {
+            minusSign = "-";
+            n = n.abs();
+        }
+        if (base.equals(1)) {
+            if (n.isZero()) return "0";
+            return minusSign + new Array(+n + 1).join(1);
+        }
+        var out = [];
+        var left = n, divmod;
+        while (left.isNegative() || left.compareAbs(base) >= 0) {
+            divmod = left.divmod(base);
+            left = divmod.quotient;
+            var digit = divmod.remainder;
+            if (digit.isNegative()) {
+                digit = base.minus(digit).abs();
+                left = left.next();
+            }
+            out.push(stringify(digit));
+        }
+        out.push(stringify(left));
+        return minusSign + out.reverse().join("");
+    }
+
+    BigInteger.prototype.toString = function (radix) {
+        if (radix === undefined) radix = 10;
+        if (radix !== 10) return toBase(this, radix);
+        var v = this.value, l = v.length, str = String(v[--l]), zeros = "0000000", digit;
+        while (--l >= 0) {
+            digit = String(v[l]);
+            str += zeros.slice(digit.length) + digit;
+        }
+        var sign = this.sign ? "-" : "";
+        return sign + str;
+    };
+    SmallInteger.prototype.toString = function (radix) {
+        if (radix === undefined) radix = 10;
+        if (radix != 10) return toBase(this, radix);
+        return String(this.value);
+    };
+
+    BigInteger.prototype.valueOf = function () {
+        return +this.toString();
+    };
+    BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf;
+
+    SmallInteger.prototype.valueOf = function () {
+        return this.value;
+    };
+    SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf;
+    
+    function parseStringValue(v) {
+            if (isPrecise(+v)) {
+                var x = +v;
+                if (x === truncate(x))
+                    return new SmallInteger(x);
+                throw "Invalid integer: " + v;
+            }
+            var sign = v[0] === "-";
+            if (sign) v = v.slice(1);
+            var split = v.split(/e/i);
+            if (split.length > 2) throw new Error("Invalid integer: " + text.join("e"));
+            if (split.length === 2) {
+                var exp = split[1];
+                if (exp[0] === "+") exp = exp.slice(1);
+                exp = +exp;
+                if (exp !== truncate(exp) || !isPrecise(exp)) throw new Error("Invalid integer: " + exp + " is not a valid exponent.");
+                var text = split[0];
+                var decimalPlace = text.indexOf(".");
+                if (decimalPlace >= 0) {
+                    exp -= text.length - decimalPlace - 1;
+                    text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1);
+                }
+                if (exp < 0) throw new Error("Cannot include negative exponent part for integers");
+                text += (new Array(exp + 1)).join("0");
+                v = text;
+            }
+            var isValid = /^([0-9][0-9]*)$/.test(v);
+            if (!isValid) throw new Error("Invalid integer: " + v);
+            var r = [], max = v.length, l = LOG_BASE, min = max - l;
+            while (max > 0) {
+                r.push(+v.slice(min, max));
+                min -= l;
+                if (min < 0) min = 0;
+                max -= l;
+            }
+            trim(r);
+            return new BigInteger(r, sign);
+    }
+    
+    function parseNumberValue(v) {
+            if (isPrecise(v)) return new SmallInteger(v);
+            return parseStringValue(v.toString());
+    }
+
+    function parseValue(v) {
+        if (typeof v === "number") {
+            return parseNumberValue(v);
+        }
+        if (typeof v === "string") {
+            return parseStringValue(v);
+        }
+        return v;
+    }
+    // Pre-define numbers in range [-999,999]
+    var CACHE = function (v, radix) {
+        if (typeof v === "undefined") return CACHE[0];
+        if (typeof radix !== "undefined") return +radix === 10 ? parseValue(v) : parseBase(v, radix);
+        return parseValue(v);
+    };
+    for (var i = 0; i < 1000; i++) {
+        CACHE[i] = new SmallInteger(i);
+        if (i > 0) CACHE[-i] = new SmallInteger(-i);
+    }
+    // Backwards compatibility
+    CACHE.one = CACHE[1];
+    CACHE.zero = CACHE[0];
+    CACHE.minusOne = CACHE[-1];
+    CACHE.max = max;
+    CACHE.min = min;
+    CACHE.gcd = gcd;
+    CACHE.lcm = lcm;
+    CACHE.isInstance = function (x) { return x instanceof BigInteger || x instanceof SmallInteger; };
+    CACHE.randBetween = randBetween;
+    return CACHE;
+})();
+
+// Node.js check
+if (typeof module !== "undefined" && module.hasOwnProperty("exports")) {
+    module.exports = bigInt;
+}

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/BigInteger.min.js
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/BigInteger.min.js b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/BigInteger.min.js
new file mode 100644
index 0000000..b39f103
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/BigInteger.min.js
@@ -0,0 +1 @@
+var bigInt=function(e){"use strict";function o(e,t){this.value=e,this.sign=t,this.isSmall=!1}function u(e){this.value=e,this.sign=e<0,this.isSmall=!0}function a(e){return-r<e&&e<r}function f(e){return e<1e7?[e]:e<1e14?[e%1e7,Math.floor(e/1e7)]:[e%1e7,Math.floor(e/1e7)%1e7,Math.floor(e/1e14)]}function l(e){c(e);var n=e.length;if(n<4&&O(e,i)<0)switch(n){case 0:return 0;case 1:return e[0];case 2:return e[0]+e[1]*t;default:return e[0]+(e[1]+e[2]*t)*t}return e}function c(e){var t=e.length;while(e[--t]===0);e.length=t+1}function h(e){var t=new Array(e),n=-1;while(++n<e)t[n]=0;return t}function p(e){return e>0?Math.floor(e):Math.ceil(e)}function d(e,n){var r=e.length,i=n.length,s=new Array(r),o=0,u=t,a,f;for(f=0;f<i;f++)a=e[f]+n[f]+o,o=a>=u?1:0,s[f]=a-o*u;while(f<r)a=e[f]+o,o=a===u?1:0,s[f++]=a-o*u;return o>0&&s.push(o),s}function v(e,t){return e.length>=t.length?d(e,t):d(t,e)}function m(e,n){var r=e.length,i=new Array(r),s=t,o,u;for(u=0;u<r;u++)o=e[u]-s+n,n=Math.floor(o/s),i[u]=o-n*s,n+=1
 ;while(n>0)i[u++]=n%s,n=Math.floor(n/s);return i}function g(e,n){var r=e.length,i=n.length,s=new Array(r),o=0,u=t,a,f;for(a=0;a<i;a++)f=e[a]-o-n[a],f<0?(f+=u,o=1):o=0,s[a]=f;for(a=i;a<r;a++){f=e[a]-o;if(!(f<0)){s[a++]=f;break}f+=u,s[a]=f}for(;a<r;a++)s[a]=e[a];return c(s),s}function y(e,t,n){var r,i;return O(e,t)>=0?r=g(e,t):(r=g(t,e),n=!n),r=l(r),typeof r=="number"?(n&&(r=-r),new u(r)):new o(r,n)}function b(e,n,r){var i=e.length,s=new Array(i),a=-n,f=t,c,h;for(c=0;c<i;c++)h=e[c]+a,a=Math.floor(h/f),h%=f,s[c]=h<0?h+f:h;return s=l(s),typeof s=="number"?(r&&(s=-s),new u(s)):new o(s,r)}function w(e,n){var r=e.length,i=n.length,s=r+i,o=h(s),u=t,a,f,l,p,d;for(l=0;l<r;++l){p=e[l];for(var v=0;v<i;++v)d=n[v],a=p*d+o[l+v],f=Math.floor(a/u),o[l+v]=a-f*u,o[l+v+1]+=f}return c(o),o}function E(e,n){var r=e.length,i=new Array(r),s=t,o=0,u,a;for(a=0;a<r;a++)u=e[a]*n+o,o=Math.floor(u/s),i[a]=u-o*s;while(o>0)i[a++]=o%s,o=Math.floor(o/s);return i}function S(e,t){var n=[];while(t-->0)n.push(0);return n
 .concat(e)}function x(e,t){var n=Math.max(e.length,t.length);if(n<=400)return w(e,t);n=Math.ceil(n/2);var r=e.slice(n),i=e.slice(0,n),s=t.slice(n),o=t.slice(0,n),u=x(i,o),a=x(r,s),f=x(v(i,r),v(o,s));return v(v(u,S(g(g(f,u),a),n)),S(a,2*n))}function T(e,n,r){return e<t?new o(E(n,e),r):new o(w(n,f(e)),r)}function N(e){var n=e.length,r=h(n+n),i=t,s,o,u,a,f;for(u=0;u<n;u++){a=e[u];for(var l=0;l<n;l++)f=e[l],s=a*f+r[u+l],o=Math.floor(s/i),r[u+l]=s-o*i,r[u+l+1]+=o}return c(r),r}function C(e,n){var r=e.length,i=n.length,s=t,o=h(n.length),u=n[i-1],a=Math.ceil(s/(2*u)),f=E(e,a),c=E(n,a),p,d,v,m,g,y,b;f.length<=r&&f.push(0),c.push(0),u=c[i-1];for(d=r-i;d>=0;d--){p=s-1,f[d+i]!==u&&(p=Math.floor((f[d+i]*s+f[d+i-1])/u)),v=0,m=0,y=c.length;for(g=0;g<y;g++)v+=p*c[g],b=Math.floor(v/s),m+=f[d+g]-(v-b*s),v=b,m<0?(f[d+g]=m+s,m=-1):(f[d+g]=m,m=0);while(m!==0){p-=1,v=0;for(g=0;g<y;g++)v+=f[d+g]-s+c[g],v<0?(f[d+g]=v+s,v=0):(f[d+g]=v,v=1);m+=v}o[d]=p}return f=L(f,a)[0],[l(o),l(f)]}function k(e,n){var r=e.
 length,i=n.length,s=[],o=[],u=t,a,f,c,h,p;while(r){o.unshift(e[--r]);if(O(o,n)<0){s.push(0);continue}f=o.length,c=o[f-1]*u+o[f-2],h=n[i-1]*u+n[i-2],f>i&&(c=(c+1)*u),a=Math.ceil(c/h);do{p=E(n,a);if(O(p,o)<=0)break;a--}while(a);s.push(a),o=g(o,p)}return s.reverse(),[l(s),l(o)]}function L(e,n){var r=e.length,i=h(r),s=t,o,u,a,f;a=0;for(o=r-1;o>=0;--o)f=a*s+e[o],u=p(f/n),a=f-u*n,i[o]=u|0;return[i,a|0]}function A(e,n){var r,i=Q(n),s=e.value,a=i.value,c;if(a===0)throw new Error("Cannot divide by zero");if(e.isSmall)return i.isSmall?[new u(p(s/a)),new u(s%a)]:[G[0],e];if(i.isSmall){if(a===1)return[e,G[0]];if(a==-1)return[e.negate(),G[0]];var h=Math.abs(a);if(h<t){r=L(s,h),c=l(r[0]);var d=r[1];return e.sign&&(d=-d),typeof c=="number"?(e.sign!==i.sign&&(c=-c),[new u(c),new u(d)]):[new o(c,e.sign!==i.sign),new u(d)]}a=f(h)}var v=O(s,a);if(v===-1)return[G[0],e];if(v===0)return[G[e.sign===i.sign?1:-1],G[0]];s.length+a.length<=200?r=C(s,a):r=k(s,a),c=r[0];var m=e.sign!==i.sign,g=r[1],y=e.sign;ret
 urn typeof c=="number"?(m&&(c=-c),c=new u(c)):c=new o(c,m),typeof g=="number"?(y&&(g=-g),g=new u(g)):g=new o(g,y),[c,g]}function O(e,t){if(e.length!==t.length)return e.length>t.length?1:-1;for(var n=e.length-1;n>=0;n--)if(e[n]!==t[n])return e[n]>t[n]?1:-1;return 0}function M(e){var t=e.abs();if(t.isUnit())return!1;if(t.equals(2)||t.equals(3)||t.equals(5))return!0;if(t.isEven()||t.isDivisibleBy(3)||t.isDivisibleBy(5))return!1;if(t.lesser(25))return!0}function H(e){return(typeof e=="number"||typeof e=="string")&&+Math.abs(e)<=t||e instanceof o&&e.value.length<=1}function B(e,t,n){t=Q(t);var r=e.isNegative(),i=t.isNegative(),s=r?e.not():e,o=i?t.not():t,u=[],a=[],f=!1,l=!1;while(!f||!l)s.isZero()?(f=!0,u.push(r?1:0)):r?u.push(s.isEven()?1:0):u.push(s.isEven()?0:1),o.isZero()?(l=!0,a.push(i?1:0)):i?a.push(o.isEven()?1:0):a.push(o.isEven()?0:1),s=s.over(2),o=o.over(2);var c=[];for(var h=0;h<u.length;h++)c.push(n(u[h],a[h]));var p=bigInt(c.pop()).negate().times(bigInt(2).pow(c.length));whi
 le(c.length)p=p.add(bigInt(c.pop()).times(bigInt(2).pow(c.length)));return p}function I(e){var n=e.value,r=typeof n=="number"?n|j:n[0]+n[1]*t|F;return r&-r}function q(e,t){return e=Q(e),t=Q(t),e.greater(t)?e:t}function R(e,t){return e=Q(e),t=Q(t),e.lesser(t)?e:t}function U(e,t){e=Q(e).abs(),t=Q(t).abs();if(e.equals(t))return e;if(e.isZero())return t;if(t.isZero())return e;var n=G[1],r,i;while(e.isEven()&&t.isEven())r=Math.min(I(e),I(t)),e=e.divide(r),t=t.divide(r),n=n.multiply(r);while(e.isEven())e=e.divide(I(e));do{while(t.isEven())t=t.divide(I(t));e.greater(t)&&(i=t,t=e,e=i),t=t.subtract(e)}while(!t.isZero());return n.isUnit()?e:e.multiply(n)}function z(e,t){return e=Q(e).abs(),t=Q(t).abs(),e.divide(U(e,t)).multiply(t)}function W(e,n){e=Q(e),n=Q(n);var r=R(e,n),i=q(e,n),s=i.subtract(r);if(s.isSmall)return r.add(Math.round(Math.random()*s));var a=s.value.length-1,f=[],c=!0;for(var h=a;h>=0;h--){var d=c?s.value[h]:t,v=p(Math.random()*d);f.unshift(v),v<d&&(c=!1)}return f=l(f),r.add(t
 ypeof f=="number"?new u(f):new o(f,!1))}function V(e){var t=e.value;return typeof t=="number"&&(t=[t]),t.length===1&&t[0]<=35?"0123456789abcdefghijklmnopqrstuvwxyz".charAt(t[0]):"<"+t+">"}function $(e,t){t=bigInt(t);if(t.isZero()){if(e.isZero())return"0";throw new Error("Cannot convert nonzero numbers to base 0.")}if(t.equals(-1))return e.isZero()?"0":e.isNegative()?(new Array(1-e)).join("10"):"1"+(new Array(+e)).join("01");var n="";e.isNegative()&&t.isPositive()&&(n="-",e=e.abs());if(t.equals(1))return e.isZero()?"0":n+(new Array(+e+1)).join(1);var r=[],i=e,s;while(i.isNegative()||i.compareAbs(t)>=0){s=i.divmod(t),i=s.quotient;var o=s.remainder;o.isNegative()&&(o=t.minus(o).abs(),i=i.next()),r.push(V(o))}return r.push(V(i)),n+r.reverse().join("")}function J(e){if(a(+e)){var t=+e;if(t===p(t))return new u(t);throw"Invalid integer: "+e}var r=e[0]==="-";r&&(e=e.slice(1));var i=e.split(/e/i);if(i.length>2)throw new Error("Invalid integer: "+f.join("e"));if(i.length===2){var s=i[1];s[0]=
 =="+"&&(s=s.slice(1)),s=+s;if(s!==p(s)||!a(s))throw new Error("Invalid integer: "+s+" is not a valid exponent.");var f=i[0],l=f.indexOf(".");l>=0&&(s-=f.length-l-1,f=f.slice(0,l)+f.slice(l+1));if(s<0)throw new Error("Cannot include negative exponent part for integers");f+=(new Array(s+1)).join("0"),e=f}var h=/^([0-9][0-9]*)$/.test(e);if(!h)throw new Error("Invalid integer: "+e);var d=[],v=e.length,m=n,g=v-m;while(v>0)d.push(+e.slice(g,v)),g-=m,g<0&&(g=0),v-=m;return c(d),new o(d,r)}function K(e){return a(e)?new u(e):J(e.toString())}function Q(e){return typeof e=="number"?K(e):typeof e=="string"?J(e):e}var t=1e7,n=7,r=9007199254740992,i=f(r),s=Math.log(r);o.prototype.add=function(e){var t,n=Q(e);if(this.sign!==n.sign)return this.subtract(n.negate());var r=this.value,i=n.value;return n.isSmall?new o(m(r,Math.abs(i)),this.sign):new o(v(r,i),this.sign)},o.prototype.plus=o.prototype.add,u.prototype.add=function(e){var t=Q(e),n=this.value;if(n<0!==t.sign)return this.subtract(t.negate());v
 ar r=t.value;if(t.isSmall){if(a(n+r))return new u(n+r);r=f(Math.abs(r))}return new o(m(r,Math.abs(n)),n<0)},u.prototype.plus=u.prototype.add,o.prototype.subtract=function(e){var t=Q(e);if(this.sign!==t.sign)return this.add(t.negate());var n=this.value,r=t.value;return t.isSmall?b(n,Math.abs(r),this.sign):y(n,r,this.sign)},o.prototype.minus=o.prototype.subtract,u.prototype.subtract=function(e){var t=Q(e),n=this.value;if(n<0!==t.sign)return this.add(t.negate());var r=t.value;return t.isSmall?new u(n-r):b(r,Math.abs(n),n>=0)},u.prototype.minus=u.prototype.subtract,o.prototype.negate=function(){return new o(this.value,!this.sign)},u.prototype.negate=function(){var e=this.sign,t=new u(-this.value);return t.sign=!e,t},o.prototype.abs=function(){return new o(this.value,!1)},u.prototype.abs=function(){return new u(Math.abs(this.value))},o.prototype.multiply=function(e){var n,r=Q(e),i=this.value,s=r.value,u=this.sign!==r.sign,a;if(r.isSmall){if(s===0)return G[0];if(s===1)return this;if(s===-
 1)return this.negate();a=Math.abs(s);if(a<t)return new o(E(i,a),u);s=f(a)}return i.length+s.length>4e3?new o(x(i,s),u):new o(w(i,s),u)},o.prototype.times=o.prototype.multiply,u.prototype._multiplyBySmall=function(e){return a(e.value*this.value)?new u(e.value*this.value):T(Math.abs(e.value),f(Math.abs(this.value)),this.sign!==e.sign)},o.prototype._multiplyBySmall=function(e){return e.value===0?G[0]:e.value===1?this:e.value===-1?this.negate():T(Math.abs(e.value),this.value,this.sign!==e.sign)},u.prototype.multiply=function(e){return Q(e)._multiplyBySmall(this)},u.prototype.times=u.prototype.multiply,o.prototype.square=function(){return new o(N(this.value),!1)},u.prototype.square=function(){var e=this.value*this.value;return a(e)?new u(e):new o(N(f(Math.abs(this.value))),!1)},o.prototype.divmod=function(e){var t=A(this,e);return{quotient:t[0],remainder:t[1]}},u.prototype.divmod=o.prototype.divmod,o.prototype.divide=function(e){return A(this,e)[0]},u.prototype.over=u.prototype.divide=o.
 prototype.over=o.prototype.divide,o.prototype.mod=function(e){return A(this,e)[1]},u.prototype.remainder=u.prototype.mod=o.prototype.remainder=o.prototype.mod,o.prototype.pow=function(e){var t=Q(e),n=this.value,r=t.value,i,s,o;if(r===0)return G[1];if(n===0)return G[0];if(n===1)return G[1];if(n===-1)return t.isEven()?G[1]:G[-1];if(t.sign)return G[0];if(!t.isSmall)throw new Error("The exponent "+t.toString()+" is too large.");if(this.isSmall&&a(i=Math.pow(n,r)))return new u(p(i));s=this,o=G[1];for(;;){r&!0&&(o=o.times(s),--r);if(r===0)break;r/=2,s=s.square()}return o},u.prototype.pow=o.prototype.pow,o.prototype.modPow=function(e,t){e=Q(e),t=Q(t);if(t.isZero())throw new Error("Cannot take modPow with modulus 0");var n=G[1],r=this.mod(t);while(e.isPositive()){if(r.isZero())return G[0];e.isOdd()&&(n=n.multiply(r).mod(t)),e=e.divide(2),r=r.square().mod(t)}return n},u.prototype.modPow=o.prototype.modPow,o.prototype.compareAbs=function(e){var t=Q(e),n=this.value,r=t.value;return t.isSmall?1
 :O(n,r)},u.prototype.compareAbs=function(e){var t=Q(e),n=Math.abs(this.value),r=t.value;return t.isSmall?(r=Math.abs(r),n===r?0:n>r?1:-1):-1},o.prototype.compare=function(e){if(e===Infinity)return-1;if(e===-Infinity)return 1;var t=Q(e),n=this.value,r=t.value;return this.sign!==t.sign?t.sign?1:-1:t.isSmall?this.sign?-1:1:O(n,r)*(this.sign?-1:1)},o.prototype.compareTo=o.prototype.compare,u.prototype.compare=function(e){if(e===Infinity)return-1;if(e===-Infinity)return 1;var t=Q(e),n=this.value,r=t.value;return t.isSmall?n==r?0:n>r?1:-1:n<0!==t.sign?n<0?-1:1:n<0?1:-1},u.prototype.compareTo=u.prototype.compare,o.prototype.equals=function(e){return this.compare(e)===0},u.prototype.eq=u.prototype.equals=o.prototype.eq=o.prototype.equals,o.prototype.notEquals=function(e){return this.compare(e)!==0},u.prototype.neq=u.prototype.notEquals=o.prototype.neq=o.prototype.notEquals,o.prototype.greater=function(e){return this.compare(e)>0},u.prototype.gt=u.prototype.greater=o.prototype.gt=o.prototype
 .greater,o.prototype.lesser=function(e){return this.compare(e)<0},u.prototype.lt=u.prototype.lesser=o.prototype.lt=o.prototype.lesser,o.prototype.greaterOrEquals=function(e){return this.compare(e)>=0},u.prototype.geq=u.prototype.greaterOrEquals=o.prototype.geq=o.prototype.greaterOrEquals,o.prototype.lesserOrEquals=function(e){return this.compare(e)<=0},u.prototype.leq=u.prototype.lesserOrEquals=o.prototype.leq=o.prototype.lesserOrEquals,o.prototype.isEven=function(){return(this.value[0]&1)===0},u.prototype.isEven=function(){return(this.value&1)===0},o.prototype.isOdd=function(){return(this.value[0]&1)===1},u.prototype.isOdd=function(){return(this.value&1)===1},o.prototype.isPositive=function(){return!this.sign},u.prototype.isPositive=function(){return this.value>0},o.prototype.isNegative=function(){return this.sign},u.prototype.isNegative=function(){return this.value<0},o.prototype.isUnit=function(){return!1},u.prototype.isUnit=function(){return Math.abs(this.value)===1},o.prototype
 .isZero=function(){return!1},u.prototype.isZero=function(){return this.value===0},o.prototype.isDivisibleBy=function(e){var t=Q(e),n=t.value;return n===0?!1:n===1?!0:n===2?this.isEven():this.mod(t).equals(G[0])},u.prototype.isDivisibleBy=o.prototype.isDivisibleBy,o.prototype.isPrime=function(){var t=M(this);if(t!==e)return t;var n=this.abs(),r=n.prev(),i=[2,3,5,7,11,13,17,19],s=r,o,u,a,f;while(s.isEven())s=s.divide(2);for(a=0;a<i.length;a++){f=bigInt(i[a]).modPow(s,n);if(f.equals(G[1])||f.equals(r))continue;for(u=!0,o=s;u&&o.lesser(r);o=o.multiply(2))f=f.square().mod(n),f.equals(r)&&(u=!1);if(u)return!1}return!0},u.prototype.isPrime=o.prototype.isPrime,o.prototype.isProbablePrime=function(t){var n=M(this);if(n!==e)return n;var r=this.abs(),i=t===e?5:t;for(var s=0;s<i;s++){var o=bigInt.randBetween(2,r.minus(2));if(!o.modPow(r.prev(),r).isUnit())return!1}return!0},u.prototype.isProbablePrime=o.prototype.isProbablePrime,o.prototype.next=function(){var e=this.value;return this.sign?b(e,
 1,this.sign):new o(m(e,1),this.sign)},u.prototype.next=function(){var e=this.value;return e+1<r?new u(e+1):new o(i,!1)},o.prototype.prev=function(){var e=this.value;return this.sign?new o(m(e,1),!0):b(e,1,this.sign)},u.prototype.prev=function(){var e=this.value;return e-1>-r?new u(e-1):new o(i,!0)};var _=[1];while(_[_.length-1]<=t)_.push(2*_[_.length-1]);var D=_.length,P=_[D-1];o.prototype.shiftLeft=function(e){if(!H(e))throw new Error(String(e)+" is too large for shifting.");e=+e;if(e<0)return this.shiftRight(-e);var t=this;while(e>=D)t=t.multiply(P),e-=D-1;return t.multiply(_[e])},u.prototype.shiftLeft=o.prototype.shiftLeft,o.prototype.shiftRight=function(e){var t;if(!H(e))throw new Error(String(e)+" is too large for shifting.");e=+e;if(e<0)return this.shiftLeft(-e);var n=this;while(e>=D){if(n.isZero())return n;t=A(n,P),n=t[1].isNegative()?t[0].prev():t[0],e-=D-1}return t=A(n,_[e]),t[1].isNegative()?t[0].prev():t[0]},u.prototype.shiftRight=o.prototype.shiftRight,o.prototype.not=fu
 nction(){return this.negate().prev()},u.prototype.not=o.prototype.not,o.prototype.and=function(e){return B(this,e,function(e,t){return e&t})},u.prototype.and=o.prototype.and,o.prototype.or=function(e){return B(this,e,function(e,t){return e|t})},u.prototype.or=o.prototype.or,o.prototype.xor=function(e){return B(this,e,function(e,t){return e^t})},u.prototype.xor=o.prototype.xor;var j=1<<30,F=(t&-t)*(t&-t)|j,X=function(e,t){var n=G[0],r=G[1],i=e.length;if(2<=t&&t<=36&&i<=s/Math.log(t))return new u(parseInt(e,t));t=Q(t);var o=[],a,f=e[0]==="-";for(a=f?1:0;a<e.length;a++){var l=e[a].toLowerCase(),c=l.charCodeAt(0);if(48<=c&&c<=57)o.push(Q(l));else if(97<=c&&c<=122)o.push(Q(l.charCodeAt(0)-87));else{if(l!=="<")throw new Error(l+" is not a valid character");var h=a;do a++;while(e[a]!==">");o.push(Q(e.slice(h+1,a)))}}o.reverse();for(a=0;a<o.length;a++)n=n.add(o[a].times(r)),r=r.times(t);return f?n.negate():n};o.prototype.toString=function(t){t===e&&(t=10);if(t!==10)return $(this,t);var n=th
 is.value,r=n.length,i=String(n[--r]),s="0000000",o;while(--r>=0)o=String(n[r]),i+=s.slice(o.length)+o;var u=this.sign?"-":"";return u+i},u.prototype.toString=function(t){return t===e&&(t=10),t!=10?$(this,t):String(this.value)},o.prototype.valueOf=function(){return+this.toString()},o.prototype.toJSNumber=o.prototype.valueOf,u.prototype.valueOf=function(){return this.value},u.prototype.toJSNumber=u.prototype.valueOf;var G=function(e,t){return typeof e=="undefined"?G[0]:typeof t!="undefined"?+t===10?Q(e):X(e,t):Q(e)};for(var Y=0;Y<1e3;Y++)G[Y]=new u(Y),Y>0&&(G[-Y]=new u(-Y));return G.one=G[1],G.zero=G[0],G.minusOne=G[-1],G.max=q,G.min=R,G.gcd=U,G.lcm=z,G.isInstance=function(e){return e instanceof o||e instanceof u},G.randBetween=W,G}();typeof module!="undefined"&&module.hasOwnProperty("exports")&&(module.exports=bigInt);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/LICENSE
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/LICENSE b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/LICENSE
new file mode 100644
index 0000000..cf1ab25
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/LICENSE
@@ -0,0 +1,24 @@
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <http://unlicense.org>

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/README.md
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/README.md b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/README.md
new file mode 100644
index 0000000..6d9ee85
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/README.md
@@ -0,0 +1,506 @@
+# BigInteger.js [![Build Status][travis-img]][travis-url] [![Coverage Status][coveralls-img]][coveralls-url] [![Monthly Downloads][downloads-img]][downloads-url]
+
+[travis-url]: https://travis-ci.org/peterolson/BigInteger.js
+[travis-img]: https://travis-ci.org/peterolson/BigInteger.js.svg?branch=master
+[coveralls-url]: https://coveralls.io/github/peterolson/BigInteger.js?branch=master
+[coveralls-img]: https://coveralls.io/repos/peterolson/BigInteger.js/badge.svg?branch=master&service=github
+[downloads-url]: https://www.npmjs.com/package/big-integer
+[downloads-img]: https://img.shields.io/npm/dm/big-integer.svg
+
+**BigInteger.js** is an arbitrary-length integer library for Javascript, allowing arithmetic operations on integers of unlimited size, notwithstanding memory and time limitations.
+
+## Installation
+
+If you are using a browser, you can download [BigInteger.js from GitHub](http://peterolson.github.com/BigInteger.js/BigInteger.min.js) or just hotlink to it:
+
+	<script src="http://peterolson.github.com/BigInteger.js/BigInteger.min.js"></script>
+
+If you are using node, you can install BigInteger with [npm](https://npmjs.org/).
+
+    npm install big-integer
+
+Then you can include it in your code:
+
+	var bigInt = require("big-integer");
+
+
+## Usage
+### `bigInt(number, [base])`
+
+You can create a bigInt by calling the `bigInt` function. You can pass in
+
+ - a string, which it will parse as an bigInt and throw an `"Invalid integer"` error if the parsing fails.
+ - a Javascript number, which it will parse as an bigInt and throw an `"Invalid integer"` error if the parsing fails.
+ - another bigInt.
+ - nothing, and it will return `bigInt.zero`.
+
+ If you provide a second parameter, then it will parse `number` as a number in base `base`. Note that `base` can be any bigInt (even negative or zero). The letters "a-z" and "A-Z" will be interpreted as the numbers 10 to 35. Higher digits can be specified in angle brackets (`<` and `>`).
+
+Examples:
+
+    var zero = bigInt();
+    var ninetyThree = bigInt(93);
+	var largeNumber = bigInt("75643564363473453456342378564387956906736546456235345");
+	var googol = bigInt("1e100");
+	var bigNumber = bigInt(largeNumber);
+	 
+	var maximumByte = bigInt("FF", 16);
+	var fiftyFiveGoogol = bigInt("<55>0", googol);
+
+Note that Javascript numbers larger than `9007199254740992` and smaller than `-9007199254740992` are not precisely represented numbers and will not produce exact results. If you are dealing with numbers outside that range, it is better to pass in strings.
+
+### Method Chaining
+
+Note that bigInt operations return bigInts, which allows you to chain methods, for example:
+
+    var salary = bigInt(dollarsPerHour).times(hoursWorked).plus(randomBonuses)
+
+### Constants
+
+There are three named constants already stored that you do not have to construct with the `bigInt` function yourself:
+
+ - `bigInt.one`, equivalent to `bigInt(1)`
+ - `bigInt.zero`, equivalent to `bigInt(0)`
+ - `bigInt.minusOne`, equivalent to `bigInt(-1)`
+ 
+The numbers from -999 to 999 are also already prestored and can be accessed using `bigInt[index]`, for example:
+
+ - `bigInt[-999]`, equivalent to `bigInt(-999)`
+ - `bigInt[256]`, equivalent to `bigInt(256)`
+
+### Methods
+
+#### `abs()`
+
+Returns the absolute value of a bigInt.
+
+ - `bigInt(-45).abs()` => `45`
+ - `bigInt(45).abs()` => `45`
+
+#### `add(number)`
+
+Performs addition.
+
+ - `bigInt(5).add(7)` => `12`
+ 
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Addition)
+
+#### `and(number)`
+
+Performs the bitwise AND operation. The operands are treated as if they were represented using [two's complement representation](http://en.wikipedia.org/wiki/Two%27s_complement).
+
+ - `bigInt(6).and(3)` => `2`
+ - `bigInt(6).and(-3)` => `4`
+
+#### `compare(number)`
+
+Performs a comparison between two numbers. If the numbers are equal, it returns `0`. If the first number is greater, it returns `1`. If the first number is lesser, it returns `-1`.
+
+ - `bigInt(5).compare(5)` => `0`
+ - `bigInt(5).compare(4)` => `1`
+ - `bigInt(4).compare(5)` => `-1`
+
+#### `compareAbs(number)`
+
+Performs a comparison between the absolute value of two numbers.
+
+ - `bigInt(5).compareAbs(-5)` => `0`
+ - `bigInt(5).compareAbs(4)` => `1`
+ - `bigInt(4).compareAbs(-5)` => `-1`
+
+#### `compareTo(number)`
+
+Alias for the `compare` method.
+
+#### `divide(number)`
+
+Performs integer division, disregarding the remainder.
+
+ - `bigInt(59).divide(5)` => `11`
+ 
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division)
+
+#### `divmod(number)`
+
+Performs division and returns an object with two properties: `quotient` and `remainder`. The sign of the remainder will match the sign of the dividend.
+
+ - `bigInt(59).divmod(5)` => `{quotient: bigInt(11), remainder: bigInt(4) }`
+ - `bigInt(-5).divmod(2)` => `{quotient: bigInt(-2), remainder: bigInt(-1) }`
+ 
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division)
+
+#### `eq(number)`
+
+Alias for the `equals` method.
+
+#### `equals(number)`
+
+Checks if two numbers are equal.
+
+ - `bigInt(5).equals(5)` => `true`
+ - `bigInt(4).equals(7)` => `false`
+
+#### `geq(number)`
+
+Alias for the `greaterOrEquals` method.
+
+
+#### `greater(number)`
+
+Checks if the first number is greater than the second.
+
+ - `bigInt(5).greater(6)` => `false`
+ - `bigInt(5).greater(5)` => `false`
+ - `bigInt(5).greater(4)` => `true`
+
+#### `greaterOrEquals(number)`
+
+Checks if the first number is greater than or equal to the second.
+
+ - `bigInt(5).greaterOrEquals(6)` => `false`
+ - `bigInt(5).greaterOrEquals(5)` => `true`
+ - `bigInt(5).greaterOrEquals(4)` => `true`
+
+#### `gt(number)`
+
+Alias for the `greater` method.
+
+#### `isDivisibleBy(number)`
+
+Returns `true` if the first number is divisible by the second number, `false` otherwise.
+
+ - `bigInt(999).isDivisibleBy(333)` => `true`
+ - `bigInt(99).isDivisibleBy(5)` => `false`
+
+#### `isEven()`
+
+Returns `true` if the number is even, `false` otherwise.
+
+ - `bigInt(6).isEven()` => `true`
+ - `bigInt(3).isEven()` => `false`
+
+#### `isNegative()`
+
+Returns `true` if the number is negative, `false` otherwise.
+Returns `false` for `0` and `-0`.
+
+ - `bigInt(-23).isNegative()` => `true`
+ - `bigInt(50).isNegative()` => `false`
+
+#### `isOdd()`
+
+Returns `true` if the number is odd, `false` otherwise.
+
+ - `bigInt(13).isOdd()` => `true`
+ - `bigInt(40).isOdd()` => `false`
+
+#### `isPositive()`
+
+Return `true` if the number is positive, `false` otherwise.
+Returns `false` for `0` and `-0`.
+
+ - `bigInt(54).isPositive()` => `true`
+ - `bigInt(-1).isPositive()` => `false`
+
+#### `isPrime()`
+
+Returns `true` if the number is prime, `false` otherwise.
+
+ - `bigInt(5).isPrime()` => `true`
+ - `bigInt(6).isPrime()` => `false`
+
+#### `isProbablePrime([iterations])`
+
+Returns `true` if the number is very likely to be positive, `false` otherwise.
+Argument is optional and determines the amount of iterations of the test (default: `5`). The more iterations, the lower chance of getting a false positive.
+This uses the [Fermat primality test](https://en.wikipedia.org/wiki/Fermat_primality_test).
+
+ - `bigInt(5).isProbablePrime()` => `true`
+ - `bigInt(49).isProbablePrime()` => `false`
+ - `bigInt(1729).isProbablePrime(50)` => `false`
+ 
+Note that this function is not deterministic, since it relies on random sampling of factors, so the result for some numbers is not always the same. [Carmichael numbers](https://en.wikipedia.org/wiki/Carmichael_number) are particularly prone to give unreliable results.
+
+For example, `bigInt(1729).isProbablePrime()` returns `false` about 76% of the time and `true` about 24% of the time. The correct result is `false`.
+
+#### `isUnit()`
+
+Returns `true` if the number is `1` or `-1`, `false` otherwise.
+
+ - `bigInt.one.isUnit()` => `true`
+ - `bigInt.minusOne.isUnit()` => `true`
+ - `bigInt(5).isUnit()` => `false`
+
+#### `isZero()`
+
+Return `true` if the number is `0` or `-0`, `false` otherwise.
+
+ - `bigInt.zero.isZero()` => `true`
+ - `bigInt("-0").isZero()` => `true`
+ - `bigInt(50).isZero()` => `false`
+
+#### `leq(number)`
+
+Alias for the `lesserOrEquals` method.
+
+#### `lesser(number)`
+
+Checks if the first number is lesser than the second.
+
+ - `bigInt(5).lesser(6)` => `true`
+ - `bigInt(5).lesser(5)` => `false`
+ - `bigInt(5).lesser(4)` => `false`
+
+#### `lesserOrEquals(number)`
+
+Checks if the first number is less than or equal to the second.
+
+ - `bigInt(5).lesserOrEquals(6)` => `true`
+ - `bigInt(5).lesserOrEquals(5)` => `true`
+ - `bigInt(5).lesserOrEquals(4)` => `false`
+
+#### `lt(number)`
+
+Alias for the `lesser` method.
+
+#### `minus(number)`
+
+Alias for the `subtract` method.
+
+ - `bigInt(3).minus(5)` => `-2`
+ 
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Subtraction)
+
+#### `mod(number)`
+
+Performs division and returns the remainder, disregarding the quotient. The sign of the remainder will match the sign of the dividend.
+
+ - `bigInt(59).mod(5)` =>  `4`
+ - `bigInt(-5).mod(2)` => `-1`
+ 
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division)
+
+#### `modPow(exp, mod)`
+
+Takes the number to the power `exp` modulo `mod`.
+
+ - `bigInt(10).modPow(3, 30)` => `10`
+
+#### `multiply(number)`
+
+Performs multiplication.
+
+ - `bigInt(111).multiply(111)` => `12321`
+
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Multiplication)
+
+#### `neq(number)`
+
+Alias for the `notEquals` method.
+
+#### `next()`
+
+Adds one to the number.
+
+ - `bigInt(6).next()` => `7`
+
+#### `not()`
+
+Performs the bitwise NOT operation. The operands are treated as if they were represented using [two's complement representation](http://en.wikipedia.org/wiki/Two%27s_complement).
+
+ - `bigInt(10).not()` => `-11`
+ - `bigInt(0).not()` => `-1`
+
+#### `notEquals(number)`
+
+Checks if two numbers are not equal.
+
+ - `bigInt(5).notEquals(5)` => `false`
+ - `bigInt(4).notEquals(7)` => `true`
+
+#### `or(number)`
+
+Performs the bitwise OR operation. The operands are treated as if they were represented using [two's complement representation](http://en.wikipedia.org/wiki/Two%27s_complement).
+
+ - `bigInt(13).or(10)` => `15`
+ - `bigInt(13).or(-8)` => `-3`
+
+#### `over(number)`
+
+Alias for the `divide` method.
+
+ - `bigInt(59).over(5)` => `11`
+ 
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division)
+
+#### `plus(number)`
+
+Alias for the `add` method.
+
+ - `bigInt(5).plus(7)` => `12`
+ 
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Addition)
+
+#### `pow(number)`
+
+Performs exponentiation. If the exponent is less than `0`, `pow` returns `0`. `bigInt.zero.pow(0)` returns `1`.
+
+ - `bigInt(16).pow(16)` => `18446744073709551616`
+
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Exponentiation)
+
+#### `prev(number)`
+
+Subtracts one from the number.
+
+ - `bigInt(6).prev()` => `5`
+
+#### `remainder(number)`
+
+Alias for the `mod` method.
+
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Division)
+
+#### `shiftLeft(n)`
+
+Shifts the number left by `n` places in its binary representation. If a negative number is provided, it will shift right. Throws an error if `n` is outside of the range `[-9007199254740992, 9007199254740992]`.
+
+ - `bigInt(8).shiftLeft(2)` => `32`
+ - `bigInt(8).shiftLeft(-2)` => `2`
+
+#### `shiftRight(n)`
+
+Shifts the number right by `n` places in its binary representation. If a negative number is provided, it will shift left. Throws an error if `n` is outside of the range `[-9007199254740992, 9007199254740992]`.
+
+ - `bigInt(8).shiftRight(2)` => `2`
+ - `bigInt(8).shiftRight(-2)` => `32`
+
+#### `square()`
+
+Squares the number
+
+ - `bigInt(3).square()` => `9`
+ 
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Squaring)
+
+#### `subtract(number)`
+
+Performs subtraction.
+
+ - `bigInt(3).subtract(5)` => `-2`
+ 
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Subtraction)
+
+#### `times(number)`
+
+Alias for the `multiply` method.
+
+ - `bigInt(111).times(111)` => `12321`
+ 
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#Multiplication)
+
+#### `toJSNumber()`
+
+Converts a bigInt into a native Javascript number. Loses precision for numbers outside the range `[-9007199254740992, 9007199254740992]`.
+
+ - `bigInt("18446744073709551616").toJSNumber()` => `18446744073709552000`
+
+#### `xor(number)`
+
+Performs the bitwise XOR operation. The operands are treated as if they were represented using [two's complement representation](http://en.wikipedia.org/wiki/Two%27s_complement).
+
+ - `bigInt(12).xor(5)` => `9`
+ - `bigInt(12).xor(-5)` => `-9`
+ 
+### Static Methods
+
+#### `gcd(a, b)`
+
+Finds the greatest common denominator of `a` and `b`.
+
+ - `bigInt.gcd(42,56)` => `14`
+
+#### `isInstance(x)`
+
+Returns `true` if `x` is a BigInteger, `false` otherwise.
+
+ - `bigInt.isInstance(bigInt(14))` => `true`
+ - `bigInt.isInstance(14)` => `false`
+ 
+#### `lcm(a,b)`
+
+Finds the least common multiple of `a` and `b`.
+ 
+ - `bigInt.lcm(21, 6)` => `42`
+ 
+#### `max(a,b)`
+
+Returns the largest of `a` and `b`.
+
+ - `bigInt.max(77, 432)` => `432`
+
+#### `min(a,b)`
+
+Returns the smallest of `a` and `b`.
+
+ - `bigInt.min(77, 432)` => `77`
+
+#### `randBetween(min, max)`
+
+Returns a random number between `min` and `max`.
+
+ - `bigInt.randBetween("-1e100", "1e100")` => (for example) `8494907165436643479673097939554427056789510374838494147955756275846226209006506706784609314471378745`
+
+
+### Override Methods
+
+#### `toString(radix = 10)`
+
+Converts a bigInt to a string. There is an optional radix parameter (which defaults to 10) that converts the number to the given radix. Digits in the range `10-35` will use the letters `a-z`.
+
+ - `bigInt("1e9").toString()` => `"1000000000"`
+ - `bigInt("1e9").toString(16)` => `"3b9aca00"`
+
+**Note that arithmetical operators will trigger the `valueOf` function rather than the `toString` function.** When converting a bigInteger to a string, you should use the `toString` method or the `String` function instead of adding the empty string.
+
+ - `bigInt("999999999999999999").toString()` => `"999999999999999999"`
+ - `String(bigInt("999999999999999999"))` => `"999999999999999999"`
+ - `bigInt("999999999999999999") + ""` => `1000000000000000000`
+
+Bases larger than 36 are supported. If a digit is greater than or equal to 36, it will be enclosed in angle brackets.
+
+ - `bigInt(567890).toString(100)` => `"<56><78><90>"`
+
+Negative bases are also supported.
+
+ - `bigInt(12345).toString(-10)` => `"28465"`
+
+Base 1 and base -1 are also supported.
+
+ - `bigInt(-15).toString(1)` => `"-111111111111111"`
+ - `bigInt(-15).toString(-1)` => `"101010101010101010101010101010"`
+
+Base 0 is only allowed for the number zero.
+
+ - `bigInt(0).toString(0)` => `0`
+ - `bigInt(1).toString(0)` => `Error: Cannot convert nonzero numbers to base 0.`
+ 
+[View benchmarks for this method](http://peterolson.github.io/BigInteger.js/benchmark/#toString)
+ 
+#### `valueOf()`
+
+Converts a bigInt to a native Javascript number. This override allows you to use native arithmetic operators without explicit conversion:
+
+ - `bigInt("100") + bigInt("200") === 300; //true`
+
+## Contributors
+
+To contribute, just fork the project, make some changes, and submit a pull request. Please verify that the unit tests pass before submitting.
+
+The unit tests are contained in the `spec/spec.js` file. You can run them locally by opening the `spec/SpecRunner.html` or file or running `npm test`. You can also [run the tests online from GitHub](http://peterolson.github.io/BigInteger.js/spec/SpecRunner.html).
+
+There are performance benchmarks that can be viewed from the `benchmarks/index.html` page. You can [run them online from GitHub](http://peterolson.github.io/BigInteger.js/benchmark/).
+
+## License
+
+This project is public domain. For more details, read about the [Unlicense](http://unlicense.org/).
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/package.json
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/package.json b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/package.json
new file mode 100644
index 0000000..5ec444f
--- /dev/null
+++ b/node_modules/cordova-common/node_modules/bplist-parser/node_modules/big-integer/package.json
@@ -0,0 +1,70 @@
+{
+  "name": "big-integer",
+  "version": "1.6.10",
+  "author": {
+    "name": "Peter Olson",
+    "email": "peter.e.c.olson+npm@gmail.com"
+  },
+  "description": "An arbitrary length integer library for Javascript",
+  "contributors": [],
+  "bin": {},
+  "scripts": {
+    "test": "karma start my.conf.js"
+  },
+  "main": "./BigInteger",
+  "repository": {
+    "type": "git",
+    "url": "git+ssh://git@github.com/peterolson/BigInteger.js.git"
+  },
+  "keywords": [
+    "math",
+    "big",
+    "bignum",
+    "bigint",
+    "biginteger",
+    "integer",
+    "arbitrary",
+    "precision",
+    "arithmetic"
+  ],
+  "devDependencies": {
+    "coveralls": "^2.11.4",
+    "jasmine": "2.1.x",
+    "jasmine-core": "^2.3.4",
+    "karma": "^0.13.3",
+    "karma-coverage": "^0.4.2",
+    "karma-jasmine": "^0.3.6",
+    "karma-phantomjs-launcher": "~0.1"
+  },
+  "license": "Unlicense",
+  "engines": {
+    "node": ">=0.6"
+  },
+  "gitHead": "e9a739fa1a15fe3da4eb302ea7072112ec91e318",
+  "bugs": {
+    "url": "https://github.com/peterolson/BigInteger.js/issues"
+  },
+  "homepage": "https://github.com/peterolson/BigInteger.js#readme",
+  "_id": "big-integer@1.6.10",
+  "_shasum": "0f05dcce24278bc33bd8eb9297f4858acacb1fea",
+  "_from": "big-integer@>=1.6.7 <2.0.0",
+  "_npmVersion": "2.9.1",
+  "_nodeVersion": "0.12.3",
+  "_npmUser": {
+    "name": "peterolson",
+    "email": "peter.e.c.olson+npm@gmail.com"
+  },
+  "maintainers": [
+    {
+      "name": "peterolson",
+      "email": "peter.e.c.olson+npm@gmail.com"
+    }
+  ],
+  "dist": {
+    "shasum": "0f05dcce24278bc33bd8eb9297f4858acacb1fea",
+    "tarball": "http://registry.npmjs.org/big-integer/-/big-integer-1.6.10.tgz"
+  },
+  "directories": {},
+  "_resolved": "http://registry.npmjs.org/big-integer/-/big-integer-1.6.10.tgz",
+  "readme": "ERROR: No README data found!"
+}

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/test/airplay.bplist
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/test/airplay.bplist b/node_modules/cordova-common/node_modules/bplist-parser/test/airplay.bplist
new file mode 100644
index 0000000..931adea
Binary files /dev/null and b/node_modules/cordova-common/node_modules/bplist-parser/test/airplay.bplist differ

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/cordova-common/node_modules/bplist-parser/test/iTunes-small.bplist
----------------------------------------------------------------------
diff --git a/node_modules/cordova-common/node_modules/bplist-parser/test/iTunes-small.bplist b/node_modules/cordova-common/node_modules/bplist-parser/test/iTunes-small.bplist
new file mode 100644
index 0000000..b7edb14
Binary files /dev/null and b/node_modules/cordova-common/node_modules/bplist-parser/test/iTunes-small.bplist differ


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org


[3/8] android commit: added missing node_modules

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/examples/strict.dtd
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/examples/strict.dtd b/node_modules/elementtree/node_modules/sax/examples/strict.dtd
new file mode 100644
index 0000000..b274559
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/examples/strict.dtd
@@ -0,0 +1,870 @@
+<!--
+    This is HTML 4.01 Strict DTD, which excludes the presentation 
+    attributes and elements that W3C expects to phase out as 
+    support for style sheets matures. Authors should use the Strict
+    DTD when possible, but may use the Transitional DTD when support
+    for presentation attribute and elements is required.
+    
+    HTML 4 includes mechanisms for style sheets, scripting,
+    embedding objects, improved support for right to left and mixed
+    direction text, and enhancements to forms for improved
+    accessibility for people with disabilities.
+
+          Draft: $Date: 1999/12/24 23:37:48 $
+
+          Authors:
+              Dave Raggett <ds...@w3.org>
+              Arnaud Le Hors <le...@w3.org>
+              Ian Jacobs <ij...@w3.org>
+
+    Further information about HTML 4.01 is available at:
+
+        http://www.w3.org/TR/1999/REC-html401-19991224
+
+
+    The HTML 4.01 specification includes additional
+    syntactic constraints that cannot be expressed within
+    the DTDs.
+
+-->
+<!--
+    Typical usage:
+
+    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+            "http://www.w3.org/TR/html4/strict.dtd">
+    <html>
+    <head>
+    ...
+    </head>
+    <body>
+    ...
+    </body>
+    </html>
+
+    The URI used as a system identifier with the public identifier allows
+    the user agent to download the DTD and entity sets as needed.
+
+    The FPI for the Transitional HTML 4.01 DTD is:
+
+        "-//W3C//DTD HTML 4.01 Transitional//EN"
+
+    This version of the transitional DTD is:
+
+        http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd
+
+    If you are writing a document that includes frames, use 
+    the following FPI:
+
+        "-//W3C//DTD HTML 4.01 Frameset//EN"
+
+    This version of the frameset DTD is:
+
+        http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd
+
+    Use the following (relative) URIs to refer to 
+    the DTDs and entity definitions of this specification:
+
+    "strict.dtd"
+    "loose.dtd"
+    "frameset.dtd"
+    "HTMLlat1.ent"
+    "HTMLsymbol.ent"
+    "HTMLspecial.ent"
+
+-->
+
+<!--================== Imported Names ====================================-->
+<!-- Feature Switch for frameset documents -->
+<!ENTITY % HTML.Frameset "IGNORE">
+
+<!ENTITY % ContentType "CDATA"
+    -- media type, as per [RFC2045]
+    -->
+
+<!ENTITY % ContentTypes "CDATA"
+    -- comma-separated list of media types, as per [RFC2045]
+    -->
+
+<!ENTITY % Charset "CDATA"
+    -- a character encoding, as per [RFC2045]
+    -->
+
+<!ENTITY % Charsets "CDATA"
+    -- a space-separated list of character encodings, as per [RFC2045]
+    -->
+
+<!ENTITY % LanguageCode "NAME"
+    -- a language code, as per [RFC1766]
+    -->
+
+<!ENTITY % Character "CDATA"
+    -- a single character from [ISO10646] 
+    -->
+
+<!ENTITY % LinkTypes "CDATA"
+    -- space-separated list of link types
+    -->
+
+<!ENTITY % MediaDesc "CDATA"
+    -- single or comma-separated list of media descriptors
+    -->
+
+<!ENTITY % URI "CDATA"
+    -- a Uniform Resource Identifier,
+       see [URI]
+    -->
+
+<!ENTITY % Datetime "CDATA" -- date and time information. ISO date format -->
+
+
+<!ENTITY % Script "CDATA" -- script expression -->
+
+<!ENTITY % StyleSheet "CDATA" -- style sheet data -->
+
+
+
+<!ENTITY % Text "CDATA">
+
+
+<!-- Parameter Entities -->
+
+<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- repeatable head elements -->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+<!ENTITY % list "UL | OL">
+
+<!ENTITY % preformatted "PRE">
+
+
+<!--================ Character mnemonic entities =========================-->
+
+<!ENTITY % HTMLlat1 PUBLIC
+   "-//W3C//ENTITIES Latin1//EN//HTML"
+   "HTMLlat1.ent">
+%HTMLlat1;
+
+<!ENTITY % HTMLsymbol PUBLIC
+   "-//W3C//ENTITIES Symbols//EN//HTML"
+   "HTMLsymbol.ent">
+%HTMLsymbol;
+
+<!ENTITY % HTMLspecial PUBLIC
+   "-//W3C//ENTITIES Special//EN//HTML"
+   "HTMLspecial.ent">
+%HTMLspecial;
+<!--=================== Generic Attributes ===============================-->
+
+<!ENTITY % coreattrs
+ "id          ID             #IMPLIED  -- document-wide unique id --
+  class       CDATA          #IMPLIED  -- space-separated list of classes --
+  style       %StyleSheet;   #IMPLIED  -- associated style info --
+  title       %Text;         #IMPLIED  -- advisory title --"
+  >
+
+<!ENTITY % i18n
+ "lang        %LanguageCode; #IMPLIED  -- language code --
+  dir         (ltr|rtl)      #IMPLIED  -- direction for weak/neutral text --"
+  >
+
+<!ENTITY % events
+ "onclick     %Script;       #IMPLIED  -- a pointer button was clicked --
+  ondblclick  %Script;       #IMPLIED  -- a pointer button was double clicked--
+  onmousedown %Script;       #IMPLIED  -- a pointer button was pressed down --
+  onmouseup   %Script;       #IMPLIED  -- a pointer button was released --
+  onmouseover %Script;       #IMPLIED  -- a pointer was moved onto --
+  onmousemove %Script;       #IMPLIED  -- a pointer was moved within --
+  onmouseout  %Script;       #IMPLIED  -- a pointer was moved away --
+  onkeypress  %Script;       #IMPLIED  -- a key was pressed and released --
+  onkeydown   %Script;       #IMPLIED  -- a key was pressed down --
+  onkeyup     %Script;       #IMPLIED  -- a key was released --"
+  >
+
+<!-- Reserved Feature Switch -->
+<!ENTITY % HTML.Reserved "IGNORE">
+
+<!-- The following attributes are reserved for possible future use -->
+<![ %HTML.Reserved; [
+<!ENTITY % reserved
+ "datasrc     %URI;          #IMPLIED  -- a single or tabular Data Source --
+  datafld     CDATA          #IMPLIED  -- the property or column name --
+  dataformatas (plaintext|html) plaintext -- text or html --"
+  >
+]]>
+
+<!ENTITY % reserved "">
+
+<!ENTITY % attrs "%coreattrs; %i18n; %events;">
+
+
+<!--=================== Text Markup ======================================-->
+
+<!ENTITY % fontstyle
+ "TT | I | B | BIG | SMALL">
+
+<!ENTITY % phrase "EM | STRONG | DFN | CODE |
+                   SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >
+
+<!ENTITY % special
+   "A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO">
+
+<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
+
+<!-- %inline; covers inline or "text-level" elements -->
+<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
+
+<!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*>
+<!ATTLIST (%fontstyle;|%phrase;)
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+<!ELEMENT (SUB|SUP) - - (%inline;)*    -- subscript, superscript -->
+<!ATTLIST (SUB|SUP)
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+<!ELEMENT SPAN - - (%inline;)*         -- generic language/style container -->
+<!ATTLIST SPAN
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  %reserved;			       -- reserved for possible future use --
+  >
+
+<!ELEMENT BDO - - (%inline;)*          -- I18N BiDi over-ride -->
+<!ATTLIST BDO
+  %coreattrs;                          -- id, class, style, title --
+  lang        %LanguageCode; #IMPLIED  -- language code --
+  dir         (ltr|rtl)      #REQUIRED -- directionality --
+  >
+
+
+<!ELEMENT BR - O EMPTY                 -- forced line break -->
+<!ATTLIST BR
+  %coreattrs;                          -- id, class, style, title --
+  >
+
+<!--================== HTML content models ===============================-->
+
+<!--
+    HTML has two basic content models:
+
+        %inline;     character level elements and text strings
+        %block;      block-like elements e.g. paragraphs and lists
+-->
+
+<!ENTITY % block
+     "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
+      BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">
+
+<!ENTITY % flow "%block; | %inline;">
+
+<!--=================== Document Body ====================================-->
+
+<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
+<!ATTLIST BODY
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  onload          %Script;   #IMPLIED  -- the document has been loaded --
+  onunload        %Script;   #IMPLIED  -- the document has been removed --
+  >
+
+<!ELEMENT ADDRESS - - (%inline;)* -- information on author -->
+<!ATTLIST ADDRESS
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+<!ELEMENT DIV - - (%flow;)*            -- generic language/style container -->
+<!ATTLIST DIV
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  %reserved;                           -- reserved for possible future use --
+  >
+
+
+<!--================== The Anchor Element ================================-->
+
+<!ENTITY % Shape "(rect|circle|poly|default)">
+<!ENTITY % Coords "CDATA" -- comma-separated list of lengths -->
+
+<!ELEMENT A - - (%inline;)* -(A)       -- anchor -->
+<!ATTLIST A
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  charset     %Charset;      #IMPLIED  -- char encoding of linked resource --
+  type        %ContentType;  #IMPLIED  -- advisory content type --
+  name        CDATA          #IMPLIED  -- named link end --
+  href        %URI;          #IMPLIED  -- URI for linked resource --
+  hreflang    %LanguageCode; #IMPLIED  -- language code --
+  rel         %LinkTypes;    #IMPLIED  -- forward link types --
+  rev         %LinkTypes;    #IMPLIED  -- reverse link types --
+  accesskey   %Character;    #IMPLIED  -- accessibility key character --
+  shape       %Shape;        rect      -- for use with client-side image maps --
+  coords      %Coords;       #IMPLIED  -- for use with client-side image maps --
+  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
+  onfocus     %Script;       #IMPLIED  -- the element got the focus --
+  onblur      %Script;       #IMPLIED  -- the element lost the focus --
+  >
+
+<!--================== Client-side image maps ============================-->
+
+<!-- These can be placed in the same document or grouped in a
+     separate document although this isn't yet widely supported -->
+
+<!ELEMENT MAP - - ((%block;) | AREA)+ -- client-side image map -->
+<!ATTLIST MAP
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  name        CDATA          #REQUIRED -- for reference by usemap --
+  >
+
+<!ELEMENT AREA - O EMPTY               -- client-side image map area -->
+<!ATTLIST AREA
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  shape       %Shape;        rect      -- controls interpretation of coords --
+  coords      %Coords;       #IMPLIED  -- comma-separated list of lengths --
+  href        %URI;          #IMPLIED  -- URI for linked resource --
+  nohref      (nohref)       #IMPLIED  -- this region has no action --
+  alt         %Text;         #REQUIRED -- short description --
+  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
+  accesskey   %Character;    #IMPLIED  -- accessibility key character --
+  onfocus     %Script;       #IMPLIED  -- the element got the focus --
+  onblur      %Script;       #IMPLIED  -- the element lost the focus --
+  >
+
+<!--================== The LINK Element ==================================-->
+
+<!--
+  Relationship values can be used in principle:
+
+   a) for document specific toolbars/menus when used
+      with the LINK element in document head e.g.
+        start, contents, previous, next, index, end, help
+   b) to link to a separate style sheet (rel=stylesheet)
+   c) to make a link to a script (rel=script)
+   d) by stylesheets to control how collections of
+      html nodes are rendered into printed documents
+   e) to make a link to a printable version of this document
+      e.g. a postscript or pdf version (rel=alternate media=print)
+-->
+
+<!ELEMENT LINK - O EMPTY               -- a media-independent link -->
+<!ATTLIST LINK
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  charset     %Charset;      #IMPLIED  -- char encoding of linked resource --
+  href        %URI;          #IMPLIED  -- URI for linked resource --
+  hreflang    %LanguageCode; #IMPLIED  -- language code --
+  type        %ContentType;  #IMPLIED  -- advisory content type --
+  rel         %LinkTypes;    #IMPLIED  -- forward link types --
+  rev         %LinkTypes;    #IMPLIED  -- reverse link types --
+  media       %MediaDesc;    #IMPLIED  -- for rendering on these media --
+  >
+
+<!--=================== Images ===========================================-->
+
+<!-- Length defined in strict DTD for cellpadding/cellspacing -->
+<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
+<!ENTITY % MultiLength "CDATA" -- pixel, percentage, or relative -->
+
+<![ %HTML.Frameset; [
+<!ENTITY % MultiLengths "CDATA" -- comma-separated list of MultiLength -->
+]]>
+
+<!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->
+
+
+<!-- To avoid problems with text-only UAs as well as 
+   to make image content understandable and navigable 
+   to users of non-visual UAs, you need to provide
+   a description with ALT, and avoid server-side image maps -->
+<!ELEMENT IMG - O EMPTY                -- Embedded image -->
+<!ATTLIST IMG
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  src         %URI;          #REQUIRED -- URI of image to embed --
+  alt         %Text;         #REQUIRED -- short description --
+  longdesc    %URI;          #IMPLIED  -- link to long description
+                                          (complements alt) --
+  name        CDATA          #IMPLIED  -- name of image for scripting --
+  height      %Length;       #IMPLIED  -- override height --
+  width       %Length;       #IMPLIED  -- override width --
+  usemap      %URI;          #IMPLIED  -- use client-side image map --
+  ismap       (ismap)        #IMPLIED  -- use server-side image map --
+  >
+
+<!-- USEMAP points to a MAP element which may be in this document
+  or an external document, although the latter is not widely supported -->
+
+<!--==================== OBJECT ======================================-->
+<!--
+  OBJECT is used to embed objects as part of HTML pages 
+  PARAM elements should precede other content. SGML mixed content
+  model technicality precludes specifying this formally ...
+-->
+
+<!ELEMENT OBJECT - - (PARAM | %flow;)*
+ -- generic embedded object -->
+<!ATTLIST OBJECT
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  declare     (declare)      #IMPLIED  -- declare but don't instantiate flag --
+  classid     %URI;          #IMPLIED  -- identifies an implementation --
+  codebase    %URI;          #IMPLIED  -- base URI for classid, data, archive--
+  data        %URI;          #IMPLIED  -- reference to object's data --
+  type        %ContentType;  #IMPLIED  -- content type for data --
+  codetype    %ContentType;  #IMPLIED  -- content type for code --
+  archive     CDATA          #IMPLIED  -- space-separated list of URIs --
+  standby     %Text;         #IMPLIED  -- message to show while loading --
+  height      %Length;       #IMPLIED  -- override height --
+  width       %Length;       #IMPLIED  -- override width --
+  usemap      %URI;          #IMPLIED  -- use client-side image map --
+  name        CDATA          #IMPLIED  -- submit as part of form --
+  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
+  %reserved;                           -- reserved for possible future use --
+  >
+
+<!ELEMENT PARAM - O EMPTY              -- named property value -->
+<!ATTLIST PARAM
+  id          ID             #IMPLIED  -- document-wide unique id --
+  name        CDATA          #REQUIRED -- property name --
+  value       CDATA          #IMPLIED  -- property value --
+  valuetype   (DATA|REF|OBJECT) DATA   -- How to interpret value --
+  type        %ContentType;  #IMPLIED  -- content type for value
+                                          when valuetype=ref --
+  >
+
+
+<!--=================== Horizontal Rule ==================================-->
+
+<!ELEMENT HR - O EMPTY -- horizontal rule -->
+<!ATTLIST HR
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+<!--=================== Paragraphs =======================================-->
+
+<!ELEMENT P - O (%inline;)*            -- paragraph -->
+<!ATTLIST P
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+<!--=================== Headings =========================================-->
+
+<!--
+  There are six levels of headings from H1 (the most important)
+  to H6 (the least important).
+-->
+
+<!ELEMENT (%heading;)  - - (%inline;)* -- heading -->
+<!ATTLIST (%heading;)
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+<!--=================== Preformatted Text ================================-->
+
+<!-- excludes markup for images and changes in font size -->
+<!ENTITY % pre.exclusion "IMG|OBJECT|BIG|SMALL|SUB|SUP">
+
+<!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- preformatted text -->
+<!ATTLIST PRE
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+<!--===================== Inline Quotes ==================================-->
+
+<!ELEMENT Q - - (%inline;)*            -- short inline quotation -->
+<!ATTLIST Q
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  cite        %URI;          #IMPLIED  -- URI for source document or msg --
+  >
+
+<!--=================== Block-like Quotes ================================-->
+
+<!ELEMENT BLOCKQUOTE - - (%block;|SCRIPT)+ -- long quotation -->
+<!ATTLIST BLOCKQUOTE
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  cite        %URI;          #IMPLIED  -- URI for source document or msg --
+  >
+
+<!--=================== Inserted/Deleted Text ============================-->
+
+
+<!-- INS/DEL are handled by inclusion on BODY -->
+<!ELEMENT (INS|DEL) - - (%flow;)*      -- inserted text, deleted text -->
+<!ATTLIST (INS|DEL)
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  cite        %URI;          #IMPLIED  -- info on reason for change --
+  datetime    %Datetime;     #IMPLIED  -- date and time of change --
+  >
+
+<!--=================== Lists ============================================-->
+
+<!-- definition lists - DT for term, DD for its definition -->
+
+<!ELEMENT DL - - (DT|DD)+              -- definition list -->
+<!ATTLIST DL
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+<!ELEMENT DT - O (%inline;)*           -- definition term -->
+<!ELEMENT DD - O (%flow;)*             -- definition description -->
+<!ATTLIST (DT|DD)
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+
+<!ELEMENT OL - - (LI)+                 -- ordered list -->
+<!ATTLIST OL
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+<!-- Unordered Lists (UL) bullet styles -->
+<!ELEMENT UL - - (LI)+                 -- unordered list -->
+<!ATTLIST UL
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+
+
+<!ELEMENT LI - O (%flow;)*             -- list item -->
+<!ATTLIST LI
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+<!--================ Forms ===============================================-->
+<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->
+<!ATTLIST FORM
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  action      %URI;          #REQUIRED -- server-side form handler --
+  method      (GET|POST)     GET       -- HTTP method used to submit the form--
+  enctype     %ContentType;  "application/x-www-form-urlencoded"
+  accept      %ContentTypes; #IMPLIED  -- list of MIME types for file upload --
+  name        CDATA          #IMPLIED  -- name of form for scripting --
+  onsubmit    %Script;       #IMPLIED  -- the form was submitted --
+  onreset     %Script;       #IMPLIED  -- the form was reset --
+  accept-charset %Charsets;  #IMPLIED  -- list of supported charsets --
+  >
+
+<!-- Each label must not contain more than ONE field -->
+<!ELEMENT LABEL - - (%inline;)* -(LABEL) -- form field label text -->
+<!ATTLIST LABEL
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  for         IDREF          #IMPLIED  -- matches field ID value --
+  accesskey   %Character;    #IMPLIED  -- accessibility key character --
+  onfocus     %Script;       #IMPLIED  -- the element got the focus --
+  onblur      %Script;       #IMPLIED  -- the element lost the focus --
+  >
+
+<!ENTITY % InputType
+  "(TEXT | PASSWORD | CHECKBOX |
+    RADIO | SUBMIT | RESET |
+    FILE | HIDDEN | IMAGE | BUTTON)"
+   >
+
+<!-- attribute name required for all but submit and reset -->
+<!ELEMENT INPUT - O EMPTY              -- form control -->
+<!ATTLIST INPUT
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  type        %InputType;    TEXT      -- what kind of widget is needed --
+  name        CDATA          #IMPLIED  -- submit as part of form --
+  value       CDATA          #IMPLIED  -- Specify for radio buttons and checkboxes --
+  checked     (checked)      #IMPLIED  -- for radio buttons and check boxes --
+  disabled    (disabled)     #IMPLIED  -- unavailable in this context --
+  readonly    (readonly)     #IMPLIED  -- for text and passwd --
+  size        CDATA          #IMPLIED  -- specific to each type of field --
+  maxlength   NUMBER         #IMPLIED  -- max chars for text fields --
+  src         %URI;          #IMPLIED  -- for fields with images --
+  alt         CDATA          #IMPLIED  -- short description --
+  usemap      %URI;          #IMPLIED  -- use client-side image map --
+  ismap       (ismap)        #IMPLIED  -- use server-side image map --
+  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
+  accesskey   %Character;    #IMPLIED  -- accessibility key character --
+  onfocus     %Script;       #IMPLIED  -- the element got the focus --
+  onblur      %Script;       #IMPLIED  -- the element lost the focus --
+  onselect    %Script;       #IMPLIED  -- some text was selected --
+  onchange    %Script;       #IMPLIED  -- the element value was changed --
+  accept      %ContentTypes; #IMPLIED  -- list of MIME types for file upload --
+  %reserved;                           -- reserved for possible future use --
+  >
+
+<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- option selector -->
+<!ATTLIST SELECT
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  name        CDATA          #IMPLIED  -- field name --
+  size        NUMBER         #IMPLIED  -- rows visible --
+  multiple    (multiple)     #IMPLIED  -- default is single selection --
+  disabled    (disabled)     #IMPLIED  -- unavailable in this context --
+  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
+  onfocus     %Script;       #IMPLIED  -- the element got the focus --
+  onblur      %Script;       #IMPLIED  -- the element lost the focus --
+  onchange    %Script;       #IMPLIED  -- the element value was changed --
+  %reserved;                           -- reserved for possible future use --
+  >
+
+<!ELEMENT OPTGROUP - - (OPTION)+ -- option group -->
+<!ATTLIST OPTGROUP
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  disabled    (disabled)     #IMPLIED  -- unavailable in this context --
+  label       %Text;         #REQUIRED -- for use in hierarchical menus --
+  >
+
+<!ELEMENT OPTION - O (#PCDATA)         -- selectable choice -->
+<!ATTLIST OPTION
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  selected    (selected)     #IMPLIED
+  disabled    (disabled)     #IMPLIED  -- unavailable in this context --
+  label       %Text;         #IMPLIED  -- for use in hierarchical menus --
+  value       CDATA          #IMPLIED  -- defaults to element content --
+  >
+
+<!ELEMENT TEXTAREA - - (#PCDATA)       -- multi-line text field -->
+<!ATTLIST TEXTAREA
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  name        CDATA          #IMPLIED
+  rows        NUMBER         #REQUIRED
+  cols        NUMBER         #REQUIRED
+  disabled    (disabled)     #IMPLIED  -- unavailable in this context --
+  readonly    (readonly)     #IMPLIED
+  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
+  accesskey   %Character;    #IMPLIED  -- accessibility key character --
+  onfocus     %Script;       #IMPLIED  -- the element got the focus --
+  onblur      %Script;       #IMPLIED  -- the element lost the focus --
+  onselect    %Script;       #IMPLIED  -- some text was selected --
+  onchange    %Script;       #IMPLIED  -- the element value was changed --
+  %reserved;                           -- reserved for possible future use --
+  >
+
+<!--
+  #PCDATA is to solve the mixed content problem,
+  per specification only whitespace is allowed there!
+ -->
+<!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) -- form control group -->
+<!ATTLIST FIELDSET
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+<!ELEMENT LEGEND - - (%inline;)*       -- fieldset legend -->
+
+<!ATTLIST LEGEND
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  accesskey   %Character;    #IMPLIED  -- accessibility key character --
+  >
+
+<!ELEMENT BUTTON - -
+     (%flow;)* -(A|%formctrl;|FORM|FIELDSET)
+     -- push button -->
+<!ATTLIST BUTTON
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  name        CDATA          #IMPLIED
+  value       CDATA          #IMPLIED  -- sent to server when submitted --
+  type        (button|submit|reset) submit -- for use as form button --
+  disabled    (disabled)     #IMPLIED  -- unavailable in this context --
+  tabindex    NUMBER         #IMPLIED  -- position in tabbing order --
+  accesskey   %Character;    #IMPLIED  -- accessibility key character --
+  onfocus     %Script;       #IMPLIED  -- the element got the focus --
+  onblur      %Script;       #IMPLIED  -- the element lost the focus --
+  %reserved;                           -- reserved for possible future use --
+  >
+
+<!--======================= Tables =======================================-->
+
+<!-- IETF HTML table standard, see [RFC1942] -->
+
+<!--
+ The BORDER attribute sets the thickness of the frame around the
+ table. The default units are screen pixels.
+
+ The FRAME attribute specifies which parts of the frame around
+ the table should be rendered. The values are not the same as
+ CALS to avoid a name clash with the VALIGN attribute.
+
+ The value "border" is included for backwards compatibility with
+ <TABLE BORDER> which yields frame=border and border=implied
+ For <TABLE BORDER=1> you get border=1 and frame=implied. In this
+ case, it is appropriate to treat this as frame=border for backwards
+ compatibility with deployed browsers.
+-->
+<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
+
+<!--
+ The RULES attribute defines which rules to draw between cells:
+
+ If RULES is absent then assume:
+     "none" if BORDER is absent or BORDER=0 otherwise "all"
+-->
+
+<!ENTITY % TRules "(none | groups | rows | cols | all)">
+  
+<!-- horizontal placement of table relative to document -->
+<!ENTITY % TAlign "(left|center|right)">
+
+<!-- horizontal alignment attributes for cell contents -->
+<!ENTITY % cellhalign
+  "align      (left|center|right|justify|char) #IMPLIED
+   char       %Character;    #IMPLIED  -- alignment char, e.g. char=':' --
+   charoff    %Length;       #IMPLIED  -- offset for alignment char --"
+  >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cellvalign
+  "valign     (top|middle|bottom|baseline) #IMPLIED"
+  >
+
+<!ELEMENT TABLE - -
+     (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
+<!ELEMENT CAPTION  - - (%inline;)*     -- table caption -->
+<!ELEMENT THEAD    - O (TR)+           -- table header -->
+<!ELEMENT TFOOT    - O (TR)+           -- table footer -->
+<!ELEMENT TBODY    O O (TR)+           -- table body -->
+<!ELEMENT COLGROUP - O (COL)*          -- table column group -->
+<!ELEMENT COL      - O EMPTY           -- table column -->
+<!ELEMENT TR       - O (TH|TD)+        -- table row -->
+<!ELEMENT (TH|TD)  - O (%flow;)*       -- table header cell, table data cell-->
+
+<!ATTLIST TABLE                        -- table element --
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  summary     %Text;         #IMPLIED  -- purpose/structure for speech output--
+  width       %Length;       #IMPLIED  -- table width --
+  border      %Pixels;       #IMPLIED  -- controls frame width around table --
+  frame       %TFrame;       #IMPLIED  -- which parts of frame to render --
+  rules       %TRules;       #IMPLIED  -- rulings between rows and cols --
+  cellspacing %Length;       #IMPLIED  -- spacing between cells --
+  cellpadding %Length;       #IMPLIED  -- spacing within cells --
+  %reserved;                           -- reserved for possible future use --
+  datapagesize CDATA         #IMPLIED  -- reserved for possible future use --
+  >
+
+
+<!ATTLIST CAPTION
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+<!--
+COLGROUP groups a set of COL elements. It allows you to group
+several semantically related columns together.
+-->
+<!ATTLIST COLGROUP
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  span        NUMBER         1         -- default number of columns in group --
+  width       %MultiLength;  #IMPLIED  -- default width for enclosed COLs --
+  %cellhalign;                         -- horizontal alignment in cells --
+  %cellvalign;                         -- vertical alignment in cells --
+  >
+
+<!--
+ COL elements define the alignment properties for cells in
+ one or more columns.
+
+ The WIDTH attribute specifies the width of the columns, e.g.
+
+     width=64        width in screen pixels
+     width=0.5*      relative width of 0.5
+
+ The SPAN attribute causes the attributes of one
+ COL element to apply to more than one column.
+-->
+<!ATTLIST COL                          -- column groups and properties --
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  span        NUMBER         1         -- COL attributes affect N columns --
+  width       %MultiLength;  #IMPLIED  -- column width specification --
+  %cellhalign;                         -- horizontal alignment in cells --
+  %cellvalign;                         -- vertical alignment in cells --
+  >
+
+<!--
+    Use THEAD to duplicate headers when breaking table
+    across page boundaries, or for static headers when
+    TBODY sections are rendered in scrolling panel.
+
+    Use TFOOT to duplicate footers when breaking table
+    across page boundaries, or for static footers when
+    TBODY sections are rendered in scrolling panel.
+
+    Use multiple TBODY sections when rules are needed
+    between groups of table rows.
+-->
+<!ATTLIST (THEAD|TBODY|TFOOT)          -- table section --
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  %cellhalign;                         -- horizontal alignment in cells --
+  %cellvalign;                         -- vertical alignment in cells --
+  >
+
+<!ATTLIST TR                           -- table row --
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  %cellhalign;                         -- horizontal alignment in cells --
+  %cellvalign;                         -- vertical alignment in cells --
+  >
+
+
+<!-- Scope is simpler than headers attribute for common tables -->
+<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
+
+<!-- TH is for headers, TD for data, but for cells acting as both use TD -->
+<!ATTLIST (TH|TD)                      -- header or data cell --
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  abbr        %Text;         #IMPLIED  -- abbreviation for header cell --
+  axis        CDATA          #IMPLIED  -- comma-separated list of related headers--
+  headers     IDREFS         #IMPLIED  -- list of id's for header cells --
+  scope       %Scope;        #IMPLIED  -- scope covered by header cells --
+  rowspan     NUMBER         1         -- number of rows spanned by cell --
+  colspan     NUMBER         1         -- number of cols spanned by cell --
+  %cellhalign;                         -- horizontal alignment in cells --
+  %cellvalign;                         -- vertical alignment in cells --
+  >
+
+
+<!--================ Document Head =======================================-->
+<!-- %head.misc; defined earlier on as "SCRIPT|STYLE|META|LINK|OBJECT" -->
+<!ENTITY % head.content "TITLE & BASE?">
+
+<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head -->
+<!ATTLIST HEAD
+  %i18n;                               -- lang, dir --
+  profile     %URI;          #IMPLIED  -- named dictionary of meta info --
+  >
+
+<!-- The TITLE element is not considered part of the flow of text.
+       It should be displayed, for example as the page header or
+       window title. Exactly one title is required per document.
+    -->
+<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- document title -->
+<!ATTLIST TITLE %i18n>
+
+
+<!ELEMENT BASE - O EMPTY               -- document base URI -->
+<!ATTLIST BASE
+  href        %URI;          #REQUIRED -- URI that acts as base URI --
+  >
+
+<!ELEMENT META - O EMPTY               -- generic metainformation -->
+<!ATTLIST META
+  %i18n;                               -- lang, dir, for use with content --
+  http-equiv  NAME           #IMPLIED  -- HTTP response header name  --
+  name        NAME           #IMPLIED  -- metainformation name --
+  content     CDATA          #REQUIRED -- associated information --
+  scheme      CDATA          #IMPLIED  -- select form of content --
+  >
+
+<!ELEMENT STYLE - - %StyleSheet        -- style info -->
+<!ATTLIST STYLE
+  %i18n;                               -- lang, dir, for use with title --
+  type        %ContentType;  #REQUIRED -- content type of style language --
+  media       %MediaDesc;    #IMPLIED  -- designed for use with these media --
+  title       %Text;         #IMPLIED  -- advisory title --
+  >
+
+<!ELEMENT SCRIPT - - %Script;          -- script statements -->
+<!ATTLIST SCRIPT
+  charset     %Charset;      #IMPLIED  -- char encoding of linked resource --
+  type        %ContentType;  #REQUIRED -- content type of script language --
+  src         %URI;          #IMPLIED  -- URI for an external script --
+  defer       (defer)        #IMPLIED  -- UA may defer execution of script --
+  event       CDATA          #IMPLIED  -- reserved for possible future use --
+  for         %URI;          #IMPLIED  -- reserved for possible future use --
+  >
+
+<!ELEMENT NOSCRIPT - - (%block;)+
+  -- alternate content container for non script-based rendering -->
+<!ATTLIST NOSCRIPT
+  %attrs;                              -- %coreattrs, %i18n, %events --
+  >
+
+<!--================ Document Structure ==================================-->
+<!ENTITY % html.content "HEAD, BODY">
+
+<!ELEMENT HTML O O (%html.content;)    -- document root element -->
+<!ATTLIST HTML
+  %i18n;                               -- lang, dir --
+  >

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/examples/switch-bench.js
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/examples/switch-bench.js b/node_modules/elementtree/node_modules/sax/examples/switch-bench.js
new file mode 100755
index 0000000..4d3cf14
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/examples/switch-bench.js
@@ -0,0 +1,45 @@
+#!/usr/local/bin/node-bench
+
+var Promise = require("events").Promise;
+
+var xml = require("posix").cat("test.xml").wait(),
+  path = require("path"),
+  sax = require("../lib/sax"),
+  saxT = require("../lib/sax-trampoline"),
+  
+  parser = sax.parser(false, {trim:true}),
+  parserT = saxT.parser(false, {trim:true}),
+  
+  sys = require("sys");
+
+
+var count = exports.stepsPerLap = 500,
+  l = xml.length,
+  runs = 0;
+exports.countPerLap = 1000;
+exports.compare = {
+  "switch" : function () {
+    // sys.debug("switch runs: "+runs++);
+    // for (var x = 0; x < l; x += 1000) {
+    //   parser.write(xml.substr(x, 1000))
+    // }
+    // for (var i = 0; i < count; i ++) {
+      parser.write(xml);
+      parser.close();
+    // }
+    // done();
+  },
+  trampoline : function () {
+    // sys.debug("trampoline runs: "+runs++);
+    // for (var x = 0; x < l; x += 1000) {
+    //   parserT.write(xml.substr(x, 1000))
+    // }
+    // for (var i = 0; i < count; i ++) {
+      parserT.write(xml);
+      parserT.close();
+    // }
+    // done();
+  },
+};
+
+sys.debug("rock and roll...");
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/examples/test.html
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/examples/test.html b/node_modules/elementtree/node_modules/sax/examples/test.html
new file mode 100644
index 0000000..61f8f1a
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/examples/test.html
@@ -0,0 +1,15 @@
+<!doctype html>
+
+<html lang="en">
+<head>
+	<title>testing the parser</title>
+</head>
+<body>
+
+<p>hello
+
+<script>
+
+</script>
+</body>
+</html>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org


[6/8] android commit: added missing node_modules

Posted by st...@apache.org.
http://git-wip-us.apache.org/repos/asf/cordova-android/blob/44421bbc/node_modules/elementtree/node_modules/sax/examples/big-not-pretty.xml
----------------------------------------------------------------------
diff --git a/node_modules/elementtree/node_modules/sax/examples/big-not-pretty.xml b/node_modules/elementtree/node_modules/sax/examples/big-not-pretty.xml
new file mode 100644
index 0000000..fb5265d
--- /dev/null
+++ b/node_modules/elementtree/node_modules/sax/examples/big-not-pretty.xml
@@ -0,0 +1,8002 @@
+<big>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]>  <selfclosing tag="blr>&quot;"/> a bit down here</root>
+<root>
+		something<else>  blerm <slurm 
+		
+		
+	attrib = 
+	"blorg"       ></else><!-- COMMENT!
+	
+--><![CDATA[processing...]]> 

<TRUNCATED>

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org