Skip to content

Instantly share code, notes, and snippets.

@leetreveil
Created August 19, 2014 15:44
Show Gist options
  • Save leetreveil/44471d2d54fdc59a1e48 to your computer and use it in GitHub Desktop.
Save leetreveil/44471d2d54fdc59a1e48 to your computer and use it in GitHub Desktop.
requirebin sketch
var musicmetadata = require('musicmetadata');
addDragDropListener(document, function (files) {
musicmetadata(files[0], { duration: true })
.on('metadata', function (result) {
console.log(result);
if (result.picture.length > 0) {
var picture = result.picture[0];
var url = URL.createObjectURL(new Blob([picture.data], {'type': 'image/' + picture.format}));
var image = document.createElement('img');
image.width = 100;
image.height = 100;
document.body.appendChild(image);
image.src = url;
}
result.picture = '<<redacted>>';
var info = document.createElement('p');
info.innerText = JSON.stringify(result, null, '\t');
console.log(JSON.stringify(result, null, '\t'))
document.body.appendChild(info);
})
.on('done', function (err) {
if (err) throw err;
})
});
function handleDrop(callback, event) {
event.stopPropagation()
event.preventDefault()
callback(Array.prototype.slice.call(event.dataTransfer.files))
}
function killEvent(e) {
e.stopPropagation()
e.preventDefault()
return false
}
function addDragDropListener(element, callback) {
element.addEventListener("dragenter", killEvent, false)
element.addEventListener("dragover", killEvent, false)
element.addEventListener("drop", handleDrop.bind(undefined, callback), false)
}
require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){},{}],2:[function(require,module,exports){var util=require("util/");var pSlice=Array.prototype.slice;var hasOwn=Object.prototype.hasOwnProperty;var assert=module.exports=ok;assert.AssertionError=function AssertionError(options){this.name="AssertionError";this.actual=options.actual;this.expected=options.expected;this.operator=options.operator;if(options.message){this.message=options.message;this.generatedMessage=false}else{this.message=getMessage(this);this.generatedMessage=true}var stackStartFunction=options.stackStartFunction||fail;if(Error.captureStackTrace){Error.captureStackTrace(this,stackStartFunction)}else{var err=new Error;if(err.stack){var out=err.stack;var fn_name=stackStartFunction.name;var idx=out.indexOf("\n"+fn_name);if(idx>=0){var next_line=out.indexOf("\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}};util.inherits(assert.AssertionError,Error);function replacer(key,value){if(util.isUndefined(value)){return""+value}if(util.isNumber(value)&&(isNaN(value)||!isFinite(value))){return value.toString()}if(util.isFunction(value)||util.isRegExp(value)){return value.toString()}return value}function truncate(s,n){if(util.isString(s)){return s.length<n?s:s.slice(0,n)}else{return s}}function getMessage(self){return truncate(JSON.stringify(self.actual,replacer),128)+" "+self.operator+" "+truncate(JSON.stringify(self.expected,replacer),128)}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(util.isBuffer(actual)&&util.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(util.isDate(actual)&&util.isDate(expected)){return actual.getTime()===expected.getTime()}else if(util.isRegExp(actual)&&util.isRegExp(expected)){return actual.source===expected.source&&actual.global===expected.global&&actual.multiline===expected.multiline&&actual.lastIndex===expected.lastIndex&&actual.ignoreCase===expected.ignoreCase}else if(!util.isObject(actual)&&!util.isObject(expected)){return actual==expected}else{return objEquiv(actual,expected)}}function isArguments(object){return Object.prototype.toString.call(object)=="[object Arguments]"}function objEquiv(a,b){if(util.isNullOrUndefined(a)||util.isNullOrUndefined(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(Object.prototype.toString.call(expected)=="[object 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(util.isString(expected)){message=expected;expected=null}try{block()}catch(e){actual=e}message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:".");if(shouldThrow&&!actual){fail(actual,expected,"Missing expected exception"+message)}if(!shouldThrow&&expectedException(actual,expected)){fail(actual,expected,"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,message){_throws.apply(this,[false].concat(pSlice.call(arguments)))};assert.ifError=function(err){if(err){throw err}};var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){if(hasOwn.call(obj,key))keys.push(key)}return keys}},{"util/":4}],3:[function(require,module,exports){module.exports=function isBuffer(arg){return arg&&typeof arg==="object"&&typeof arg.copy==="function"&&typeof arg.fill==="function"&&typeof arg.readUInt8==="function"}},{}],4:[function(require,module,exports){(function(process,global){var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){var objects=[];for(var i=0;i<arguments.length;i++){objects.push(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":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i<len;x=args[++i]){if(isNull(x)||!isObject(x)){str+=" "+x}else{str+=" "+inspect(x)}}return str};exports.deprecate=function(fn,msg){if(isUndefined(global.process)){return function(){return exports.deprecate(fn,msg).apply(this,arguments)}}if(process.noDeprecation===true){return fn}var warned=false;function deprecated(){if(!warned){if(process.throwDeprecation){throw new Error(msg)}else if(process.traceDeprecation){console.trace(msg)}else{console.error(msg)}warned=true}return fn.apply(this,arguments)}return deprecated};var debugs={};var debugEnviron;exports.debuglog=function(set){if(isUndefined(debugEnviron))debugEnviron=process.env.NODE_DEBUG||"";set=set.toUpperCase();if(!debugs[set]){if(new RegExp("\\b"+set+"\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else{debugs[set]=function(){}}}return debugs[set]};function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};if(arguments.length>=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.colors={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]};inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i<l;++i){if(hasOwnProperty(value,String(i))){output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),true))}else{output.push("")}}keys.forEach(function(key){if(!key.match(/^\d+$/)){output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,true))}});return output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]};if(desc.get){if(desc.set){str=ctx.stylize("[Getter/Setter]","special")}else{str=ctx.stylize("[Getter]","special")}}else{if(desc.set){str=ctx.stylize("[Setter]","special")}}if(!hasOwnProperty(visibleKeys,key)){name="["+key+"]"}if(!str){if(ctx.seen.indexOf(desc.value)<0){if(isNull(recurseTimes)){str=formatValue(ctx,desc.value,null)}else{str=formatValue(ctx,desc.value,recurseTimes-1)}if(str.indexOf("\n")>-1){if(array){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=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(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=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}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(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=require("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this,require("/home/admin/browserify-cdn/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"),typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":3,"/home/admin/browserify-cdn/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":7,inherits:6}],5:[function(require,module,exports){function EventEmitter(){this._events=this._events||{};this._maxListeners=this._maxListeners||undefined}module.exports=EventEmitter;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._maxListeners=undefined;EventEmitter.defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||n<0||isNaN(n))throw TypeError("n must be a positive number");this._maxListeners=n;return this};EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(!this._events)this._events={};if(type==="error"){if(!this._events.error||isObject(this._events.error)&&!this._events.error.length){er=arguments[1];if(er instanceof Error){throw er}else{throw TypeError('Uncaught, unspecified "error" event.')}return false}}handler=this._events[type];if(isUndefined(handler))return false;if(isFunction(handler)){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:len=arguments.length;args=new Array(len-1);for(i=1;i<len;i++)args[i-1]=arguments[i];handler.apply(this,args)}}else if(isObject(handler)){len=arguments.length;args=new Array(len-1);for(i=1;i<len;i++)args[i-1]=arguments[i];listeners=handler.slice();len=listeners.length;for(i=0;i<len;i++)listeners[i].apply(this,args)}return true};EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events)this._events={};if(this._events.newListener)this.emit("newListener",type,isFunction(listener.listener)?listener.listener:listener);if(!this._events[type])this._events[type]=listener;else if(isObject(this._events[type]))this._events[type].push(listener);else this._events[type]=[this._events[type],listener];if(isObject(this._events[type])&&!this._events[type].warned){var m;if(!isUndefined(this._maxListeners)){m=this._maxListeners}else{m=EventEmitter.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()}}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){if(!isFunction(listener))throw TypeError("listener must be a function");var fired=false;function g(){this.removeListener(type,g);if(!fired){fired=true;listener.apply(this,arguments)}}g.listener=listener;this.on(type,g);return this};EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;list=this._events[type];length=list.length;position=-1;if(list===listener||isFunction(list.listener)&&list.listener===listener){delete this._events[type];if(this._events.removeListener)this.emit("removeListener",type,listener)}else if(isObject(list)){for(i=length;i-->0;){if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}}if(position<0)return this;if(list.length===1){list.length=0;delete this._events[type]}else{list.splice(position,1)}if(this._events.removeListener)this.emit("removeListener",type,listener)}return this};EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener){if(arguments.length===0)this._events={};else if(this._events[type])delete this._events[type];return this}if(arguments.length===0){for(key in this._events){if(key==="removeListener")continue;this.removeAllListeners(key)}this.removeAllListeners("removeListener");this._events={};return this}listeners=this._events[type];if(isFunction(listeners)){this.removeListener(type,listeners)}else{while(listeners.length)this.removeListener(type,listeners[listeners.length-1])}delete this._events[type];return this};EventEmitter.prototype.listeners=function(type){var ret;if(!this._events||!this._events[type])ret=[];else if(isFunction(this._events[type]))ret=[this._events[type]];else ret=this._events[type].slice();return ret};EventEmitter.listenerCount=function(emitter,type){var ret;if(!emitter._events||!emitter._events[type])ret=0;else if(isFunction(emitter._events[type]))ret=1;else ret=emitter._events[type].length;return ret};function isFunction(arg){return typeof arg==="function"}function isNumber(arg){return typeof arg==="number"}function isObject(arg){return typeof arg==="object"&&arg!==null}function isUndefined(arg){return arg===void 0}},{}],6:[function(require,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}else{module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}},{}],7:[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){var source=ev.source;if((source===window||source===null)&&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")}},{}],8:[function(require,module,exports){var base64=require("base64-js");var ieee754=require("ieee754");exports.Buffer=Buffer;exports.SlowBuffer=Buffer;exports.INSPECT_MAX_BYTES=50;Buffer.poolSize=8192;Buffer._useTypedArrays=function(){if(typeof Uint8Array==="undefined"||typeof ArrayBuffer==="undefined")return false;try{var arr=new Uint8Array(0);arr.foo=function(){return 42};return 42===arr.foo()&&typeof arr.subarray==="function"}catch(e){return false}}();function Buffer(subject,encoding,noZero){if(!(this instanceof Buffer))return new Buffer(subject,encoding,noZero);var type=typeof subject;if(encoding==="base64"&&type==="string"){subject=stringtrim(subject);while(subject.length%4!==0){subject=subject+"="}}var length;if(type==="number")length=coerce(subject);else if(type==="string")length=Buffer.byteLength(subject,encoding);else if(type==="object")length=coerce(subject.length);else throw new Error("First argument needs to be a number, array or string.");var buf;if(Buffer._useTypedArrays){buf=augment(new Uint8Array(length))}else{buf=this;buf.length=length;buf._isBuffer=true}var i;if(Buffer._useTypedArrays&&typeof Uint8Array==="function"&&subject instanceof Uint8Array){buf._set(subject)}else if(isArrayish(subject)){for(i=0;i<length;i++){if(Buffer.isBuffer(subject))buf[i]=subject.readUInt8(i);else buf[i]=subject[i]}}else if(type==="string"){buf.write(subject,0,encoding)}else if(type==="number"&&!Buffer._useTypedArrays&&!noZero){for(i=0;i<length;i++){buf[i]=0}}return buf}Buffer.isEncoding=function(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return true;default:return false}};Buffer.isBuffer=function(b){return!!(b!==null&&b!==undefined&&b._isBuffer)};Buffer.byteLength=function(str,encoding){var ret;str=str+"";switch(encoding||"utf8"){case"hex":ret=str.length/2;break;case"utf8":case"utf-8":ret=utf8ToBytes(str).length;break;case"ascii":case"binary":case"raw":ret=str.length;break;case"base64":ret=base64ToBytes(str).length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":ret=str.length*2;break;default:throw new Error("Unknown encoding")}return ret};Buffer.concat=function(list,totalLength){assert(isArray(list),"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]}var i;if(typeof totalLength!=="number"){totalLength=0;for(i=0;i<list.length;i++){totalLength+=list[i].length}}var buf=new Buffer(totalLength);var pos=0;for(i=0;i<list.length;i++){var item=list[i];item.copy(buf,pos);pos+=item.length}return buf};function _hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;if(!length){length=remaining}else{length=Number(length);if(length>remaining){length=remaining}}var strLen=string.length;assert(strLen%2===0,"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);assert(!isNaN(byte),"Invalid hex string");buf[offset+i]=byte}Buffer._charsWritten=i*2;return i}function _utf8Write(buf,string,offset,length){var charsWritten=Buffer._charsWritten=blitBuffer(utf8ToBytes(string),buf,offset,length);return charsWritten}function _asciiWrite(buf,string,offset,length){var charsWritten=Buffer._charsWritten=blitBuffer(asciiToBytes(string),buf,offset,length);return charsWritten}function _binaryWrite(buf,string,offset,length){return _asciiWrite(buf,string,offset,length)}function _base64Write(buf,string,offset,length){var charsWritten=Buffer._charsWritten=blitBuffer(base64ToBytes(string),buf,offset,length);return charsWritten}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=Number(offset)||0;var remaining=this.length-offset;if(!length){length=remaining}else{length=Number(length);if(length>remaining){length=remaining}}encoding=String(encoding||"utf8").toLowerCase();switch(encoding){case"hex":return _hexWrite(this,string,offset,length);case"utf8":case"utf-8":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _utf8Write(this,string,offset,length);case"ascii":return _asciiWrite(this,string,offset,length);case"binary":return _binaryWrite(this,string,offset,length);case"base64":return _base64Write(this,string,offset,length);default:throw new Error("Unknown encoding")}};Buffer.prototype.toString=function(encoding,start,end){var self=this;encoding=String(encoding||"utf8").toLowerCase();start=Number(start)||0;end=end!==undefined?Number(end):end=self.length;if(end===start)return"";switch(encoding){case"hex":return _hexSlice(self,start,end);case"utf8":case"utf-8":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _utf8Slice(self,start,end);case"ascii":return _asciiSlice(self,start,end);case"binary":return _binarySlice(self,start,end);case"base64":return _base64Slice(self,start,end);default:throw new Error("Unknown encoding")}};Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};Buffer.prototype.copy=function(target,target_start,start,end){var source=this;if(!start)start=0;if(!end&&end!==0)end=this.length;if(!target_start)target_start=0;if(end===start)return;if(target.length===0||source.length===0)return;assert(end>=start,"sourceEnd < sourceStart");assert(target_start>=0&&target_start<target.length,"targetStart out of bounds");assert(start>=0&&start<source.length,"sourceStart out of bounds");assert(end>=0&&end<=source.length,"sourceEnd out of bounds");if(end>this.length)end=this.length;if(target.length-target_start<end-start)end=target.length-target_start+start;for(var i=0;i<end-start;i++)target[i+target_start]=this[i+start]};function _base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf)}else{return base64.fromByteArray(buf.slice(start,end))}}function _utf8Slice(buf,start,end){var res="";var tmp="";end=Math.min(buf.length,end);for(var i=start;i<end;i++){if(buf[i]<=127){res+=decodeUtf8Char(tmp)+String.fromCharCode(buf[i]);tmp=""}else{tmp+="%"+buf[i].toString(16)}}return res+decodeUtf8Char(tmp)}function _asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;i++)ret+=String.fromCharCode(buf[i]);return ret}function _binarySlice(buf,start,end){return _asciiSlice(buf,start,end)}function _hexSlice(buf,start,end){var len=buf.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(buf[i])}return out}Buffer.prototype.slice=function(start,end){var len=this.length;start=clamp(start,len,0);end=clamp(end,len,len);if(Buffer._useTypedArrays){return augment(this.subarray(start,end))}else{var sliceLen=end-start;var newBuf=new Buffer(sliceLen,undefined,true);for(var i=0;i<sliceLen;i++){newBuf[i]=this[i+start]}return newBuf}};Buffer.prototype.get=function(offset){console.log(".get() is deprecated. Access using array indexes instead.");return this.readUInt8(offset)};Buffer.prototype.set=function(v,offset){console.log(".set() is deprecated. Access using array indexes instead.");return this.writeUInt8(v,offset)};Buffer.prototype.readUInt8=function(offset,noAssert){if(!noAssert){assert(offset!==undefined&&offset!==null,"missing offset");assert(offset<this.length,"Trying to read beyond buffer length")}if(offset>=this.length)return;return this[offset]};function _readUInt16(buf,offset,littleEndian,noAssert){if(!noAssert){assert(typeof littleEndian==="boolean","missing or invalid endian");assert(offset!==undefined&&offset!==null,"missing offset");assert(offset+1<buf.length,"Trying to read beyond buffer length")}var len=buf.length;if(offset>=len)return;var val;if(littleEndian){val=buf[offset];if(offset+1<len)val|=buf[offset+1]<<8}else{val=buf[offset]<<8;if(offset+1<len)val|=buf[offset+1]}return val}Buffer.prototype.readUInt16LE=function(offset,noAssert){return _readUInt16(this,offset,true,noAssert)};Buffer.prototype.readUInt16BE=function(offset,noAssert){return _readUInt16(this,offset,false,noAssert)};function _readUInt32(buf,offset,littleEndian,noAssert){if(!noAssert){assert(typeof littleEndian==="boolean","missing or invalid endian");assert(offset!==undefined&&offset!==null,"missing offset");assert(offset+3<buf.length,"Trying to read beyond buffer length")}var len=buf.length;if(offset>=len)return;var val;if(littleEndian){if(offset+2<len)val=buf[offset+2]<<16;if(offset+1<len)val|=buf[offset+1]<<8;val|=buf[offset];if(offset+3<len)val=val+(buf[offset+3]<<24>>>0)}else{if(offset+1<len)val=buf[offset+1]<<16;if(offset+2<len)val|=buf[offset+2]<<8;if(offset+3<len)val|=buf[offset+3];val=val+(buf[offset]<<24>>>0)}return val}Buffer.prototype.readUInt32LE=function(offset,noAssert){return _readUInt32(this,offset,true,noAssert)};Buffer.prototype.readUInt32BE=function(offset,noAssert){return _readUInt32(this,offset,false,noAssert)};Buffer.prototype.readInt8=function(offset,noAssert){if(!noAssert){assert(offset!==undefined&&offset!==null,"missing offset");assert(offset<this.length,"Trying to read beyond buffer length")}if(offset>=this.length)return;var neg=this[offset]&128;if(neg)return(255-this[offset]+1)*-1;else return this[offset]};function _readInt16(buf,offset,littleEndian,noAssert){if(!noAssert){assert(typeof littleEndian==="boolean","missing or invalid endian");assert(offset!==undefined&&offset!==null,"missing offset");assert(offset+1<buf.length,"Trying to read beyond buffer length")}var len=buf.length;if(offset>=len)return;var val=_readUInt16(buf,offset,littleEndian,true);var neg=val&32768;if(neg)return(65535-val+1)*-1;else return val}Buffer.prototype.readInt16LE=function(offset,noAssert){return _readInt16(this,offset,true,noAssert)};Buffer.prototype.readInt16BE=function(offset,noAssert){return _readInt16(this,offset,false,noAssert)};function _readInt32(buf,offset,littleEndian,noAssert){if(!noAssert){assert(typeof littleEndian==="boolean","missing or invalid endian");assert(offset!==undefined&&offset!==null,"missing offset");assert(offset+3<buf.length,"Trying to read beyond buffer length")}var len=buf.length;if(offset>=len)return;var val=_readUInt32(buf,offset,littleEndian,true);var neg=val&2147483648;if(neg)return(4294967295-val+1)*-1;else return val}Buffer.prototype.readInt32LE=function(offset,noAssert){return _readInt32(this,offset,true,noAssert)};Buffer.prototype.readInt32BE=function(offset,noAssert){return _readInt32(this,offset,false,noAssert)};function _readFloat(buf,offset,littleEndian,noAssert){if(!noAssert){assert(typeof littleEndian==="boolean","missing or invalid endian");
assert(offset+3<buf.length,"Trying to read beyond buffer length")}return ieee754.read(buf,offset,littleEndian,23,4)}Buffer.prototype.readFloatLE=function(offset,noAssert){return _readFloat(this,offset,true,noAssert)};Buffer.prototype.readFloatBE=function(offset,noAssert){return _readFloat(this,offset,false,noAssert)};function _readDouble(buf,offset,littleEndian,noAssert){if(!noAssert){assert(typeof littleEndian==="boolean","missing or invalid endian");assert(offset+7<buf.length,"Trying to read beyond buffer length")}return ieee754.read(buf,offset,littleEndian,52,8)}Buffer.prototype.readDoubleLE=function(offset,noAssert){return _readDouble(this,offset,true,noAssert)};Buffer.prototype.readDoubleBE=function(offset,noAssert){return _readDouble(this,offset,false,noAssert)};Buffer.prototype.writeUInt8=function(value,offset,noAssert){if(!noAssert){assert(value!==undefined&&value!==null,"missing value");assert(offset!==undefined&&offset!==null,"missing offset");assert(offset<this.length,"trying to write beyond buffer length");verifuint(value,255)}if(offset>=this.length)return;this[offset]=value};function _writeUInt16(buf,value,offset,littleEndian,noAssert){if(!noAssert){assert(value!==undefined&&value!==null,"missing value");assert(typeof littleEndian==="boolean","missing or invalid endian");assert(offset!==undefined&&offset!==null,"missing offset");assert(offset+1<buf.length,"trying to write beyond buffer length");verifuint(value,65535)}var len=buf.length;if(offset>=len)return;for(var i=0,j=Math.min(len-offset,2);i<j;i++){buf[offset+i]=(value&255<<8*(littleEndian?i:1-i))>>>(littleEndian?i:1-i)*8}}Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){_writeUInt16(this,value,offset,true,noAssert)};Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){_writeUInt16(this,value,offset,false,noAssert)};function _writeUInt32(buf,value,offset,littleEndian,noAssert){if(!noAssert){assert(value!==undefined&&value!==null,"missing value");assert(typeof littleEndian==="boolean","missing or invalid endian");assert(offset!==undefined&&offset!==null,"missing offset");assert(offset+3<buf.length,"trying to write beyond buffer length");verifuint(value,4294967295)}var len=buf.length;if(offset>=len)return;for(var i=0,j=Math.min(len-offset,4);i<j;i++){buf[offset+i]=value>>>(littleEndian?i:3-i)*8&255}}Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){_writeUInt32(this,value,offset,true,noAssert)};Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){_writeUInt32(this,value,offset,false,noAssert)};Buffer.prototype.writeInt8=function(value,offset,noAssert){if(!noAssert){assert(value!==undefined&&value!==null,"missing value");assert(offset!==undefined&&offset!==null,"missing offset");assert(offset<this.length,"Trying to write beyond buffer length");verifsint(value,127,-128)}if(offset>=this.length)return;if(value>=0)this.writeUInt8(value,offset,noAssert);else this.writeUInt8(255+value+1,offset,noAssert)};function _writeInt16(buf,value,offset,littleEndian,noAssert){if(!noAssert){assert(value!==undefined&&value!==null,"missing value");assert(typeof littleEndian==="boolean","missing or invalid endian");assert(offset!==undefined&&offset!==null,"missing offset");assert(offset+1<buf.length,"Trying to write beyond buffer length");verifsint(value,32767,-32768)}var len=buf.length;if(offset>=len)return;if(value>=0)_writeUInt16(buf,value,offset,littleEndian,noAssert);else _writeUInt16(buf,65535+value+1,offset,littleEndian,noAssert)}Buffer.prototype.writeInt16LE=function(value,offset,noAssert){_writeInt16(this,value,offset,true,noAssert)};Buffer.prototype.writeInt16BE=function(value,offset,noAssert){_writeInt16(this,value,offset,false,noAssert)};function _writeInt32(buf,value,offset,littleEndian,noAssert){if(!noAssert){assert(value!==undefined&&value!==null,"missing value");assert(typeof littleEndian==="boolean","missing or invalid endian");assert(offset!==undefined&&offset!==null,"missing offset");assert(offset+3<buf.length,"Trying to write beyond buffer length");verifsint(value,2147483647,-2147483648)}var len=buf.length;if(offset>=len)return;if(value>=0)_writeUInt32(buf,value,offset,littleEndian,noAssert);else _writeUInt32(buf,4294967295+value+1,offset,littleEndian,noAssert)}Buffer.prototype.writeInt32LE=function(value,offset,noAssert){_writeInt32(this,value,offset,true,noAssert)};Buffer.prototype.writeInt32BE=function(value,offset,noAssert){_writeInt32(this,value,offset,false,noAssert)};function _writeFloat(buf,value,offset,littleEndian,noAssert){if(!noAssert){assert(value!==undefined&&value!==null,"missing value");assert(typeof littleEndian==="boolean","missing or invalid endian");assert(offset!==undefined&&offset!==null,"missing offset");assert(offset+3<buf.length,"Trying to write beyond buffer length");verifIEEE754(value,3.4028234663852886e38,-3.4028234663852886e38)}var len=buf.length;if(offset>=len)return;ieee754.write(buf,value,offset,littleEndian,23,4)}Buffer.prototype.writeFloatLE=function(value,offset,noAssert){_writeFloat(this,value,offset,true,noAssert)};Buffer.prototype.writeFloatBE=function(value,offset,noAssert){_writeFloat(this,value,offset,false,noAssert)};function _writeDouble(buf,value,offset,littleEndian,noAssert){if(!noAssert){assert(value!==undefined&&value!==null,"missing value");assert(typeof littleEndian==="boolean","missing or invalid endian");assert(offset!==undefined&&offset!==null,"missing offset");assert(offset+7<buf.length,"Trying to write beyond buffer length");verifIEEE754(value,1.7976931348623157e308,-1.7976931348623157e308)}var len=buf.length;if(offset>=len)return;ieee754.write(buf,value,offset,littleEndian,52,8)}Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){_writeDouble(this,value,offset,true,noAssert)};Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){_writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.fill=function(value,start,end){if(!value)value=0;if(!start)start=0;if(!end)end=this.length;if(typeof value==="string"){value=value.charCodeAt(0)}assert(typeof value==="number"&&!isNaN(value),"value is not a number");assert(end>=start,"end < start");if(end===start)return;if(this.length===0)return;assert(start>=0&&start<this.length,"start out of bounds");assert(end>=0&&end<=this.length,"end out of bounds");for(var i=start;i<end;i++){this[i]=value}};Buffer.prototype.inspect=function(){var out=[];var 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"<Buffer "+out.join(" ")+">"};Buffer.prototype.toArrayBuffer=function(){if(typeof Uint8Array==="function"){if(Buffer._useTypedArrays){return new Buffer(this).buffer}else{var buf=new Uint8Array(this.length);for(var i=0,len=buf.length;i<len;i+=1)buf[i]=this[i];return buf.buffer}}else{throw new Error("Buffer.toArrayBuffer not supported in this browser")}};function stringtrim(str){if(str.trim)return str.trim();return str.replace(/^\s+|\s+$/g,"")}var BP=Buffer.prototype;function augment(arr){arr._isBuffer=true;arr._get=arr.get;arr._set=arr.set;arr.get=BP.get;arr.set=BP.set;arr.write=BP.write;arr.toString=BP.toString;arr.toLocaleString=BP.toString;arr.toJSON=BP.toJSON;arr.copy=BP.copy;arr.slice=BP.slice;arr.readUInt8=BP.readUInt8;arr.readUInt16LE=BP.readUInt16LE;arr.readUInt16BE=BP.readUInt16BE;arr.readUInt32LE=BP.readUInt32LE;arr.readUInt32BE=BP.readUInt32BE;arr.readInt8=BP.readInt8;arr.readInt16LE=BP.readInt16LE;arr.readInt16BE=BP.readInt16BE;arr.readInt32LE=BP.readInt32LE;arr.readInt32BE=BP.readInt32BE;arr.readFloatLE=BP.readFloatLE;arr.readFloatBE=BP.readFloatBE;arr.readDoubleLE=BP.readDoubleLE;arr.readDoubleBE=BP.readDoubleBE;arr.writeUInt8=BP.writeUInt8;arr.writeUInt16LE=BP.writeUInt16LE;arr.writeUInt16BE=BP.writeUInt16BE;arr.writeUInt32LE=BP.writeUInt32LE;arr.writeUInt32BE=BP.writeUInt32BE;arr.writeInt8=BP.writeInt8;arr.writeInt16LE=BP.writeInt16LE;arr.writeInt16BE=BP.writeInt16BE;arr.writeInt32LE=BP.writeInt32LE;arr.writeInt32BE=BP.writeInt32BE;arr.writeFloatLE=BP.writeFloatLE;arr.writeFloatBE=BP.writeFloatBE;arr.writeDoubleLE=BP.writeDoubleLE;arr.writeDoubleBE=BP.writeDoubleBE;arr.fill=BP.fill;arr.inspect=BP.inspect;arr.toArrayBuffer=BP.toArrayBuffer;return arr}function clamp(index,len,defaultValue){if(typeof index!=="number")return defaultValue;index=~~index;if(index>=len)return len;if(index>=0)return index;index+=len;if(index>=0)return index;return 0}function coerce(length){length=~~Math.ceil(+length);return length<0?0:length}function isArray(subject){return(Array.isArray||function(subject){return Object.prototype.toString.call(subject)==="[object Array]"})(subject)}function isArrayish(subject){return isArray(subject)||Buffer.isBuffer(subject)||subject&&typeof subject==="object"&&typeof subject.length==="number"}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++){var b=str.charCodeAt(i);if(b<=127)byteArray.push(str.charCodeAt(i));else{var start=i;if(b>=55296&&b<=57343)i++;var h=encodeURIComponent(str.slice(start,i+1)).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 base64.toByteArray(str)}function blitBuffer(src,dst,offset,length){var pos;for(var i=0;i<length;i++){if(i+offset>=dst.length||i>=src.length)break;dst[i+offset]=src[i]}return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}function verifuint(value,max){assert(typeof value=="number","cannot write a non-number as a number");assert(value>=0,"specified a negative value for writing an unsigned value");assert(value<=max,"value is larger than maximum value for type");assert(Math.floor(value)===value,"value has a fractional component")}function verifsint(value,max,min){assert(typeof value=="number","cannot write a non-number as a number");assert(value<=max,"value larger than maximum allowed value");assert(value>=min,"value smaller than minimum allowed value");assert(Math.floor(value)===value,"value has a fractional component")}function verifIEEE754(value,max,min){assert(typeof value=="number","cannot write a non-number as a number");assert(value<=max,"value larger than maximum allowed value");assert(value>=min,"value smaller than minimum allowed value")}function assert(test,message){if(!test)throw new Error(message||"Failed assertion")}},{"base64-js":9,ieee754:10}],9:[function(require,module,exports){var lookup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";(function(exports){"use strict";var Arr=typeof Uint8Array!=="undefined"?Uint8Array:Array;var ZERO="0".charCodeAt(0);var PLUS="+".charCodeAt(0);var SLASH="/".charCodeAt(0);var NUMBER="0".charCodeAt(0);var LOWER="a".charCodeAt(0);var UPPER="A".charCodeAt(0);function decode(elt){var code=elt.charCodeAt(0);if(code===PLUS)return 62;if(code===SLASH)return 63;if(code<NUMBER)return-1;if(code<NUMBER+10)return code-NUMBER+26+26;if(code<UPPER+26)return code-UPPER;if(code<LOWER+26)return code-LOWER+26}function b64ToByteArray(b64){var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0){throw new Error("Invalid string. Length must be a multiple of 4")}var len=b64.length;placeHolders="="===b64.charAt(len-2)?2:"="===b64.charAt(len-1)?1:0;arr=new Arr(b64.length*3/4-placeHolders);l=placeHolders>0?b64.length-4:b64.length;var L=0;function push(v){arr[L++]=v}for(i=0,j=0;i<l;i+=4,j+=3){tmp=decode(b64.charAt(i))<<18|decode(b64.charAt(i+1))<<12|decode(b64.charAt(i+2))<<6|decode(b64.charAt(i+3));push((tmp&16711680)>>16);push((tmp&65280)>>8);push(tmp&255)}if(placeHolders===2){tmp=decode(b64.charAt(i))<<2|decode(b64.charAt(i+1))>>4;push(tmp&255)}else if(placeHolders===1){tmp=decode(b64.charAt(i))<<10|decode(b64.charAt(i+1))<<4|decode(b64.charAt(i+2))>>2;push(tmp>>8&255);push(tmp&255)}return arr}function uint8ToBase64(uint8){var i,extraBytes=uint8.length%3,output="",temp,length;function encode(num){return lookup.charAt(num)}function tripletToBase64(num){return encode(num>>18&63)+encode(num>>12&63)+encode(num>>6&63)+encode(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+=encode(temp>>2);output+=encode(temp<<4&63);output+="==";break;case 2:temp=(uint8[uint8.length-2]<<8)+uint8[uint8.length-1];output+=encode(temp>>10);output+=encode(temp>>4&63);output+=encode(temp<<2&63);output+="=";break}return output}module.exports.toByteArray=b64ToByteArray;module.exports.fromByteArray=uint8ToBase64})()},{}],10:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=nBytes*8-mLen-1,eMax=(1<<eLen)-1,eBias=eMax>>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-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.write=function(buffer,value,offset,isLE,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=isLE?0:nBytes-1,d=isLE?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}},{}],11:[function(require,module,exports){module.exports=Duplex;var inherits=require("inherits");var setImmediate=require("process/browser.js").nextTick;var Readable=require("./readable.js");var Writable=require("./writable.js");inherits(Duplex,Readable);Duplex.prototype.write=Writable.prototype.write;Duplex.prototype.end=Writable.prototype.end;Duplex.prototype._write=Writable.prototype._write;function Duplex(options){if(!(this instanceof Duplex))return new Duplex(options);Readable.call(this,options);Writable.call(this,options);if(options&&options.readable===false)this.readable=false;if(options&&options.writable===false)this.writable=false;this.allowHalfOpen=true;if(options&&options.allowHalfOpen===false)this.allowHalfOpen=false;this.once("end",onend)}function onend(){if(this.allowHalfOpen||this._writableState.ended)return;var self=this;setImmediate(function(){self.end()})}},{"./readable.js":15,"./writable.js":17,inherits:6,"process/browser.js":13}],12:[function(require,module,exports){module.exports=Stream;var EE=require("events").EventEmitter;var inherits=require("inherits");inherits(Stream,EE);Stream.Readable=require("./readable.js");Stream.Writable=require("./writable.js");Stream.Duplex=require("./duplex.js");Stream.Transform=require("./transform.js");Stream.PassThrough=require("./passthrough.js");Stream.Stream=Stream;function Stream(){EE.call(this)}Stream.prototype.pipe=function(dest,options){var source=this;function ondata(chunk){if(dest.writable){if(false===dest.write(chunk)&&source.pause){source.pause()}}}source.on("data",ondata);function ondrain(){if(source.readable&&source.resume){source.resume()}}dest.on("drain",ondrain);if(!dest._isStdio&&(!options||options.end!==false)){source.on("end",onend);source.on("close",onclose)}var didOnEnd=false;function onend(){if(didOnEnd)return;didOnEnd=true;dest.end()}function onclose(){if(didOnEnd)return;didOnEnd=true;if(typeof dest.destroy==="function")dest.destroy()}function onerror(er){cleanup();if(EE.listenerCount(this,"error")===0){throw er}}source.on("error",onerror);dest.on("error",onerror);function cleanup(){source.removeListener("data",ondata);dest.removeListener("drain",ondrain);source.removeListener("end",onend);source.removeListener("close",onclose);source.removeListener("error",onerror);dest.removeListener("error",onerror);source.removeListener("end",cleanup);source.removeListener("close",cleanup);dest.removeListener("close",cleanup)}source.on("end",cleanup);source.on("close",cleanup);dest.on("close",cleanup);dest.emit("pipe",source);return dest}},{"./duplex.js":11,"./passthrough.js":14,"./readable.js":15,"./transform.js":16,"./writable.js":17,events:5,inherits:6}],13:[function(require,module,exports){module.exports=require(7)},{}],14:[function(require,module,exports){module.exports=PassThrough;var Transform=require("./transform.js");var inherits=require("inherits");inherits(PassThrough,Transform);function PassThrough(options){if(!(this instanceof PassThrough))return new PassThrough(options);Transform.call(this,options)}PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}},{"./transform.js":16,inherits:6}],15:[function(require,module,exports){(function(process){module.exports=Readable;Readable.ReadableState=ReadableState;var EE=require("events").EventEmitter;var Stream=require("./index.js");var Buffer=require("buffer").Buffer;var setImmediate=require("process/browser.js").nextTick;var StringDecoder;var inherits=require("inherits");inherits(Readable,Stream);function ReadableState(options,stream){options=options||{};var hwm=options.highWaterMark;this.highWaterMark=hwm||hwm===0?hwm:16*1024;this.highWaterMark=~~this.highWaterMark;this.buffer=[];this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=false;this.ended=false;this.endEmitted=false;this.reading=false;this.calledRead=false;this.sync=true;this.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.objectMode=!!options.objectMode;this.defaultEncoding=options.defaultEncoding||"utf8";this.ranOut=false;this.awaitDrain=0;this.readingMore=false;this.decoder=null;this.encoding=null;if(options.encoding){if(!StringDecoder)StringDecoder=require("string_decoder").StringDecoder;this.decoder=new StringDecoder(options.encoding);this.encoding=options.encoding}}function Readable(options){if(!(this instanceof Readable))return new Readable(options);this._readableState=new ReadableState(options,this);this.readable=true;Stream.call(this)}Readable.prototype.push=function(chunk,encoding){var state=this._readableState;if(typeof chunk==="string"&&!state.objectMode){encoding=encoding||state.defaultEncoding;if(encoding!==state.encoding){chunk=new Buffer(chunk,encoding);encoding=""}}return readableAddChunk(this,state,chunk,encoding,false)};Readable.prototype.unshift=function(chunk){var state=this._readableState;return readableAddChunk(this,state,chunk,"",true)};function readableAddChunk(stream,state,chunk,encoding,addToFront){var er=chunkInvalid(state,chunk);if(er){stream.emit("error",er)}else if(chunk===null||chunk===undefined){state.reading=false;if(!state.ended)onEofChunk(stream,state)}else if(state.objectMode||chunk&&chunk.length>0){if(state.ended&&!addToFront){var e=new Error("stream.push() after EOF");stream.emit("error",e)}else if(state.endEmitted&&addToFront){var e=new Error("stream.unshift() after end event");stream.emit("error",e)}else{if(state.decoder&&!addToFront&&!encoding)chunk=state.decoder.write(chunk);state.length+=state.objectMode?1:chunk.length;if(addToFront){state.buffer.unshift(chunk)}else{state.reading=false;state.buffer.push(chunk)}if(state.needReadable)emitReadable(stream);maybeReadMore(stream,state)}}else if(!addToFront){state.reading=false}return needMoreData(state)}function needMoreData(state){return!state.ended&&(state.needReadable||state.length<state.highWaterMark||state.length===0)}Readable.prototype.setEncoding=function(enc){if(!StringDecoder)StringDecoder=require("string_decoder").StringDecoder;this._readableState.decoder=new StringDecoder(enc);this._readableState.encoding=enc};var MAX_HWM=8388608;function roundUpToNextPowerOf2(n){if(n>=MAX_HWM){n=MAX_HWM}else{n--;for(var p=1;p<32;p<<=1)n|=n>>p;n++}return n}function howMuchToRead(n,state){if(state.length===0&&state.ended)return 0;if(state.objectMode)return n===0?0:1;if(isNaN(n)||n===null){if(state.flowing&&state.buffer.length)return state.buffer[0].length;else return state.length}if(n<=0)return 0;if(n>state.highWaterMark)state.highWaterMark=roundUpToNextPowerOf2(n);if(n>state.length){if(!state.ended){state.needReadable=true;return 0}else return state.length}return n}Readable.prototype.read=function(n){var state=this._readableState;state.calledRead=true;var nOrig=n;if(typeof n!=="number"||n>0)state.emittedReadable=false;if(n===0&&state.needReadable&&(state.length>=state.highWaterMark||state.ended)){emitReadable(this);return null}n=howMuchToRead(n,state);if(n===0&&state.ended){if(state.length===0)endReadable(this);return null}var doRead=state.needReadable;if(state.length-n<=state.highWaterMark)doRead=true;if(state.ended||state.reading)doRead=false;if(doRead){state.reading=true;state.sync=true;if(state.length===0)state.needReadable=true;this._read(state.highWaterMark);state.sync=false}if(doRead&&!state.reading)n=howMuchToRead(nOrig,state);var ret;if(n>0)ret=fromList(n,state);else ret=null;if(ret===null){state.needReadable=true;n=0}state.length-=n;if(state.length===0&&!state.ended)state.needReadable=true;if(state.ended&&!state.endEmitted&&state.length===0)endReadable(this);return ret};function chunkInvalid(state,chunk){var er=null;if(!Buffer.isBuffer(chunk)&&"string"!==typeof chunk&&chunk!==null&&chunk!==undefined&&!state.objectMode&&!er){er=new TypeError("Invalid non-string/buffer chunk")}return er}function onEofChunk(stream,state){if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length}}state.ended=true;if(state.length>0)emitReadable(stream);else endReadable(stream)}function emitReadable(stream){var state=stream._readableState;state.needReadable=false;if(state.emittedReadable)return;state.emittedReadable=true;if(state.sync)setImmediate(function(){emitReadable_(stream)});else emitReadable_(stream)}function emitReadable_(stream){stream.emit("readable")}function maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;setImmediate(function(){maybeReadMore_(stream,state)})}}function maybeReadMore_(stream,state){var len=state.length;while(!state.reading&&!state.flowing&&!state.ended&&state.length<state.highWaterMark){stream.read(0);if(len===state.length)break;else len=state.length}state.readingMore=false}Readable.prototype._read=function(n){this.emit("error",new Error("not implemented"))};Readable.prototype.pipe=function(dest,pipeOpts){var src=this;var state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest);break}state.pipesCount+=1;var doEnd=(!pipeOpts||pipeOpts.end!==false)&&dest!==process.stdout&&dest!==process.stderr;var endFn=doEnd?onend:cleanup;if(state.endEmitted)setImmediate(endFn);else src.once("end",endFn);dest.on("unpipe",onunpipe);function onunpipe(readable){if(readable!==src)return;cleanup()}function onend(){dest.end()}var ondrain=pipeOnDrain(src);dest.on("drain",ondrain);function cleanup(){dest.removeListener("close",onclose);dest.removeListener("finish",onfinish);dest.removeListener("drain",ondrain);dest.removeListener("error",onerror);dest.removeListener("unpipe",onunpipe);src.removeListener("end",onend);src.removeListener("end",cleanup);if(!dest._writableState||dest._writableState.needDrain)ondrain()}var errListeners=EE.listenerCount(dest,"error");function onerror(er){unpipe();if(errListeners===0&&EE.listenerCount(dest,"error")===0)dest.emit("error",er)}dest.once("error",onerror);function onclose(){dest.removeListener("finish",onfinish);unpipe()}dest.once("close",onclose);function onfinish(){dest.removeListener("close",onclose);unpipe()}dest.once("finish",onfinish);function unpipe(){src.unpipe(dest)}dest.emit("pipe",src);if(!state.flowing){this.on("readable",pipeOnReadable);state.flowing=true;setImmediate(function(){flow(src)})}return dest};function pipeOnDrain(src){return function(){var dest=this;var state=src._readableState;state.awaitDrain--;if(state.awaitDrain===0)flow(src)}}function flow(src){var state=src._readableState;var chunk;state.awaitDrain=0;function write(dest,i,list){var written=dest.write(chunk);if(false===written){state.awaitDrain++}}while(state.pipesCount&&null!==(chunk=src.read())){if(state.pipesCount===1)write(state.pipes,0,null);else forEach(state.pipes,write);src.emit("data",chunk);if(state.awaitDrain>0)return}if(state.pipesCount===0){state.flowing=false;if(EE.listenerCount(src,"data")>0)emitDataEvents(src);return}state.ranOut=true}function pipeOnReadable(){if(this._readableState.ranOut){this._readableState.ranOut=false;flow(this)}}Readable.prototype.unpipe=function(dest){var state=this._readableState;if(state.pipesCount===0)return this;if(state.pipesCount===1){if(dest&&dest!==state.pipes)return this;if(!dest)dest=state.pipes;state.pipes=null;state.pipesCount=0;this.removeListener("readable",pipeOnReadable);state.flowing=false;if(dest)dest.emit("unpipe",this);return this}if(!dest){var dests=state.pipes;var len=state.pipesCount;state.pipes=null;state.pipesCount=0;this.removeListener("readable",pipeOnReadable);state.flowing=false;for(var i=0;i<len;i++)dests[i].emit("unpipe",this);return this}var i=indexOf(state.pipes,dest);if(i===-1)return this;state.pipes.splice(i,1);state.pipesCount-=1;if(state.pipesCount===1)state.pipes=state.pipes[0];dest.emit("unpipe",this);return this};Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);if(ev==="data"&&!this._readableState.flowing)emitDataEvents(this);if(ev==="readable"&&this.readable){var state=this._readableState;if(!state.readableListening){state.readableListening=true;state.emittedReadable=false;state.needReadable=true;if(!state.reading){this.read(0)}else if(state.length){emitReadable(this,state)}}}return res};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.resume=function(){emitDataEvents(this);this.read(0);this.emit("resume")};Readable.prototype.pause=function(){emitDataEvents(this,true);this.emit("pause")};function emitDataEvents(stream,startPaused){var state=stream._readableState;if(state.flowing){throw new Error("Cannot switch to old mode now.")}var paused=startPaused||false;var readable=false;stream.readable=true;stream.pipe=Stream.prototype.pipe;stream.on=stream.addListener=Stream.prototype.on;stream.on("readable",function(){readable=true;var c;while(!paused&&null!==(c=stream.read()))stream.emit("data",c);if(c===null){readable=false;stream._readableState.needReadable=true}});stream.pause=function(){paused=true;this.emit("pause")};stream.resume=function(){paused=false;if(readable)setImmediate(function(){stream.emit("readable")});else this.read(0);this.emit("resume")};stream.emit("readable")}Readable.prototype.wrap=function(stream){var state=this._readableState;var paused=false;var self=this;stream.on("end",function(){if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length)self.push(chunk)}self.push(null)});stream.on("data",function(chunk){if(state.decoder)chunk=state.decoder.write(chunk);if(!chunk||!state.objectMode&&!chunk.length)return;var ret=self.push(chunk);if(!ret){paused=true;stream.pause()}});for(var i in stream){if(typeof stream[i]==="function"&&typeof this[i]==="undefined"){this[i]=function(method){return function(){return stream[method].apply(stream,arguments)}}(i)}}var events=["error","close","destroy","pause","resume"];forEach(events,function(ev){stream.on(ev,function(x){return self.emit.apply(self,ev,x)})});self._read=function(n){if(paused){paused=false;stream.resume()}};return self};Readable._fromList=fromList;function fromList(n,state){var list=state.buffer;var length=state.length;var stringMode=!!state.decoder;var objectMode=!!state.objectMode;var ret;if(list.length===0)return null;if(length===0)ret=null;else if(objectMode)ret=list.shift();else if(!n||n>=length){if(stringMode)ret=list.join("");else ret=Buffer.concat(list,length);list.length=0}else{if(n<list[0].length){var buf=list[0];ret=buf.slice(0,n);list[0]=buf.slice(n)}else if(n===list[0].length){ret=list.shift()}else{if(stringMode)ret="";else ret=new Buffer(n);var c=0;for(var i=0,l=list.length;i<l&&c<n;i++){var buf=list[0];var cpy=Math.min(n-c,buf.length);if(stringMode)ret+=buf.slice(0,cpy);else buf.copy(ret,c,0,cpy);if(cpy<buf.length)list[0]=buf.slice(cpy);else list.shift();c+=cpy}}}return ret}function endReadable(stream){var state=stream._readableState;if(state.length>0)throw new Error("endReadable called on non-empty stream");if(!state.endEmitted&&state.calledRead){state.ended=true;setImmediate(function(){if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit("end")}})}}function forEach(xs,f){for(var i=0,l=xs.length;i<l;i++){f(xs[i],i)}}function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++){if(xs[i]===x)return i}return-1}}).call(this,require("/home/admin/browserify-cdn/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"))},{"./index.js":12,"/home/admin/browserify-cdn/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":7,buffer:8,events:5,inherits:6,"process/browser.js":13,string_decoder:18}],16:[function(require,module,exports){module.exports=Transform;var Duplex=require("./duplex.js");var inherits=require("inherits");inherits(Transform,Duplex);function TransformState(options,stream){this.afterTransform=function(er,data){return afterTransform(stream,er,data)};this.needTransform=false;this.transforming=false;this.writecb=null;this.writechunk=null}function afterTransform(stream,er,data){var ts=stream._transformState;ts.transforming=false;var cb=ts.writecb;if(!cb)return stream.emit("error",new Error("no writecb in Transform class"));ts.writechunk=null;ts.writecb=null;if(data!==null&&data!==undefined)stream.push(data);if(cb)cb(er);var rs=stream._readableState;rs.reading=false;if(rs.needReadable||rs.length<rs.highWaterMark){stream._read(rs.highWaterMark)}}function Transform(options){if(!(this instanceof Transform))return new Transform(options);Duplex.call(this,options);var ts=this._transformState=new TransformState(options,this);var stream=this;this._readableState.needReadable=true;this._readableState.sync=false;this.once("finish",function(){if("function"===typeof this._flush)this._flush(function(er){done(stream,er)});else done(stream)})}Transform.prototype.push=function(chunk,encoding){this._transformState.needTransform=false;return Duplex.prototype.push.call(this,chunk,encoding)};Transform.prototype._transform=function(chunk,encoding,cb){throw new Error("not implemented")};Transform.prototype._write=function(chunk,encoding,cb){var ts=this._transformState;ts.writecb=cb;ts.writechunk=chunk;ts.writeencoding=encoding;if(!ts.transforming){var rs=this._readableState;if(ts.needTransform||rs.needReadable||rs.length<rs.highWaterMark)this._read(rs.highWaterMark)}};Transform.prototype._read=function(n){var ts=this._transformState;if(ts.writechunk&&ts.writecb&&!ts.transforming){ts.transforming=true;this._transform(ts.writechunk,ts.writeencoding,ts.afterTransform)}else{ts.needTransform=true}};function done(stream,er){if(er)return stream.emit("error",er);var ws=stream._writableState;var rs=stream._readableState;var ts=stream._transformState;if(ws.length)throw new Error("calling transform done when ws.length != 0");if(ts.transforming)throw new Error("calling transform done when still transforming");return stream.push(null)}},{"./duplex.js":11,inherits:6}],17:[function(require,module,exports){module.exports=Writable;
Writable.WritableState=WritableState;var isUint8Array=typeof Uint8Array!=="undefined"?function(x){return x instanceof Uint8Array}:function(x){return x&&x.constructor&&x.constructor.name==="Uint8Array"};var isArrayBuffer=typeof ArrayBuffer!=="undefined"?function(x){return x instanceof ArrayBuffer}:function(x){return x&&x.constructor&&x.constructor.name==="ArrayBuffer"};var inherits=require("inherits");var Stream=require("./index.js");var setImmediate=require("process/browser.js").nextTick;var Buffer=require("buffer").Buffer;inherits(Writable,Stream);function WriteReq(chunk,encoding,cb){this.chunk=chunk;this.encoding=encoding;this.callback=cb}function WritableState(options,stream){options=options||{};var hwm=options.highWaterMark;this.highWaterMark=hwm||hwm===0?hwm:16*1024;this.objectMode=!!options.objectMode;this.highWaterMark=~~this.highWaterMark;this.needDrain=false;this.ending=false;this.ended=false;this.finished=false;var noDecode=options.decodeStrings===false;this.decodeStrings=!noDecode;this.defaultEncoding=options.defaultEncoding||"utf8";this.length=0;this.writing=false;this.sync=true;this.bufferProcessing=false;this.onwrite=function(er){onwrite(stream,er)};this.writecb=null;this.writelen=0;this.buffer=[]}function Writable(options){if(!(this instanceof Writable)&&!(this instanceof Stream.Duplex))return new Writable(options);this._writableState=new WritableState(options,this);this.writable=true;Stream.call(this)}Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe. Not readable."))};function writeAfterEnd(stream,state,cb){var er=new Error("write after end");stream.emit("error",er);setImmediate(function(){cb(er)})}function validChunk(stream,state,chunk,cb){var valid=true;if(!Buffer.isBuffer(chunk)&&"string"!==typeof chunk&&chunk!==null&&chunk!==undefined&&!state.objectMode){var er=new TypeError("Invalid non-string/buffer chunk");stream.emit("error",er);setImmediate(function(){cb(er)});valid=false}return valid}Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState;var ret=false;if(typeof encoding==="function"){cb=encoding;encoding=null}if(!Buffer.isBuffer(chunk)&&isUint8Array(chunk))chunk=new Buffer(chunk);if(isArrayBuffer(chunk)&&typeof Uint8Array!=="undefined")chunk=new Buffer(new Uint8Array(chunk));if(Buffer.isBuffer(chunk))encoding="buffer";else if(!encoding)encoding=state.defaultEncoding;if(typeof cb!=="function")cb=function(){};if(state.ended)writeAfterEnd(this,state,cb);else if(validChunk(this,state,chunk,cb))ret=writeOrBuffer(this,state,chunk,encoding,cb);return ret};function decodeChunk(state,chunk,encoding){if(!state.objectMode&&state.decodeStrings!==false&&typeof chunk==="string"){chunk=new Buffer(chunk,encoding)}return chunk}function writeOrBuffer(stream,state,chunk,encoding,cb){chunk=decodeChunk(state,chunk,encoding);var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;state.needDrain=!ret;if(state.writing)state.buffer.push(new WriteReq(chunk,encoding,cb));else doWrite(stream,state,len,chunk,encoding,cb);return ret}function doWrite(stream,state,len,chunk,encoding,cb){state.writelen=len;state.writecb=cb;state.writing=true;state.sync=true;stream._write(chunk,encoding,state.onwrite);state.sync=false}function onwriteError(stream,state,sync,er,cb){if(sync)setImmediate(function(){cb(er)});else cb(er);stream.emit("error",er)}function onwriteStateUpdate(state){state.writing=false;state.writecb=null;state.length-=state.writelen;state.writelen=0}function onwrite(stream,er){var state=stream._writableState;var sync=state.sync;var cb=state.writecb;onwriteStateUpdate(state);if(er)onwriteError(stream,state,sync,er,cb);else{var finished=needFinish(stream,state);if(!finished&&!state.bufferProcessing&&state.buffer.length)clearBuffer(stream,state);if(sync){setImmediate(function(){afterWrite(stream,state,finished,cb)})}else{afterWrite(stream,state,finished,cb)}}}function afterWrite(stream,state,finished,cb){if(!finished)onwriteDrain(stream,state);cb();if(finished)finishMaybe(stream,state)}function onwriteDrain(stream,state){if(state.length===0&&state.needDrain){state.needDrain=false;stream.emit("drain")}}function clearBuffer(stream,state){state.bufferProcessing=true;for(var c=0;c<state.buffer.length;c++){var entry=state.buffer[c];var chunk=entry.chunk;var encoding=entry.encoding;var cb=entry.callback;var len=state.objectMode?1:chunk.length;doWrite(stream,state,len,chunk,encoding,cb);if(state.writing){c++;break}}state.bufferProcessing=false;if(c<state.buffer.length)state.buffer=state.buffer.slice(c);else state.buffer.length=0}Writable.prototype._write=function(chunk,encoding,cb){cb(new Error("not implemented"))};Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;if(typeof chunk==="function"){cb=chunk;chunk=null;encoding=null}else if(typeof encoding==="function"){cb=encoding;encoding=null}if(typeof chunk!=="undefined"&&chunk!==null)this.write(chunk,encoding);if(!state.ending&&!state.finished)endWritable(this,state,cb)};function needFinish(stream,state){return state.ending&&state.length===0&&!state.finished&&!state.writing}function finishMaybe(stream,state){var need=needFinish(stream,state);if(need){state.finished=true;stream.emit("finish")}return need}function endWritable(stream,state,cb){state.ending=true;finishMaybe(stream,state);if(cb){if(state.finished)setImmediate(cb);else stream.once("finish",cb)}state.ended=true}},{"./index.js":12,buffer:8,inherits:6,"process/browser.js":13}],18:[function(require,module,exports){var Buffer=require("buffer").Buffer;function assertEncoding(encoding){if(encoding&&!Buffer.isEncoding(encoding)){throw new Error("Unknown encoding: "+encoding)}}var StringDecoder=exports.StringDecoder=function(encoding){this.encoding=(encoding||"utf8").toLowerCase().replace(/[-_]/,"");assertEncoding(encoding);switch(this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2;this.detectIncompleteChar=utf16DetectIncompleteChar;break;case"base64":this.surrogateSize=3;this.detectIncompleteChar=base64DetectIncompleteChar;break;default:this.write=passThroughWrite;return}this.charBuffer=new Buffer(6);this.charReceived=0;this.charLength=0};StringDecoder.prototype.write=function(buffer){var charStr="";var offset=0;while(this.charLength){var i=buffer.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:buffer.length;buffer.copy(this.charBuffer,this.charReceived,offset,i);this.charReceived+=i-offset;offset=i;if(this.charReceived<this.charLength){return""}charStr=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var charCode=charStr.charCodeAt(charStr.length-1);if(charCode>=55296&&charCode<=56319){this.charLength+=this.surrogateSize;charStr="";continue}this.charReceived=this.charLength=0;if(i==buffer.length)return charStr;buffer=buffer.slice(i,buffer.length);break}var lenIncomplete=this.detectIncompleteChar(buffer);var end=buffer.length;if(this.charLength){buffer.copy(this.charBuffer,0,buffer.length-lenIncomplete,end);this.charReceived=lenIncomplete;end-=lenIncomplete}charStr+=buffer.toString(this.encoding,0,end);var end=charStr.length-1;var charCode=charStr.charCodeAt(end);if(charCode>=55296&&charCode<=56319){var size=this.surrogateSize;this.charLength+=size;this.charReceived+=size;this.charBuffer.copy(this.charBuffer,size,0,size);this.charBuffer.write(charStr.charAt(charStr.length-1),this.encoding);return charStr.substring(0,end)}return charStr};StringDecoder.prototype.detectIncompleteChar=function(buffer){var i=buffer.length>=3?3:buffer.length;for(;i>0;i--){var c=buffer[buffer.length-i];if(i==1&&c>>5==6){this.charLength=2;break}if(i<=2&&c>>4==14){this.charLength=3;break}if(i<=3&&c>>3==30){this.charLength=4;break}}return i};StringDecoder.prototype.end=function(buffer){var res="";if(buffer&&buffer.length)res=this.write(buffer);if(this.charReceived){var cr=this.charReceived;var buf=this.charBuffer;var enc=this.encoding;res+=buf.slice(0,cr).toString(enc)}return res};function passThroughWrite(buffer){return buffer.toString(this.encoding)}function utf16DetectIncompleteChar(buffer){var incomplete=this.charReceived=buffer.length%2;this.charLength=incomplete?2:0;return incomplete}function base64DetectIncompleteChar(buffer){var incomplete=this.charReceived=buffer.length%3;this.charLength=incomplete?3:0;return incomplete}},{buffer:8}],19:[function(require,module,exports){module.exports=require(3)},{}],20:[function(require,module,exports){module.exports=require(4)},{"./support/isBuffer":19,"/home/admin/browserify-cdn/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":7,inherits:6}],21:[function(require,module,exports){(function(Buffer){var fs=require("fs");var util=require("util");var events=require("events");var strtok=require("strtok2");var common=require("./common");var bufferEqual=require("buffer-equal");module.exports=function(stream,callback,done){var currentState=startState;strtok.parse(stream,function(v,cb){currentState=currentState.parse(callback,v,done);return currentState.getExpectedType()})};var startState={parse:function(callback){return idState}};var finishedState={parse:function(callback){return this},getExpectedType:function(){return strtok.DONE}};var idState={parse:function(callback,data,done){if(!bufferEqual(common.asfGuidBuf,data)){done(new Error("expected asf header but was not found"));return finishedState}return headerDataState},getExpectedType:function(){return new strtok.BufferType(common.asfGuidBuf.length)}};function ReadObjectState(size,objectCount){this.size=size;this.objectCount=objectCount}ReadObjectState.prototype.parse=function(callback,data,done){var guid=data.slice(0,16);var size=common.readUInt64LE(data,16);var State=stateByGuid(guid)||IgnoreObjectState;this.objectCount-=1;this.size-=size;var nextState=this.objectCount<=0?finishedState:this;return new State(nextState,size-24)};ReadObjectState.prototype.getExpectedType=function(){return new strtok.BufferType(24)};var headerDataState={parse:function(callback,data,done){var size=common.readUInt64LE(data,0);var objectCount=data.readUInt32LE(8);return new ReadObjectState(size,objectCount)},getExpectedType:function(){return new strtok.BufferType(14)}};function IgnoreObjectState(nextState,size){this.nextState=nextState;this.size=size}IgnoreObjectState.prototype.parse=function(callback,data,done){if(this.nextState===finishedState)done();return this.nextState};IgnoreObjectState.prototype.getExpectedType=function(){return new strtok.IgnoreType(this.size)};function ContentDescriptionObjectState(nextState,size){this.nextState=nextState;this.size=size}var contentDescTags=["Title","Author","Copyright","Description","Rating"];ContentDescriptionObjectState.prototype.parse=function(callback,data,done){var lengths=[data.readUInt16LE(0),data.readUInt16LE(2),data.readUInt16LE(4),data.readUInt16LE(6),data.readUInt16LE(8)];var pos=10;for(var i=0;i<contentDescTags.length;i+=1){var tagName=contentDescTags[i];var length=lengths[i];var end=pos+length;if(length>0){var value=parseUnicodeAttr(data.slice(pos,end));callback(tagName,value)}pos=end}if(this.nextState===finishedState)done();return this.nextState};ContentDescriptionObjectState.prototype.getExpectedType=function(){return new strtok.BufferType(this.size)};ContentDescriptionObjectState.guid=new Buffer([51,38,178,117,142,102,207,17,166,217,0,170,0,98,206,108]);function ExtendedContentDescriptionObjectState(nextState,size){this.nextState=nextState;this.size=size}var attributeParsers=[parseUnicodeAttr,parseByteArrayAttr,parseBoolAttr,parseDWordAttr,parseQWordAttr,parseWordAttr,parseByteArrayAttr];ExtendedContentDescriptionObjectState.prototype.parse=function(callback,data,done){var attrCount=data.readUInt16LE(0);var pos=2;for(var i=0;i<attrCount;i+=1){var nameLen=data.readUInt16LE(pos);pos+=2;var name=parseUnicodeAttr(data.slice(pos,pos+nameLen));pos+=nameLen;var valueType=data.readUInt16LE(pos);pos+=2;var valueLen=data.readUInt16LE(pos);pos+=2;var value=data.slice(pos,pos+valueLen);pos+=valueLen;var parseAttr=attributeParsers[valueType];if(!parseAttr){done(new Error("unexpected value type: "+valueType));return finishedState}var attr=parseAttr(value);callback(name,attr)}if(this.nextState===finishedState)done();return this.nextState};ExtendedContentDescriptionObjectState.prototype.getExpectedType=function(){return new strtok.BufferType(this.size)};ExtendedContentDescriptionObjectState.guid=new Buffer([64,164,208,210,7,227,210,17,151,240,0,160,201,94,168,80]);var guidStates=[ContentDescriptionObjectState,ExtendedContentDescriptionObjectState];function stateByGuid(guidBuf){for(var i=0;i<guidStates.length;i+=1){var GuidState=guidStates[i];if(bufferEqual(GuidState.guid,guidBuf))return GuidState}return null}function parseUnicodeAttr(buf){return common.stripNulls(common.readUTF16String(buf))}function parseByteArrayAttr(buf){var newBuf=new Buffer(buf.length);buf.copy(newBuf);return newBuf}function parseBoolAttr(buf){return parseDWordAttr(buf)===1}function parseDWordAttr(buf){return buf.readUInt32LE(0)}function parseQWordAttr(buf){return common.readUInt64LE(buf)}function parseWordAttr(buf){return buf.readUInt16LE(0)}}).call(this,require("buffer").Buffer)},{"./common":22,buffer:8,"buffer-equal":32,events:5,fs:1,strtok2:38,util:20}],22:[function(require,module,exports){(function(Buffer){var strtok=require("strtok2");var bufferEqual=require("buffer-equal");var equal=require("deep-equal");var asfGuidBuf=new Buffer([48,38,178,117,142,102,207,17,166,217,0,170,0,98,206,108]);exports.asfGuidBuf=asfGuidBuf;exports.getParserForMediaType=function(types,header){for(var i=0;i<types.length;i+=1){var type=types[i];var offset=type.offset||0;if(header.length>=offset+type.buf.length&&bufferEqual(header.slice(offset,offset+type.buf.length),type.buf)){return type.tag}}return require("./id3v1")};exports.streamOnRealEnd=function(stream,callback){stream.on("end",done);stream.on("close",done);function done(){stream.removeListener("end",done);stream.removeListener("close",done);callback()}};exports.readVorbisPicture=function(buffer){var picture={};var offset=0;picture.type=PICTURE_TYPE[strtok.UINT32_BE.get(buffer,0)];var mimeLen=strtok.UINT32_BE.get(buffer,offset+=4);picture.format=buffer.toString("utf-8",offset+=4,offset+mimeLen);var descLen=strtok.UINT32_BE.get(buffer,offset+=mimeLen);picture.description=buffer.toString("utf-8",offset+=4,offset+descLen);picture.width=strtok.UINT32_BE.get(buffer,offset+=descLen);picture.height=strtok.UINT32_BE.get(buffer,offset+=4);picture.colour_depth=strtok.UINT32_BE.get(buffer,offset+=4);picture.indexed_color=strtok.UINT32_BE.get(buffer,offset+=4);var picDataLen=strtok.UINT32_BE.get(buffer,offset+=4);picture.data=buffer.slice(offset+=4,offset+picDataLen);return picture};exports.removeUnsyncBytes=function(buffer){var readI=0;var writeI=0;while(readI<buffer.length-1){if(readI!==writeI){buffer[writeI]=buffer[readI]}readI+=buffer[readI]===255&&buffer[readI+1]===0?2:1;writeI++}if(readI<buffer.length){buffer[writeI++]=buffer[readI++]}return buffer.slice(0,writeI)};exports.findZero=function(buffer,start,end,encoding){var i=start;if(encoding==="utf16"){while(buffer[i]!==0||buffer[i+1]!==0){if(i>=end)return end;i++}}else{while(buffer[i]!==0){if(i>=end)return end;i++}}return i};var decodeString=exports.decodeString=function(b,encoding,start,end){var text="";if(encoding=="utf16"){text=readUTF16String(b.slice(start,end))}else{var enc=encoding=="iso-8859-1"?"binary":"utf8";text=b.toString(enc,start,end)}return{text:text,length:end-start}};exports.parseGenre=function(origVal){var split=origVal.trim().split(/\((.*?)\)/g).filter(function(val){return val!==""});var array=[];for(var i=0;i<split.length;i++){var cur=split[i];if(!isNaN(parseInt(cur)))cur=GENRES[cur];array.push(cur)}return array.join("/")};var readUTF16String=exports.readUTF16String=function(bytes){var ix=0,offset1=1,offset2=0,maxBytes=bytes.length;if(bytes[0]===254&&bytes[1]===255){ix=2;offset1=0;offset2=1}else if(bytes[0]===255&&bytes[1]===254){ix=2}var str="";for(var j=0;ix<maxBytes;j++){var byte1=bytes[ix+offset1],byte2=bytes[ix+offset2],word1=(byte1<<8)+byte2;ix+=2;if(word1===0){break}else if(byte1<216||byte1>=224){str+=String.fromCharCode(word1)}else{var byte3=bytes[ix+offset1],byte4=bytes[ix+offset2],word2=(byte3<<8)+byte4;ix+=2;str+=String.fromCharCode(word1,word2)}}return str};exports.readUInt64LE=function(buffer,offset){var val=0;for(var i=0;i<8;i+=1){val+=buffer[offset+i]*Math.pow(2,8*i)}return val};exports.stripNulls=function(str){str=str.replace(/^\x00+/g,"");str=str.replace(/\x00+$/g,"");return str};exports.strtokUINT24_BE={len:3,get:function(buf,off){return((buf[off]<<8)+buf[off+1]<<8)+buf[off+2]}};exports.strtokBITSET={len:1,get:function(buf,off,bit){return(buf[off]&1<<bit)!==0}};exports.strtokINT32SYNCSAFE={len:4,get:function(buf,off){return buf[off+3]&127|buf[off+2]<<7|buf[off+1]<<14|buf[off]<<21}};var PICTURE_TYPE=exports.PICTURE_TYPE=["Other","32x32 pixels 'file icon' (PNG only)","Other file icon","Cover (front)","Cover (back)","Leaflet page","Media (e.g. lable side of CD)","Lead artist/lead performer/soloist","Artist/performer","Conductor","Band/Orchestra","Composer","Lyricist/text writer","Recording Location","During recording","During performance","Movie/video screen capture","A bright coloured fish","Illustration","Band/artist logotype","Publisher/Studio logotype"];var GENRES=exports.GENRES=["Blues","Classic Rock","Country","Dance","Disco","Funk","Grunge","Hip-Hop","Jazz","Metal","New Age","Oldies","Other","Pop","R&B","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death Metal","Pranks","Soundtrack","Euro-Techno","Ambient","Trip-Hop","Vocal","Jazz+Funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound Clip","Gospel","Noise","Alt. Rock","Bass","Soul","Punk","Space","Meditative","Instrumental Pop","Instrumental Rock","Ethnic","Gothic","Darkwave","Techno-Industrial","Electronic","Pop-Folk","Eurodance","Dream","Southern Rock","Comedy","Cult","Gangsta Rap","Top 40","Christian Rap","Pop/Funk","Jungle","Native American","Cabaret","New Wave","Psychedelic","Rave","Showtunes","Trailer","Lo-Fi","Tribal","Acid Punk","Acid Jazz","Polka","Retro","Musical","Rock & Roll","Hard Rock","Folk","Folk/Rock","National Folk","Swing","Fast-Fusion","Bebob","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic Rock","Progressive Rock","Psychedelic Rock","Symphonic Rock","Slow Rock","Big Band","Chorus","Easy Listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber Music","Sonata","Symphony","Booty Bass","Primus","Porn Groove","Satire","Slow Jam","Club","Tango","Samba","Folklore","Ballad","Power Ballad","Rhythmic Soul","Freestyle","Duet","Punk Rock","Drum Solo","A Cappella","Euro-House","Dance Hall","Goa","Drum & Bass","Club-House","Hardcore","Terror","Indie","BritPop","Negerpunk","Polsk Punk","Beat","Christian Gangsta Rap","Heavy Metal","Black Metal","Crossover","Contemporary Christian","Christian Rock","Merengue","Salsa","Thrash Metal","Anime","JPop","Synthpop"];exports.id3BitrateCalculator=function(bits,mpegVersion,layer){if(equal(bits,[0,0,0,0])){return"free"}if(equal(bits,[1,1,1,1])){return"reserved"}if(mpegVersion===1&&layer===1){if(equal(bits,[0,0,0,1]))return 32;if(equal(bits,[0,0,1,0]))return 64;if(equal(bits,[0,0,1,1]))return 96;if(equal(bits,[0,1,0,0]))return 128;if(equal(bits,[0,1,0,1]))return 160;if(equal(bits,[0,1,1,0]))return 192;if(equal(bits,[0,1,1,1]))return 224;if(equal(bits,[1,0,0,0]))return 256;if(equal(bits,[1,0,0,1]))return 288;if(equal(bits,[1,0,1,0]))return 320;if(equal(bits,[1,0,1,1]))return 352;if(equal(bits,[1,1,0,0]))return 384;if(equal(bits,[1,1,0,1]))return 416;if(equal(bits,[1,1,1,0]))return 448}else if(mpegVersion===1&&layer===2){if(equal(bits,[0,0,0,1]))return 32;if(equal(bits,[0,0,1,0]))return 48;if(equal(bits,[0,0,1,1]))return 56;if(equal(bits,[0,1,0,0]))return 64;if(equal(bits,[0,1,0,1]))return 80;if(equal(bits,[0,1,1,0]))return 96;if(equal(bits,[0,1,1,1]))return 112;if(equal(bits,[1,0,0,0]))return 128;if(equal(bits,[1,0,0,1]))return 160;if(equal(bits,[1,0,1,0]))return 192;if(equal(bits,[1,0,1,1]))return 224;if(equal(bits,[1,1,0,0]))return 256;if(equal(bits,[1,1,0,1]))return 320;if(equal(bits,[1,1,1,0]))return 384}else if(mpegVersion===1&&layer===3){if(equal(bits,[0,0,0,1]))return 32;if(equal(bits,[0,0,1,0]))return 40;if(equal(bits,[0,0,1,1]))return 48;if(equal(bits,[0,1,0,0]))return 56;if(equal(bits,[0,1,0,1]))return 64;if(equal(bits,[0,1,1,0]))return 80;if(equal(bits,[0,1,1,1]))return 96;if(equal(bits,[1,0,0,0]))return 112;if(equal(bits,[1,0,0,1]))return 128;if(equal(bits,[1,0,1,0]))return 160;if(equal(bits,[1,0,1,1]))return 192;if(equal(bits,[1,1,0,0]))return 224;if(equal(bits,[1,1,0,1]))return 256;if(equal(bits,[1,1,1,0]))return 320}else if(mpegVersion===2&&layer===1){if(equal(bits,[0,0,0,1]))return 32;if(equal(bits,[0,0,1,0]))return 48;if(equal(bits,[0,0,1,1]))return 56;if(equal(bits,[0,1,0,0]))return 64;if(equal(bits,[0,1,0,1]))return 80;if(equal(bits,[0,1,1,0]))return 96;if(equal(bits,[0,1,1,1]))return 112;if(equal(bits,[1,0,0,0]))return 128;if(equal(bits,[1,0,0,1]))return 144;if(equal(bits,[1,0,1,0]))return 160;if(equal(bits,[1,0,1,1]))return 176;if(equal(bits,[1,1,0,0]))return 192;if(equal(bits,[1,1,0,1]))return 224;if(equal(bits,[1,1,1,0]))return 256}else if(mpegVersion===2&&(layer===2||layer===3)){if(equal(bits,[0,0,0,1]))return 8;if(equal(bits,[0,0,1,0]))return 16;if(equal(bits,[0,0,1,1]))return 24;if(equal(bits,[0,1,0,0]))return 32;if(equal(bits,[0,1,0,1]))return 40;if(equal(bits,[0,1,1,0]))return 48;if(equal(bits,[0,1,1,1]))return 56;if(equal(bits,[1,0,0,0]))return 64;if(equal(bits,[1,0,0,1]))return 80;if(equal(bits,[1,0,1,0]))return 96;if(equal(bits,[1,0,1,1]))return 112;if(equal(bits,[1,1,0,0]))return 128;if(equal(bits,[1,1,0,1]))return 144;if(equal(bits,[1,1,1,0]))return 160}};exports.samplingRateCalculator=function(bits,mpegVersion){if(equal(bits,[1,1])){return"reserved"}if(mpegVersion===1){if(equal(bits,[0,0]))return 44100;if(equal(bits,[0,1]))return 48e3;if(equal(bits,[1,0]))return 32e3}else if(mpegVersion===2){if(equal(bits,[0,0]))return 22050;if(equal(bits,[0,1]))return 24e3;if(equal(bits,[1,0]))return 16e3}else if(mpegVersion===2.5){if(equal(bits,[0,0]))return 11025;if(equal(bits,[0,1]))return 12e3;if(equal(bits,[1,0]))return 8e3}}}).call(this,require("buffer").Buffer)},{"./id3v1":24,buffer:8,"buffer-equal":32,"deep-equal":33,strtok2:38}],23:[function(require,module,exports){var strtok=require("strtok2");var common=require("./common");module.exports=function(stream,callback,done){var currentState=startState;strtok.parse(stream,function(v,cb){currentState=currentState.parse(callback,v,done);return currentState.getExpectedType()})};var DataDecoder=function(data){this.data=data;this.offset=0};DataDecoder.prototype.readInt32=function(){var value=strtok.UINT32_LE.get(this.data,this.offset);this.offset+=4;return value};DataDecoder.prototype.readStringUtf8=function(){var len=this.readInt32();var value=this.data.toString("utf8",this.offset,this.offset+len);this.offset+=len;return value};var finishedState={parse:function(callback){return this},getExpectedType:function(){return strtok.DONE}};var BlockDataState=function(type,length,nextStateFactory){this.type=type;this.length=length;this.nextStateFactory=nextStateFactory};BlockDataState.prototype.parse=function(callback,data){if(this.type===4){var decoder=new DataDecoder(data);var vendorString=decoder.readStringUtf8();var commentListLength=decoder.readInt32();var comment;var split;var i;for(i=0;i<commentListLength;i++){comment=decoder.readStringUtf8();split=comment.split("=");callback(split[0].toUpperCase(),split[1])}}else if(this.type===6){var picture=common.readVorbisPicture(data);callback("METADATA_BLOCK_PICTURE",picture)}return this.nextStateFactory()};BlockDataState.prototype.getExpectedType=function(){return new strtok.BufferType(this.length)};var blockHeaderState={parse:function(callback,data,done){var header={lastBlock:(data[0]&128)==128,type:data[0]&127,length:common.strtokUINT24_BE.get(data,1)};var followingStateFactory=header.lastBlock?function(){done();return finishedState}:function(){return blockHeaderState};return new BlockDataState(header.type,header.length,followingStateFactory)},getExpectedType:function(){return new strtok.BufferType(4)}};var idState={parse:function(callback,data,done){if(data!=="fLaC"){done(new Error("expected flac header but was not found"))}return blockHeaderState},getExpectedType:function(){return new strtok.StringType(4)}};var startState={parse:function(callback){return idState},getExpectedType:function(){return strtok.DONE}}},{"./common":22,strtok2:38}],24:[function(require,module,exports){var util=require("util");var common=require("./common");module.exports=function(stream,callback,done){var endData=null;stream.on("data",function(data){endData=data});common.streamOnRealEnd(stream,function(){var offset=endData.length-128;var header=endData.toString("ascii",offset,offset+=3);if(header!=="TAG"){return done(new Error("Could not find metadata header"))}var title=endData.toString("ascii",offset,offset+=30);callback("title",title.trim().replace(/\x00/g,""));var artist=endData.toString("ascii",offset,offset+=30);callback("artist",artist.trim().replace(/\x00/g,""));var album=endData.toString("ascii",offset,offset+=30);callback("album",album.trim().replace(/\x00/g,""));var year=endData.toString("ascii",offset,offset+=4);callback("year",year.trim().replace(/\x00/g,""));var comment=endData.toString("ascii",offset,offset+=28);callback("comment",comment.trim().replace(/\x00/g,""));var track=endData[endData.length-2];callback("track",track);if(endData[endData.length-1]in common.GENRES){var genre=common.GENRES[endData[endData.length-1]];callback("genre",genre)}return done()})}},{"./common":22,util:20}],25:[function(require,module,exports){var strtok=require("strtok2");var parser=require("./id3v2_frames");var common=require("./common");var BitArray=require("node-bitarray");var equal=require("deep-equal");module.exports=function(stream,callback,done,readDuration){var frameCount=0;var audioFrameHeader;var bitrates=[];strtok.parse(stream,function(v,cb){if(!v){cb.state=0;return new strtok.BufferType(10)}switch(cb.state){case 0:if(v.toString("ascii",0,3)!=="ID3"){return done(new Error("expected id3 header but was not found"))}cb.id3Header={version:"2."+v[3]+"."+v[4],major:v[3],unsync:common.strtokBITSET.get(v,5,7),xheader:common.strtokBITSET.get(v,5,6),xindicator:common.strtokBITSET.get(v,5,5),footer:common.strtokBITSET.get(v,5,4),size:common.strtokINT32SYNCSAFE.get(v,6)};cb.state=1;return new strtok.BufferType(cb.id3Header.size);case 1:parseMetadata(v,cb.id3Header,callback);if(readDuration){cb.state=2;return new strtok.BufferType(4)}return done();case 2:if(v.slice(0,3).toString()==="TAG"){return strtok.DONE}var bts=BitArray.fromBuffer(v);var syncWordBits=bts.slice(0,11);if(sum(syncWordBits)!=11){if(frameCount===0){return new strtok.BufferType(4)}return done(new Error("expected frame header but was not found"))}var header={version:readMpegVersion(bts.slice(11,13)),layer:readLayer(bts.slice(13,15)),protection:!bts.__bits[15],padding:!!bts.__bits[22],mode:readMode(bts.slice(22,24))};header.samples_per_frame=calcSamplesPerFrame(header.version,header.layer);header.bitrate=common.id3BitrateCalculator(bts.slice(16,20),header.version,header.layer);header.sample_rate=common.samplingRateCalculator(bts.slice(20,22),header.version);header.slot_size=calcSlotSize(header.layer);header.sideinfo_length=calculateSideInfoLength(header.layer,header.mode,header.version);var bps=header.samples_per_frame/8;var fsize=bps*(header.bitrate*1e3)/header.sample_rate+(header.padding?header.slot_size:0);header.frame_size=Math.floor(fsize);audioFrameHeader=header;frameCount++;bitrates.push(header.bitrate);if(frameCount===1){cb.offset=header.sideinfo_length;cb.state=3;return new strtok.BufferType(header.sideinfo_length)}if(readDuration&&stream.fileSize&&frameCount===3&&areAllSame(bitrates)){stream.fileSize(function(size){var kbps=header.bitrate*1e3/8;callback("duration",Math.round(size/kbps));cb(done())});return strtok.DEFER}if(readDuration&&frameCount===4){stream.once("end",function(){callback("duration",calcDuration(frameCount,header.samples_per_frame,header.sample_rate));done()})}cb.state=5;return new strtok.BufferType(header.frame_size-4);case 3:cb.offset+=12;cb.state=4;return new strtok.BufferType(12);case 4:cb.state=5;var frameDataLeft=audioFrameHeader.frame_size-4-cb.offset;var id=v.toString("ascii",0,4);if(id!=="Xtra"&&id!=="Info"){return new strtok.BufferType(frameDataLeft)}var bits=BitArray.fromBuffer(v.slice(4,8));if(bits.__bits[bits.__bits.length-1]!==1){return new strtok.BufferType(frameDataLeft)}var numFrames=v.readUInt32BE(8);var ah=audioFrameHeader;callback("duration",calcDuration(numFrames,ah.samples_per_frame,ah.sample_rate));return done();case 5:cb.state=2;return new strtok.BufferType(4)}})};function areAllSame(array){var first=array[0];return array.every(function(element){return element===first})}function calcDuration(numFrames,samplesPerFrame,sampleRate){return Math.round(numFrames*(samplesPerFrame/sampleRate))}function parseMetadata(data,header,callback){var offset=0;if(header.xheader){offset+=data.readUInt32BE(0)}while(true){if(offset===data.length)break;var frameHeaderBytes=data.slice(offset,offset+=getFrameHeaderLength(header.major));var frameHeader=readFrameHeader(frameHeaderBytes,header.major);if(frameHeader.id===""||frameHeader.id==="\x00\x00\x00\x00"||"ABCDEFGHIJKLMNOPQRSTUVWXYZ".search(frameHeader.id[0])===-1){break}var frameDataBytes=data.slice(offset,offset+=frameHeader.length);var frameData=readFrameData(frameDataBytes,frameHeader,header.major);callback(frameHeader.id,frameData)}}function readFrameData(v,frameHeader,majorVer){switch(majorVer){case 2:return parser.readData(v,frameHeader.id,null,majorVer);case 3:case 4:if(frameHeader.flags.format.unsync){v=common.removeUnsyncBytes(v)}if(frameHeader.flags.format.data_length_indicator){v=v.slice(4,v.length)}return parser.readData(v,frameHeader.id,frameHeader.flags,majorVer)}}function readFrameHeader(v,majorVer){var header={};switch(majorVer){case 2:header.id=v.toString("ascii",0,3);header.length=common.strtokUINT24_BE.get(v,3,6);break;case 3:header.id=v.toString("ascii",0,4);header.length=strtok.UINT32_BE.get(v,4,8);header.flags=readFrameFlags(v.slice(8,10));break;case 4:header.id=v.toString("ascii",0,4);header.length=common.strtokINT32SYNCSAFE.get(v,4,8);header.flags=readFrameFlags(v.slice(8,10));break}return header}function getFrameHeaderLength(majorVer){switch(majorVer){case 2:return 6;case 3:case 4:return 10;default:return done(new Error("header version is incorrect"))}}function readFrameFlags(b){return{status:{tag_alter_preservation:common.strtokBITSET.get(b,0,6),file_alter_preservation:common.strtokBITSET.get(b,0,5),read_only:common.strtokBITSET.get(b,0,4)},format:{grouping_identity:common.strtokBITSET.get(b,1,7),compression:common.strtokBITSET.get(b,1,3),encryption:common.strtokBITSET.get(b,1,2),unsync:common.strtokBITSET.get(b,1,1),data_length_indicator:common.strtokBITSET.get(b,1,0)}}}function sum(array){var result=0;for(var i=0;i<array.length;i++){result+=array[i]}return result}function readMpegVersion(bits){if(equal(bits,[0,0])){return 2.5}else if(equal(bits,[0,1])){return"reserved"}else if(equal(bits,[1,0])){return 2}else if(equal(bits,[1,1])){return 1}}function readLayer(bits){if(equal(bits,[0,0])){return"reserved"}else if(equal(bits,[0,1])){return 3}else if(equal(bits,[1,0])){return 2}else if(equal(bits,[1,1])){return 1}}function readMode(bits){if(equal(bits,[0,0])){return"stereo"}else if(equal(bits,[0,1])){return"joint_stereo"}else if(equal(bits,[1,0])){return"dual_channel"}else if(equal(bits,[1,1])){return"mono"}}function calcSamplesPerFrame(version,layer){if(layer===1)return 384;if(layer===2)return 1152;if(layer===3&&version===1)return 1152;if(layer===3&&(version===2||version===2.5))return 576
}function calculateSideInfoLength(layer,mode,version){if(layer!==3)return 2;if(["stereo","joint_stereo","dual_channel"].indexOf(mode)>=0){if(version===1){return 32}else if(version===2||version===2.5){return 17}}else if(mode==="mono"){if(version===1){return 17}else if(version===2||version===2.5){return 9}}}function calcSlotSize(layer){if(layer===0)return"reserved";if(layer===1)return 4;if(layer===2)return 1;if(layer===3)return 1}},{"./common":22,"./id3v2_frames":26,"deep-equal":33,"node-bitarray":37,strtok2:38}],26:[function(require,module,exports){var Buffer=require("buffer").Buffer;var strtok=require("strtok2");var common=require("./common");var findZero=common.findZero;var decodeString=common.decodeString;exports.readData=function readData(b,type,flags,major){var encoding;var length=b.length;var offset=0;if(type[0]==="T"){type="T*";encoding=getTextEncoding(b[0])}switch(type){case"T*":var text=decodeString(b,encoding,1,length).text;text=text.trim().replace(/^\x00+/,"").replace(/\x00+$/,"");text=text.replace(/^\uFEFF/,"");text=text.replace(/\x00/g,"/");return text;case"PIC":case"APIC":var pic={};encoding=getTextEncoding(b[0]);offset+=1;switch(major){case 2:pic.format=decodeString(b,encoding,offset,offset+3).text;offset+=3;break;case 3:case 4:pic.format=decodeString(b,encoding,offset,findZero(b,offset,length,encoding));offset+=1+pic.format.length;pic.format=pic.format.text;break}pic.type=common.PICTURE_TYPE[b[offset]];offset+=1;pic.description=decodeString(b,encoding,offset,findZero(b,offset,length,encoding));offset+=1+pic.description.length;pic.description=pic.description.text;pic.data=b.slice(offset,length);return pic;case"COM":case"COMM":var comment={};encoding=getTextEncoding(b[0]);offset+=1;comment.language=decodeString(b,encoding,offset,offset+3).text;offset+=3;comment.short_description=decodeString(b,encoding,offset,findZero(b,offset,length,encoding));offset+=1+comment.short_description.length;comment.short_description=comment.short_description.text.trim().replace(/\x00/g,"");comment.text=decodeString(b,encoding,offset,length).text.trim().replace(/\x00/g,"");return comment;case"CNT":case"PCNT":return strtok.UINT32_BE.get(b,0);case"ULT":case"USLT":var lyrics={};encoding=getTextEncoding(b[0]);offset+=1;lyrics.language=decodeString(b,encoding,offset,offset+3).text;offset+=3;lyrics.descriptor=decodeString(b,encoding,offset,findZero(b,offset,length,encoding));offset+=1+lyrics.descriptor.length;lyrics.descriptor=lyrics.descriptor.text;lyrics.text=decodeString(b,encoding,offset,length);lyrics.text=lyrics.text.text;return lyrics}return null};function getTextEncoding(byte){switch(byte){case 0:return"iso-8859-1";case 1:case 2:return"utf16";case 3:return"utf8";default:return"utf8"}}},{"./common":22,buffer:8,strtok2:38}],27:[function(require,module,exports){var strtok=require("strtok2");var common=require("./common");module.exports=function(stream,callback,done,readDuration){strtok.parse(stream,function(v,cb){if(cb.metaAtomsTotalLength>=cb.atomContainerLength-8){return done()}if(!v){cb.metaAtomsTotalLength=0;cb.state=0;return strtok.UINT32_BE}switch(cb.state){case-1:cb.state=0;return strtok.UINT32_BE;case 0:cb.atomLength=v;cb.state++;return new strtok.StringType(4,"binary");case 1:cb.atomName=v;if(v==="meta"){cb.state=-1;return new strtok.BufferType(4)}if(readDuration){if(v==="mdhd"){cb.state=3;return new strtok.BufferType(cb.atomLength-8)}}if(!~CONTAINER_ATOMS.indexOf(v)){cb.state=cb.atomContainer==="ilst"?2:-1;return new strtok.BufferType(cb.atomLength-8)}cb.atomContainer=v;cb.atomContainerLength=cb.atomLength;cb.state--;return strtok.UINT32_BE;case 2:cb.metaAtomsTotalLength+=cb.atomLength;var result=processMetaAtom(v,cb.atomName,cb.atomLength-8);if(result.length>0){for(var i=0;i<result.length;i++){callback(cb.atomName,result[i])}}cb.state=0;return strtok.UINT32_BE;case 3:var sampleRate=v.readUInt32BE(12);var duration=v.readUInt32BE(16);callback("duration",Math.floor(duration/sampleRate));cb.state=0;return strtok.UINT32_BE}return done(new Error("error parsing"))})};function processMetaAtom(data,atomName,atomLength){var result=[];var offset=0;if(atomName==="----")return result;while(offset<atomLength){var length=strtok.UINT32_BE.get(data,offset);var type=TYPES[strtok.UINT32_BE.get(data,offset+8)];var content=processMetaDataAtom(data.slice(offset+12,offset+length),type,atomName);result.push(content);offset+=length}return result;function processMetaDataAtom(data,type,atomName){switch(type){case"text":return data.toString("utf8",4);case"uint8":if(atomName==="gnre"){var genreInt=strtok.UINT16_BE.get(data,4);return common.GENRES[genreInt-1]}if(atomName==="trkn"||atomName==="disk"){return data[7]+"/"+data[9]}return strtok.UINT16_BE.get(data,4);case"jpeg":case"png":return{format:"image/"+type,data:data.slice(4)}}}}var TYPES={0:"uint8",1:"text",13:"jpeg",14:"png",21:"uint8"};var CONTAINER_ATOMS=["moov","udta","meta","ilst","trak","mdia"]},{"./common":22,strtok2:38}],musicmetadata:[function(require,module,exports){module.exports=require("Rapq5d")},{}],Rapq5d:[function(require,module,exports){(function(process,Buffer){var util=require("util");var events=require("events");var common=require("./common");var strtok=require("strtok2");var readStream=require("filereader-stream");var through=require("through");var fs=require("fs");function wrapFileWithStream(file){if(file instanceof FileList){throw new Error("You have passed a FileList object but we expected a File")}if(!(file instanceof File||file instanceof Blob)){throw new Error("You must provide a valid File or Blob object")}var stream=through(null,null,{autoDestroy:false});stream.fileSize=function(cb){process.nextTick(function(){cb(file.size)})};return readStream(file).pipe(stream)}var MusicMetadata=module.exports=function(stream,opts){if(!(this instanceof MusicMetadata))return new MusicMetadata(stream,opts);opts=opts||{};if(process.browser){this.stream=wrapFileWithStream(stream)}else{stream.fileSize=function(cb){fs.stat(stream.path,function(err,stats){if(err)throw err;cb(stats.size)})};this.stream=stream}events.EventEmitter.call(this);this.parse(opts)};util.inherits(MusicMetadata,events.EventEmitter);MusicMetadata.prototype.parse=function(opts){this.metadata={title:"",artist:[],albumartist:[],album:"",year:"",track:{no:0,of:0},genre:[],disk:{no:0,of:0},picture:[],duration:0};this.aliased={};var self=this;this.stream.once("data",function(result){var parser=common.getParserForMediaType(headerTypes,result);parser(self.stream,self.readEvent.bind(self),done,opts.hasOwnProperty("duration"));self.stream.emit("data",result)});this.stream.on("close",onClose);function onClose(){done(new Error("Unexpected end of stream"))}function done(exception){self.stream.removeListener("close",onClose);self.readEvent("done",exception);return strtok.DONE}};MusicMetadata.prototype.readEvent=function(event,value){if(event==="done"){for(var _alias in this.aliased){if(this.aliased.hasOwnProperty(_alias)){var val;if(_alias==="title"||_alias==="album"||_alias==="year"||_alias==="duration"){val=this.aliased[_alias][0]}else{val=this.aliased[_alias]}this.emit(_alias,val);if(this.metadata.hasOwnProperty(_alias)){this.metadata[_alias]=val}}}if(Object.keys(this.aliased).length>0){this.emit("metadata",this.metadata)}this.emit("done",value);return}var alias=lookupAlias(event);if(event!==alias){this.emit(event,value)}if(value===null)return;var cleaned;if(event==="TRACKTOTAL"||event==="DISCTOTAL"){var evt;if(event==="TRACKTOTAL")evt="track";if(event==="DISCTOTAL")evt="disk";cleaned=parseInt(value,10);if(isNaN(cleaned))cleaned=0;if(!this.aliased.hasOwnProperty(evt)){this.aliased[evt]={no:0,of:cleaned}}else{this.aliased[evt].of=cleaned}}if(alias){cleaned=value;if(alias==="genre")cleaned=common.parseGenre(value);if(alias==="picture")cleaned=cleanupPicture(value);if(alias==="track"||alias==="disk"){cleaned=cleanupTrack(value);if(this.aliased[alias]){this.aliased[alias].no=cleaned.no;return}else{this.aliased[alias]=cleaned;return}}if(cleaned.constructor===String){if(alias==="artist"||alias==="albumartist"||alias==="genre"){cleaned=cleaned.split("/");if(cleaned.length===1)cleaned=cleaned[0]}}if(!this.aliased.hasOwnProperty(alias)){this.aliased[alias]=[]}if(cleaned.constructor===Array){this.aliased[alias]=cleaned}else{this.aliased[alias].push(cleaned)}}};function lookupAlias(event){var alias;for(var i=0;i<MAPPINGS.length;i++){for(var j=0;j<MAPPINGS[i].length;j++){var cur=MAPPINGS[i][j];if(cur.toUpperCase()===event.toUpperCase()){alias=MAPPINGS[i][0];break}}}return alias}function cleanupArtist(origVal){return origVal.split("/")}function cleanupTrack(origVal){var split=origVal.toString().split("/");var number=parseInt(split[0],10)||0;var total=parseInt(split[1],10)||0;return{no:number,of:total}}function cleanupPicture(picture){var newFormat;if(picture.format){var split=picture.format.toLowerCase().split("/");newFormat=split.length>1?split[1]:split[0];if(newFormat==="jpeg")newFormat="jpg"}else{newFormat="jpg"}return{format:newFormat,data:picture.data}}var headerTypes=[{buf:common.asfGuidBuf,tag:require("./asf")},{buf:new Buffer("ID3"),tag:require("./id3v2")},{buf:new Buffer("ftypM4A"),tag:require("./id4"),offset:4},{buf:new Buffer("ftypmp42"),tag:require("./id4"),offset:4},{buf:new Buffer("OggS"),tag:require("./ogg")},{buf:new Buffer("fLaC"),tag:require("./flac")},{buf:new Buffer("MAC"),tag:require("./monkeysaudio")}];var MAPPINGS=[["title","TIT2","TT2","©nam","TITLE","Title"],["artist","TPE1","TP1","©ART","ARTIST","Author"],["albumartist","TPE2","TP2","aART","ALBUMARTIST","ENSEMBLE","WM/AlbumArtist"],["album","TALB","TAL","©alb","ALBUM","WM/AlbumTitle"],["year","TDRC","TYER","TYE","©day","DATE","Year","WM/Year"],["comment","COMM","COM","©cmt","COMMENT"],["track","TRCK","TRK","trkn","TRACKNUMBER","Track","WM/TrackNumber"],["disk","TPOS","TPA","disk","DISCNUMBER","Disk"],["genre","TCON","TCO","©gen","gnre","GENRE","WM/Genre"],["picture","APIC","PIC","covr","METADATA_BLOCK_PICTURE","Cover Art (Front)","Cover Art (Back)"],["composer","TCOM","TCM","©wrt","COMPOSER"],["duration"]]}).call(this,require("/home/admin/browserify-cdn/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"),require("buffer").Buffer)},{"./asf":21,"./common":22,"./flac":23,"./id3v2":25,"./id4":27,"./monkeysaudio":30,"./ogg":31,"/home/admin/browserify-cdn/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":7,buffer:8,events:5,"filereader-stream":36,fs:1,strtok2:38,through:39,util:20}],30:[function(require,module,exports){(function(Buffer){var common=require("./common");var strtok=require("strtok2");module.exports=function(stream,callback,done){var bufs=[];stream.on("data",function(data){bufs.push(data)});common.streamOnRealEnd(stream,function(){var buffer=Buffer.concat(bufs);var offset=buffer.length-32;if("APETAGEX"!==buffer.toString("utf8",offset,offset+=8)){done(new Error("expected APE header but wasn't found"))}var footer={version:strtok.UINT32_LE.get(buffer,offset,offset+4),size:strtok.UINT32_LE.get(buffer,offset+4,offset+8),count:strtok.UINT32_LE.get(buffer,offset+8,offset+12)};offset=buffer.length-footer.size;for(var i=0;i<footer.count;i++){var size=strtok.UINT32_LE.get(buffer,offset,offset+=4);var flags=strtok.UINT32_LE.get(buffer,offset,offset+=4);var kind=(flags&6)>>1;var zero=common.findZero(buffer,offset,buffer.length);var key=buffer.toString("ascii",offset,zero);offset=zero+1;var value;if(kind===0){value=buffer.toString("utf8",offset,offset+=size);value=value.replace(/\x00/g,"/")}else if(kind===1){if(key==="Cover Art (Front)"||key==="Cover Art (Back)"){var picData=buffer.slice(offset,offset+size);var off=0;zero=common.findZero(picData,off,picData.length);var description=picData.toString("utf8",off,zero);off=zero+1;var picture={description:description,data:picData.slice(off)};value=picture;offset+=size}}callback(key,value)}return done()})}}).call(this,require("buffer").Buffer)},{"./common":22,buffer:8,strtok2:38}],31:[function(require,module,exports){(function(Buffer){var fs=require("fs");var util=require("util");var events=require("events");var strtok=require("strtok2");var common=require("./common");module.exports=function(stream,callback,done,readDuration){var innerStream=new events.EventEmitter;var pageLength=0;var sampleRate=0;var header;var stop=false;stream.on("end",function(){if(readDuration){callback("duration",Math.floor(header.pcm_sample_pos/sampleRate));done()}});strtok.parse(stream,function(v,cb){if(!v){cb.state=0;return new strtok.BufferType(27)}if(stop){return done()}switch(cb.state){case 0:header={type:v.toString("ascii",0,4),version:v[4],packet_flag:v[5],pcm_sample_pos:(v.readUInt32LE(10)<<32)+v.readUInt32LE(6),stream_serial_num:strtok.UINT32_LE.get(v,14),page_number:strtok.UINT32_LE.get(v,18),check_sum:strtok.UINT32_LE.get(v,22),segments:v[26]};if(header.type!=="OggS"){return done(new Error("expected ogg header but was not found"))}cb.pageNumber=header.page_number;cb.state++;return new strtok.BufferType(header.segments);case 1:var pageLen=0;for(var i=0;i<v.length;i++){pageLen+=v[i]}cb.state++;pageLength=pageLen;return new strtok.BufferType(pageLen);case 2:innerStream.emit("data",new Buffer(v));cb.state=0;return new strtok.BufferType(27)}});strtok.parse(innerStream,function(v,cb){if(!v){cb.commentsRead=0;cb.state=0;return new strtok.BufferType(7)}switch(cb.state){case 0:if(v.toString()==="vorbis"){cb.state=6;return new strtok.BufferType(23)}else if(v.toString()==="vorbis"){cb.state++;return strtok.UINT32_LE}else{return done(new Error("expected vorbis header but found something else"))}break;case 1:cb.state++;return new strtok.StringType(v);case 2:cb.state++;return new strtok.BufferType(4);case 3:cb.commentsLength=v.readUInt32LE(0);if(cb.commentsLength===0)return strtok.DONE;cb.state++;return strtok.UINT32_LE;case 4:cb.state++;return new strtok.StringType(v);case 5:cb.commentsRead++;var idx=v.indexOf("=");var key=v.slice(0,idx).toUpperCase();var value=v.slice(idx+1);if(key==="METADATA_BLOCK_PICTURE"){value=common.readVorbisPicture(new Buffer(value,"base64"))}callback(key,value);if(cb.commentsRead===cb.commentsLength){stop=!readDuration;return strtok.DONE}cb.state--;return strtok.UINT32_LE;case 6:var info={version:v.readUInt32LE(0),channel_mode:v.readUInt8(4),sample_rate:v.readUInt32LE(5),bitrate_nominal:v.readUInt32LE(13)};sampleRate=info.sample_rate;cb.state=0;return new strtok.BufferType(7)}})}}).call(this,require("buffer").Buffer)},{"./common":22,buffer:8,events:5,fs:1,strtok2:38,util:20}],32:[function(require,module,exports){var Buffer=require("buffer").Buffer;module.exports=function(a,b){if(!Buffer.isBuffer(a))return undefined;if(!Buffer.isBuffer(b))return undefined;if(a.length!==b.length)return false;for(var i=0;i<a.length;i++){if(a[i]!==b[i])return false}return true}},{buffer:8}],33:[function(require,module,exports){var pSlice=Array.prototype.slice;var objectKeys=require("./lib/keys.js");var isArguments=require("./lib/is_arguments.js");var deepEqual=module.exports=function(actual,expected,opts){if(!opts)opts={};if(actual===expected){return true}else if(actual instanceof Date&&expected instanceof Date){return actual.getTime()===expected.getTime()}else if(typeof actual!="object"&&typeof expected!="object"){return opts.strict?actual===expected:actual==expected}else{return objEquiv(actual,expected,opts)}};function isUndefinedOrNull(value){return value===null||value===undefined}function objEquiv(a,b,opts){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,opts)}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],opts))return false}return true}},{"./lib/is_arguments.js":34,"./lib/keys.js":35}],34:[function(require,module,exports){var supportsArgumentsClass=function(){return Object.prototype.toString.call(arguments)}()=="[object Arguments]";exports=module.exports=supportsArgumentsClass?supported:unsupported;exports.supported=supported;function supported(object){return Object.prototype.toString.call(object)=="[object Arguments]"}exports.unsupported=unsupported;function unsupported(object){return object&&typeof object=="object"&&typeof object.length=="number"&&Object.prototype.hasOwnProperty.call(object,"callee")&&!Object.prototype.propertyIsEnumerable.call(object,"callee")||false}},{}],35:[function(require,module,exports){exports=module.exports=typeof Object.keys==="function"?Object.keys:shim;exports.shim=shim;function shim(obj){var keys=[];for(var key in obj)keys.push(key);return keys}},{}],36:[function(require,module,exports){(function(Buffer){module.exports=FileStream;function FileStream(file,options){if(!(this instanceof FileStream))return new FileStream(file,options);options=options||{};options.output=options.output||"arraybuffer";this.options=options;this._file=file;this.readable=true;this.offset=0;this.chunkSize=this.options.chunkSize||8128;["name","size","type","lastModifiedDate"].forEach(function(thing){this[thing]=file[thing]},this)}FileStream.prototype.readChunk=function(outputType){var end=this.offset+this.chunkSize;var slice=this._file.slice(this.offset,end);this.offset=end;if(outputType==="binary")this.reader.readAsBinaryString(slice);else if(outputType==="dataurl")this.reader.readAsDataURL(slice);else if(outputType==="arraybuffer")this.reader.readAsArrayBuffer(slice);else if(outputType==="text")this.reader.readAsText(slice)};FileStream.prototype.pipe=function pipe(dest,options){var self=this;const outputType=this.options.output;this.reader=new FileReader;this.reader.onloadend=function loaded(event){var data=event.target.result;if(data instanceof ArrayBuffer)data=new Buffer(new Uint8Array(event.target.result));dest.write(data);if(self.offset<self._file.size){self.readChunk(outputType);return}if(dest!==console&&(!options||options.end!==false)){if(dest.end)dest.end();if(dest.close)dest.close()}};self.readChunk(outputType);return dest}}).call(this,require("buffer").Buffer)},{buffer:8}],37:[function(require,module,exports){(function(Buffer){"use strict";var slice=Array.prototype.slice;var methods=["concat","every","filter","forEach","indexOf",,"join","lastIndexOf","map","pop","push","reduce","reduceRight","reverse","shift","slice","some","sort","splice","unshift"];function longest(){var args=slice.call(arguments),len=0,resp,arg;for(var i=0;i<args.length;i++){arg=args[i];if(arg.length>=len){len=arg.length;resp=arg}}return resp}function BitArray(x,len,oct){this.__bits=BitArray.parse(x,oct);this.__defineGetter__("length",function(){return this.__bits.length});len&&this.fill(len);this.__len=len}BitArray.VERSION="0.0.2";BitArray.max=Math.pow(2,32)-1;BitArray.factory=function(x,len,oct){return new BitArray(x,len,oct)};BitArray.octet=function(arr){var len=arr.length,fill=len+(8-len%8);if(len!==0&&len%8===0){return arr}for(var i=len;i<fill;i++){arr[i]=0}return arr};BitArray.parse=function(x,oct){var bits=[],tmp=x;if(typeof x==="undefined"){return bits}if(typeof x==="string"){for(var i=0;i<x.length;i++){bits.push(+x[i])}return bits.reverse()}if(typeof x==="number"){while(tmp>0){bits.push(tmp%2);tmp=Math.floor(tmp/2)}oct&&(bits=BitArray.octet(bits));return bits.reverse()}if(Array.isArray(x)){return x}for(var i=0;i<x.length;i++){bits=bits.concat(BitArray.parse(x[i],true))}return bits};BitArray.equals=function(a,b){if(a.__bits.length!==b.__bits.length)return false;for(var i=0;i<a.__bits.length;i++){if(a.__bits[i]!==b.__bits[i])return false}return true};BitArray.fromBinary=function(str){var bits=[];for(var i=0;i<str.length;i++){bits.push(+str[i])}return(new BitArray).set(bits.reverse())};BitArray.fromOffsets=function(offs){var bits=new BitArray;for(var i=0;i<offs.length;i++){bits.set(offs[i],1)}return bits};BitArray.fromDecimal=BitArray.fromNumber=function(num){var bits=[],tmp=+num;while(tmp>0){bits.push(tmp%2);tmp=Math.floor(tmp/2)}return(new BitArray).set(bits)};BitArray.fromHex=BitArray.fromHexadecimal=function(hex){hex=(""+hex).toLowerCase();if(!~hex.indexOf("0x"))hex="0x"+hex;return BitArray.fromDecimal(+hex)};BitArray.from32Integer=function(num){var bits=[],tmp=num;while(tmp>0){bits.push(tmp%2);tmp=Math.floor(tmp/2)}bits=BitArray.octet(bits);return(new BitArray).set(bits.reverse())};BitArray.fromRedis=BitArray.fromBuffer=function(buf){var bits=[];for(var i=0;i<buf.length;i++){bits=bits.concat(BitArray.from32Integer(buf[i]).toJSON())}return(new BitArray).set(bits)};BitArray.toOffsets=function(bits){var offs=[];for(var i=0;i<bits.length;i++){bits[i]===1&&offs.push(i)}return offs};BitArray.toBuffer=function(bits){var buf=[],int32,tmp;for(var i=0;i<bits.length;i+=8){int32=0;tmp=bits.slice(i,i+8);for(var k=0;k<tmp.length;k++){int32=int32*2+tmp[k]}buf.push(int32)}return new Buffer(buf)};BitArray.toNumber=function(bits){var num=0;for(var i=0;i<bits.length;i++){if(bits[i])num+=Math.pow(2,i)}return num};BitArray.toHex=BitArray.toHexadecimal=function(bits){return BitArray.toNumber(bits).toString(16)};BitArray.and=BitArray.intersect=function(){var args=slice.call(arguments),src=longest.apply(null,arguments),len=args.length,bits=[],aLen;for(var i=0;i<src.length;i++){aLen=args.filter(function(x){return x[i]===1}).length;bits.push(aLen===len?1:0)}return bits};BitArray.or=BitArray.union=function(){var args=slice.call(arguments),src=longest.apply(null,args),bits=[],aLen;for(var i=0;i<src.length;i++){aLen=args.filter(function(x){return x[i]===1}).length;bits.push(aLen?1:0)}return bits};BitArray.xor=BitArray.difference=function(){var args=slice.call(arguments),aLen=args.length,src=longest.apply(null,args),bits=[],bLen;for(var i=0;i<src.length;i++){var bit=src[i];bLen=args.filter(function(x){return x[i]===1}).length;bits.push(bLen===1||bLen===aLen?1:0)}return bits};BitArray.not=BitArray.reverse=function(arr){var bits=[];for(var i=0;i<arr.length;i++){bits.push(arr[i]===1?0:1)}return bits};BitArray.count=BitArray.population=BitArray.bitcount=BitArray.cardinality=function(x){var val=0,tmp=0;if(typeof x==="number"){x-=x>>1&1431655765;x=(x>>2&858993459)+(x&858993459);x=(x>>4)+x&252645135;x+=x>>8;x+=x>>16;return x&63}if(Array.isArray(x)){for(var i=0;i<x.length;i++){if(x[i])val+=1}return val}for(var i=0;i<x.length;i+=4){tmp=x[i];tmp+=x[i+1]<<8;tmp+=x[i+2]<<16;tmp+=x[i+3]<<24;val+=BitArray.cardinality(tmp)}return val};BitArray.prototype.fill=function(idx){while(idx>this.__bits.length){this.__bits.push(0)}return this};BitArray.prototype.clone=BitArray.prototype.copy=function(){return(new BitArray).set(this.toBits())};BitArray.prototype.clear=BitArray.prototype.reset=function(){this.__bits=[];this.__len&&this.fill(this.__len);return this};BitArray.prototype.equals=function(b){return BitArray.equals(this,b)};BitArray.prototype.set=function(idx,val){if(Array.isArray(idx)){this.__bits=idx;this.__len&&this.fill(this.__len);return this}this.fill(idx);this.__bits[idx]=val?1:0;return this};BitArray.prototype.get=function(idx,val){this.fill(idx);return this.__bits[idx]};BitArray.prototype.count=BitArray.prototype.population=BitArray.prototype.bitcount=BitArray.prototype.cardinality=function(){return BitArray.cardinality(this.__bits)};BitArray.prototype.toOffsets=function(){return BitArray.toOffsets(this.__bits)};BitArray.prototype.toString=function(){return this.__bits.slice().reverse().join("")};BitArray.prototype.toBits=BitArray.prototype.toArray=BitArray.prototype.toJSON=function(){return this.__bits.slice()};BitArray.prototype.valueOf=BitArray.prototype.toNumber=function(){return BitArray.toNumber(this.__bits)};BitArray.prototype.toHex=function(){return BitArray.toHex(this.__bits)};BitArray.prototype.toBuffer=function(){return BitArray.toBuffer(this.__bits)};methods.forEach(function(method){BitArray.prototype[method]=function(){return Array.prototype[method].apply(this.__bits,arguments)}});module.exports=BitArray}).call(this,require("buffer").Buffer)},{buffer:8}],38:[function(require,module,exports){var assert=require("assert");var Buffer=require("buffer").Buffer;var SPANNING_BUF=new Buffer(1024);var maybeFlush=function(b,o,len,flush){if(o+len>b.length){if(typeof flush!=="function"){throw new Error("Buffer out of space and no valid flush() function found")}flush(b,o);return 0}return o};var DEFER={};exports.DEFER=DEFER;var DONE={};exports.DONE=DONE;var UINT8={len:1,get:function(buf,off){return buf[off]},put:function(b,o,v,flush){assert.equal(typeof o,"number");assert.equal(typeof v,"number");assert.ok(v>=0&&v<=255);assert.ok(o>=0);assert.ok(this.len<=b.length);var no=maybeFlush(b,o,this.len,flush);b[no]=v&255;return no-o+this.len}};exports.UINT8=UINT8;var UINT16_LE={len:2,get:function(buf,off){return buf[off]|buf[off+1]<<8},put:function(b,o,v,flush){assert.equal(typeof o,"number");assert.equal(typeof v,"number");assert.ok(v>=0&&v<=65535);assert.ok(o>=0);assert.ok(this.len<=b.length);var no=maybeFlush(b,o,this.len,flush);b[no]=v&255;b[no+1]=v>>>8&255;return no-o+this.len}};exports.UINT16_LE=UINT16_LE;var UINT16_BE={len:2,get:function(buf,off){return buf[off]<<8|buf[off+1]},put:function(b,o,v,flush){assert.equal(typeof o,"number");assert.equal(typeof v,"number");assert.ok(v>=0&&v<=65535);assert.ok(o>=0);assert.ok(this.len<=b.length);var no=maybeFlush(b,o,this.len,flush);b[no]=v>>>8&255;b[no+1]=v&255;return no-o+this.len}};exports.UINT16_BE=UINT16_BE;var UINT32_LE={len:4,get:function(buf,off){return(buf[off]|buf[off+1]<<8|buf[off+2]<<16)+(buf[off+3]<<23)*2},put:function(b,o,v,flush){assert.equal(typeof o,"number");assert.equal(typeof v,"number");assert.ok(v>=0&&v<=4294967295);assert.ok(o>=0);assert.ok(this.len<=b.length);var no=maybeFlush(b,o,this.len,flush);b[no]=v&255;b[no+1]=v>>>8&255;b[no+2]=v>>>16&255;b[no+3]=v>>>24&255;return no-o+this.len}};exports.UINT32_LE=UINT32_LE;var UINT32_BE={len:4,get:function(buf,off){return(buf[off]<<23)*2+(buf[off+1]<<16|buf[off+2]<<8|buf[off+3])},put:function(b,o,v,flush){assert.equal(typeof o,"number");assert.equal(typeof v,"number");assert.ok(v>=0&&v<=4294967295);assert.ok(o>=0);assert.ok(this.len<=b.length);var no=maybeFlush(b,o,this.len,flush);b[no]=v>>>24&255;b[no+1]=v>>>16&255;b[no+2]=v>>>8&255;b[no+3]=v&255;return no-o+this.len}};exports.UINT32_BE=UINT32_BE;var INT8={len:1,get:function(buf,off){var v=UINT8.get(buf,off);return(v&128)===128?-128+(v&127):v},put:function(b,o,v,flush){assert.equal(typeof o,"number");assert.equal(typeof v,"number");assert.ok(v>=-128&&v<=127);assert.ok(o>=0);assert.ok(this.len<=b.length);var no=maybeFlush(b,o,this.len,flush);b[no]=v&255;return no-o+this.len}};exports.INT8=INT8;var INT16_BE={len:2,get:function(buf,off){var v=UINT16_BE.get(buf,off);return(v&32768)===32768?-32768+(v&32767):v},put:function(b,o,v,flush){assert.equal(typeof o,"number");assert.equal(typeof v,"number");assert.ok(v>=-32768&&v<=32767);assert.ok(o>=0);assert.ok(this.len<=b.length);var no=maybeFlush(b,o,this.len,flush);b[no]=(v&65535)>>>8&255;b[no+1]=v&255;return no-o+this.len}};exports.INT16_BE=INT16_BE;var INT32_BE={len:4,get:function(buf,off){var v=UINT32_BE.get(buf,off);return(v&2147483648)===-2147483648?(v&2147483647)-1073741824-1073741824:v},put:function(b,o,v,flush){assert.equal(typeof o,"number");assert.equal(typeof v,"number");assert.ok(v>=-2147483648&&v<=2147483647);assert.ok(o>=0);assert.ok(this.len<=b.length);var no=maybeFlush(b,o,this.len,flush);b[no]=v>>>24&255;b[no+1]=v>>>16&255;b[no+2]=v>>>8&255;b[no+3]=v&255;return no-o+this.len}};exports.INT32_BE=INT32_BE;var IgnoreType=function(l){this.len=l;this.get=function(){return null}};exports.IgnoreType=IgnoreType;var BufferType=function(l){var self=this;self.len=l;self.get=function(buf,off){return buf.slice(off,off+this.len)}};exports.BufferType=BufferType;var StringType=function(l,e){var self=this;self.len=l;self.encoding=e;self.get=function(buf,off){return buf.toString(e,off,off+this.len)}};exports.StringType=StringType;var parse=function(s,cb){var type=DEFER;var bufs=[];var bufsLen=0;var bufOffset=0;var ignoreLen=0;var typeCallback=function(t){if(type!==DEFER){throw new Error("refusing to overwrite non-DEFER type")}type=t;emitData()};var emitData=function(){var b;while(type!==DONE&&type!==DEFER&&bufsLen>=type.len){b=bufs[0];var bo=bufOffset;assert.ok(bufOffset>=0&&bufOffset<b.length);if(b.length-bufOffset<type.len){if(SPANNING_BUF.length<type.len){SPANNING_BUF=new Buffer(Math.pow(2,Math.ceil(Math.log(type.len)/Math.log(2))))}b=SPANNING_BUF;bo=0;var bytesCopied=0;while(bytesCopied<type.len&&bufs.length>0){var bb=bufs[0];var copyLength=Math.min(type.len-bytesCopied,bb.length-bufOffset);bb.copy(b,bytesCopied,bufOffset,bufOffset+copyLength);bytesCopied+=copyLength;if(copyLength<bb.length-bufOffset){assert.equal(bytesCopied,type.len);bufOffset+=copyLength}else{assert.equal(bufOffset+copyLength,bb.length);bufs.shift();bufOffset=0}}assert.equal(bytesCopied,type.len)}else if(b.length-bufOffset===type.len){bufs.shift();bufOffset=0}else{bufOffset+=type.len}bufsLen-=type.len;type=cb(type.get(b,bo),typeCallback);if(type instanceof IgnoreType){ignoreLen+=type.len;if(ignoreLen>=bufsLen){ignoreLen-=bufsLen;bufsLen=0;bufs=[];bufOffset=0}else if(ignoreLen<bufs[0].length-bufOffset){bufsLen-=ignoreLen;bufOffset+=ignoreLen;ignoreLen=0}else if(bufsLen>0){bufsLen-=ignoreLen;ignoreLen+=bufOffset;while(ignoreLen>=bufs[0].length){ignoreLen-=bufs.shift().length}bufOffset=ignoreLen;ignoreLen=0}type=cb(type.get(),typeCallback)}}if(type===DONE){s.removeListener("data",dataListener);while(bufs.length>0){b=bufs.shift();if(bufOffset>0){b=b.slice(bufOffset,b.length);bufOffset=0}s.emit("data",b)}}};var dataListener=function(d){if(d.length<=ignoreLen){assert.strictEqual(bufsLen,0);assert.strictEqual(bufs.length,0);ignoreLen-=d.length}else if(ignoreLen>0){assert.strictEqual(bufsLen,0);bufsLen=d.length-ignoreLen;bufs.push(d.slice(ignoreLen));ignoreLen=0;emitData()}else{bufs.push(d);bufsLen+=d.length;emitData()}};type=cb(undefined,typeCallback);if(type!==DONE){s.on("data",dataListener)}};exports.parse=parse},{assert:2,buffer:8}],39:[function(require,module,exports){(function(process){var Stream=require("stream");exports=module.exports=through;through.through=through;function through(write,end,opts){write=write||function(data){this.queue(data)};end=end||function(){this.queue(null)};var ended=false,destroyed=false,buffer=[],_ended=false;var stream=new Stream;stream.readable=stream.writable=true;stream.paused=false;stream.autoDestroy=!(opts&&opts.autoDestroy===false);stream.write=function(data){write.call(this,data);return!stream.paused};function drain(){while(buffer.length&&!stream.paused){var data=buffer.shift();if(null===data)return stream.emit("end");else stream.emit("data",data)}}stream.queue=stream.push=function(data){if(_ended)return stream;if(data==null)_ended=true;buffer.push(data);drain();return stream};stream.on("end",function(){stream.readable=false;if(!stream.writable&&stream.autoDestroy)process.nextTick(function(){stream.destroy()})});function _end(){stream.writable=false;end.call(stream);if(!stream.readable&&stream.autoDestroy)stream.destroy()}stream.end=function(data){if(ended)return;ended=true;if(arguments.length)stream.write(data);_end();return stream};stream.destroy=function(){if(destroyed)return;destroyed=true;ended=true;buffer.length=0;stream.writable=stream.readable=false;stream.emit("close");return stream};stream.pause=function(){if(stream.paused)return;stream.paused=true;return stream};stream.resume=function(){if(stream.paused){stream.paused=false;stream.emit("resume")}drain();if(!stream.paused)stream.emit("drain");return stream};return stream}}).call(this,require("/home/admin/browserify-cdn/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"))},{"/home/admin/browserify-cdn/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":7,stream:12}]},{},[]);
var musicmetadata=require("musicmetadata");addDragDropListener(document,function(files){musicmetadata(files[0],{duration:true}).on("metadata",function(result){console.log(result);if(result.picture.length>0){var picture=result.picture[0];var url=URL.createObjectURL(new Blob([picture.data],{type:"image/"+picture.format}));var image=document.createElement("img");image.width=100;image.height=100;document.body.appendChild(image);image.src=url}result.picture="<<redacted>>";var info=document.createElement("p");info.innerText=JSON.stringify(result,null," ");console.log(JSON.stringify(result,null," "));document.body.appendChild(info)}).on("done",function(err){if(err)throw err})});function handleDrop(callback,event){event.stopPropagation();event.preventDefault();callback(Array.prototype.slice.call(event.dataTransfer.files))}function killEvent(e){e.stopPropagation();e.preventDefault();return false}function addDragDropListener(element,callback){element.addEventListener("dragenter",killEvent,false);element.addEventListener("dragover",killEvent,false);element.addEventListener("drop",handleDrop.bind(undefined,callback),false)}
{
"name": "requirebin-sketch",
"version": "1.0.0",
"dependencies": {
"musicmetadata": "0.3.6"
}
}
<style type='text/css'>html, body { margin: 0; padding: 0; border: 0; }
body, html { height: 100%; width: 100%; }</style>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment