/* automatically generated by JSCoverage - do not edit */
if (typeof _$jscoverage === 'undefined') _$jscoverage = {};
if (! _$jscoverage['browserify/lib/wrap.js']) {
  _$jscoverage['browserify/lib/wrap.js'] = [];
  _$jscoverage['browserify/lib/wrap.js'][1] = 0;
  _$jscoverage['browserify/lib/wrap.js'][2] = 0;
  _$jscoverage['browserify/lib/wrap.js'][3] = 0;
  _$jscoverage['browserify/lib/wrap.js'][4] = 0;
  _$jscoverage['browserify/lib/wrap.js'][6] = 0;
  _$jscoverage['browserify/lib/wrap.js'][7] = 0;
  _$jscoverage['browserify/lib/wrap.js'][8] = 0;
  _$jscoverage['browserify/lib/wrap.js'][10] = 0;
  _$jscoverage['browserify/lib/wrap.js'][11] = 0;
  _$jscoverage['browserify/lib/wrap.js'][12] = 0;
  _$jscoverage['browserify/lib/wrap.js'][13] = 0;
  _$jscoverage['browserify/lib/wrap.js'][15] = 0;
  _$jscoverage['browserify/lib/wrap.js'][16] = 0;
  _$jscoverage['browserify/lib/wrap.js'][18] = 0;
  _$jscoverage['browserify/lib/wrap.js'][19] = 0;
  _$jscoverage['browserify/lib/wrap.js'][21] = 0;
  _$jscoverage['browserify/lib/wrap.js'][22] = 0;
  _$jscoverage['browserify/lib/wrap.js'][25] = 0;
  _$jscoverage['browserify/lib/wrap.js'][26] = 0;
  _$jscoverage['browserify/lib/wrap.js'][27] = 0;
  _$jscoverage['browserify/lib/wrap.js'][28] = 0;
  _$jscoverage['browserify/lib/wrap.js'][31] = 0;
  _$jscoverage['browserify/lib/wrap.js'][32] = 0;
  _$jscoverage['browserify/lib/wrap.js'][33] = 0;
  _$jscoverage['browserify/lib/wrap.js'][34] = 0;
  _$jscoverage['browserify/lib/wrap.js'][37] = 0;
  _$jscoverage['browserify/lib/wrap.js'][41] = 0;
  _$jscoverage['browserify/lib/wrap.js'][44] = 0;
  _$jscoverage['browserify/lib/wrap.js'][46] = 0;
  _$jscoverage['browserify/lib/wrap.js'][47] = 0;
  _$jscoverage['browserify/lib/wrap.js'][48] = 0;
  _$jscoverage['browserify/lib/wrap.js'][49] = 0;
  _$jscoverage['browserify/lib/wrap.js'][50] = 0;
  _$jscoverage['browserify/lib/wrap.js'][51] = 0;
  _$jscoverage['browserify/lib/wrap.js'][52] = 0;
  _$jscoverage['browserify/lib/wrap.js'][53] = 0;
  _$jscoverage['browserify/lib/wrap.js'][55] = 0;
  _$jscoverage['browserify/lib/wrap.js'][56] = 0;
  _$jscoverage['browserify/lib/wrap.js'][58] = 0;
  _$jscoverage['browserify/lib/wrap.js'][59] = 0;
  _$jscoverage['browserify/lib/wrap.js'][60] = 0;
  _$jscoverage['browserify/lib/wrap.js'][61] = 0;
  _$jscoverage['browserify/lib/wrap.js'][63] = 0;
  _$jscoverage['browserify/lib/wrap.js'][64] = 0;
  _$jscoverage['browserify/lib/wrap.js'][67] = 0;
  _$jscoverage['browserify/lib/wrap.js'][70] = 0;
  _$jscoverage['browserify/lib/wrap.js'][73] = 0;
  _$jscoverage['browserify/lib/wrap.js'][75] = 0;
  _$jscoverage['browserify/lib/wrap.js'][78] = 0;
  _$jscoverage['browserify/lib/wrap.js'][81] = 0;
  _$jscoverage['browserify/lib/wrap.js'][83] = 0;
  _$jscoverage['browserify/lib/wrap.js'][84] = 0;
  _$jscoverage['browserify/lib/wrap.js'][85] = 0;
  _$jscoverage['browserify/lib/wrap.js'][88] = 0;
  _$jscoverage['browserify/lib/wrap.js'][89] = 0;
  _$jscoverage['browserify/lib/wrap.js'][90] = 0;
  _$jscoverage['browserify/lib/wrap.js'][93] = 0;
  _$jscoverage['browserify/lib/wrap.js'][94] = 0;
  _$jscoverage['browserify/lib/wrap.js'][95] = 0;
  _$jscoverage['browserify/lib/wrap.js'][97] = 0;
  _$jscoverage['browserify/lib/wrap.js'][98] = 0;
  _$jscoverage['browserify/lib/wrap.js'][99] = 0;
  _$jscoverage['browserify/lib/wrap.js'][102] = 0;
  _$jscoverage['browserify/lib/wrap.js'][105] = 0;
  _$jscoverage['browserify/lib/wrap.js'][106] = 0;
  _$jscoverage['browserify/lib/wrap.js'][107] = 0;
  _$jscoverage['browserify/lib/wrap.js'][110] = 0;
  _$jscoverage['browserify/lib/wrap.js'][111] = 0;
  _$jscoverage['browserify/lib/wrap.js'][112] = 0;
  _$jscoverage['browserify/lib/wrap.js'][113] = 0;
  _$jscoverage['browserify/lib/wrap.js'][116] = 0;
  _$jscoverage['browserify/lib/wrap.js'][117] = 0;
  _$jscoverage['browserify/lib/wrap.js'][119] = 0;
  _$jscoverage['browserify/lib/wrap.js'][120] = 0;
  _$jscoverage['browserify/lib/wrap.js'][122] = 0;
  _$jscoverage['browserify/lib/wrap.js'][123] = 0;
  _$jscoverage['browserify/lib/wrap.js'][125] = 0;
  _$jscoverage['browserify/lib/wrap.js'][126] = 0;
  _$jscoverage['browserify/lib/wrap.js'][127] = 0;
  _$jscoverage['browserify/lib/wrap.js'][128] = 0;
  _$jscoverage['browserify/lib/wrap.js'][129] = 0;
  _$jscoverage['browserify/lib/wrap.js'][131] = 0;
  _$jscoverage['browserify/lib/wrap.js'][135] = 0;
  _$jscoverage['browserify/lib/wrap.js'][137] = 0;
  _$jscoverage['browserify/lib/wrap.js'][140] = 0;
  _$jscoverage['browserify/lib/wrap.js'][141] = 0;
  _$jscoverage['browserify/lib/wrap.js'][142] = 0;
  _$jscoverage['browserify/lib/wrap.js'][144] = 0;
  _$jscoverage['browserify/lib/wrap.js'][145] = 0;
  _$jscoverage['browserify/lib/wrap.js'][146] = 0;
  _$jscoverage['browserify/lib/wrap.js'][147] = 0;
  _$jscoverage['browserify/lib/wrap.js'][149] = 0;
  _$jscoverage['browserify/lib/wrap.js'][151] = 0;
  _$jscoverage['browserify/lib/wrap.js'][152] = 0;
  _$jscoverage['browserify/lib/wrap.js'][153] = 0;
  _$jscoverage['browserify/lib/wrap.js'][154] = 0;
  _$jscoverage['browserify/lib/wrap.js'][156] = 0;
  _$jscoverage['browserify/lib/wrap.js'][159] = 0;
  _$jscoverage['browserify/lib/wrap.js'][162] = 0;
  _$jscoverage['browserify/lib/wrap.js'][163] = 0;
  _$jscoverage['browserify/lib/wrap.js'][165] = 0;
  _$jscoverage['browserify/lib/wrap.js'][166] = 0;
  _$jscoverage['browserify/lib/wrap.js'][169] = 0;
  _$jscoverage['browserify/lib/wrap.js'][171] = 0;
  _$jscoverage['browserify/lib/wrap.js'][172] = 0;
  _$jscoverage['browserify/lib/wrap.js'][175] = 0;
  _$jscoverage['browserify/lib/wrap.js'][176] = 0;
  _$jscoverage['browserify/lib/wrap.js'][177] = 0;
  _$jscoverage['browserify/lib/wrap.js'][179] = 0;
  _$jscoverage['browserify/lib/wrap.js'][180] = 0;
  _$jscoverage['browserify/lib/wrap.js'][182] = 0;
  _$jscoverage['browserify/lib/wrap.js'][185] = 0;
  _$jscoverage['browserify/lib/wrap.js'][188] = 0;
  _$jscoverage['browserify/lib/wrap.js'][191] = 0;
  _$jscoverage['browserify/lib/wrap.js'][192] = 0;
  _$jscoverage['browserify/lib/wrap.js'][193] = 0;
  _$jscoverage['browserify/lib/wrap.js'][196] = 0;
  _$jscoverage['browserify/lib/wrap.js'][197] = 0;
  _$jscoverage['browserify/lib/wrap.js'][198] = 0;
  _$jscoverage['browserify/lib/wrap.js'][199] = 0;
  _$jscoverage['browserify/lib/wrap.js'][201] = 0;
  _$jscoverage['browserify/lib/wrap.js'][203] = 0;
  _$jscoverage['browserify/lib/wrap.js'][204] = 0;
  _$jscoverage['browserify/lib/wrap.js'][206] = 0;
  _$jscoverage['browserify/lib/wrap.js'][208] = 0;
  _$jscoverage['browserify/lib/wrap.js'][209] = 0;
  _$jscoverage['browserify/lib/wrap.js'][212] = 0;
  _$jscoverage['browserify/lib/wrap.js'][213] = 0;
  _$jscoverage['browserify/lib/wrap.js'][217] = 0;
  _$jscoverage['browserify/lib/wrap.js'][219] = 0;
  _$jscoverage['browserify/lib/wrap.js'][222] = 0;
  _$jscoverage['browserify/lib/wrap.js'][223] = 0;
  _$jscoverage['browserify/lib/wrap.js'][224] = 0;
  _$jscoverage['browserify/lib/wrap.js'][225] = 0;
  _$jscoverage['browserify/lib/wrap.js'][229] = 0;
  _$jscoverage['browserify/lib/wrap.js'][231] = 0;
  _$jscoverage['browserify/lib/wrap.js'][232] = 0;
  _$jscoverage['browserify/lib/wrap.js'][236] = 0;
  _$jscoverage['browserify/lib/wrap.js'][237] = 0;
  _$jscoverage['browserify/lib/wrap.js'][239] = 0;
  _$jscoverage['browserify/lib/wrap.js'][242] = 0;
  _$jscoverage['browserify/lib/wrap.js'][245] = 0;
  _$jscoverage['browserify/lib/wrap.js'][246] = 0;
  _$jscoverage['browserify/lib/wrap.js'][248] = 0;
  _$jscoverage['browserify/lib/wrap.js'][249] = 0;
  _$jscoverage['browserify/lib/wrap.js'][250] = 0;
  _$jscoverage['browserify/lib/wrap.js'][251] = 0;
  _$jscoverage['browserify/lib/wrap.js'][252] = 0;
  _$jscoverage['browserify/lib/wrap.js'][254] = 0;
  _$jscoverage['browserify/lib/wrap.js'][258] = 0;
  _$jscoverage['browserify/lib/wrap.js'][259] = 0;
  _$jscoverage['browserify/lib/wrap.js'][262] = 0;
  _$jscoverage['browserify/lib/wrap.js'][264] = 0;
  _$jscoverage['browserify/lib/wrap.js'][265] = 0;
  _$jscoverage['browserify/lib/wrap.js'][266] = 0;
  _$jscoverage['browserify/lib/wrap.js'][267] = 0;
  _$jscoverage['browserify/lib/wrap.js'][268] = 0;
  _$jscoverage['browserify/lib/wrap.js'][269] = 0;
  _$jscoverage['browserify/lib/wrap.js'][270] = 0;
  _$jscoverage['browserify/lib/wrap.js'][274] = 0;
  _$jscoverage['browserify/lib/wrap.js'][275] = 0;
  _$jscoverage['browserify/lib/wrap.js'][277] = 0;
  _$jscoverage['browserify/lib/wrap.js'][280] = 0;
  _$jscoverage['browserify/lib/wrap.js'][281] = 0;
  _$jscoverage['browserify/lib/wrap.js'][283] = 0;
  _$jscoverage['browserify/lib/wrap.js'][284] = 0;
  _$jscoverage['browserify/lib/wrap.js'][286] = 0;
  _$jscoverage['browserify/lib/wrap.js'][288] = 0;
  _$jscoverage['browserify/lib/wrap.js'][289] = 0;
  _$jscoverage['browserify/lib/wrap.js'][292] = 0;
  _$jscoverage['browserify/lib/wrap.js'][293] = 0;
  _$jscoverage['browserify/lib/wrap.js'][294] = 0;
  _$jscoverage['browserify/lib/wrap.js'][298] = 0;
  _$jscoverage['browserify/lib/wrap.js'][301] = 0;
  _$jscoverage['browserify/lib/wrap.js'][302] = 0;
  _$jscoverage['browserify/lib/wrap.js'][304] = 0;
  _$jscoverage['browserify/lib/wrap.js'][306] = 0;
  _$jscoverage['browserify/lib/wrap.js'][309] = 0;
  _$jscoverage['browserify/lib/wrap.js'][310] = 0;
  _$jscoverage['browserify/lib/wrap.js'][311] = 0;
  _$jscoverage['browserify/lib/wrap.js'][314] = 0;
  _$jscoverage['browserify/lib/wrap.js'][316] = 0;
  _$jscoverage['browserify/lib/wrap.js'][319] = 0;
  _$jscoverage['browserify/lib/wrap.js'][324] = 0;
  _$jscoverage['browserify/lib/wrap.js'][325] = 0;
  _$jscoverage['browserify/lib/wrap.js'][326] = 0;
  _$jscoverage['browserify/lib/wrap.js'][332] = 0;
  _$jscoverage['browserify/lib/wrap.js'][333] = 0;
  _$jscoverage['browserify/lib/wrap.js'][335] = 0;
  _$jscoverage['browserify/lib/wrap.js'][336] = 0;
  _$jscoverage['browserify/lib/wrap.js'][338] = 0;
  _$jscoverage['browserify/lib/wrap.js'][340] = 0;
  _$jscoverage['browserify/lib/wrap.js'][342] = 0;
  _$jscoverage['browserify/lib/wrap.js'][345] = 0;
  _$jscoverage['browserify/lib/wrap.js'][346] = 0;
  _$jscoverage['browserify/lib/wrap.js'][353] = 0;
  _$jscoverage['browserify/lib/wrap.js'][356] = 0;
  _$jscoverage['browserify/lib/wrap.js'][357] = 0;
  _$jscoverage['browserify/lib/wrap.js'][360] = 0;
  _$jscoverage['browserify/lib/wrap.js'][363] = 0;
  _$jscoverage['browserify/lib/wrap.js'][364] = 0;
  _$jscoverage['browserify/lib/wrap.js'][365] = 0;
  _$jscoverage['browserify/lib/wrap.js'][367] = 0;
  _$jscoverage['browserify/lib/wrap.js'][370] = 0;
  _$jscoverage['browserify/lib/wrap.js'][378] = 0;
  _$jscoverage['browserify/lib/wrap.js'][379] = 0;
  _$jscoverage['browserify/lib/wrap.js'][380] = 0;
  _$jscoverage['browserify/lib/wrap.js'][382] = 0;
  _$jscoverage['browserify/lib/wrap.js'][385] = 0;
  _$jscoverage['browserify/lib/wrap.js'][393] = 0;
  _$jscoverage['browserify/lib/wrap.js'][394] = 0;
  _$jscoverage['browserify/lib/wrap.js'][395] = 0;
  _$jscoverage['browserify/lib/wrap.js'][397] = 0;
  _$jscoverage['browserify/lib/wrap.js'][403] = 0;
  _$jscoverage['browserify/lib/wrap.js'][406] = 0;
  _$jscoverage['browserify/lib/wrap.js'][407] = 0;
  _$jscoverage['browserify/lib/wrap.js'][408] = 0;
  _$jscoverage['browserify/lib/wrap.js'][409] = 0;
  _$jscoverage['browserify/lib/wrap.js'][411] = 0;
  _$jscoverage['browserify/lib/wrap.js'][412] = 0;
  _$jscoverage['browserify/lib/wrap.js'][415] = 0;
  _$jscoverage['browserify/lib/wrap.js'][416] = 0;
  _$jscoverage['browserify/lib/wrap.js'][418] = 0;
  _$jscoverage['browserify/lib/wrap.js'][419] = 0;
  _$jscoverage['browserify/lib/wrap.js'][421] = 0;
  _$jscoverage['browserify/lib/wrap.js'][422] = 0;
  _$jscoverage['browserify/lib/wrap.js'][428] = 0;
  _$jscoverage['browserify/lib/wrap.js'][429] = 0;
  _$jscoverage['browserify/lib/wrap.js'][430] = 0;
  _$jscoverage['browserify/lib/wrap.js'][431] = 0;
  _$jscoverage['browserify/lib/wrap.js'][433] = 0;
  _$jscoverage['browserify/lib/wrap.js'][434] = 0;
  _$jscoverage['browserify/lib/wrap.js'][435] = 0;
  _$jscoverage['browserify/lib/wrap.js'][436] = 0;
  _$jscoverage['browserify/lib/wrap.js'][441] = 0;
  _$jscoverage['browserify/lib/wrap.js'][445] = 0;
  _$jscoverage['browserify/lib/wrap.js'][447] = 0;
  _$jscoverage['browserify/lib/wrap.js'][449] = 0;
  _$jscoverage['browserify/lib/wrap.js'][450] = 0;
  _$jscoverage['browserify/lib/wrap.js'][452] = 0;
  _$jscoverage['browserify/lib/wrap.js'][453] = 0;
  _$jscoverage['browserify/lib/wrap.js'][454] = 0;
  _$jscoverage['browserify/lib/wrap.js'][458] = 0;
  _$jscoverage['browserify/lib/wrap.js'][461] = 0;
  _$jscoverage['browserify/lib/wrap.js'][465] = 0;
  _$jscoverage['browserify/lib/wrap.js'][467] = 0;
  _$jscoverage['browserify/lib/wrap.js'][468] = 0;
  _$jscoverage['browserify/lib/wrap.js'][470] = 0;
  _$jscoverage['browserify/lib/wrap.js'][471] = 0;
  _$jscoverage['browserify/lib/wrap.js'][472] = 0;
  _$jscoverage['browserify/lib/wrap.js'][479] = 0;
  _$jscoverage['browserify/lib/wrap.js'][480] = 0;
  _$jscoverage['browserify/lib/wrap.js'][481] = 0;
  _$jscoverage['browserify/lib/wrap.js'][482] = 0;
  _$jscoverage['browserify/lib/wrap.js'][483] = 0;
  _$jscoverage['browserify/lib/wrap.js'][484] = 0;
  _$jscoverage['browserify/lib/wrap.js'][485] = 0;
  _$jscoverage['browserify/lib/wrap.js'][486] = 0;
  _$jscoverage['browserify/lib/wrap.js'][488] = 0;
  _$jscoverage['browserify/lib/wrap.js'][489] = 0;
  _$jscoverage['browserify/lib/wrap.js'][496] = 0;
  _$jscoverage['browserify/lib/wrap.js'][502] = 0;
  _$jscoverage['browserify/lib/wrap.js'][506] = 0;
  _$jscoverage['browserify/lib/wrap.js'][507] = 0;
  _$jscoverage['browserify/lib/wrap.js'][508] = 0;
  _$jscoverage['browserify/lib/wrap.js'][509] = 0;
  _$jscoverage['browserify/lib/wrap.js'][512] = 0;
  _$jscoverage['browserify/lib/wrap.js'][513] = 0;
  _$jscoverage['browserify/lib/wrap.js'][516] = 0;
  _$jscoverage['browserify/lib/wrap.js'][517] = 0;
  _$jscoverage['browserify/lib/wrap.js'][519] = 0;
  _$jscoverage['browserify/lib/wrap.js'][522] = 0;
  _$jscoverage['browserify/lib/wrap.js'][523] = 0;
  _$jscoverage['browserify/lib/wrap.js'][528] = 0;
  _$jscoverage['browserify/lib/wrap.js'][529] = 0;
  _$jscoverage['browserify/lib/wrap.js'][530] = 0;
  _$jscoverage['browserify/lib/wrap.js'][531] = 0;
  _$jscoverage['browserify/lib/wrap.js'][535] = 0;
  _$jscoverage['browserify/lib/wrap.js'][536] = 0;
  _$jscoverage['browserify/lib/wrap.js'][540] = 0;
  _$jscoverage['browserify/lib/wrap.js'][541] = 0;
  _$jscoverage['browserify/lib/wrap.js'][543] = 0;
  _$jscoverage['browserify/lib/wrap.js'][546] = 0;
  _$jscoverage['browserify/lib/wrap.js'][549] = 0;
  _$jscoverage['browserify/lib/wrap.js'][550] = 0;
  _$jscoverage['browserify/lib/wrap.js'][553] = 0;
  _$jscoverage['browserify/lib/wrap.js'][554] = 0;
  _$jscoverage['browserify/lib/wrap.js'][555] = 0;
  _$jscoverage['browserify/lib/wrap.js'][557] = 0;
  _$jscoverage['browserify/lib/wrap.js'][558] = 0;
  _$jscoverage['browserify/lib/wrap.js'][560] = 0;
  _$jscoverage['browserify/lib/wrap.js'][563] = 0;
  _$jscoverage['browserify/lib/wrap.js'][564] = 0;
  _$jscoverage['browserify/lib/wrap.js'][568] = 0;
  _$jscoverage['browserify/lib/wrap.js'][569] = 0;
  _$jscoverage['browserify/lib/wrap.js'][570] = 0;
  _$jscoverage['browserify/lib/wrap.js'][571] = 0;
  _$jscoverage['browserify/lib/wrap.js'][573] = 0;
  _$jscoverage['browserify/lib/wrap.js'][574] = 0;
  _$jscoverage['browserify/lib/wrap.js'][577] = 0;
}
_$jscoverage['browserify/lib/wrap.js'][1]++;
var fs = require("fs");
_$jscoverage['browserify/lib/wrap.js'][2]++;
var path = require("path");
_$jscoverage['browserify/lib/wrap.js'][3]++;
var util = require("util");
_$jscoverage['browserify/lib/wrap.js'][4]++;
var EventEmitter = require("events").EventEmitter;
_$jscoverage['browserify/lib/wrap.js'][6]++;
var detective = require("detective");
_$jscoverage['browserify/lib/wrap.js'][7]++;
var deputy = require("deputy");
_$jscoverage['browserify/lib/wrap.js'][8]++;
var resolve = require("resolve");
_$jscoverage['browserify/lib/wrap.js'][10]++;
var wrappers = require("./wrappers");
_$jscoverage['browserify/lib/wrap.js'][11]++;
var commondir = require("commondir");
_$jscoverage['browserify/lib/wrap.js'][12]++;
var nub = require("nub");
_$jscoverage['browserify/lib/wrap.js'][13]++;
var checkSyntax = require("syntax-error");
_$jscoverage['browserify/lib/wrap.js'][15]++;
var existsSync = fs.existsSync || path.existsSync;
_$jscoverage['browserify/lib/wrap.js'][16]++;
var sep = path.sep || (process.platform === "win32"? "\\": "/");
_$jscoverage['browserify/lib/wrap.js'][18]++;
module.exports = (function (opts) {
  _$jscoverage['browserify/lib/wrap.js'][19]++;
  return new Wrap(opts);
});
_$jscoverage['browserify/lib/wrap.js'][21]++;
function idFromPath(path) {
  _$jscoverage['browserify/lib/wrap.js'][22]++;
  return path.replace(/\\/g, "/");
}
_$jscoverage['browserify/lib/wrap.js'][25]++;
function Wrap(opts) {
  _$jscoverage['browserify/lib/wrap.js'][26]++;
  var home = process.env.HOME || process.env.USERPROFILE;
  _$jscoverage['browserify/lib/wrap.js'][27]++;
  if (opts.cache === undefined && home !== undefined) {
    _$jscoverage['browserify/lib/wrap.js'][28]++;
    opts.cache = true;
  }
  _$jscoverage['browserify/lib/wrap.js'][31]++;
  if (opts.cache) {
    _$jscoverage['browserify/lib/wrap.js'][32]++;
    if (typeof opts.cache === "boolean") {
      _$jscoverage['browserify/lib/wrap.js'][33]++;
      var file = home + "/.config/browserify/cache.json";
      _$jscoverage['browserify/lib/wrap.js'][34]++;
      this.detective = deputy(file);
    }
    else {
      _$jscoverage['browserify/lib/wrap.js'][37]++;
      this.detective = deputy(opts.cache);
    }
  }
  else {
    _$jscoverage['browserify/lib/wrap.js'][41]++;
    this.detective = detective;
  }
  _$jscoverage['browserify/lib/wrap.js'][44]++;
  this.exports = opts.exports;
  _$jscoverage['browserify/lib/wrap.js'][46]++;
  this.files = {};
  _$jscoverage['browserify/lib/wrap.js'][47]++;
  this.filters = [];
  _$jscoverage['browserify/lib/wrap.js'][48]++;
  this.pathFilters = [];
  _$jscoverage['browserify/lib/wrap.js'][49]++;
  this.postFilters = [];
  _$jscoverage['browserify/lib/wrap.js'][50]++;
  this.preFilters = [];
  _$jscoverage['browserify/lib/wrap.js'][51]++;
  this.aliases = {};
  _$jscoverage['browserify/lib/wrap.js'][52]++;
  this._checkedPackages = {};
  _$jscoverage['browserify/lib/wrap.js'][53]++;
  this.errors = {};
  _$jscoverage['browserify/lib/wrap.js'][55]++;
  this.ignoring = {};
  _$jscoverage['browserify/lib/wrap.js'][56]++;
  this.extensions = [".js"];
  _$jscoverage['browserify/lib/wrap.js'][58]++;
  this.prepends = [wrappers.prelude, wrappers.process];
  _$jscoverage['browserify/lib/wrap.js'][59]++;
  this.appends = [];
  _$jscoverage['browserify/lib/wrap.js'][60]++;
  this.entries = {};
  _$jscoverage['browserify/lib/wrap.js'][61]++;
  this.debug = opts.debug;
  _$jscoverage['browserify/lib/wrap.js'][63]++;
  this.require("path");
  _$jscoverage['browserify/lib/wrap.js'][64]++;
  this.require("__browserify_process");
}
_$jscoverage['browserify/lib/wrap.js'][67]++;
function resolveMod(from, to) {
  _$jscoverage['browserify/lib/wrap.js'][70]++;
  var targetDir = path.dirname(from);
  _$jscoverage['browserify/lib/wrap.js'][73]++;
  var reqFilename = path.resolve(targetDir, to);
  _$jscoverage['browserify/lib/wrap.js'][75]++;
  var reqFilenameWithoutDriveLetter = /^[a-zA-Z]:\\/.test(reqFilename)? "/" + reqFilename.substring(3): reqFilename;
  _$jscoverage['browserify/lib/wrap.js'][78]++;
  return reqFilenameWithoutDriveLetter;
}
_$jscoverage['browserify/lib/wrap.js'][81]++;
util.inherits(Wrap, EventEmitter);
_$jscoverage['browserify/lib/wrap.js'][83]++;
Wrap.prototype.prepend = (function (src) {
  _$jscoverage['browserify/lib/wrap.js'][84]++;
  this.prepends.unshift(src);
  _$jscoverage['browserify/lib/wrap.js'][85]++;
  return this;
});
_$jscoverage['browserify/lib/wrap.js'][88]++;
Wrap.prototype.append = (function (src) {
  _$jscoverage['browserify/lib/wrap.js'][89]++;
  this.appends.push(src);
  _$jscoverage['browserify/lib/wrap.js'][90]++;
  return this;
});
_$jscoverage['browserify/lib/wrap.js'][93]++;
Wrap.prototype.ignore = (function (files) {
  _$jscoverage['browserify/lib/wrap.js'][94]++;
  if (! files) {
    _$jscoverage['browserify/lib/wrap.js'][94]++;
    files = [];
  }
  _$jscoverage['browserify/lib/wrap.js'][95]++;
  if (! Array.isArray(files)) {
    _$jscoverage['browserify/lib/wrap.js'][95]++;
    files = [files];
  }
  _$jscoverage['browserify/lib/wrap.js'][97]++;
  this.ignoring = files.reduce((function (acc, x) {
  _$jscoverage['browserify/lib/wrap.js'][98]++;
  acc[x] = true;
  _$jscoverage['browserify/lib/wrap.js'][99]++;
  return acc;
}), this.ignoring);
  _$jscoverage['browserify/lib/wrap.js'][102]++;
  return this;
});
_$jscoverage['browserify/lib/wrap.js'][105]++;
Wrap.prototype.use = (function (fn) {
  _$jscoverage['browserify/lib/wrap.js'][106]++;
  fn(this, this);
  _$jscoverage['browserify/lib/wrap.js'][107]++;
  return this;
});
_$jscoverage['browserify/lib/wrap.js'][110]++;
Wrap.prototype.register = (function (ext, fn) {
  _$jscoverage['browserify/lib/wrap.js'][111]++;
  if (typeof ext === "object") {
    _$jscoverage['browserify/lib/wrap.js'][112]++;
    fn = ext.wrapper;
    _$jscoverage['browserify/lib/wrap.js'][113]++;
    ext = ext.extension;
  }
  _$jscoverage['browserify/lib/wrap.js'][116]++;
  if (ext === "post") {
    _$jscoverage['browserify/lib/wrap.js'][117]++;
    this.postFilters.push(fn);
  }
  else {
    _$jscoverage['browserify/lib/wrap.js'][119]++;
    if (ext === "pre") {
      _$jscoverage['browserify/lib/wrap.js'][120]++;
      this.preFilters.push(fn);
    }
    else {
      _$jscoverage['browserify/lib/wrap.js'][122]++;
      if (ext === "path") {
        _$jscoverage['browserify/lib/wrap.js'][123]++;
        this.pathFilters.push(fn);
      }
      else {
        _$jscoverage['browserify/lib/wrap.js'][125]++;
        if (fn) {
          _$jscoverage['browserify/lib/wrap.js'][126]++;
          this.extensions.push(ext);
          _$jscoverage['browserify/lib/wrap.js'][127]++;
          this.filters.push((function (body, file) {
  _$jscoverage['browserify/lib/wrap.js'][128]++;
  if (file.slice(- ext.length) === ext) {
    _$jscoverage['browserify/lib/wrap.js'][129]++;
    return fn.call(this, body, file);
  }
  else {
    _$jscoverage['browserify/lib/wrap.js'][131]++;
    return body;
  }
}));
        }
        else {
          _$jscoverage['browserify/lib/wrap.js'][135]++;
          this.filters.push(ext);
        }
      }
    }
  }
  _$jscoverage['browserify/lib/wrap.js'][137]++;
  return this;
});
_$jscoverage['browserify/lib/wrap.js'][140]++;
Wrap.prototype.reload = (function (file) {
  _$jscoverage['browserify/lib/wrap.js'][141]++;
  var self = this;
  _$jscoverage['browserify/lib/wrap.js'][142]++;
  delete self.errors[file];
  _$jscoverage['browserify/lib/wrap.js'][144]++;
  if (self.files[file]) {
    _$jscoverage['browserify/lib/wrap.js'][145]++;
    var f = self.files[file];
    _$jscoverage['browserify/lib/wrap.js'][146]++;
    f.body = undefined;
    _$jscoverage['browserify/lib/wrap.js'][147]++;
    delete self.files[file];
    _$jscoverage['browserify/lib/wrap.js'][149]++;
    self.require(file, f);
  }
  else {
    _$jscoverage['browserify/lib/wrap.js'][151]++;
    if (self.entries[file]) {
      _$jscoverage['browserify/lib/wrap.js'][152]++;
      var e = self.entries[file];
      _$jscoverage['browserify/lib/wrap.js'][153]++;
      e.body = undefined;
      _$jscoverage['browserify/lib/wrap.js'][154]++;
      delete self.entries[file];
      _$jscoverage['browserify/lib/wrap.js'][156]++;
      self.addEntry(file, e);
    }
  }
  _$jscoverage['browserify/lib/wrap.js'][159]++;
  return self;
});
_$jscoverage['browserify/lib/wrap.js'][162]++;
Wrap.prototype.readFile = (function (file) {
  _$jscoverage['browserify/lib/wrap.js'][163]++;
  var self = this;
  _$jscoverage['browserify/lib/wrap.js'][165]++;
  self.pathFilters.forEach((function (fn) {
  _$jscoverage['browserify/lib/wrap.js'][166]++;
  file = fn.call(self, file);
}));
  _$jscoverage['browserify/lib/wrap.js'][169]++;
  var body = fs.readFileSync(file, "utf8").replace(/^#![^\n]*\n/, "");
  _$jscoverage['browserify/lib/wrap.js'][171]++;
  self.filters.forEach((function (fn) {
  _$jscoverage['browserify/lib/wrap.js'][172]++;
  body = fn.call(self, body, file);
}));
  _$jscoverage['browserify/lib/wrap.js'][175]++;
  var err = checkSyntax(body, file);
  _$jscoverage['browserify/lib/wrap.js'][176]++;
  if (err) {
    _$jscoverage['browserify/lib/wrap.js'][177]++;
    self.errors[file] = err;
    _$jscoverage['browserify/lib/wrap.js'][179]++;
    process.nextTick((function () {
  _$jscoverage['browserify/lib/wrap.js'][180]++;
  self.emit("syntaxError", err);
}));
    _$jscoverage['browserify/lib/wrap.js'][182]++;
    return undefined;
  }
  else {
    _$jscoverage['browserify/lib/wrap.js'][185]++;
    delete self.errors[file];
  }
  _$jscoverage['browserify/lib/wrap.js'][188]++;
  return body;
});
_$jscoverage['browserify/lib/wrap.js'][191]++;
Wrap.prototype.alias = (function (to, from) {
  _$jscoverage['browserify/lib/wrap.js'][192]++;
  this.aliases[to] = from;
  _$jscoverage['browserify/lib/wrap.js'][193]++;
  return this;
});
_$jscoverage['browserify/lib/wrap.js'][196]++;
Wrap.prototype.addEntry = (function (file_, opts) {
  _$jscoverage['browserify/lib/wrap.js'][197]++;
  var self = this;
  _$jscoverage['browserify/lib/wrap.js'][198]++;
  if (! opts) {
    _$jscoverage['browserify/lib/wrap.js'][198]++;
    opts = {};
  }
  _$jscoverage['browserify/lib/wrap.js'][199]++;
  var file = path.resolve(opts.dirname || process.cwd(), file_);
  _$jscoverage['browserify/lib/wrap.js'][201]++;
  var entry = this.entries[file] = {};
  _$jscoverage['browserify/lib/wrap.js'][203]++;
  var body = entry.body = opts.body || self.readFile(file);
  _$jscoverage['browserify/lib/wrap.js'][204]++;
  if (body === undefined) {
    _$jscoverage['browserify/lib/wrap.js'][204]++;
    return self;
  }
  _$jscoverage['browserify/lib/wrap.js'][206]++;
  if (opts.target) {
    _$jscoverage['browserify/lib/wrap.js'][206]++;
    entry.target = opts.target;
  }
  _$jscoverage['browserify/lib/wrap.js'][208]++;
  try {
    _$jscoverage['browserify/lib/wrap.js'][209]++;
    var required = self.detective.find(body);
  }
  catch (err) {
    _$jscoverage['browserify/lib/wrap.js'][212]++;
    process.nextTick((function () {
  _$jscoverage['browserify/lib/wrap.js'][213]++;
  err.message = "Error while loading entry file " + JSON.stringify(file) + ": " + err.message;
  _$jscoverage['browserify/lib/wrap.js'][217]++;
  self.emit("syntaxError", err);
}));
    _$jscoverage['browserify/lib/wrap.js'][219]++;
    return self;
  }
  _$jscoverage['browserify/lib/wrap.js'][222]++;
  if (required.expressions.length) {
    _$jscoverage['browserify/lib/wrap.js'][223]++;
    console.error("Expressions in require() statements:");
    _$jscoverage['browserify/lib/wrap.js'][224]++;
    required.expressions.forEach((function (ex) {
  _$jscoverage['browserify/lib/wrap.js'][225]++;
  console.error("    require(" + ex + ")");
}));
  }
  _$jscoverage['browserify/lib/wrap.js'][229]++;
  var dirname = path.dirname(file);
  _$jscoverage['browserify/lib/wrap.js'][231]++;
  required.strings.forEach((function (req) {
  _$jscoverage['browserify/lib/wrap.js'][232]++;
  var params = {dirname: dirname, fromFile: file};
  _$jscoverage['browserify/lib/wrap.js'][236]++;
  if (opts.target && /^[.\/]/.test(req)) {
    _$jscoverage['browserify/lib/wrap.js'][237]++;
    params.target = resolveMod(opts.target, req);
  }
  _$jscoverage['browserify/lib/wrap.js'][239]++;
  self.require(req, params);
}));
  _$jscoverage['browserify/lib/wrap.js'][242]++;
  return this;
});
_$jscoverage['browserify/lib/wrap.js'][245]++;
Wrap.prototype.bundle = (function () {
  _$jscoverage['browserify/lib/wrap.js'][246]++;
  var self = this;
  _$jscoverage['browserify/lib/wrap.js'][248]++;
  for (var i = 0; i < self.prepends.length; i++) {
    _$jscoverage['browserify/lib/wrap.js'][249]++;
    var p = self.prepends[i];
    _$jscoverage['browserify/lib/wrap.js'][250]++;
    if (p === wrappers.prelude) {
      _$jscoverage['browserify/lib/wrap.js'][251]++;
      self.prepends[i] = p.replace(/\$extensions/, (function () {
  _$jscoverage['browserify/lib/wrap.js'][252]++;
  return JSON.stringify(self.extensions);
}));
      _$jscoverage['browserify/lib/wrap.js'][254]++;
      break;
    }
}
  _$jscoverage['browserify/lib/wrap.js'][258]++;
  this.preFilters.forEach((function (fn) {
  _$jscoverage['browserify/lib/wrap.js'][259]++;
  fn.call(this, this);
}).bind(this));
  _$jscoverage['browserify/lib/wrap.js'][262]++;
  (function () {
  _$jscoverage['browserify/lib/wrap.js'][264]++;
  var nm = path.resolve(__dirname, "../node_modules");
  _$jscoverage['browserify/lib/wrap.js'][265]++;
  Object.keys(self.files).forEach((function (file) {
  _$jscoverage['browserify/lib/wrap.js'][266]++;
  if (file.substring(0, nm.length) !== nm) {
    _$jscoverage['browserify/lib/wrap.js'][266]++;
    return;
  }
  _$jscoverage['browserify/lib/wrap.js'][267]++;
  var relativeToNm = path.relative(nm, file);
  _$jscoverage['browserify/lib/wrap.js'][268]++;
  var topDir = relativeToNm.split(sep)[0];
  _$jscoverage['browserify/lib/wrap.js'][269]++;
  if (! /-browserify$/.test(topDir)) {
    _$jscoverage['browserify/lib/wrap.js'][269]++;
    return;
  }
  _$jscoverage['browserify/lib/wrap.js'][270]++;
  self.files[file].target = path.join("/", "node_modules", relativeToNm);
}));
})();
  _$jscoverage['browserify/lib/wrap.js'][274]++;
  var basedir = (function () {
  _$jscoverage['browserify/lib/wrap.js'][275]++;
  var required = Object.keys(self.files).filter((function (x) {
  _$jscoverage['browserify/lib/wrap.js'][277]++;
  return ! self.files[x].target;
}));
  _$jscoverage['browserify/lib/wrap.js'][280]++;
  var entries = Object.keys(self.entries).filter((function (x) {
  _$jscoverage['browserify/lib/wrap.js'][281]++;
  return ! self.entries[x].target;
}));
  _$jscoverage['browserify/lib/wrap.js'][283]++;
  var files = required.concat(entries).map((function (x) {
  _$jscoverage['browserify/lib/wrap.js'][284]++;
  return path.dirname(x);
}));
  _$jscoverage['browserify/lib/wrap.js'][286]++;
  if (files.length === 0) {
    _$jscoverage['browserify/lib/wrap.js'][286]++;
    return "";
  }
  _$jscoverage['browserify/lib/wrap.js'][288]++;
  var dir = commondir(files) + "/";
  _$jscoverage['browserify/lib/wrap.js'][289]++;
  return path.normalize(dir.replace(/\/node_modules\/$/, "/"));
})();
  _$jscoverage['browserify/lib/wrap.js'][292]++;
  var removeLeading = (function (s) {
  _$jscoverage['browserify/lib/wrap.js'][293]++;
  if (s.slice(0, basedir.length) === basedir) {
    _$jscoverage['browserify/lib/wrap.js'][294]++;
    return s.slice(basedir.length - 1);
  }
});
  _$jscoverage['browserify/lib/wrap.js'][298]++;
  var src = [].concat(this.prepends).concat(Object.keys(self.files).map((function (file) {
  _$jscoverage['browserify/lib/wrap.js'][301]++;
  var s = self.files[file];
  _$jscoverage['browserify/lib/wrap.js'][302]++;
  var target = s.target || removeLeading(file);
  _$jscoverage['browserify/lib/wrap.js'][304]++;
  if (self.ignoring[target]) {
    _$jscoverage['browserify/lib/wrap.js'][304]++;
    return "";
  }
  _$jscoverage['browserify/lib/wrap.js'][306]++;
  return self.wrap(idFromPath(target), s.body);
}))).concat(Object.keys(self.aliases).map((function (to) {
  _$jscoverage['browserify/lib/wrap.js'][309]++;
  var from = self.aliases[to];
  _$jscoverage['browserify/lib/wrap.js'][310]++;
  if (! to.match(/^(\.\.?)?\//)) {
    _$jscoverage['browserify/lib/wrap.js'][311]++;
    to = "/node_modules/" + to;
  }
  _$jscoverage['browserify/lib/wrap.js'][314]++;
  return wrappers.alias.replace(/\$from/, (function () {
  _$jscoverage['browserify/lib/wrap.js'][316]++;
  return JSON.stringify(from);
})).replace(/\$to/, (function () {
  _$jscoverage['browserify/lib/wrap.js'][319]++;
  return JSON.stringify(to);
}));
}))).concat(Object.keys(self.entries).map((function (file) {
  _$jscoverage['browserify/lib/wrap.js'][324]++;
  var s = self.entries[file];
  _$jscoverage['browserify/lib/wrap.js'][325]++;
  var target = s.target || removeLeading(file);
  _$jscoverage['browserify/lib/wrap.js'][326]++;
  return self.wrapEntry(idFromPath(target), s.body);
}))).concat(this.appends).join("\n");
  _$jscoverage['browserify/lib/wrap.js'][332]++;
  if (! self.exports) {
    _$jscoverage['browserify/lib/wrap.js'][333]++;
    self.exports = Object.keys(self.entries).length? []: ["require"];
  }
  _$jscoverage['browserify/lib/wrap.js'][335]++;
  if (self.exports === true) {
    _$jscoverage['browserify/lib/wrap.js'][335]++;
    self.exports = ["require", "process"];
  }
  _$jscoverage['browserify/lib/wrap.js'][336]++;
  if (! Array.isArray(self.exports)) {
    _$jscoverage['browserify/lib/wrap.js'][336]++;
    self.exports = [self.exports];
  }
  _$jscoverage['browserify/lib/wrap.js'][338]++;
  if (self.exports.indexOf("process") >= 0 && self.exports.indexOf("require") >= 0) {
    _$jscoverage['browserify/lib/wrap.js'][340]++;
    src += "var process = require(\"__browserify_process\");\n";
  }
  else {
    _$jscoverage['browserify/lib/wrap.js'][342]++;
    if (self.exports.indexOf("require") >= 0) {
    }
    else {
      _$jscoverage['browserify/lib/wrap.js'][345]++;
      if (self.exports.indexOf("process") >= 0) {
        _$jscoverage['browserify/lib/wrap.js'][346]++;
        src = "var process = (function(){" + src + ";return require(\"__browserify_process\")" + "})();\n";
      }
      else {
        _$jscoverage['browserify/lib/wrap.js'][353]++;
        src = "(function(){" + src + "})();\n";
      }
    }
  }
  _$jscoverage['browserify/lib/wrap.js'][356]++;
  this.postFilters.forEach((function (fn) {
  _$jscoverage['browserify/lib/wrap.js'][357]++;
  src = fn.call(this, src);
}).bind(this));
  _$jscoverage['browserify/lib/wrap.js'][360]++;
  return src;
});
_$jscoverage['browserify/lib/wrap.js'][363]++;
Wrap.prototype.wrap = (function (target, body) {
  _$jscoverage['browserify/lib/wrap.js'][364]++;
  var self = this;
  _$jscoverage['browserify/lib/wrap.js'][365]++;
  return (self.debug? wrappers.body_debug: wrappers.body).replace(/\$__filename/g, (function () {
  _$jscoverage['browserify/lib/wrap.js'][367]++;
  return JSON.stringify(target);
})).replace(/\$body/, (function () {
  _$jscoverage['browserify/lib/wrap.js'][370]++;
  return self.debug? JSON.stringify(body + "\n//@ sourceURL=" + target): body;
}));
});
_$jscoverage['browserify/lib/wrap.js'][378]++;
Wrap.prototype.wrapEntry = (function (target, body) {
  _$jscoverage['browserify/lib/wrap.js'][379]++;
  var self = this;
  _$jscoverage['browserify/lib/wrap.js'][380]++;
  return (self.debug? wrappers.entry_debug: wrappers.entry).replace(/\$__filename/g, (function () {
  _$jscoverage['browserify/lib/wrap.js'][382]++;
  return JSON.stringify(target);
})).replace(/\$body/, (function () {
  _$jscoverage['browserify/lib/wrap.js'][385]++;
  return self.debug? JSON.stringify(body + "\n//@ sourceURL=" + target): body;
}));
});
_$jscoverage['browserify/lib/wrap.js'][393]++;
Wrap.prototype.include = (function (file, target, body, root) {
  _$jscoverage['browserify/lib/wrap.js'][394]++;
  var synthetic = ! file;
  _$jscoverage['browserify/lib/wrap.js'][395]++;
  if (! file) {
    _$jscoverage['browserify/lib/wrap.js'][395]++;
    file = Math.floor(Math.random() * Math.pow(2, 32)).toString(16);
  }
  _$jscoverage['browserify/lib/wrap.js'][397]++;
  this.files[file] = {body: body, target: target, synthetic: synthetic, root: root};
  _$jscoverage['browserify/lib/wrap.js'][403]++;
  return this;
});
_$jscoverage['browserify/lib/wrap.js'][406]++;
Wrap.prototype.require = (function (mfile, opts) {
  _$jscoverage['browserify/lib/wrap.js'][407]++;
  var self = this;
  _$jscoverage['browserify/lib/wrap.js'][408]++;
  if (! opts) {
    _$jscoverage['browserify/lib/wrap.js'][408]++;
    opts = {};
  }
  _$jscoverage['browserify/lib/wrap.js'][409]++;
  if (! opts.dirname) {
    _$jscoverage['browserify/lib/wrap.js'][409]++;
    opts.dirname = process.cwd();
  }
  _$jscoverage['browserify/lib/wrap.js'][411]++;
  if (typeof mfile === "object") {
    _$jscoverage['browserify/lib/wrap.js'][412]++;
    throw new Error("require maps no longer supported");
  }
  _$jscoverage['browserify/lib/wrap.js'][415]++;
  if (self.has(mfile)) {
    _$jscoverage['browserify/lib/wrap.js'][415]++;
    return self;
  }
  _$jscoverage['browserify/lib/wrap.js'][416]++;
  if (opts.target && self.has(opts.target)) {
    _$jscoverage['browserify/lib/wrap.js'][416]++;
    return self;
  }
  _$jscoverage['browserify/lib/wrap.js'][418]++;
  if (self.ignoring[mfile]) {
    _$jscoverage['browserify/lib/wrap.js'][418]++;
    return self;
  }
  _$jscoverage['browserify/lib/wrap.js'][419]++;
  if (self.aliases[mfile]) {
    _$jscoverage['browserify/lib/wrap.js'][419]++;
    return self;
  }
  _$jscoverage['browserify/lib/wrap.js'][421]++;
  function moduleError(msg) {
    _$jscoverage['browserify/lib/wrap.js'][422]++;
    return new Error(msg + ": " + JSON.stringify(mfile) + " from directory " + JSON.stringify(opts.dirname) + (opts.fromFile? " while processing file " + opts.fromFile: ""));
}
  _$jscoverage['browserify/lib/wrap.js'][428]++;
  var pkg = {};
  _$jscoverage['browserify/lib/wrap.js'][429]++;
  if (mfile === "__browserify_process" || resolve.isCore(mfile)) {
    _$jscoverage['browserify/lib/wrap.js'][430]++;
    opts.file = path.resolve(__dirname, "../builtins/" + mfile + ".js");
    _$jscoverage['browserify/lib/wrap.js'][431]++;
    opts.target = opts.target || mfile;
    _$jscoverage['browserify/lib/wrap.js'][433]++;
    if (! existsSync(opts.file)) {
      _$jscoverage['browserify/lib/wrap.js'][434]++;
      try {
        _$jscoverage['browserify/lib/wrap.js'][435]++;
        require.resolve(mfile + "-browserify");
        _$jscoverage['browserify/lib/wrap.js'][436]++;
        opts.body = "module.exports = require(" + JSON.stringify(mfile + "-browserify") + ")";
      }
      catch (err) {
        _$jscoverage['browserify/lib/wrap.js'][441]++;
        throw moduleError("No wrapper for core module");
      }
    }
  }
  else {
    _$jscoverage['browserify/lib/wrap.js'][445]++;
    if (self.has(mfile)) {
      _$jscoverage['browserify/lib/wrap.js'][447]++;
      return self;
    }
    else {
      _$jscoverage['browserify/lib/wrap.js'][449]++;
      if (opts.body) {
        _$jscoverage['browserify/lib/wrap.js'][450]++;
        opts.file = mfile;
      }
      else {
        _$jscoverage['browserify/lib/wrap.js'][452]++;
        if (! opts.file) {
          _$jscoverage['browserify/lib/wrap.js'][453]++;
          try {
            _$jscoverage['browserify/lib/wrap.js'][454]++;
            var normPath = path.normalize(path.resolve(mfile)) === path.normalize(mfile)? path.normalize(mfile): mfile;
            _$jscoverage['browserify/lib/wrap.js'][458]++;
            opts.file = self.resolver(normPath, opts.dirname);
          }
          catch (err) {
            _$jscoverage['browserify/lib/wrap.js'][461]++;
            throw moduleError("Cannot find module");
          }
        }
      }
    }
  }
  _$jscoverage['browserify/lib/wrap.js'][465]++;
  if (self.has(opts.file)) {
    _$jscoverage['browserify/lib/wrap.js'][465]++;
    return self;
  }
  _$jscoverage['browserify/lib/wrap.js'][467]++;
  var dirname = path.dirname(opts.file);
  _$jscoverage['browserify/lib/wrap.js'][468]++;
  var pkgfile = path.join(dirname, "package.json");
  _$jscoverage['browserify/lib/wrap.js'][470]++;
  if (! mfile.match(/^(\.\.?)?\//)) {
    _$jscoverage['browserify/lib/wrap.js'][471]++;
    try {
      _$jscoverage['browserify/lib/wrap.js'][472]++;
      pkgfile = resolve.sync(path.join(mfile, "package.json"), {basedir: dirname});
    }
    catch (err) {
    }
  }
  _$jscoverage['browserify/lib/wrap.js'][479]++;
  if (pkgfile && ! self._checkedPackages[pkgfile]) {
    _$jscoverage['browserify/lib/wrap.js'][480]++;
    self._checkedPackages[pkgfile] = true;
    _$jscoverage['browserify/lib/wrap.js'][481]++;
    if (existsSync(pkgfile)) {
      _$jscoverage['browserify/lib/wrap.js'][482]++;
      var pkgBody = fs.readFileSync(pkgfile, "utf8");
      _$jscoverage['browserify/lib/wrap.js'][483]++;
      try {
        _$jscoverage['browserify/lib/wrap.js'][484]++;
        var npmpkg = JSON.parse(pkgBody);
        _$jscoverage['browserify/lib/wrap.js'][485]++;
        if (npmpkg.main !== undefined) {
          _$jscoverage['browserify/lib/wrap.js'][486]++;
          pkg.main = npmpkg.main;
        }
        _$jscoverage['browserify/lib/wrap.js'][488]++;
        if (npmpkg.browserify !== undefined) {
          _$jscoverage['browserify/lib/wrap.js'][489]++;
          pkg.browserify = npmpkg.browserify;
        }
      }
      catch (err) {
      }
      _$jscoverage['browserify/lib/wrap.js'][496]++;
      self.files[pkgfile] = {body: "module.exports = " + JSON.stringify(pkg)};
    }
  }
  _$jscoverage['browserify/lib/wrap.js'][502]++;
  var entry = self.files[opts.file] = {target: opts.target};
  _$jscoverage['browserify/lib/wrap.js'][506]++;
  var body = entry.body = opts.body || self.readFile(opts.file);
  _$jscoverage['browserify/lib/wrap.js'][507]++;
  if (body === undefined) {
    _$jscoverage['browserify/lib/wrap.js'][508]++;
    delete self.files[opts.file];
    _$jscoverage['browserify/lib/wrap.js'][509]++;
    return self;
  }
  _$jscoverage['browserify/lib/wrap.js'][512]++;
  try {
    _$jscoverage['browserify/lib/wrap.js'][513]++;
    var required = self.detective.find(body);
  }
  catch (err) {
    _$jscoverage['browserify/lib/wrap.js'][516]++;
    process.nextTick((function () {
  _$jscoverage['browserify/lib/wrap.js'][517]++;
  self.emit("syntaxError", err);
}));
    _$jscoverage['browserify/lib/wrap.js'][519]++;
    return self;
  }
  _$jscoverage['browserify/lib/wrap.js'][522]++;
  if (pkg.browserify && pkg.browserify.require) {
    _$jscoverage['browserify/lib/wrap.js'][523]++;
    required.strings = required.strings.concat(pkg.browserify.require);
  }
  _$jscoverage['browserify/lib/wrap.js'][528]++;
  if (required.expressions.length) {
    _$jscoverage['browserify/lib/wrap.js'][529]++;
    console.error("Expressions in require() statements:");
    _$jscoverage['browserify/lib/wrap.js'][530]++;
    required.expressions.forEach((function (ex) {
  _$jscoverage['browserify/lib/wrap.js'][531]++;
  console.error("    require(" + ex + ")");
}));
  }
  _$jscoverage['browserify/lib/wrap.js'][535]++;
  nub(required.strings).forEach((function (req) {
  _$jscoverage['browserify/lib/wrap.js'][536]++;
  var params = {dirname: dirname, fromFile: opts.file};
  _$jscoverage['browserify/lib/wrap.js'][540]++;
  if (opts.target && /^[.\/]/.test(req)) {
    _$jscoverage['browserify/lib/wrap.js'][541]++;
    params.target = idFromPath(resolveMod(opts.target, req));
  }
  _$jscoverage['browserify/lib/wrap.js'][543]++;
  self.require(req, params);
}));
  _$jscoverage['browserify/lib/wrap.js'][546]++;
  return self;
});
_$jscoverage['browserify/lib/wrap.js'][549]++;
function isPrefixOf(x, y) {
  _$jscoverage['browserify/lib/wrap.js'][550]++;
  return y.slice(0, x.length) === x;
}
_$jscoverage['browserify/lib/wrap.js'][553]++;
Wrap.prototype.has = (function (file) {
  _$jscoverage['browserify/lib/wrap.js'][554]++;
  var self = this;
  _$jscoverage['browserify/lib/wrap.js'][555]++;
  if (self.files[file]) {
    _$jscoverage['browserify/lib/wrap.js'][555]++;
    return true;
  }
  _$jscoverage['browserify/lib/wrap.js'][557]++;
  var res = Object.keys(self.files).some((function (key) {
  _$jscoverage['browserify/lib/wrap.js'][558]++;
  return self.files[key].target === file;
}));
  _$jscoverage['browserify/lib/wrap.js'][560]++;
  return res;
});
_$jscoverage['browserify/lib/wrap.js'][563]++;
Wrap.prototype.resolver = (function (file, basedir) {
  _$jscoverage['browserify/lib/wrap.js'][564]++;
  return resolve.sync(file, {basedir: basedir, extensions: this.extensions, packageFilter: (function (pkg) {
  _$jscoverage['browserify/lib/wrap.js'][568]++;
  var b = pkg.browserify;
  _$jscoverage['browserify/lib/wrap.js'][569]++;
  if (b) {
    _$jscoverage['browserify/lib/wrap.js'][570]++;
    if (typeof b === "string") {
      _$jscoverage['browserify/lib/wrap.js'][571]++;
      pkg.main = b;
    }
    else {
      _$jscoverage['browserify/lib/wrap.js'][573]++;
      if (typeof b === "object" && b.main) {
        _$jscoverage['browserify/lib/wrap.js'][574]++;
        pkg.main = b.main;
      }
    }
  }
  _$jscoverage['browserify/lib/wrap.js'][577]++;
  return pkg;
})});
});
_$jscoverage['browserify/lib/wrap.js'].source = ["var fs = require('fs');","var path = require('path');","var util = require('util');","var EventEmitter = require('events').EventEmitter;","","var detective = require('detective');","var deputy = require('deputy');","var resolve = require('resolve');","","var wrappers = require('./wrappers');","var commondir = require('commondir');","var nub = require('nub');","var checkSyntax = require('syntax-error');","","var existsSync = fs.existsSync || path.existsSync;","var sep = path.sep || (process.platform === 'win32' ? '\\\\' : '/');","","module.exports = function (opts) {","    return new Wrap(opts);","};","function idFromPath (path) {","    return path.replace(/\\\\/g, '/');","}"," ","function Wrap (opts) {","    var home = process.env.HOME || process.env.USERPROFILE;","    if (opts.cache === undefined &amp;&amp; home !== undefined) {","        opts.cache = true;","    }","    ","    if (opts.cache) {","        if (typeof opts.cache === 'boolean') {","            var file = home + '/.config/browserify/cache.json';","            this.detective = deputy(file);","        }","        else {","            this.detective = deputy(opts.cache);","        }","    }","    else {","        this.detective = detective;","    }","    ","    this.exports = opts.exports;","    ","    this.files = {};","    this.filters = [];","    this.pathFilters = [];","    this.postFilters = [];","    this.preFilters = [];","    this.aliases = {};","    this._checkedPackages = {};","    this.errors = {};","    ","    this.ignoring = {};","    this.extensions = [ '.js' ];","    ","    this.prepends = [ wrappers.prelude, wrappers.process ];","    this.appends = []","    this.entries = {};","    this.debug = opts.debug;","    ","    this.require('path');","    this.require('__browserify_process');","}","","function resolveMod(from, to){","    // not a real directory on the filesystem; just using the path","    // module to get rid of the filename.","    var targetDir = path.dirname(from);","    // not a real filename; just using the path module to deal with","    // relative paths.","    var reqFilename = path.resolve(targetDir, to);","    // get rid of drive letter on Windows; replace it with '/'","    var reqFilenameWithoutDriveLetter = /^[a-zA-Z]:\\\\/.test(reqFilename) ?","        '/' + reqFilename.substring(3) : reqFilename;","","    return reqFilenameWithoutDriveLetter;","}","","util.inherits(Wrap, EventEmitter);","","Wrap.prototype.prepend = function (src) {","    this.prepends.unshift(src);","    return this;","};","","Wrap.prototype.append = function (src) {","    this.appends.push(src);","    return this;","};","","Wrap.prototype.ignore = function (files) {","    if (!files) files = [];","    if (!Array.isArray(files)) files = [ files ];","    ","    this.ignoring = files.reduce(function (acc,x) {","        acc[x] = true;","        return acc;","    }, this.ignoring);","    ","    return this;","};","","Wrap.prototype.use = function (fn) {","    fn(this, this);","    return this;","};","","Wrap.prototype.register = function (ext, fn) {","    if (typeof ext === 'object') {","        fn = ext.wrapper;","        ext = ext.extension;","    }","    ","    if (ext === 'post') {","        this.postFilters.push(fn);","    }","    else if (ext === 'pre') {","        this.preFilters.push(fn);","    }","    else if (ext === 'path') {","        this.pathFilters.push(fn);","    }","    else if (fn) {","        this.extensions.push(ext);","        this.filters.push(function (body, file) {","            if (file.slice(-ext.length) === ext) {","                return fn.call(this, body, file);","            }","            else return body;","        });","    }","    else {","        this.filters.push(ext);","    }","    return this;","};","","Wrap.prototype.reload = function (file) {","    var self = this;","    delete self.errors[file];","    ","    if (self.files[file]) {","        var f = self.files[file];","        f.body = undefined;","        delete self.files[file];","        ","        self.require(file, f);","    }","    else if (self.entries[file]) {","        var e = self.entries[file];","        e.body = undefined;","        delete self.entries[file];","        ","        self.addEntry(file, e);","    }","    ","    return self;","};","","Wrap.prototype.readFile = function (file) {","    var self = this;","    ","    self.pathFilters.forEach(function (fn) {","        file = fn.call(self, file);","    });","    ","    var body = fs.readFileSync(file, 'utf8').replace(/^#![^\\n]*\\n/, '');","    ","    self.filters.forEach(function (fn) {","        body = fn.call(self, body, file);","    });","    ","    var err = checkSyntax(body, file); ","    if (err) {","        self.errors[file] = err;","        ","        process.nextTick(function () {","            self.emit('syntaxError', err);","        });","        return undefined;","    }","    else {","        delete self.errors[file];","    }","    ","    return body;","};","","Wrap.prototype.alias = function (to, from) {","    this.aliases[to] = from;","    return this;","};","","Wrap.prototype.addEntry = function (file_, opts) {","    var self = this;","    if (!opts) opts = {};","    var file = path.resolve(opts.dirname || process.cwd(), file_);","    ","    var entry = this.entries[file] = {};","    // entry must be set before readFile for the watch","    var body = entry.body = opts.body || self.readFile(file);","    if (body === undefined) return self;","    ","    if (opts.target) entry.target = opts.target;","    ","    try {","        var required = self.detective.find(body);","    }","    catch (err) {","        process.nextTick(function () {","            err.message = 'Error while loading entry file '","                + JSON.stringify(file)","                + ': ' + err.message","            ;","            self.emit('syntaxError', err);","        });","        return self;","    }","    ","    if (required.expressions.length) {","        console.error('Expressions in require() statements:');","        required.expressions.forEach(function (ex) {","            console.error('    require(' + ex + ')');","        });","    }","    ","    var dirname = path.dirname(file);","    ","    required.strings.forEach(function (req) {","        var params = {","            dirname : dirname,","            fromFile : file,","        };","        if (opts.target &amp;&amp; /^[.\\/]/.test(req)) {","            params.target = resolveMod(opts.target, req);","        }","        self.require(req, params);","    });","    ","    return this;","};","","Wrap.prototype.bundle = function () {","    var self = this;","    ","    for (var i = 0; i &lt; self.prepends.length; i++) {","        var p = self.prepends[i];","        if (p === wrappers.prelude) {","            self.prepends[i] = p.replace(/\\$extensions/, function () {","                return JSON.stringify(self.extensions);","            });","            break;","        }","    }","    ","    this.preFilters.forEach((function (fn) {","        fn.call(this, this);","    }).bind(this));","    ","    (function () {","        // hack to set -browserify module targets","        var nm = path.resolve(__dirname, '../node_modules');","        Object.keys(self.files).forEach(function (file) {","            if (file.substring(0, nm.length) !== nm) return;","            var relativeToNm = path.relative(nm, file);","            var topDir = relativeToNm.split(sep)[0];","            if (!/-browserify$/.test(topDir)) return;","            self.files[file].target = path.join('/', 'node_modules', relativeToNm);","        });","    })();","    ","    var basedir = (function () {","        var required = Object.keys(self.files)","            .filter(function (x) {","                return !self.files[x].target;","            })","        ;","        var entries = Object.keys(self.entries)","            .filter(function (x) { return !self.entries[x].target })","        ;","        var files = required.concat(entries)","            .map(function (x) { return path.dirname(x) })","        ;","        if (files.length === 0) return '';","        ","        var dir = commondir(files) + '/';","        return path.normalize(dir.replace(/\\/node_modules\\/$/, '/'));","    })();","    ","    var removeLeading = function (s) {","        if (s.slice(0, basedir.length) === basedir) {","            return s.slice(basedir.length - 1);","        }","    };","    ","    var src = []","        .concat(this.prepends)","        .concat(Object.keys(self.files).map(function (file) {","            var s = self.files[file];","            var target = s.target || removeLeading(file);","            ","            if (self.ignoring[target]) return '';","            ","            return self.wrap(idFromPath(target), s.body)","        }))","        .concat(Object.keys(self.aliases).map(function (to) {","            var from = self.aliases[to];","            if (!to.match(/^(\\.\\.?)?\\//)) {","                to = '/node_modules/' + to;","            }","            ","            return wrappers.alias","                .replace(/\\$from/, function () {","                    return JSON.stringify(from);","                })","                .replace(/\\$to/, function () {","                    return JSON.stringify(to);","                })","            ;","        }))","        .concat(Object.keys(self.entries).map(function (file) {","            var s = self.entries[file];","            var target = s.target || removeLeading(file);","            return self.wrapEntry(idFromPath(target), s.body);","        }))","        .concat(this.appends)","        .join('\\n')","    ;","    ","    if (!self.exports) {","        self.exports = Object.keys(self.entries).length ? [] : [ 'require' ];","    }","    if (self.exports === true) self.exports = [ 'require', 'process' ];","    if (!Array.isArray(self.exports)) self.exports = [ self.exports ];","    ","    if (self.exports.indexOf('process') &gt;= 0","    &amp;&amp; self.exports.indexOf('require') &gt;= 0) {","        src += 'var process = require(\"__browserify_process\");\\n'","    }","    else if (self.exports.indexOf('require') &gt;= 0) {","        // nop","    }","    else if (self.exports.indexOf('process') &gt;= 0) {","        src = 'var process = (function(){'","            + src","            + ';return require(\"__browserify_process\")'","            + '})();\\n'","        ;","    }","    else {","        src = '(function(){' + src + '})();\\n'","    }","    ","    this.postFilters.forEach((function (fn) {","        src = fn.call(this, src);","    }).bind(this));","    ","    return src;","};","","Wrap.prototype.wrap = function (target, body) {","    var self = this;","    return (self.debug ? wrappers.body_debug : wrappers.body)","        .replace(/\\$__filename/g, function () {","            return JSON.stringify(target);","        })","        .replace(/\\$body/, function () {","            return self.debug","                ? JSON.stringify(body + '\\n//@ sourceURL=' + target)","                : body","            ;","        })","    ;","};","","Wrap.prototype.wrapEntry = function (target, body) {","    var self = this;","    return (self.debug ? wrappers.entry_debug : wrappers.entry)","        .replace(/\\$__filename/g, function () {","            return JSON.stringify(target)","        })","        .replace(/\\$body/, function () {","            return self.debug","                ? JSON.stringify(body + '\\n//@ sourceURL=' + target)","                : body","            ;","        })","    ;","};","","Wrap.prototype.include = function (file, target, body, root) {","    var synthetic = !file;","    if (!file) file = Math.floor(Math.random() * Math.pow(2,32)).toString(16);","    ","    this.files[file] = {","        body : body,","        target : target,","        synthetic : synthetic,","        root : root","    };","    return this;","};","","Wrap.prototype.require = function (mfile, opts) {","    var self = this;","    if (!opts) opts = {};","    if (!opts.dirname) opts.dirname = process.cwd();","    ","    if (typeof mfile === 'object') {","        throw new Error('require maps no longer supported');","    }","    ","    if (self.has(mfile)) return self;","    if (opts.target &amp;&amp; self.has(opts.target)) return self;","    ","    if (self.ignoring[mfile]) return self;","    if (self.aliases[mfile]) return self;","    ","    function moduleError (msg) {","        return new Error(msg + ': ' + JSON.stringify(mfile)","            + ' from directory ' + JSON.stringify(opts.dirname)","            + (opts.fromFile ? ' while processing file ' + opts.fromFile : '')","        );","    }","    ","    var pkg = {};","    if (mfile === '__browserify_process' || resolve.isCore(mfile)) {","        opts.file = path.resolve(__dirname, '../builtins/' + mfile + '.js');","        opts.target = opts.target || mfile;","        ","        if (!existsSync(opts.file)) {","            try {","                require.resolve(mfile + '-browserify');","                opts.body = 'module.exports = require('","                    + JSON.stringify(mfile + '-browserify')","                + ')';","            }","            catch (err) {","                throw moduleError('No wrapper for core module');","            }","        }","    }","    else if (self.has(mfile)) {","        // package has already been included in some fashion, no need to resolve","        return self;","    }","    else if (opts.body) {","        opts.file = mfile;","    }","    else if (!opts.file) {","        try {","            var normPath","                = path.normalize(path.resolve(mfile)) === path.normalize(mfile)","                ? path.normalize(mfile) : mfile","            ;","            opts.file = self.resolver(normPath, opts.dirname);","        }","        catch (err) {","            throw moduleError('Cannot find module');","        }","    }","    ","    if (self.has(opts.file)) return self;","    ","    var dirname = path.dirname(opts.file);","    var pkgfile = path.join(dirname, 'package.json');","    ","    if (!mfile.match(/^(\\.\\.?)?\\//)) {","        try {","            pkgfile = resolve.sync(path.join(mfile, 'package.json'), {","                basedir : dirname","            });","        }","        catch (err) {}","    }","     ","    if (pkgfile &amp;&amp; !self._checkedPackages[pkgfile]) {","        self._checkedPackages[pkgfile] = true;","        if (existsSync(pkgfile)) {","            var pkgBody = fs.readFileSync(pkgfile, 'utf8');","            try {","                var npmpkg = JSON.parse(pkgBody);","                if (npmpkg.main !== undefined) {","                    pkg.main = npmpkg.main;","                }","                if (npmpkg.browserify !== undefined) {","                    pkg.browserify = npmpkg.browserify;","                }","            }","            catch (err) {","                // ignore broken package.jsons just like node","            }","            ","            self.files[pkgfile] = {","                body : 'module.exports = ' + JSON.stringify(pkg),","            };","        }","    }","","    var entry = self.files[opts.file] = {","        target : opts.target","    };","    // entry must be set before readFile for the watch","    var body = entry.body = opts.body || self.readFile(opts.file);","    if (body === undefined) {","        delete self.files[opts.file];","        return self;","    }","    ","    try {","        var required = self.detective.find(body);","    }","    catch (err) {","        process.nextTick(function () {","            self.emit('syntaxError', err);","        });","        return self;","    }","    ","    if (pkg.browserify &amp;&amp; pkg.browserify.require) {","        required.strings = required.strings.concat(","            pkg.browserify.require","        );","    }","    ","    if (required.expressions.length) {","        console.error('Expressions in require() statements:');","        required.expressions.forEach(function (ex) {","            console.error('    require(' + ex + ')');","        });","    }","    ","    nub(required.strings).forEach(function (req) {","        var params = {","            dirname : dirname,","            fromFile : opts.file,","        };","        if (opts.target &amp;&amp; /^[.\\/]/.test(req)) {","            params.target = idFromPath(resolveMod(opts.target, req));","        }","        self.require(req, params);","    });","    ","    return self;","};","","function isPrefixOf (x, y) {","    return y.slice(0, x.length) === x;","}","","Wrap.prototype.has = function (file) {","    var self = this;","    if (self.files[file]) return true;","    ","    var res = Object.keys(self.files).some(function (key) {","        return self.files[key].target === file;","    });","    return res;","};","","Wrap.prototype.resolver = function (file, basedir) {","    return resolve.sync(file, {","        basedir : basedir,","        extensions : this.extensions,","        packageFilter : function (pkg) {","            var b = pkg.browserify;","            if (b) {","                if (typeof b === 'string') {","                    pkg.main = b;","                }","                else if (typeof b === 'object' &amp;&amp; b.main) {","                    pkg.main = b.main;","                }","            }","            return pkg","        }","    });","}"];
