diff --git a/README.md b/README.md
index 253b2e1..5523b53 100644
--- a/README.md
+++ b/README.md
@@ -50,8 +50,8 @@
 ---------------
 
 The weinre build is currently run on a Mac OS X 10.7 laptop.  It also runs on Apache
-continuous integration servers running Linux.  It is not typically run on Windows,
-so if you issues with that, please log an issue.  
+continuous integration servers running Linux.  The build is not typically run on Windows,
+so if you have problems with that, please log an issue.  
 
 The weinre build pre-req's the following tools:
 
@@ -108,7 +108,7 @@
 ### to run the output of the development build: ###
 
 * run: `cd weinre.server`
-* run: `./weinre [your flavorite options]`
+* run: `node weinre [your flavorite options]`
 
 ### other fun development-time hacks ###
 
@@ -125,7 +125,7 @@
 completes.
 
 Putting this altogether, you can open two terminal windows, run `wr` in the `weinre.build`
-directory to have a development build run whenever you change the source, and then run `weinre.hot` in the `weinre.server` directory to have the weinre server restart whenever a build completes, getting a growl notification at that time.
+directory to have a development build run whenever you change the source, and then run `weinre-hot` in the `weinre.server` directory to have the weinre server restart whenever a build completes, getting a growl notification at that time.
 
 updating 3rd party libraries
 -----------------------------
@@ -137,7 +137,7 @@
 sure the license is acceptable, and add/update the license in the top-level `LICENSE`
 file.
 
-All of the 3rd party dependencies used with weinre are stored in two directories:
+All of the 3rd party dependencies used with weinre are stored in one of two directories:
 
 * `weinre.build/vendor` - contains libraries used in the client and/or target,
 as well as libraries used by the build itself
@@ -153,7 +153,7 @@
 
 To update the files in `weinre.server/node_modules`:
 
