UNPKG

fieldkit

Version:

Basic building blocks for computational design projects. Written in CoffeeScript for browser and server environments.

2 lines 137 kB
(function(e,t,n){function r(n,i){if(!t[n]){if(!e[n]){var s=typeof require=="function"&&require;if(!i&&s)return s(n,!0);throw new Error("Cannot find module '"+n+"'")}var o=t[n]={exports:{}};e[n][0](function(t){var i=e[n][1][t];return r(i?i:t)},o,o.exports)}return t[n].exports}for(var i=0;i<n.length;i++)r(n[i]);return r})({1:[function(require,module,exports){(function(){var extend,fk,util;util=require("./util");extend=function(){var pkg;switch(arguments.length){case 1:return util.extend(fk,arguments[0]);case 2:pkg=arguments[0];if(fk[pkg]==null){fk[pkg]={}}return util.extend(fk[pkg],arguments[1])}};fk={};extend(require("./color"));extend(require("./time"));extend("math",require("./math/math"));extend("math",require("./math/random"));extend("math",require("./math/noise"));extend("math",require("./math/vector"));extend("math",require("./math/rect"));extend("math",require("./math/box"));extend("math",require("./math/line"));extend("util",util);extend("physics",require("./physics/physics"));extend("physics",require("./physics/particle"));extend("physics",require("./physics/behaviours"));extend("physics",require("./physics/constraints"));extend("client",require("./client/sketch"));module.exports=fk;if(typeof window!=="undefined"&&window!==null){window.fk=fk}}).call(this)},{"./util":2,"./color":3,"./time":4,"./math/math":5,"./math/random":6,"./math/noise":7,"./math/vector":8,"./math/rect":9,"./math/box":10,"./math/line":11,"./physics/physics":12,"./physics/particle":13,"./physics/behaviours":14,"./physics/constraints":15,"./client/sketch":16}],17:[function(require,module,exports){require=function(e,t,n,r){function i(r){if(!n[r]){if(!t[r]){if(e)return e(r);throw new Error("Cannot find module '"+r+"'")}var s=n[r]={exports:{}};t[r][0](function(e){var n=t[r][1][e];return i(n?n:e)},s,s.exports)}return n[r].exports}for(var s=0;s<r.length;s++)i(r[s]);return i}(typeof require!=="undefined"&&require,{1:[function(require,module,exports){exports.readIEEE754=function(buffer,offset,isBE,mLen,nBytes){var e,m,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isBE?0:nBytes-1,d=isBE?1:-1,s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8);m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8);if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.writeIEEE754=function(buffer,value,offset,isBE,mLen,nBytes){var e,m,c,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0,i=isBE?nBytes-1:0,d=isBE?-1:1,s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8);e=e<<mLen|m;eLen+=mLen;for(;eLen>0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=s*128}},{}],2:[function(require,module,exports){(function(){var util=require("util");var Buffer=require("buffer").Buffer;var pSlice=Array.prototype.slice;function objectKeys(object){if(Object.keys)return Object.keys(object);var result=[];for(var name in object){if(Object.prototype.hasOwnProperty.call(object,name)){result.push(name)}}return result}var assert=module.exports=ok;assert.AssertionError=function AssertionError(options){this.name="AssertionError";this.message=options.message;this.actual=options.actual;this.expected=options.expected;this.operator=options.operator;var stackStartFunction=options.stackStartFunction||fail;if(Error.captureStackTrace){Error.captureStackTrace(this,stackStartFunction)}};util.inherits(assert.AssertionError,Error);function replacer(key,value){if(value===undefined){return""+value}if(typeof value==="number"&&(isNaN(value)||!isFinite(value))){return value.toString()}if(typeof value==="function"||value instanceof RegExp){return value.toString()}return value}function truncate(s,n){if(typeof s=="string"){return s.length<n?s:s.slice(0,n)}else{return s}}assert.AssertionError.prototype.toString=function(){if(this.message){return[this.name+":",this.message].join(" ")}else{return[this.name+":",truncate(JSON.stringify(this.actual,replacer),128),this.operator,truncate(JSON.stringify(this.expected,replacer),128)].join(" ")}};assert.AssertionError.__proto__=Error.prototype;function fail(actual,expected,message,operator,stackStartFunction){throw new assert.AssertionError({message:message,actual:actual,expected:expected,operator:operator,stackStartFunction:stackStartFunction})}assert.fail=fail;function ok(value,message){if(!!!value)fail(value,true,message,"==",assert.ok)}assert.ok=ok;assert.equal=function equal(actual,expected,message){if(actual!=expected)fail(actual,expected,message,"==",assert.equal)};assert.notEqual=function notEqual(actual,expected,message){if(actual==expected){fail(actual,expected,message,"!=",assert.notEqual)}};assert.deepEqual=function deepEqual(actual,expected,message){if(!_deepEqual(actual,expected)){fail(actual,expected,message,"deepEqual",assert.deepEqual)}};function _deepEqual(actual,expected){if(actual===expected){return true}else if(Buffer.isBuffer(actual)&&Buffer.isBuffer(expected)){if(actual.length!=expected.length)return false;for(var i=0;i<actual.length;i++){if(actual[i]!==expected[i])return false}return true}else if(actual instanceof Date&&expected instanceof Date){return actual.getTime()===expected.getTime()}else if(typeof actual!="object"&&typeof expected!="object"){return actual==expected}else{return objEquiv(actual,expected)}}function isUndefinedOrNull(value){return value===null||value===undefined}function isArguments(object){return Object.prototype.toString.call(object)=="[object Arguments]"}function objEquiv(a,b){if(isUndefinedOrNull(a)||isUndefinedOrNull(b))return false;if(a.prototype!==b.prototype)return false;if(isArguments(a)){if(!isArguments(b)){return false}a=pSlice.call(a);b=pSlice.call(b);return _deepEqual(a,b)}try{var ka=objectKeys(a),kb=objectKeys(b),key,i}catch(e){return false}if(ka.length!=kb.length)return false;ka.sort();kb.sort();for(i=ka.length-1;i>=0;i--){if(ka[i]!=kb[i])return false}for(i=ka.length-1;i>=0;i--){key=ka[i];if(!_deepEqual(a[key],b[key]))return false}return true}assert.notDeepEqual=function notDeepEqual(actual,expected,message){if(_deepEqual(actual,expected)){fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)}};assert.strictEqual=function strictEqual(actual,expected,message){if(actual!==expected){fail(actual,expected,message,"===",assert.strictEqual)}};assert.notStrictEqual=function notStrictEqual(actual,expected,message){if(actual===expected){fail(actual,expected,message,"!==",assert.notStrictEqual)}};function expectedException(actual,expected){if(!actual||!expected){return false}if(expected instanceof RegExp){return expected.test(actual)}else if(actual instanceof expected){return true}else if(expected.call({},actual)===true){return true}return false}function _throws(shouldThrow,block,expected,message){var actual;if(typeof expected==="string"){message=expected;expected=null}try{block()}catch(e){actual=e}message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:".");if(shouldThrow&&!actual){fail("Missing expected exception"+message)}if(!shouldThrow&&expectedException(actual,expected)){fail("Got unwanted exception"+message)}if(shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual){throw actual}}assert.throws=function(block,error,message){_throws.apply(this,[true].concat(pSlice.call(arguments)))};assert.doesNotThrow=function(block,error,message){_throws.apply(this,[false].concat(pSlice.call(arguments)))};assert.ifError=function(err){if(err){throw err}}})()},{util:3,buffer:4}],"buffer-browserify":[function(require,module,exports){module.exports=require("q9TxCC")},{}],q9TxCC:[function(require,module,exports){(function(){function SlowBuffer(size){this.length=size}var assert=require("assert");exports.INSPECT_MAX_BYTES=50;function toHex(n){if(n<16)return"0"+n.toString(16);return n.toString(16)}function utf8ToBytes(str){var byteArray=[];for(var i=0;i<str.length;i++)if(str.charCodeAt(i)<=127)byteArray.push(str.charCodeAt(i));else{var h=encodeURIComponent(str.charAt(i)).substr(1).split("%");for(var j=0;j<h.length;j++)byteArray.push(parseInt(h[j],16))}return byteArray}function asciiToBytes(str){var byteArray=[];for(var i=0;i<str.length;i++)byteArray.push(str.charCodeAt(i)&255);return byteArray}function base64ToBytes(str){return require("base64-js").toByteArray(str)}SlowBuffer.byteLength=function(str,encoding){switch(encoding||"utf8"){case"hex":return str.length/2;case"utf8":case"utf-8":return utf8ToBytes(str).length;case"ascii":case"binary":return str.length;case"base64":return base64ToBytes(str).length;default:throw new Error("Unknown encoding")}};function blitBuffer(src,dst,offset,length){var pos,i=0;while(i<length){if(i+offset>=dst.length||i>=src.length)break;dst[i+offset]=src[i];i++}return i}SlowBuffer.prototype.utf8Write=function(string,offset,length){var bytes,pos;return SlowBuffer._charsWritten=blitBuffer(utf8ToBytes(string),this,offset,length)};SlowBuffer.prototype.asciiWrite=function(string,offset,length){var bytes,pos;return SlowBuffer._charsWritten=blitBuffer(asciiToBytes(string),this,offset,length)};SlowBuffer.prototype.binaryWrite=SlowBuffer.prototype.asciiWrite;SlowBuffer.prototype.base64Write=function(string,offset,length){var bytes,pos;return SlowBuffer._charsWritten=blitBuffer(base64ToBytes(string),this,offset,length)};SlowBuffer.prototype.base64Slice=function(start,end){var bytes=Array.prototype.slice.apply(this,arguments);return require("base64-js").fromByteArray(bytes)};function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}SlowBuffer.prototype.utf8Slice=function(){var bytes=Array.prototype.slice.apply(this,arguments);var res="";var tmp="";var i=0;while(i<bytes.length){if(bytes[i]<=127){res+=decodeUtf8Char(tmp)+String.fromCharCode(bytes[i]);tmp=""}else tmp+="%"+bytes[i].toString(16);i++}return res+decodeUtf8Char(tmp)};SlowBuffer.prototype.asciiSlice=function(){var bytes=Array.prototype.slice.apply(this,arguments);var ret="";for(var i=0;i<bytes.length;i++)ret+=String.fromCharCode(bytes[i]);return ret};SlowBuffer.prototype.binarySlice=SlowBuffer.prototype.asciiSlice;SlowBuffer.prototype.inspect=function(){var out=[],len=this.length;for(var i=0;i<len;i++){out[i]=toHex(this[i]);if(i==exports.INSPECT_MAX_BYTES){out[i+1]="...";break}}return"<SlowBuffer "+out.join(" ")+">"};SlowBuffer.prototype.hexSlice=function(start,end){var len=this.length;if(!start||start<0)start=0;if(!end||end<0||end>len)end=len;var out="";for(var i=start;i<end;i++){out+=toHex(this[i])}return out};SlowBuffer.prototype.toString=function(encoding,start,end){encoding=String(encoding||"utf8").toLowerCase();start=+start||0;if(typeof end=="undefined")end=this.length;if(+end==start){return""}switch(encoding){case"hex":return this.hexSlice(start,end);case"utf8":case"utf-8":return this.utf8Slice(start,end);case"ascii":return this.asciiSlice(start,end);case"binary":return this.binarySlice(start,end);case"base64":return this.base64Slice(start,end);case"ucs2":case"ucs-2":return this.ucs2Slice(start,end);default:throw new Error("Unknown encoding")}};SlowBuffer.prototype.hexWrite=function(string,offset,length){offset=+offset||0;var remaining=this.length-offset;if(!length){length=remaining}else{length=+length;if(length>remaining){length=remaining}}var strLen=string.length;if(strLen%2){throw new Error("Invalid hex string")}if(length>strLen/2){length=strLen/2}for(var i=0;i<length;i++){var byte=parseInt(string.substr(i*2,2),16);if(isNaN(byte))throw new Error("Invalid hex string");this[offset+i]=byte}SlowBuffer._charsWritten=i*2;return i};SlowBuffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset)){if(!isFinite(length)){encoding=length;length=undefined}}else{var swap=encoding;encoding=offset;offset=length;length=swap}offset=+offset||0;var remaining=this.length-offset;if(!length){length=remaining}else{length=+length;if(length>remaining){length=remaining}}encoding=String(encoding||"utf8").toLowerCase();switch(encoding){case"hex":return this.hexWrite(string,offset,length);case"utf8":case"utf-8":return this.utf8Write(string,offset,length);case"ascii":return this.asciiWrite(string,offset,length);case"binary":return this.binaryWrite(string,offset,length);case"base64":return this.base64Write(string,offset,length);case"ucs2":case"ucs-2":return this.ucs2Write(string,offset,length);default:throw new Error("Unknown encoding")}};SlowBuffer.prototype.slice=function(start,end){if(end===undefined)end=this.length;if(end>this.length){throw new Error("oob")}if(start>end){throw new Error("oob")}return new Buffer(this,end-start,+start)};SlowBuffer.prototype.copy=function(target,targetstart,sourcestart,sourceend){var temp=[];for(var i=sourcestart;i<sourceend;i++){assert.ok(typeof this[i]!=="undefined","copying undefined buffer bytes!");temp.push(this[i])}for(var i=targetstart;i<targetstart+temp.length;i++){target[i]=temp[i-targetstart]}};SlowBuffer.prototype.fill=function(value,start,end){if(end>this.length){throw new Error("oob")}if(start>end){throw new Error("oob")}for(var i=start;i<end;i++){this[i]=value}};function coerce(length){length=~~Math.ceil(+length);return length<0?0:length}function Buffer(subject,encoding,offset){if(!(this instanceof Buffer)){return new Buffer(subject,encoding,offset)}var type;if(typeof offset==="number"){this.length=coerce(encoding);this.parent=subject;this.offset=offset}else{switch(type=typeof subject){case"number":this.length=coerce(subject);break;case"string":this.length=Buffer.byteLength(subject,encoding);break;case"object":this.length=coerce(subject.length);break;default:throw new Error("First argument needs to be a number, "+"array or string.")}if(this.length>Buffer.poolSize){this.parent=new SlowBuffer(this.length);this.offset=0}else{if(!pool||pool.length-pool.used<this.length)allocPool();this.parent=pool;this.offset=pool.used;pool.used+=this.length}if(isArrayIsh(subject)){for(var i=0;i<this.length;i++){if(subject instanceof Buffer){this.parent[i+this.offset]=subject.readUInt8(i)}else{this.parent[i+this.offset]=subject[i]}}}else if(type=="string"){this.length=this.write(subject,0,encoding)}}}function isArrayIsh(subject){return Array.isArray(subject)||Buffer.isBuffer(subject)||subject&&typeof subject==="object"&&typeof subject.length==="number"}exports.SlowBuffer=SlowBuffer;exports.Buffer=Buffer;Buffer.poolSize=8*1024;var pool;function allocPool(){pool=new SlowBuffer(Buffer.poolSize);pool.used=0}Buffer.isBuffer=function isBuffer(b){return b instanceof Buffer||b instanceof SlowBuffer};Buffer.concat=function(list,totalLength){if(!Array.isArray(list)){throw new Error("Usage: Buffer.concat(list, [totalLength])\n list should be an Array.")}if(list.length===0){return new Buffer(0)}else if(list.length===1){return list[0]}if(typeof totalLength!=="number"){totalLength=0;for(var i=0;i<list.length;i++){var buf=list[i];totalLength+=buf.length}}var buffer=new Buffer(totalLength);var pos=0;for(var i=0;i<list.length;i++){var buf=list[i];buf.copy(buffer,pos);pos+=buf.length}return buffer};Buffer.prototype.inspect=function inspect(){var out=[],len=this.length;for(var i=0;i<len;i++){out[i]=toHex(this.parent[i+this.offset]);if(i==exports.INSPECT_MAX_BYTES){out[i+1]="...";break}}return"<Buffer "+out.join(" ")+">"};Buffer.prototype.get=function get(i){if(i<0||i>=this.length)throw new Error("oob");return this.parent[this.offset+i]};Buffer.prototype.set=function set(i,v){if(i<0||i>=this.length)throw new Error("oob");return this.parent[this.offset+i]=v};Buffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset)){if(!isFinite(length)){encoding=length;length=undefined}}else{var swap=encoding;encoding=offset;offset=length;length=swap}offset=+offset||0;var remaining=this.length-offset;if(!length){length=remaining}else{length=+length;if(length>remaining){length=remaining}}encoding=String(encoding||"utf8").toLowerCase();var ret;switch(encoding){case"hex":ret=this.parent.hexWrite(string,this.offset+offset,length);break;case"utf8":case"utf-8":ret=this.parent.utf8Write(string,this.offset+offset,length);break;case"ascii":ret=this.parent.asciiWrite(string,this.offset+offset,length);break;case"binary":ret=this.parent.binaryWrite(string,this.offset+offset,length);break;case"base64":ret=this.parent.base64Write(string,this.offset+offset,length);break;case"ucs2":case"ucs-2":ret=this.parent.ucs2Write(string,this.offset+offset,length);break;default:throw new Error("Unknown encoding")}Buffer._charsWritten=SlowBuffer._charsWritten;return ret};Buffer.prototype.toString=function(encoding,start,end){encoding=String(encoding||"utf8").toLowerCase();if(typeof start=="undefined"||start<0){start=0}else if(start>this.length){start=this.length}if(typeof end=="undefined"||end>this.length){end=this.length}else if(end<0){end=0}start=start+this.offset;end=end+this.offset;switch(encoding){case"hex":return this.parent.hexSlice(start,end);case"utf8":case"utf-8":return this.parent.utf8Slice(start,end);case"ascii":return this.parent.asciiSlice(start,end);case"binary":return this.parent.binarySlice(start,end);case"base64":return this.parent.base64Slice(start,end);case"ucs2":case"ucs-2":return this.parent.ucs2Slice(start,end);default:throw new Error("Unknown encoding")}};Buffer.byteLength=SlowBuffer.byteLength;Buffer.prototype.fill=function fill(value,start,end){value||(value=0);start||(start=0);end||(end=this.length);if(typeof value==="string"){value=value.charCodeAt(0)}if(!(typeof value==="number")||isNaN(value)){throw new Error("value is not a number")}if(end<start)throw new Error("end < start");if(end===start)return 0;if(this.length==0)return 0;if(start<0||start>=this.length){throw new Error("start out of bounds")}if(end<0||end>this.length){throw new Error("end out of bounds")}return this.parent.fill(value,start+this.offset,end+this.offset)};Buffer.prototype.copy=function(target,target_start,start,end){var source=this;start||(start=0);end||(end=this.length);target_start||(target_start=0);if(end<start)throw new Error("sourceEnd < sourceStart");if(end===start)return 0;if(target.length==0||source.length==0)return 0;if(target_start<0||target_start>=target.length){throw new Error("targetStart out of bounds")}if(start<0||start>=source.length){throw new Error("sourceStart out of bounds")}if(end<0||end>source.length){throw new Error("sourceEnd out of bounds")}if(end>this.length){end=this.length}if(target.length-target_start<end-start){end=target.length-target_start+start}return this.parent.copy(target.parent,target_start+target.offset,start+this.offset,end+this.offset)};Buffer.prototype.slice=function(start,end){if(end===undefined)end=this.length;if(end>this.length)throw new Error("oob");if(start>end)throw new Error("oob");return new Buffer(this.parent,end-start,+start+this.offset)};Buffer.prototype.utf8Slice=function(start,end){return this.toString("utf8",start,end)};Buffer.prototype.binarySlice=function(start,end){return this.toString("binary",start,end)};Buffer.prototype.asciiSlice=function(start,end){return this.toString("ascii",start,end)};Buffer.prototype.utf8Write=function(string,offset){return this.write(string,offset,"utf8")};Buffer.prototype.binaryWrite=function(string,offset){return this.write(string,offset,"binary")};Buffer.prototype.asciiWrite=function(string,offset){return this.write(string,offset,"ascii")};Buffer.prototype.readUInt8=function(offset,noAssert){var buffer=this;if(!noAssert){assert.ok(offset!==undefined&&offset!==null,"missing offset");assert.ok(offset<buffer.length,"Trying to read beyond buffer length")}if(offset>=buffer.length)return;return buffer.parent[buffer.offset+offset]};function readUInt16(buffer,offset,isBigEndian,noAssert){var val=0;if(!noAssert){assert.ok(typeof isBigEndian==="boolean","missing or invalid endian");assert.ok(offset!==undefined&&offset!==null,"missing offset");assert.ok(offset+1<buffer.length,"Trying to read beyond buffer length")}if(offset>=buffer.length)return 0;if(isBigEndian){val=buffer.parent[buffer.offset+offset]<<8;if(offset+1<buffer.length){val|=buffer.parent[buffer.offset+offset+1]}}else{val=buffer.parent[buffer.offset+offset];if(offset+1<buffer.length){val|=buffer.parent[buffer.offset+offset+1]<<8}}return val}Buffer.prototype.readUInt16LE=function(offset,noAssert){return readUInt16(this,offset,false,noAssert)};Buffer.prototype.readUInt16BE=function(offset,noAssert){return readUInt16(this,offset,true,noAssert)};function readUInt32(buffer,offset,isBigEndian,noAssert){var val=0;if(!noAssert){assert.ok(typeof isBigEndian==="boolean","missing or invalid endian");assert.ok(offset!==undefined&&offset!==null,"missing offset");assert.ok(offset+3<buffer.length,"Trying to read beyond buffer length")}if(offset>=buffer.length)return 0;if(isBigEndian){if(offset+1<buffer.length)val=buffer.parent[buffer.offset+offset+1]<<16;if(offset+2<buffer.length)val|=buffer.parent[buffer.offset+offset+2]<<8;if(offset+3<buffer.length)val|=buffer.parent[buffer.offset+offset+3];val=val+(buffer.parent[buffer.offset+offset]<<24>>>0)}else{if(offset+2<buffer.length)val=buffer.parent[buffer.offset+offset+2]<<16;if(offset+1<buffer.length)val|=buffer.parent[buffer.offset+offset+1]<<8;val|=buffer.parent[buffer.offset+offset];if(offset+3<buffer.length)val=val+(buffer.parent[buffer.offset+offset+3]<<24>>>0)}return val}Buffer.prototype.readUInt32LE=function(offset,noAssert){return readUInt32(this,offset,false,noAssert)};Buffer.prototype.readUInt32BE=function(offset,noAssert){return readUInt32(this,offset,true,noAssert)};Buffer.prototype.readInt8=function(offset,noAssert){var buffer=this;var neg;if(!noAssert){assert.ok(offset!==undefined&&offset!==null,"missing offset");assert.ok(offset<buffer.length,"Trying to read beyond buffer length")}if(offset>=buffer.length)return;neg=buffer.parent[buffer.offset+offset]&128;if(!neg){return buffer.parent[buffer.offset+offset]}return(255-buffer.parent[buffer.offset+offset]+1)*-1};function readInt16(buffer,offset,isBigEndian,noAssert){var neg,val;if(!noAssert){assert.ok(typeof isBigEndian==="boolean","missing or invalid endian");assert.ok(offset!==undefined&&offset!==null,"missing offset");assert.ok(offset+1<buffer.length,"Trying to read beyond buffer length")}val=readUInt16(buffer,offset,isBigEndian,noAssert);neg=val&32768;if(!neg){return val}return(65535-val+1)*-1}Buffer.prototype.readInt16LE=function(offset,noAssert){return readInt16(this,offset,false,noAssert)};Buffer.prototype.readInt16BE=function(offset,noAssert){return readInt16(this,offset,true,noAssert)};function readInt32(buffer,offset,isBigEndian,noAssert){var neg,val;if(!noAssert){assert.ok(typeof isBigEndian==="boolean","missing or invalid endian");assert.ok(offset!==undefined&&offset!==null,"missing offset");assert.ok(offset+3<buffer.length,"Trying to read beyond buffer length")}val=readUInt32(buffer,offset,isBigEndian,noAssert);neg=val&2147483648;if(!neg){return val}return(4294967295-val+1)*-1}Buffer.prototype.readInt32LE=function(offset,noAssert){return readInt32(this,offset,false,noAssert)};Buffer.prototype.readInt32BE=function(offset,noAssert){return readInt32(this,offset,true,noAssert)};function readFloat(buffer,offset,isBigEndian,noAssert){if(!noAssert){assert.ok(typeof isBigEndian==="boolean","missing or invalid endian");assert.ok(offset+3<buffer.length,"Trying to read beyond buffer length")}return require("./buffer_ieee754").readIEEE754(buffer,offset,isBigEndian,23,4)}Buffer.prototype.readFloatLE=function(offset,noAssert){return readFloat(this,offset,false,noAssert)};Buffer.prototype.readFloatBE=function(offset,noAssert){return readFloat(this,offset,true,noAssert)};function readDouble(buffer,offset,isBigEndian,noAssert){if(!noAssert){assert.ok(typeof isBigEndian==="boolean","missing or invalid endian");assert.ok(offset+7<buffer.length,"Trying to read beyond buffer length")}return require("./buffer_ieee754").readIEEE754(buffer,offset,isBigEndian,52,8)}Buffer.prototype.readDoubleLE=function(offset,noAssert){return readDouble(this,offset,false,noAssert)};Buffer.prototype.readDoubleBE=function(offset,noAssert){return readDouble(this,offset,true,noAssert)};function verifuint(value,max){assert.ok(typeof value=="number","cannot write a non-number as a number");assert.ok(value>=0,"specified a negative value for writing an unsigned value");assert.ok(value<=max,"value is larger than maximum value for type");assert.ok(Math.floor(value)===value,"value has a fractional component")}Buffer.prototype.writeUInt8=function(value,offset,noAssert){var buffer=this;if(!noAssert){assert.ok(value!==undefined&&value!==null,"missing value");assert.ok(offset!==undefined&&offset!==null,"missing offset");assert.ok(offset<buffer.length,"trying to write beyond buffer length");verifuint(value,255)}if(offset<buffer.length){buffer.parent[buffer.offset+offset]=value}};function writeUInt16(buffer,value,offset,isBigEndian,noAssert){if(!noAssert){assert.ok(value!==undefined&&value!==null,"missing value");assert.ok(typeof isBigEndian==="boolean","missing or invalid endian");assert.ok(offset!==undefined&&offset!==null,"missing offset");assert.ok(offset+1<buffer.length,"trying to write beyond buffer length");verifuint(value,65535)}for(var i=0;i<Math.min(buffer.length-offset,2);i++){buffer.parent[buffer.offset+offset+i]=(value&255<<8*(isBigEndian?1-i:i))>>>(isBigEndian?1-i:i)*8}}Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){writeUInt16(this,value,offset,false,noAssert)};Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){writeUInt16(this,value,offset,true,noAssert)};function writeUInt32(buffer,value,offset,isBigEndian,noAssert){if(!noAssert){assert.ok(value!==undefined&&value!==null,"missing value");assert.ok(typeof isBigEndian==="boolean","missing or invalid endian");assert.ok(offset!==undefined&&offset!==null,"missing offset");assert.ok(offset+3<buffer.length,"trying to write beyond buffer length");verifuint(value,4294967295)}for(var i=0;i<Math.min(buffer.length-offset,4);i++){buffer.parent[buffer.offset+offset+i]=value>>>(isBigEndian?3-i:i)*8&255}}Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){writeUInt32(this,value,offset,false,noAssert)};Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){writeUInt32(this,value,offset,true,noAssert)};function verifsint(value,max,min){assert.ok(typeof value=="number","cannot write a non-number as a number");assert.ok(value<=max,"value larger than maximum allowed value");assert.ok(value>=min,"value smaller than minimum allowed value");assert.ok(Math.floor(value)===value,"value has a fractional component")}function verifIEEE754(value,max,min){assert.ok(typeof value=="number","cannot write a non-number as a number");assert.ok(value<=max,"value larger than maximum allowed value");assert.ok(value>=min,"value smaller than minimum allowed value")}Buffer.prototype.writeInt8=function(value,offset,noAssert){var buffer=this;if(!noAssert){assert.ok(value!==undefined&&value!==null,"missing value");assert.ok(offset!==undefined&&offset!==null,"missing offset");assert.ok(offset<buffer.length,"Trying to write beyond buffer length");verifsint(value,127,-128)}if(value>=0){buffer.writeUInt8(value,offset,noAssert)}else{buffer.writeUInt8(255+value+1,offset,noAssert)}};function writeInt16(buffer,value,offset,isBigEndian,noAssert){if(!noAssert){assert.ok(value!==undefined&&value!==null,"missing value");assert.ok(typeof isBigEndian==="boolean","missing or invalid endian");assert.ok(offset!==undefined&&offset!==null,"missing offset");assert.ok(offset+1<buffer.length,"Trying to write beyond buffer length");verifsint(value,32767,-32768)}if(value>=0){writeUInt16(buffer,value,offset,isBigEndian,noAssert)}else{writeUInt16(buffer,65535+value+1,offset,isBigEndian,noAssert)}}Buffer.prototype.writeInt16LE=function(value,offset,noAssert){writeInt16(this,value,offset,false,noAssert)};Buffer.prototype.writeInt16BE=function(value,offset,noAssert){writeInt16(this,value,offset,true,noAssert)};function writeInt32(buffer,value,offset,isBigEndian,noAssert){if(!noAssert){assert.ok(value!==undefined&&value!==null,"missing value");assert.ok(typeof isBigEndian==="boolean","missing or invalid endian");assert.ok(offset!==undefined&&offset!==null,"missing offset");assert.ok(offset+3<buffer.length,"Trying to write beyond buffer length");verifsint(value,2147483647,-2147483648)}if(value>=0){writeUInt32(buffer,value,offset,isBigEndian,noAssert)}else{writeUInt32(buffer,4294967295+value+1,offset,isBigEndian,noAssert)}}Buffer.prototype.writeInt32LE=function(value,offset,noAssert){writeInt32(this,value,offset,false,noAssert)};Buffer.prototype.writeInt32BE=function(value,offset,noAssert){writeInt32(this,value,offset,true,noAssert)};function writeFloat(buffer,value,offset,isBigEndian,noAssert){if(!noAssert){assert.ok(value!==undefined&&value!==null,"missing value");assert.ok(typeof isBigEndian==="boolean","missing or invalid endian");assert.ok(offset!==undefined&&offset!==null,"missing offset");assert.ok(offset+3<buffer.length,"Trying to write beyond buffer length");verifIEEE754(value,3.4028234663852886e38,-3.4028234663852886e38)}require("./buffer_ieee754").writeIEEE754(buffer,value,offset,isBigEndian,23,4)}Buffer.prototype.writeFloatLE=function(value,offset,noAssert){writeFloat(this,value,offset,false,noAssert)};Buffer.prototype.writeFloatBE=function(value,offset,noAssert){writeFloat(this,value,offset,true,noAssert)};function writeDouble(buffer,value,offset,isBigEndian,noAssert){if(!noAssert){assert.ok(value!==undefined&&value!==null,"missing value");assert.ok(typeof isBigEndian==="boolean","missing or invalid endian");assert.ok(offset!==undefined&&offset!==null,"missing offset");assert.ok(offset+7<buffer.length,"Trying to write beyond buffer length");verifIEEE754(value,1.7976931348623157e308,-1.7976931348623157e308)}require("./buffer_ieee754").writeIEEE754(buffer,value,offset,isBigEndian,52,8)}Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){writeDouble(this,value,offset,true,noAssert)};SlowBuffer.prototype.readUInt8=Buffer.prototype.readUInt8;SlowBuffer.prototype.readUInt16LE=Buffer.prototype.readUInt16LE;SlowBuffer.prototype.readUInt16BE=Buffer.prototype.readUInt16BE;SlowBuffer.prototype.readUInt32LE=Buffer.prototype.readUInt32LE;SlowBuffer.prototype.readUInt32BE=Buffer.prototype.readUInt32BE;SlowBuffer.prototype.readInt8=Buffer.prototype.readInt8;SlowBuffer.prototype.readInt16LE=Buffer.prototype.readInt16LE;SlowBuffer.prototype.readInt16BE=Buffer.prototype.readInt16BE;SlowBuffer.prototype.readInt32LE=Buffer.prototype.readInt32LE;SlowBuffer.prototype.readInt32BE=Buffer.prototype.readInt32BE;SlowBuffer.prototype.readFloatLE=Buffer.prototype.readFloatLE;SlowBuffer.prototype.readFloatBE=Buffer.prototype.readFloatBE;SlowBuffer.prototype.readDoubleLE=Buffer.prototype.readDoubleLE;SlowBuffer.prototype.readDoubleBE=Buffer.prototype.readDoubleBE;SlowBuffer.prototype.writeUInt8=Buffer.prototype.writeUInt8;SlowBuffer.prototype.writeUInt16LE=Buffer.prototype.writeUInt16LE;SlowBuffer.prototype.writeUInt16BE=Buffer.prototype.writeUInt16BE;SlowBuffer.prototype.writeUInt32LE=Buffer.prototype.writeUInt32LE;SlowBuffer.prototype.writeUInt32BE=Buffer.prototype.writeUInt32BE;SlowBuffer.prototype.writeInt8=Buffer.prototype.writeInt8;SlowBuffer.prototype.writeInt16LE=Buffer.prototype.writeInt16LE;SlowBuffer.prototype.writeInt16BE=Buffer.prototype.writeInt16BE;SlowBuffer.prototype.writeInt32LE=Buffer.prototype.writeInt32LE; SlowBuffer.prototype.writeInt32BE=Buffer.prototype.writeInt32BE;SlowBuffer.prototype.writeFloatLE=Buffer.prototype.writeFloatLE;SlowBuffer.prototype.writeFloatBE=Buffer.prototype.writeFloatBE;SlowBuffer.prototype.writeDoubleLE=Buffer.prototype.writeDoubleLE;SlowBuffer.prototype.writeDoubleBE=Buffer.prototype.writeDoubleBE})()},{assert:2,"./buffer_ieee754":1,"base64-js":5}],3:[function(require,module,exports){var events=require("events");exports.isArray=isArray;exports.isDate=function(obj){return Object.prototype.toString.call(obj)==="[object Date]"};exports.isRegExp=function(obj){return Object.prototype.toString.call(obj)==="[object RegExp]"};exports.print=function(){};exports.puts=function(){};exports.debug=function(){};exports.inspect=function(obj,showHidden,depth,colors){var seen=[];var stylize=function(str,styleType){var styles={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};var style={special:"cyan",number:"blue","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"}[styleType];if(style){return"["+styles[style][0]+"m"+str+"["+styles[style][1]+"m"}else{return str}};if(!colors){stylize=function(str,styleType){return str}}function format(value,recurseTimes){if(value&&typeof value.inspect==="function"&&value!==exports&&!(value.constructor&&value.constructor.prototype===value)){return value.inspect(recurseTimes)}switch(typeof value){case"undefined":return stylize("undefined","undefined");case"string":var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return stylize(simple,"string");case"number":return stylize(""+value,"number");case"boolean":return stylize(""+value,"boolean")}if(value===null){return stylize("null","null")}var visible_keys=Object_keys(value);var keys=showHidden?Object_getOwnPropertyNames(value):visible_keys;if(typeof value==="function"&&keys.length===0){if(isRegExp(value)){return stylize(""+value,"regexp")}else{var name=value.name?": "+value.name:"";return stylize("[Function"+name+"]","special")}}if(isDate(value)&&keys.length===0){return stylize(value.toUTCString(),"date")}var base,type,braces;if(isArray(value)){type="Array";braces=["[","]"]}else{type="Object";braces=["{","}"]}if(typeof value==="function"){var n=value.name?": "+value.name:"";base=isRegExp(value)?" "+value:" [Function"+n+"]"}else{base=""}if(isDate(value)){base=" "+value.toUTCString()}if(keys.length===0){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return stylize(""+value,"regexp")}else{return stylize("[Object]","special")}}seen.push(value);var output=keys.map(function(key){var name,str;if(value.__lookupGetter__){if(value.__lookupGetter__(key)){if(value.__lookupSetter__(key)){str=stylize("[Getter/Setter]","special")}else{str=stylize("[Getter]","special")}}else{if(value.__lookupSetter__(key)){str=stylize("[Setter]","special")}}}if(visible_keys.indexOf(key)<0){name="["+key+"]"}if(!str){if(seen.indexOf(value[key])<0){if(recurseTimes===null){str=format(value[key])}else{str=format(value[key],recurseTimes-1)}if(str.indexOf("\n")>-1){if(isArray(value)){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=stylize("[Circular]","special")}}if(typeof name==="undefined"){if(type==="Array"&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=stylize(name,"string")}}return name+": "+str});seen.pop();var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.length+1},0);if(length>50){output=braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}else{output=braces[0]+base+" "+output.join(", ")+" "+braces[1]}return output}return format(obj,typeof depth==="undefined"?2:depth)};function isArray(ar){return ar instanceof Array||Array.isArray(ar)||ar&&ar!==Object.prototype&&isArray(ar.__proto__)}function isRegExp(re){return re instanceof RegExp||typeof re==="object"&&Object.prototype.toString.call(re)==="[object RegExp]"}function isDate(d){if(d instanceof Date)return true;if(typeof d!=="object")return false;var properties=Date.prototype&&Object_getOwnPropertyNames(Date.prototype);var proto=d.__proto__&&Object_getOwnPropertyNames(d.__proto__);return JSON.stringify(proto)===JSON.stringify(properties)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(msg){};exports.pump=null;var Object_keys=Object.keys||function(obj){var res=[];for(var key in obj)res.push(key);return res};var Object_getOwnPropertyNames=Object.getOwnPropertyNames||function(obj){var res=[];for(var key in obj){if(Object.hasOwnProperty.call(obj,key))res.push(key)}return res};var Object_create=Object.create||function(prototype,properties){var object;if(prototype===null){object={__proto__:null}}else{if(typeof prototype!=="object"){throw new TypeError("typeof prototype["+typeof prototype+"] != 'object'")}var Type=function(){};Type.prototype=prototype;object=new Type;object.__proto__=prototype}if(typeof properties!=="undefined"&&Object.defineProperties){Object.defineProperties(object,properties)}return object};exports.inherits=function(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object_create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})};var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(typeof f!=="string"){var objects=[];for(var i=0;i<arguments.length;i++){objects.push(exports.inspect(arguments[i]))}return objects.join(" ")}var i=1;var args=arguments;var len=args.length;var str=String(f).replace(formatRegExp,function(x){if(x==="%%")return"%";if(i>=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":return JSON.stringify(args[i++]);default:return x}});for(var x=args[i];i<len;x=args[++i]){if(x===null||typeof x!=="object"){str+=" "+x}else{str+=" "+exports.inspect(x)}}return str}},{events:6}],5:[function(require,module,exports){(function(exports){"use strict";var lookup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function b64ToByteArray(b64){var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0){throw"Invalid string. Length must be a multiple of 4"}placeHolders=b64.indexOf("=");placeHolders=placeHolders>0?b64.length-placeHolders:0;arr=[];l=placeHolders>0?b64.length-4:b64.length;for(i=0,j=0;i<l;i+=4,j+=3){tmp=lookup.indexOf(b64[i])<<18|lookup.indexOf(b64[i+1])<<12|lookup.indexOf(b64[i+2])<<6|lookup.indexOf(b64[i+3]);arr.push((tmp&16711680)>>16);arr.push((tmp&65280)>>8);arr.push(tmp&255)}if(placeHolders===2){tmp=lookup.indexOf(b64[i])<<2|lookup.indexOf(b64[i+1])>>4;arr.push(tmp&255)}else if(placeHolders===1){tmp=lookup.indexOf(b64[i])<<10|lookup.indexOf(b64[i+1])<<4|lookup.indexOf(b64[i+2])>>2;arr.push(tmp>>8&255);arr.push(tmp&255)}return arr}function uint8ToBase64(uint8){var i,extraBytes=uint8.length%3,output="",temp,length;function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}for(i=0,length=uint8.length-extraBytes;i<length;i+=3){temp=(uint8[i]<<16)+(uint8[i+1]<<8)+uint8[i+2];output+=tripletToBase64(temp)}switch(extraBytes){case 1:temp=uint8[uint8.length-1];output+=lookup[temp>>2];output+=lookup[temp<<4&63];output+="==";break;case 2:temp=(uint8[uint8.length-2]<<8)+uint8[uint8.length-1];output+=lookup[temp>>10];output+=lookup[temp>>4&63];output+=lookup[temp<<2&63];output+="=";break}return output}module.exports.toByteArray=b64ToByteArray;module.exports.fromByteArray=uint8ToBase64})()},{}],7:[function(require,module,exports){exports.readIEEE754=function(buffer,offset,isBE,mLen,nBytes){var e,m,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isBE?0:nBytes-1,d=isBE?1:-1,s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8);m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8);if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.writeIEEE754=function(buffer,value,offset,isBE,mLen,nBytes){var e,m,c,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0,i=isBE?nBytes-1:0,d=isBE?-1:1,s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8);e=e<<mLen|m;eLen+=mLen;for(;eLen>0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=s*128}},{}],8:[function(require,module,exports){var process=module.exports={};process.nextTick=function(){var canSetImmediate=typeof window!=="undefined"&&window.setImmediate;var canPost=typeof window!=="undefined"&&window.postMessage&&window.addEventListener;if(canSetImmediate){return function(f){return window.setImmediate(f)}}if(canPost){var queue=[];window.addEventListener("message",function(ev){if(ev.source===window&&ev.data==="process-tick"){ev.stopPropagation();if(queue.length>0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],6:[function(require,module,exports){(function(process){if(!process.EventEmitter)process.EventEmitter=function(){};var EventEmitter=exports.EventEmitter=process.EventEmitter;var isArray=typeof Array.isArray==="function"?Array.isArray:function(xs){return Object.prototype.toString.call(xs)==="[object Array]"};function indexOf(xs,x){if(xs.indexOf)return xs.indexOf(x);for(var i=0;i<xs.length;i++){if(x===xs[i])return i}return-1}var defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){if(!this._events)this._events={};this._events.maxListeners=n};EventEmitter.prototype.emit=function(type){if(type==="error"){if(!this._events||!this._events.error||isArray(this._events.error)&&!this._events.error.length){if(arguments[1]instanceof Error){throw arguments[1]}else{throw new Error("Uncaught, unspecified 'error' event.")}return false}}if(!this._events)return false;var handler=this._events[type];if(!handler)return false;if(typeof handler=="function"){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:var args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}return true}else if(isArray(handler)){var args=Array.prototype.slice.call(arguments,1);var listeners=handler.slice();for(var i=0,l=listeners.length;i<l;i++){listeners[i].apply(this,args)}return true}else{return false}};EventEmitter.prototype.addListener=function(type,listener){if("function"!==typeof listener){throw new Error("addListener only takes instances of Function")}if(!this._events)this._events={};this.emit("newListener",type,listener);if(!this._events[type]){this._events[type]=listener}else if(isArray(this._events[type])){if(!this._events[type].warned){var m;if(this._events.maxListeners!==undefined){m=this._events.maxListeners}else{m=defaultMaxListeners}if(m&&m>0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);console.trace()}}this._events[type].push(listener)}else{this._events[type]=[this._events[type],listener]}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){var self=this;self.on(type,function g(){self.removeListener(type,g);listener.apply(this,arguments)});return this};EventEmitter.prototype.removeListener=function(type,listener){if("function"!==typeof listener){throw new Error("removeListener only takes instances of Function")}if(!this._events||!this._events[type])return this;var list=this._events[type];if(isArray(list)){var i=indexOf(list,listener);if(i<0)return this;list.splice(i,1);if(list.length==0)delete this._events[type]}else if(this._events[type]===listener){delete this._events[type]}return this};EventEmitter.prototype.removeAllListeners=function(type){if(arguments.length===0){this._events={};return this}if(type&&this._events&&this._events[type])this._events[type]=null;return this};EventEmitter.prototype.listeners=function(type){if(!this._events)this._events={};if(!this._events[type])this._events[type]=[];if(!isArray(this._events[type])){this._events[type]=[this._events[type]]}return this._events[type]}})(require("__browserify_process"))},{__browserify_process:8}],4:[function(require,module,exports){(function(){function SlowBuffer(size){this.length=size}var assert=require("assert");exports.INSPECT_MAX_BYTES=50;function toHex(n){if(n<16)return"0"+n.toString(16);return n.toString(16)}function utf8ToBytes(str){var byteArray=[];for(var i=0;i<str.length;i++)if(str.charCodeAt(i)<=127)byteArray.push(str.charCodeAt(i));else{var h=encodeURIComponent(str.charAt(i)).substr(1).split("%");for(var j=0;j<h.length;j++)byteArray.push(parseInt(h[j],16))}return byteArray}function asciiToBytes(str){var byteArray=[];for(var i=0;i<str.length;i++)byteArray.push(str.charCodeAt(i)&255);return byteArray}function base64ToBytes(str){return require("base64-js").toByteArray(str)}SlowBuffer.byteLength=function(str,encoding){switch(encoding||"utf8"){case"hex":return str.length/2;case"utf8":case"utf-8":return utf8ToBytes(str).length;case"ascii":return str.length;case"base64":return base64ToBytes(str).length;default:throw new Error("Unknown encoding")}};function blitBuffer(src,dst,offset,length){var pos,i=0;while(i<length){if(i+offset>=dst.length||i>=src.length)break;dst[i+offset]=src[i];i++}return i}SlowBuffer.prototype.utf8Write=function(string,offset,length){var bytes,pos;return SlowBuffer._charsWritten=blitBuffer(utf8ToBytes(string),this,offset,length)};SlowBuffer.prototype.asciiWrite=function(string,offset,length){var bytes,pos;return SlowBuffer._charsWritten=blitBuffer(asciiToBytes(string),this,offset,length)};SlowBuffer.prototype.base64Write=function(string,offset,length){var bytes,pos;return SlowBuffer._charsWritten=blitBuffer(base64ToBytes(string),this,offset,length)};SlowBuffer.prototype.base64Slice=function(start,end){var bytes=Array.prototype.slice.apply(this,arguments);return require("base64-js").fromByteArray(bytes)};function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}SlowBuffer.prototype.utf8Slice=function(){var bytes=Array.prototype.slice.apply(this,arguments);var res="";var tmp="";var i=0;while(i<bytes.length){if(bytes[i]<=127){res+=decodeUtf8Char(tmp)+String.fromCharCode(bytes[i]);tmp=""}else tmp+="%"+bytes[i].toString(16);i++}return res+decodeUtf8Char(tmp)};SlowBuffer.prototype.asciiSlice=function(){var bytes=Array.prototype.slice.apply(this,arguments);var ret="";for(var i=0;i<bytes.length;i++)ret+=String.fromCharCode(bytes[i]);return ret};SlowBuffer.prototype.inspect=function(){var out=[],len=this.length;for(var i=0;i<len;i++){out[i]=toHex(this[i]);if(i==exports.INSPECT_MAX_BYTES){out[i+1]="...";break}}return"<SlowBuffer "+out.join(" ")+">"};SlowBuffer.prototype.hexSlice=function(start,end){var len=this.length;if(!start||start<0)start=0;if(!end||end<0||end>len)end=len;var out="";for(var i=start;i<end;i++){out+=toHex(this[i])}return out};SlowBuffer.prototype.toString=function(encoding,start,end){encoding=String(encoding||"utf8").toLowerCase();start=+start||0;if(typeof end=="undefined")end=this.length;if(+end==start){return""}switch(encoding){case"hex":return this.hexSlice(start,end);case"utf8":case"utf-8":return this.utf8Slice(start,end);case"ascii":return this.asciiSlice(start,end);case"binary":return this.binarySlice(start,end);case"base64":return this.base64Slice(start,end);case"ucs2":case"ucs-2":return this.ucs2Slice(start,end);default:throw new Error("Unknown encoding")}};SlowBuffer.prototype.hexWrite=function(string,offset,length){offset=+offset||0;var remaining=this.length-offset;if(!length){length=remaining}else{length=+length;if(length>remaining){length=remaining}}var strLen=string.length;if(strLen%2){throw new Error("Invalid hex string")}if(length>strLen/2){length=strLen/2}for(var i=0;i<length;i++){var byte=parseInt(string.substr(i*2,2),16);if(isNaN(byte))throw new Error("Invalid hex string");this[offset+i]=byte}SlowBuffer._charsWritten=i*2;return i};SlowBuffer.prototype.write=function(string,offset,length,encoding){if(isFinite(offset)){if(!isFinite(length)){encoding=length;length=undefined}}else{var swap=encoding;encoding=offset;offset=length;length=swap}offset=+offset||0;var remaining=this.length-offset;if(!length){length=remaining}else{length=+l