-* edit the file `weinre.build/package.json.template' as appropriate
+* edit the file `weinre.build/package.json.template` as appropriate
 * run a build (see above), so that the file `weinre.server/package.json` file is created
 from the template you edited above
 * run: `cd weinre.server`
diff --git a/weinre.server/README.md b/weinre.server/README.md
index fc2f570..935a407 100644
--- a/weinre.server/README.md
+++ b/weinre.server/README.md
@@ -17,31 +17,43 @@
  * under the License.
 -->
 
-The files contained in this directory are the source for the
-weinre server, implemented using the 
-[express package](http://expressjs.com/)
-on the 
-[node.js](http://nodejs.org) 
-runtime.
+weinre is WEb INspector REmote. 
+Pronounced like the word "winery". 
+Or maybe like the word "weiner". 
+Who knows, really.
 
-The weinre server uses numerous 3rd party libraries, installed in the
-`node_modules` directory, and stored in the SCM.  
-In case these need to be updated, the file
-`package.json` should be updated with the dependencies and versions
-needed, then run
+weinre is a debugger for web pages, 
+like FireBug (for FireFox) and Web Inspector (for WebKit-based browsers), 
+except it's designed to work remotely, and in particular, 
+to allow you debug web pages on a mobile device such as a phone.
 
-	rm -rf node_modules; npm install
+For more information on weinre:
+[http://http://incubator.apache.org/callback/](http://incubator.apache.org/callback/)
 
-to refresh the dependencies.
+running
+-------
 
+For more information about running weinre, you can start the server
+and browse the documentation online.
 
-before running the weinre server
---------------------------------
+Start the server with the following command
 
-Before running the weinre server, after downloading the source,
-you will need to run a 'build'.
+    node weinre
+    
+This will start the server, and display a message with the URL to the
+server.  Browse to that URL in your web browser, and then click on 
+'documentation' link, which will display weinre's online documentation.
+From there click on the 'Running' page to get more information about 
+running weinre.
 
+source
+------
 
-running the weinre server
--------------------------
+Follow the link for more information at the top of this file 
+for instructions on obtaining source.
+
+If you're reading this file as part of the source distribution of weinre,
+you will need to run a 'build' before being able to run weinre.  See the
+`README.md` file in the root directory of the weinre source distribution
+for more information.
 
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/.gitignore b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/.gitignore
deleted file mode 100644
index b72f74f..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-/test/tmp
-*.upload
-*.un~
-/node_modules
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md
index ca3c00a..3427514 100644
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md
+++ b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md
@@ -22,6 +22,23 @@
 
 ## Changelog
 
+### v1.0.9
+
+* Emit progress when content length header parsed (Tim Koschützki)
+* Fix Readme syntax due to GitHub changes (goob)
+* Replace references to old 'sys' module in Readme with 'util' (Peter Sugihara)
+
+### v1.0.8
+
+* Strip potentially unsafe characters when using `keepExtensions: true`.
+* Switch to utest / urun for testing
+* Add travis build
+
+### v1.0.7
+
+* Remove file from package that was causing problems when installing on windows. (#102)
+* Fix typos in Readme (Jason Davies).
+
 ### v1.0.6
 
 * Do not default to the default to the field name for file uploads where
@@ -125,7 +142,7 @@
     var formidable = require('formidable'),
         http = require('http'),
 
-        sys = require('sys');
+        util = require('util');
 
     http.createServer(function(req, res) {
       if (req.url == '/upload' && req.method.toLowerCase() == 'post') {
@@ -134,7 +151,7 @@
         form.parse(req, function(err, fields, files) {
           res.writeHead(200, {'content-type': 'text/plain'});
           res.write('received upload:\n\n');
-          res.end(sys.inspect({fields: fields, files: files}));
+          res.end(util.inspect({fields: fields, files: files}));
         });
         return;
       }
@@ -154,43 +171,43 @@
 
 ### formidable.IncomingForm
 
-#### new formidable.IncomingForm()
+__new formidable.IncomingForm()__
 
 Creates a new incoming form.
 
-#### incomingForm.encoding = 'utf-8'
+__incomingForm.encoding = 'utf-8'__
 
 The encoding to use for incoming form fields.
 
-#### incomingForm.uploadDir = process.env.TMP || '/tmp' || process.cwd()
+__incomingForm.uploadDir = process.env.TMP || '/tmp' || process.cwd()__
 
 The directory for placing file uploads in. You can move them later on using
 `fs.rename()`. The default directory is picked at module load time depending on
 the first existing directory from those listed above.
 
-#### incomingForm.keepExtensions = false
+__incomingForm.keepExtensions = false__
 
 If you want the files written to `incomingForm.uploadDir` to include the extensions of the original files, set this property to `true`.
 
-#### incomingForm.type
+__incomingForm.type__
 
 Either 'multipart' or 'urlencoded' depending on the incoming request.
 
-#### incomingForm.maxFieldsSize = 2 * 1024 * 1024
+__incomingForm.maxFieldsSize = 2 * 1024 * 1024__
 
 Limits the amount of memory a field (not file) can allocate in bytes.
 If this value is exceeded, an `'error'` event is emitted. The default
 size is 2MB.
 
-#### incomingForm.bytesReceived
+__incomingForm.bytesReceived__
 
 The amount of bytes received for this form so far.
 
-#### incomingForm.bytesExpected
+__incomingForm.bytesExpected__
 
 The expected number of bytes in this form.
 
-#### incomingForm.parse(request, [cb])
+__incomingForm.parse(request, [cb])__
 
 Parses an incoming node.js `request` containing form data. If `cb` is provided, all fields an files are collected and passed to the callback:
 
@@ -198,7 +215,7 @@
       // ...
     });
 
-#### incomingForm.onPart(part)
+__incomingForm.onPart(part)__
 
 You may overwrite this method if you are interested in directly accessing the multipart stream. Doing so will disable any `'field'` / `'file'` events  processing which would occur otherwise, making you fully responsible for handling the processing.
 
@@ -219,56 +236,56 @@
 
 Check the code in this method for further inspiration.
 
-#### Event: 'progress' (bytesReceived, bytesExpected)
+__Event: 'progress' (bytesReceived, bytesExpected)__
 
 Emitted after each incoming chunk of data that has been parsed. Can be used to roll your own progress bar.
 
-#### Event: 'field' (name, value)
+__Event: 'field' (name, value)__
 
 Emitted whenever a field / value pair has been received.
 
-#### Event: 'fileBegin' (name, file)
+__Event: 'fileBegin' (name, file)__
 
 Emitted whenever a new file is detected in the upload stream. Use this even if
 you want to stream the file to somewhere else while buffering the upload on
 the file system.
 
-#### Event: 'file' (name, file)
+__Event: 'file' (name, file)__
 
 Emitted whenever a field / file pair has been received. `file` is an instance of `File`.
 
-#### Event: 'error' (err)
+__Event: 'error' (err)__
 
 Emitted when there is an error processing the incoming form. A request that experiences an error is automatically paused, you will have to manually call `request.resume()` if you want the request to continue firing `'data'` events.
 
-#### Event: 'aborted'
+__Event: 'aborted'__
 
 Emitted when the request was aborted by the user. Right now this can be due to a 'timeout' or 'close' event on the socket. In the future there will be a separate 'timeout' event (needs a change in the node core).
 
-#### Event: 'end' ()
+__Event: 'end' ()__
 
 Emitted when the entire request has been received, and all contained files have finished flushing to disk. This is a great place for you to send your response.
 
 ### formidable.File
 
-#### file.size = 0
+__file.size = 0__
 
 The size of the uploaded file in bytes. If the file is still being uploaded (see `'fileBegin'` event), this property says how many bytes of the file have been written to disk yet.
 
-#### file.path = null
+__file.path = null__
 
 The path this file is being written to. You can modify this in the `'fileBegin'` event in
 case you are unhappy with the way formidable generates a temporary path for your files.
 
-#### file.name = null
+__file.name = null__
 
 The name this file had according to the uploading client.
 
-#### file.type = null
+__file.type = null__
 
 The mime type of this file, according to the uploading client.
 
-#### file.lastModifiedDate = null
+__file.lastModifiedDate = null__
 
 A date object (or `null`) containing the time this file was last written to. Mostly
 here for compatibility with the [W3C File API Draft](http://dev.w3.org/2006/webapi/FileAPI/).
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js
index 7b1ddaf..b1e2bfb 100644
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js
+++ b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js
@@ -247,6 +247,7 @@
   if (this.headers['content-length']) {
     this.bytesReceived = 0;
     this.bytesExpected = parseInt(this.headers['content-length'], 10);
+    this.emit('progress', this.bytesReceived, this.bytesExpected);
   }
 };
 
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/no-filename/generic.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/no-filename/generic.http
deleted file mode 100644
index e0dee27..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/no-filename/generic.http
+++ /dev/null
@@ -1,13 +0,0 @@
-POST /upload HTTP/1.1
-Host: localhost:8080
-Content-Type: multipart/form-data; boundary=----WebKitFormBoundarytyE4wkKlZ5CQJVTG
-Content-Length: 1000
-
-------WebKitFormBoundarytyE4wkKlZ5CQJVTG
-Content-Disposition: form-data; name="upload"; filename=""
-Content-Type: text/plain
-
-I am a plain text file
-
-------WebKitFormBoundarytyE4wkKlZ5CQJVTG--
-
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http
deleted file mode 100644
index 4ef3917..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http
+++ /dev/null
@@ -1,26 +0,0 @@
-POST /upload HTTP/1.1
-Host: localhost:8080
-Connection: keep-alive
-Referer: http://localhost:8080/
-Content-Length: 383
-Cache-Control: max-age=0
-Origin: http://localhost:8080
-User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1
-Content-Type: multipart/form-data; boundary=----WebKitFormBoundarytyE4wkKlZ5CQJVTG
-Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
-Accept-Encoding: gzip,deflate,sdch
-Accept-Language: en-US,en;q=0.8
-Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
-Cookie: jqCookieJar_tablesorter=%7B%22showListTable%22%3A%5B%5B5%2C1%5D%2C%5B1%2C0%5D%5D%7D
-
-------WebKitFormBoundarytyE4wkKlZ5CQJVTG
-Content-Disposition: form-data; name="title"
-
-Weird filename
-------WebKitFormBoundarytyE4wkKlZ5CQJVTG
-Content-Disposition: form-data; name="upload"; filename=": \ ? % * | %22 < > . ? ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"
-Content-Type: text/plain
-
-I am a text file with a funky name!
-
-------WebKitFormBoundarytyE4wkKlZ5CQJVTG--
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-firefox-3.6.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-firefox-3.6.http
deleted file mode 100644
index bf49f85..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-firefox-3.6.http
+++ /dev/null
@@ -1,24 +0,0 @@
-POST /upload HTTP/1.1
-Host: localhost:8080
-User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.22) Gecko/20110902 Firefox/3.6.22
-Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
-Accept-Language: en-us,en;q=0.5
-Accept-Encoding: gzip,deflate
-Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
-Keep-Alive: 115
-Connection: keep-alive
-Referer: http://localhost:8080/
-Content-Type: multipart/form-data; boundary=---------------------------9849436581144108930470211272
-Content-Length: 438
-
------------------------------9849436581144108930470211272
-Content-Disposition: form-data; name="title"
-
-Weird filename
------------------------------9849436581144108930470211272
-Content-Disposition: form-data; name="upload"; filename=": \ ? % * | " < > . &#9731; ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"
-Content-Type: text/plain
-
-I am a text file with a funky name!
-
------------------------------9849436581144108930470211272--
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http
deleted file mode 100644
index ff158a4..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http
+++ /dev/null
@@ -1,23 +0,0 @@
-POST /upload HTTP/1.1
-Host: localhost:8080
-Origin: http://localhost:8080
-Content-Length: 383
-User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1
-Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryQJZ1gvhvdgfisJPJ
-Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
-Referer: http://localhost:8080/
-Accept-Language: en-us
-Accept-Encoding: gzip, deflate
-Connection: keep-alive
-
-------WebKitFormBoundaryQJZ1gvhvdgfisJPJ
-Content-Disposition: form-data; name="title"
-
-Weird filename
-------WebKitFormBoundaryQJZ1gvhvdgfisJPJ
-Content-Disposition: form-data; name="upload"; filename=": \ ? % * | %22 < > . ? ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"
-Content-Type: text/plain
-
-I am a text file with a funky name!
-
-------WebKitFormBoundaryQJZ1gvhvdgfisJPJ--
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http
deleted file mode 100644
index f0fc533..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http
+++ /dev/null
@@ -1,24 +0,0 @@
-POST /upload HTTP/1.1
-Host: 192.168.56.1:8080
-Connection: keep-alive
-Referer: http://192.168.56.1:8080/
-Content-Length: 344
-Cache-Control: max-age=0
-Origin: http://192.168.56.1:8080
-User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30
-Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryEvqBNplR3ByrwQPa
-Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
-Accept-Encoding: gzip,deflate,sdch
-Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
-Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
-
-------WebKitFormBoundaryEvqBNplR3ByrwQPa
-Content-Disposition: form-data; name="title"
-
-Weird filename
-------WebKitFormBoundaryEvqBNplR3ByrwQPa
-Content-Disposition: form-data; name="upload"; filename=" ? % * | %22 < > . ? ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"
-Content-Type: text/plain
-
-
-------WebKitFormBoundaryEvqBNplR3ByrwQPa--
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http
deleted file mode 100644
index 2e2c61c..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http
+++ /dev/null
@@ -1,22 +0,0 @@
-POST /upload HTTP/1.1
-Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, */*
-Referer: http://192.168.56.1:8080/
-Accept-Language: de
-User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
-Content-Type: multipart/form-data; boundary=---------------------------7db1fe232017c
-Accept-Encoding: gzip, deflate
-Host: 192.168.56.1:8080
-Content-Length: 368
-Connection: Keep-Alive
-Cache-Control: no-cache
-
------------------------------7db1fe232017c
-Content-Disposition: form-data; name="title"
-
-Weird filename
------------------------------7db1fe232017c
-Content-Disposition: form-data; name="upload"; filename=" ? % * | " < > . &#9731; ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"
-Content-Type: application/octet-stream
-
-
------------------------------7db1fe232017c--
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http
deleted file mode 100644
index e2b94fa..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http
+++ /dev/null
@@ -1,22 +0,0 @@
-POST /upload HTTP/1.1
-Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, */*
-Referer: http://192.168.56.1:8080/
-Accept-Language: de
-User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
-Content-Type: multipart/form-data; boundary=---------------------------7db3a8372017c
-Accept-Encoding: gzip, deflate
-Host: 192.168.56.1:8080
-Content-Length: 368
-Connection: Keep-Alive
-Cache-Control: no-cache
-
------------------------------7db3a8372017c
-Content-Disposition: form-data; name="title"
-
-Weird filename
------------------------------7db3a8372017c
-Content-Disposition: form-data; name="upload"; filename=" ? % * | " < > . &#9731; ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"
-Content-Type: application/octet-stream
-
-
------------------------------7db3a8372017c--
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http
deleted file mode 100644
index 6379ac0..0000000
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http
+++ /dev/null
@@ -1,22 +0,0 @@
-POST /upload HTTP/1.1
-Host: 192.168.56.1:8080
-Referer: http://192.168.56.1:8080/
-Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
-Accept-Language: en-US
-Origin: http://192.168.56.1:8080
-User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4
-Accept-Encoding: gzip, deflate
-Content-Type: multipart/form-data; boundary=----WebKitFormBoundarykmaWSUbu697WN9TM
-Content-Length: 344
-Connection: keep-alive
-
-------WebKitFormBoundarykmaWSUbu697WN9TM
-Content-Disposition: form-data; name="title"
-
-Weird filename
-------WebKitFormBoundarykmaWSUbu697WN9TM
-Content-Disposition: form-data; name="upload"; filename=" ? % * | %22 < > . ? ; ' @ # $ ^ & ( ) - _ = + { } [ ] ` ~.txt"
-Content-Type: text/plain
-
-
-------WebKitFormBoundarykmaWSUbu697WN9TM--
diff --git a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js
index de2bd0c..b64df8b 100644
--- a/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js
+++ b/weinre.server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js
@@ -372,15 +372,26 @@
 
   form.headers = {};
   form._parseContentLength();
+  assert.strictEqual(form.bytesReceived, null);
   assert.strictEqual(form.bytesExpected, null);
 
   form.headers['content-length'] = '8';
+  gently.expect(form, 'emit', function(event, bytesReceived, bytesExpected) {
+    assert.equal(event, 'progress');
+    assert.equal(bytesReceived, 0);
+    assert.equal(bytesExpected, 8);
+  });
   form._parseContentLength();
   assert.strictEqual(form.bytesReceived, 0);
   assert.strictEqual(form.bytesExpected, 8);
 
   // JS can be evil, lets make sure we are not
   form.headers['content-length'] = '08';
+  gently.expect(form, 'emit', function(event, bytesReceived, bytesExpected) {
+    assert.equal(event, 'progress');
+    assert.equal(bytesReceived, 0);
+    assert.equal(bytesExpected, 8);
+  });
   form._parseContentLength();
   assert.strictEqual(form.bytesExpected, 8);
 });
diff --git a/weinre.server/node_modules/express/node_modules/mime/README.md b/weinre.server/node_modules/express/node_modules/mime/README.md
index a157de1..d8b66a8 100644
--- a/weinre.server/node_modules/express/node_modules/mime/README.md
+++ b/weinre.server/node_modules/express/node_modules/mime/README.md
@@ -1,6 +1,6 @@
 # mime
 
-Support for mapping between file extensions and MIME types.  This module uses the latest version of the Apache "mime.types" file (maps over 620 types to 800+ extensions).  It is also trivially easy to add your own types and extensions, should you need to do that.
+Comprehensive MIME type mapping API. Includes all 600+ types and 800+ extensions defined by the Apache project, plus additional types submitted by the node.js community.
 
 ## Install
 
@@ -11,30 +11,36 @@
 ## API - Queries
 
 ### mime.lookup(path)
-Get the mime type associated with a file. This is method is case-insensitive. Everything in path up to and including the last '/' or '.' is ignored, so you can pass it paths, filenames, or extensions, like so:
+Get the mime type associated with a file. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.').  E.g.
 
     var mime = require('mime');
 
     mime.lookup('/path/to/file.txt');         // => 'text/plain'
     mime.lookup('file.txt');                  // => 'text/plain'
-    mime.lookup('.txt');                      // => 'text/plain'
+    mime.lookup('.TXT');                      // => 'text/plain'
     mime.lookup('htm');                       // => 'text/html'
 
-### mime.extension(type) - lookup the default extension for type
+### mime.extension(type)
+Get the default extension for `type`
 
     mime.extension('text/html');                 // => 'html'
     mime.extension('application/octet-stream');  // => 'bin'
 
-### mime.charsets.lookup() - map mime-type to charset
+### mime.charsets.lookup()
+
+Map mime-type to charset
 
     mime.charsets.lookup('text/plain');        // => 'UTF-8'
 
 (The logic for charset lookups is pretty rudimentary.  Feel free to suggest improvements.)
 
-## API - Customizing
+## API - Defining Custom Types
 
 The following APIs allow you to add your own type mappings within your project.  If you feel a type should be included as part of node-mime, see [requesting new types](https://github.com/bentomas/node-mime/wiki/Requesting-New-Types).
-### mime.define() - Add custom mime/extension mappings
+
+### mime.define()
+
+Add custom mime/extension mappings
 
     mime.define({
         'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'],
@@ -43,8 +49,15 @@
     });
 
     mime.lookup('x-sft');                 // => 'text/x-some-format'
+
+The first entry in the extensions array is returned by `mime.extension()`. E.g.
+
     mime.extension('text/x-some-format'); // => 'x-sf'
 
-### mime.load(filepath) - Load mappings from an Apache ".types" format file
+### mime.load(filepath)
+
+Load mappings from an Apache ".types" format file
 
     mime.load('./my_project.types');
+
+The .types file format is simple -  See the `types` dir for examples.
diff --git a/weinre.server/node_modules/express/node_modules/mime/mime.js b/weinre.server/node_modules/express/node_modules/mime/mime.js
index 5fac753..64dbeec 100644
--- a/weinre.server/node_modules/express/node_modules/mime/mime.js
+++ b/weinre.server/node_modules/express/node_modules/mime/mime.js
@@ -2,11 +2,11 @@
     fs = require('fs');
 
 var mime = module.exports = {
-  /** Map of extension to mime type */
-  types: {},
+  // Map of extension to mime type
+  types: Object.create(null),
 
-  /** Map of mime type to extension */
-  extensions :{},
+  // Map of mime type to extension
+  extensions :Object.create(null),
 
   /**
    * Define mimetype -> extension mappings.  Each key is a mime-type that maps
@@ -60,7 +60,8 @@
    */
   lookup: function(path, fallback) {
     var ext = path.replace(/.*[\.\/]/, '').toLowerCase();
-    return mime.types[ext] || fallback || mime.default_type;
+
+    return mime.types[ext] || fallback || mime.default_type
   },
 
   /**
diff --git a/weinre.server/node_modules/express/node_modules/mime/test.js b/weinre.server/node_modules/express/node_modules/mime/test.js
index b904895..8a8a5b1 100644
--- a/weinre.server/node_modules/express/node_modules/mime/test.js
+++ b/weinre.server/node_modules/express/node_modules/mime/test.js
@@ -1,79 +1,53 @@
 /**
- * Requires the async_testing module
- *
  * Usage: node test.js
  */
+
 var mime = require('./mime');
-exports["test mime lookup"] = function(test) {
-  // easy
-  test.equal('text/plain', mime.lookup('text.txt'));
+var assert = require('assert');
 
-  // hidden file or multiple periods
-  test.equal('text/plain', mime.lookup('.text.txt'));
-
-  // just an extension
-  test.equal('text/plain', mime.lookup('.txt'));
-
-  // just an extension without a dot
-  test.equal('text/plain', mime.lookup('txt'));
-
-  // default
-  test.equal('application/octet-stream', mime.lookup('text.nope'));
-
-  // fallback
-  test.equal('fallback', mime.lookup('text.fallback', 'fallback'));
-
-  test.finish();
-};
-
-exports["test extension lookup"] = function(test) {
-  // easy
-  test.equal('txt', mime.extension(mime.types.text));
-  test.equal('html', mime.extension(mime.types.htm));
-  test.equal('bin', mime.extension('application/octet-stream'));
-
-  test.finish();
-};
-
-exports["test mime lookup uppercase"] = function(test) {
-  // easy
-  test.equal('text/plain', mime.lookup('TEXT.TXT'));
-
-  // just an extension
-  test.equal('text/plain', mime.lookup('.TXT'));
-
-  // just an extension without a dot
-  test.equal('text/plain', mime.lookup('TXT'));
-
-  // default
-  test.equal('application/octet-stream', mime.lookup('TEXT.NOPE'));
-
-  // fallback
-  test.equal('fallback', mime.lookup('TEXT.FALLBACK', 'fallback'));
-
-  test.finish();
-};
-
-exports["test custom types"] = function(test) {
-  test.equal('application/octet-stream', mime.lookup('file.buffer'));
-  test.equal('audio/mp4', mime.lookup('file.m4a'));
-
-  test.finish();
-};
-
-exports["test charset lookup"] = function(test) {
-  // easy
-  test.equal('UTF-8', mime.charsets.lookup('text/plain'));
-
-  // none
-  test.ok(typeof mime.charsets.lookup(mime.types.js) == 'undefined');
-
-  // fallback
-  test.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback'));
-
-  test.finish();
-};
-
-if (module == require.main) {
-  require('async_testing').run(__filename, process.ARGV);
+function eq(a, b) {
+  console.log('Test: ' + a + ' === ' + b);
+  assert.strictEqual.apply(null, arguments);
 }
+
+console.log(Object.keys(mime.extensions).length + ' types');
+console.log(Object.keys(mime.types).length + ' extensions\n');
+
+//
+// Test mime lookups
+//
+
+eq('text/plain', mime.lookup('text.txt'));
+eq('text/plain', mime.lookup('.text.txt'));
+eq('text/plain', mime.lookup('.txt'));
+eq('text/plain', mime.lookup('txt'));
+eq('application/octet-stream', mime.lookup('text.nope'));
+eq('fallback', mime.lookup('text.fallback', 'fallback'));
+eq('application/octet-stream', mime.lookup('constructor'));
+eq('text/plain', mime.lookup('TEXT.TXT'));
+
+//
+// Test extensions
+//
+
+eq('txt', mime.extension(mime.types.text));
+eq('html', mime.extension(mime.types.htm));
+eq('bin', mime.extension('application/octet-stream'));
+eq(undefined, mime.extension('constructor'));
+
+//
+// Test node types
+//
+
+eq('application/octet-stream', mime.lookup('file.buffer'));
+eq('audio/mp4', mime.lookup('file.m4a'));
+
+//
+// Test charsets
+//
+
+eq('UTF-8', mime.charsets.lookup('text/plain'));
+eq(undefined, mime.charsets.lookup(mime.types.js));
+eq('fallback', mime.charsets.lookup('application/octet-stream', 'fallback'));
+
+console.log('\nOK');
diff --git a/weinre.server/node_modules/express/node_modules/mime/types/mime.types b/weinre.server/node_modules/express/node_modules/mime/types/mime.types
index 6a90929..b3cae2e 100644
--- a/weinre.server/node_modules/express/node_modules/mime/types/mime.types
+++ b/weinre.server/node_modules/express/node_modules/mime/types/mime.types
@@ -26,7 +26,9 @@
 # application/auth-policy+xml
 # application/batch-smtp
 # application/beep+xml
+# application/calendar+xml
 # application/cals-1840
+# application/ccmp+xml
 application/ccxml+xml				ccxml
 application/cdmi-capability			cdmia
 application/cdmi-container			cdmic
@@ -83,6 +85,7 @@
 # application/index.obj
 # application/index.response
 # application/index.vnd
+application/inkml+xml				ink inkml
 # application/iotp
 application/ipfix				ipfix
 # application/ipp
@@ -147,6 +150,7 @@
 application/oebps-package+xml			opf
 application/ogg					ogx
 application/onenote				onetoc onetoc2 onetmp onepkg
+application/oxps				oxps
 # application/parityfec
 application/patch-ops-error+xml			xer
 application/pdf					pdf
@@ -185,6 +189,10 @@
 # application/riscos
 # application/rlmi+xml
 application/rls-services+xml			rs
+application/rpki-ghostbusters			gbr
+application/rpki-manifest			mft
+application/rpki-roa				roa
+# application/rpki-updown
 application/rsd+xml				rsd
 application/rss+xml				rss
 application/rtf					rtf
@@ -238,6 +246,7 @@
 application/timestamped-data			tsd
 # application/tve-trigger
 # application/ulpfec
+# application/vcard+xml
 # application/vemmi
 # application/vividence.scriptfile
 # application/vnd.3gpp.bsf+xml
@@ -275,6 +284,7 @@
 application/vnd.apple.mpegurl			m3u8
 # application/vnd.arastra.swi
 application/vnd.aristanetworks.swi		swi
+application/vnd.astraea-software.iota		iota
 application/vnd.audiograph			aep
 # application/vnd.autopackage
 # application/vnd.avistar+xml
@@ -295,6 +305,7 @@
 application/vnd.clonk.c4group			c4g c4d c4f c4p c4u
 application/vnd.cluetrust.cartomobile-config		c11amc
 application/vnd.cluetrust.cartomobile-config-pkg	c11amz
+# application/vnd.collection+json
 # application/vnd.commerce-battelle
 application/vnd.commonspace			csp
 application/vnd.contact.cmsg			cdbcmsg
@@ -312,6 +323,7 @@
 application/vnd.cups-ppd			ppd
 # application/vnd.cups-raster
 # application/vnd.cups-raw
+# application/vnd.curl
 application/vnd.curl.car			car
 application/vnd.curl.pcurl			pcurl
 # application/vnd.cybank
@@ -319,6 +331,7 @@
 application/vnd.dece.data			uvf uvvf uvd uvvd
 application/vnd.dece.ttml+xml			uvt uvvt
 application/vnd.dece.unspecified		uvx uvvx
+application/vnd.dece.zip			uvz uvvz
 application/vnd.denovo.fcselayout-link		fe_launch
 # application/vnd.dir-bi.plate-dl-nosuffix
 application/vnd.dna				dna
@@ -358,6 +371,7 @@
 # application/vnd.ecowin.seriesupdate
 # application/vnd.emclient.accessrequest+xml
 application/vnd.enliven				nml
+# application/vnd.eprints.data+xml
 application/vnd.epson.esf			esf
 application/vnd.epson.msf			msf
 application/vnd.epson.quickanime		qam
@@ -433,6 +447,7 @@
 application/vnd.groove-tool-message		gtm
 application/vnd.groove-tool-template		tpl
 application/vnd.groove-vcard			vcg
+# application/vnd.hal+json
 application/vnd.hal+xml				hal
 application/vnd.handheld-entertainment+xml	zmm
 application/vnd.hbci				hbci
@@ -588,6 +603,7 @@
 # application/vnd.music-niff
 application/vnd.musician			mus
 application/vnd.muvee.style			msty
+application/vnd.mynfc				taglet
 # application/vnd.ncd.control
 # application/vnd.ncd.reference
 # application/vnd.nervana
@@ -636,6 +652,7 @@
 application/vnd.oasis.opendocument.text-template	ott
 application/vnd.oasis.opendocument.text-web		oth
 # application/vnd.obn
+# application/vnd.oftn.l10n+json
 # application/vnd.oipf.contentaccessdownload+xml
 # application/vnd.oipf.contentaccessstreaming+xml
 # application/vnd.oipf.cspg-hexbinary
@@ -665,12 +682,15 @@
 # application/vnd.oma.bcast.sprov+xml
 # application/vnd.oma.bcast.stkm
 # application/vnd.oma.cab-address-book+xml
+# application/vnd.oma.cab-feature-handler+xml
 # application/vnd.oma.cab-pcc+xml
+# application/vnd.oma.cab-user-prefs+xml
 # application/vnd.oma.dcd
 # application/vnd.oma.dcdc
 application/vnd.oma.dd2+xml			dd2
 # application/vnd.oma.drm.risd+xml
 # application/vnd.oma.group-usage-list+xml
+# application/vnd.oma.pal+xml
 # application/vnd.oma.poc.detailed-progress-report+xml
 # application/vnd.oma.poc.final-report+xml
 # application/vnd.oma.poc.groups+xml
@@ -857,6 +877,7 @@
 application/vnd.stardivision.math		smf
 application/vnd.stardivision.writer		sdw vor
 application/vnd.stardivision.writer-global	sgl
+application/vnd.stepmania.package		smzip
 application/vnd.stepmania.stepchart		sm
 # application/vnd.street-stream
 application/vnd.sun.xml.calc			sxc
@@ -880,6 +901,7 @@
 # application/vnd.syncml.dm.notification
 # application/vnd.syncml.ds.notification
 application/vnd.tao.intent-module-archive	tao
+application/vnd.tcpdump.pcap			pcap cap dmp
 application/vnd.tmobile-livetv			tmo
 application/vnd.trid.tpt			tpt
 application/vnd.triscape.mxs			mxs
@@ -949,6 +971,7 @@
 # application/vnd.yamaha.remote-setup
 application/vnd.yamaha.smaf-audio		saf
 application/vnd.yamaha.smaf-phrase		spf
+# application/vnd.yamaha.through-ngn
 # application/vnd.yamaha.tunnel-udpencap
 application/vnd.yellowriver-custom-menu		cmp
 application/vnd.zul				zir zirz
@@ -1096,6 +1119,7 @@
 # audio/dsr-es202050
 # audio/dsr-es202211
 # audio/dsr-es202212
+# audio/dv
 # audio/dvi4
 # audio/eac3
 # audio/evrc
@@ -1109,6 +1133,7 @@
 # audio/evrcwb0
 # audio/evrcwb1
 # audio/example
+# audio/fwdred
 # audio/g719
 # audio/g722
 # audio/g7221
@@ -1126,6 +1151,7 @@
 # audio/gsm-efr
 # audio/gsm-hr-08
 # audio/ilbc
+# audio/ip-mr_v2.5
 # audio/l16
 # audio/l20
 # audio/l24
@@ -1186,6 +1212,7 @@
 audio/vnd.dra					dra
 audio/vnd.dts					dts
 audio/vnd.dts.hd				dtshd
+# audio/vnd.dvb.file				dvb
 # audio/vnd.everad.plj
 # audio/vnd.hns.audio
 audio/vnd.lucent.voice				lvp
@@ -1337,6 +1364,7 @@
 # text/ecmascript
 # text/enriched
 # text/example
+# text/fwdred
 text/html					html htm
 # text/javascript
 text/n3						n3
@@ -1358,12 +1386,14 @@
 text/turtle					ttl
 # text/ulpfec
 text/uri-list					uri uris urls
+text/vcard					vcard
 # text/vnd.abc
 text/vnd.curl					curl
 text/vnd.curl.dcurl				dcurl
 text/vnd.curl.scurl				scurl
 text/vnd.curl.mcurl				mcurl
 # text/vnd.dmclientscript
+text/vnd.dvb.subtitle				sub
 # text/vnd.esmertec.theme-descriptor
 text/vnd.fly					fly
 text/vnd.fmi.flexstor				flx
@@ -1443,6 +1473,7 @@
 # video/vnd.directv.mpeg
 # video/vnd.directv.mpeg-tts
 # video/vnd.dlna.mpeg-tts
+video/vnd.dvb.file				dvb
 video/vnd.fvt					fvt
 # video/vnd.hns.video
 # video/vnd.iptvforum.1dparityfec-1010
diff --git a/weinre.server/node_modules/express/node_modules/mime/types/node.types b/weinre.server/node_modules/express/node_modules/mime/types/node.types
index fdabaa4..f7da49f 100644
--- a/weinre.server/node_modules/express/node_modules/mime/types/node.types
+++ b/weinre.server/node_modules/express/node_modules/mime/types/node.types
@@ -41,3 +41,8 @@
 # Why: See https://github.com/bentomas/node-mime/pull/6
 # Added by: mjrusso
 video/MP2T  ts
+
+# What: The FLAC lossless codec format
+# Why: Streaming and serving FLAC audio
+# Added by: jacobrask
+audio/flac  flac
\ No newline at end of file
diff --git a/weinre.server/weinre b/weinre.server/weinre
index d1b9904..55b7f65 100755
--- a/weinre.server/weinre
+++ b/weinre.server/weinre
@@ -25,9 +25,11 @@
 
 var path = require('path')
 var fs   = require('fs')
-var lib  = path.join(path.dirname(fs.realpathSync(__filename)), 'lib')
 
-require('coffee-script')
+var rootPath = path.dirname(fs.realpathSync(__filename))
 
-var cli = require(lib + '/cli')
-cli.run()
+var lib          = path.join(rootPath, 'lib')
+var node_modules = path.join(rootPath, 'node_modules')
+
+require(path.join(node_modules, 'coffee-script'))
+require(path.join(lib, '/cli')).run()
diff --git a/weinre.server/weinre-hot b/weinre.server/weinre-hot
index 2287149..cce978b 100755
--- a/weinre.server/weinre-hot
+++ b/weinre.server/weinre-hot
@@ -25,6 +25,6 @@
 # to determine whether to kill and restart the server.
 
 cd `dirname $0`
-supervisor -n -p 1 -e txt -w ../weinre.build/out/build-done.txt ./weinre
+supervisor -n -p 1 -e txt -w ../weinre.build/out/build-done.txt node weinre
 
 # supervisor: https://github.com/isaacs/node-supervisor
\ No newline at end of file
