{"version":3,"sources":["videomail-client.js"],"names":["f","exports","module","define","amd","window","global","self","this","VideomailClient","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","_dereq_","root","factory","modules","__webpack_require__","moduleId","installedModules","id","loaded","m","c","p","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","default","target","name","listener","options","optionName","arguments","undefined","addEventListener","listenerOptions","_checkSupport","SupportMap","assign","checkSupportForProperty","property","OptionsMap","opts","get","removeListener","_OptionsMap","_constants","PASSIVE","CAPTURE","ONCE","keys","forEach","k","2","returnTrue","makeThrottle","fps","delay","lastTime","Date","now","Infinity","half","Math","ceil","Animitter","__delay","fixedDelta","frameCount","deltaTime","elapsedTime","__running","__completed","setFPS","setRequestAnimationFrameObject","requestAnimationFrameObject","defaultRAFObject","onStart","scope","rAFID","running","__lastTime","emit","lastRAFObject","drawFrame","requestAnimationFrame","__isReadyForUpdate","update","cancelAnimationFrame","createAnimitter","fn","_instance","on","bind","apply","functions","arr","push","methods","EventEmitter","inherits","raf","cancel","off","prototype","trigger","complete","stop","dispose","removeAllListeners","getDeltaTime","getElapsedTime","getFPS","getFPSLimit","__fps","getFrameCount","getRequestAnimationFrameObject","isRunning","isCompleted","reset","object","start","setTimeout","globalFixedDelta","min","method","bound","fnKey","loop","functionKeys","hasBind","Function","getTime","events","3","toBuffer","isFloat32Array","float32Array","Int16Array","typedarray-to-buffer","validate.io-float32array","4","placeHoldersCount","b64","len","tripletToBase64","num","lookup","encodeChunk","uint8","end","tmp","output","join","byteLength","toByteArray","placeHolders","Arr","L","revLookup","charCodeAt","fromByteArray","extraBytes","parts","len2","Uint8Array","Array","5","6","undef","nativeSplit","String","split","compliantExecNpcg","exec","str","separator","limit","toString","separator2","match","lastIndex","lastLength","flags","ignoreCase","multiline","extended","sticky","lastLastIndex","RegExp","source","index","slice","replace","test","7","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","run","Item","array","noop","process","nextTick","args","title","browser","env","argv","version","versions","addListener","once","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","8","createBuffer","K_MAX_LENGTH","RangeError","buf","__proto__","Buffer","arg","encodingOrOffset","allocUnsafe","from","TypeError","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","size","alloc","fill","encoding","checked","string","isEncoding","actual","write","fromArrayLike","byteOffset","isBuffer","copy","isArrayBufferView","numberIsNaN","type","isArray","data","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","bidirectionalIndexOf","buffer","val","arrayIndexOf","indexOf","lastIndexOf","read","indexSize","readUInt16BE","arrLength","valLength","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","base64","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","ret","out","toHex","bytes","checkOffset","ext","checkInt","max","checkIEEE754","writeFloat","littleEndian","noAssert","ieee754","writeDouble","base64clean","trim","INVALID_BASE64_RE","units","leadSurrogate","byteArray","hi","lo","src","dst","isView","SlowBuffer","INSPECT_MAX_BYTES","kMaxLength","TYPED_ARRAY_SUPPORT","foo","typedArraySupport","console","error","Symbol","species","poolSize","allocUnsafeSlow","_isBuffer","compare","x","y","list","pos","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","newBuf","subarray","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","base64-js","9","verifiedImageType","isBrowser","document","canvas","composeImageType","imageType","image","types","isMatch","uri","debug","getTestCanvas","testCanvas","createElement","width","height","canvasSupportsImageTypeAsync","cb","toDataURL","err","exc","canvasSupportsImageTypeSync","logger","verifyImageTypeAsync","verifyImageTypeSync","verifyImageType","uriToBuffer","atob","constructor","toBufferSync","getImageType","quality","toBufferAsync","parseFloat","newVerifiedImageType","10","filter","isTruthy","indexof","elem","add","token","getTokens","setTokens","remove","splice","contains","className","classList","cl","toggle","item","11","createElementNS","testElement","createMethod","original","DOMTokenList","_toggle","force","view","elemCtrProto","Element","objCtr","strTrim","arrIndexOf","DOMEx","message","DOMException","checkTokenAndGetIndex","ClassList","trimmedClasses","getAttribute","classes","_updateClassName","setAttribute","classListProto","classListGetter","tokens","updated","result","classListPropDesc","ex","number","__defineGetter__","12","Emitter","mixin","event","_callbacks","removeEventListener","callbacks","hasListeners","13","DOCUMENT_POSITION_CONTAINED_BY","container","comparison","compareDocumentPosition","14","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","re","isObject","isDate","d","isError","isFunction","isPrimitive","../../is-buffer/index.js","15","createErrorLib","lastcreateError","createError","noConflict","getName","getTarget","getProps","inheritedKeys","attachProps","context","clone","cloned","create","attr","hasOwnProperty","ErrorCtor","properties","stack","captureStackTrace","Err","16","17","util","Despot","_singletonDespotInstance","makeDespot","18","noopShim","visible","onChange","Event","Keys","hidden","broadcast","./keys","geval","global/document","19","detectPrefix","mozHidden","msHidden","webkitHidden","lowercaseFirst","substring","prefix","20","stream","eos","shift","SIGNAL_FLUSH","onuncork","_corked","destroyer","destroy","_ended","ws","_writableState","finished","toStreams2","rs","objectMode","highWaterMark","wrap","Duplexify","readable","Duplex","_writable","_readable","_readable2","_forwardDestroy","_forwardEnd","_ondrain","_drained","_forwarding","_unwrite","_unread","destroyed","setWritable","setReadable","cork","uncork","unend","ondrain","resume","onreadable","_forward","onend","_readableState","_read","_destroy","_write","enc","_finish","prefinished","ending","Writable","_process","end-of-stream","readable-stream","stream-shift","21","ElementProto","matches","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","selector","element","elements","ownerDocument","querySelectorAll","Boolean","closest","nodeType","parentNode","22","isRequest","setHeader","abort","callback","onlegacyfinish","onfinish","onclose","ended","onrequest","req","23","_events","_maxListeners","defaultMaxListeners","setMaxListeners","isNaN","er","handler","newListener","warned","trace","g","fired","position","listenerCount","evlistener","emitter","24","filesize","descriptor","base","bits","full","fullforms","neg","round","unix","spacer","standard","symbols","suffixes","fullform","exponent","floor","log","symbol","toFixed","charAt","suffix","iec","jedec","partial","opt","25","getFormData","form","elementName","elementNames","elementNameLookup","IGNORED_ELEMENT_TYPES","disabled","getNamedFormElementData","NODE_LIST_CLASSES","getFormElementValue","allRadios","selectedIndex","selected","multiple","files","CHECKED_INPUT_TYPES","TRIM_RE","__esModule","[object HTMLCollection]","[object NodeList]","[object RadioNodeList]","button","fieldset","submit","checkbox","radio","26","listen","27","broadcaster","tuple","./event.js","28","doccy","topLevel","minDoc","min-document","29","win","30","style","display","31","humanizer","passedOptions","ms","humanizerOptions","doHumanization","extend","language","delimiter","conjunction","serialComma","languages","unitMeasures","mo","w","h","piece","abs","dictionary","unitName","unitMS","unitCount","pieces","firstOccupiedUnitIndex","ratioToLargerUnit","previousPiece","largest","render","count","decimal","word","countStr","dictionaryValue","destination","prop","getCzechForm","getPolishForm","getSlavicForm","getLithuanianForm","ar","ca","cs","da","de","en","es","fi","fr","gr","hu","is","it","ja","ko","lt","nl","no","pl","pt","ru","uk","sv","tr","vi","zh_CN","zh_TW","humanizeDuration","getSupportedLanguages","32","appendChild","createTextNode","v","parseClass","isNode","Text","cleanupFuncs","attachEvent","detachEvent","cssText","setProperty","parentElement","replaceChild","textContent","cleanup","el","nodeName","browser-split","class-list","html-element","33","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","34","35","ctor","superCtor","super_","TempCtor","36","insertCss","css","usage","prepend","querySelector","containerId","containers","styleElements","styleElement","createStyleElement","insertBefore","childNodes","styleSheet","37","intervalometer","request","requestParameter","requestId","previousLoopTime","frameIntervalometer","timerIntervalometer","38","preventEvent","eventName","stopImmediatePropagation","proxyProperty","propertyName","sourceObject","copyFirst","proxyEvent","dispatchEvent","dispatchEventAsync","Promise","resolve","then","getAudioFromVideo","video","audio","Audio","crossOrigin","currentSrc","setTime","time","rememberOnly","lastTimeupdateEvent","IIVEvent","currentTime","lastRequests","requestIndex","isPlayerEnded","player","driver","duration","timeDiff","readyState","HAVE_FUTURE_DATA","hasAudio","playbackRate","networkState","NETWORK_IDLE","buffered","load","pause","play","IIV","webkitDisplayingFullscreen","IIVPlay","paused","updater","HAVE_ENOUGH_DATA","forceEvents","IIVPause","addPlayer","muted","wasEmpty","autoplay","preventWithPropOrFullscreen","isAllowed","overloadAPI","iOS8or9","head","matchMedia","everywhere","iPad","ipad","navigator","userAgent","willAutoplay","restoreAutoplay","platform","warn","39","isSlowBuffer","40","numberIsNan","number-is-nan","41","42","isTypedArray","isStrictTypedArray","isLooseTypedArray","Int8Array","Int32Array","Uint8ClampedArray","Uint16Array","Uint32Array","Float32Array","Float64Array","names","strict","loose","[object Int8Array]","[object Int16Array]","[object Int32Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Uint16Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]","43","44","45","isObj","recurser","host","donor","recursive","selective","46","numberIsFinite","isInteger","is-finite","47","48","called","wrappy","proto","49","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","hr","uptime","50","arg1","arg2","arg3","51","vendors","caf","last","_now","next","cp","cancelled","handle","polyfill","performance-now","52","Readable","allowHalfOpen","processNextTick","onEndNT","objectKeys","./_stream_readable","./_stream_writable","core-util-is","process-nextick-args","53","PassThrough","Transform","_transform","chunk","./_stream_transform","54","_uint8ArrayToBuffer","_isUint8Array","OurUint8Array","unshift","ReadableState","readableObjectMode","hwm","defaultHwm","BufferList","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrain","readingMore","decoder","StringDecoder","Stream","readableAddChunk","addToFront","skipChunkCheck","state","onEofChunk","chunkInvalid","getPrototypeOf","addChunk","maybeReadMore","needMoreData","emitReadable","computeNewHighWaterMark","MAX_HWM","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","EElistenerCount","nReadingNextTick","resume_","fromList","clear","fromListPartial","hasStrings","copyFromBufferString","copyFromBuffer","nb","tail","endReadable","endReadableNT","xs","debugUtil","debuglog","destroyImpl","kProxyEvents","_undestroy","undestroy","isPaused","setEncoding","nOrig","doRead","pipe","dest","pipeOpts","onunpipe","unpipeInfo","hasUnpiped","onerror","unpipe","ondata","cleanedUp","needDrain","increasedAwaitDrain","endFn","stdout","stderr","dests","ev","_fromList","./_stream_duplex","./internal/streams/BufferList","./internal/streams/destroy","./internal/streams/stream","isarray","safe-buffer","string_decoder/","55","TransformState","afterTransform","needTransform","transforming","writecb","writechunk","writeencoding","ts","_transformState","transform","flush","_flush","done","_this","err2","56","CorkedRequest","entry","finish","onCorkedFinish","nop","WritableState","writableObjectMode","finalCalled","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","errorEmitted","bufferedRequestCount","corkedRequestsFree","realHasInstance","writev","_writev","final","_final","writeAfterEnd","validChunk","valid","decodeChunk","writeOrBuffer","isBuf","newChunk","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","asyncWrite","afterWrite","onwriteDrain","holder","allBuffers","callFinal","prefinish","need","endWritable","corkReq","setImmediate","internalUtil","deprecate","getBuffer","current","_","hasInstance","setDefaultEncoding","util-deprecate","57","_classCallCheck","instance","Constructor","copyBuffer","58","emitErrorNT","readableDestroyed","writableDestroyed","59","60","./lib/_stream_duplex.js","./lib/_stream_passthrough.js","./lib/_stream_readable.js","./lib/_stream_transform.js","./lib/_stream_writable.js","61","readystate","doc","html","documentElement","change","evt","modern","doScroll","frameElement","polling","./readystate","62","RS","UNKNOWN","states","generate","clean","previously","nr","toUpperCase","63","requestFrame","hasIOS6RequestAnimationFrameBug","webkitRAF","webkitRequestAnimationFrame","rAF","hasMobileDeviceWidth","screen","requiresWebkitprefix","hasNoNavigationTiming","bugCheckresults","timingFnA","timingFnB","notice","hasBug","hasBugNotice","webkitFn","nativeFn","displayResults","clearTimeoutWithId","setTimeoutWithTimestamp","immediateTime","lapsedTime","previousTime","queryRequestAnimationFrame","assignedRequestAnimationFrame","aF","vendor","rqAF","queryCancelAnimationFrame","cancellationNames","map","cancellationNamePrefix","assignedCancelAnimationFrame","prefixedNames","cancellationFunction","prefixedCancelAnimationFrame","requestFrameMain","mozRAF","mozRequestAnimationFrame","mozCAF","mozCancelAnimationFrame","hasMozMismatch","64","copyProps","SafeBuffer","65","getStateLength","66","_normalizeEncoding","retried","normalizeEncoding","nenc","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckIncomplete","utf8CheckExtraBytes","repeat","total","67","serialize","pairs","pushEncodedKeyValuePair","subkey","encodeURIComponent","parseString","pair","decodeURIComponent","parseHeader","line","field","lines","fields","pop","isJSON","mime","Response","xhr","responseType","responseText","statusText","status","_setStatusProperties","header","headers","getAllResponseHeaders","getResponseHeader","_setHeaderProperties","_responseType","body","response","_parseBody","Request","url","_query","_header","parse","rawResponse","statusCode","new_err","_isResponseOK","del","send","RequestBase","ResponseBase","shouldRetry","getXHR","XMLHttpRequest","location","protocol","ActiveXObject","serializeObject","json","xml","urlencoded","form-data","application/x-www-form-urlencoded","application/json","JSON","stringify","_parser","toError","msg","accept","auth","user","pass","btoa","username","password","query","attach","file","_data","_getFormData","append","_formData","FormData","_maxRetries","_retries","_retry","_callback","retries","crossDomainError","crossDomain","agent","_appendQueryString","_sort","queryArr","sort","_isHost","_endCalled","_end","_setTimeouts","onreadystatechange","_responseTimeoutTimer","timedout","_aborted","handleProgress","direction","percent","onprogress","upload","open","_withCredentials","withCredentials","contentType","_serializer","setRequestHeader","patch","post","put","./is-function","./is-object","./request-base","./response-base","./should-retry","component-emitter","68","69","70","_timer","_timeout","_responseTimeout","option","deadline","retry","reject","_fullfilledPromise","innerResolve","innerReject","catch","use","ok","_okCallback","getHeader","unset","redirects","_maxRedirects","sortQuery","_timeoutError","reason","errno","71","utils","ct","params","links","link","parseLinks","statusType","info","redirect","clientError","serverError","accepted","noContent","badRequest","unauthorized","notAcceptable","forbidden","notFound","./utils","72","ERROR_CODES","73","reduce","cleanHeader","shouldStripCookie","74","is-typedarray","75","MODEL","NAME","TYPE","VENDOR","VERSION","MOBILE","TABLET","regexes","extensions","margedRegexes","has","str1","str2","lowerize","major","mapper","rgx","ua","arrays","q","regex","props","maps","oldsafari","1.0","1.2","1.3","2.0","2.0.2","2.0.3","2.0.4","?","device","amazon","model","Fire Phone","sprint","Evo Shift 4G","HTC","Sprint","os","windows","ME","NT 3.11","NT 4.0","2000","XP","Vista","8.1","RT","cpu","engine","Browser","CPU","arch","Device","Engine","OS","UAParser","uastring","getResult","rgxmap","getBrowser","getCPU","getDevice","getEngine","getOS","getUA","setUA","BROWSER","MAJOR","ARCHITECTURE","DEVICE","CONSOLE","SMARTTV","WEARABLE","EMBEDDED","ENGINE","$","jQuery","Zepto","parser","76","config","localStorage","77","dup","78","79","ctx","seen","stylize","stylizeNoColor","depth","colors","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","styles","arrayToHash","hash","idx","recurseTimes","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","formatError","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","simple","desc","getOwnPropertyDescriptor","numLinesEst","prev","cur","pad","timestamp","getHours","getMinutes","getSeconds","getDate","months","getMonth","formatRegExp","format","objects","noDeprecation","throwDeprecation","traceDeprecation","debugEnviron","debugs","NODE_DEBUG","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","boolean","null","date","regexp","origin","./support/isBuffer","80","isStr","81","buildProxy","socketWrite","socketEnd","proxy","_destroyed","duplexify","WS","protocols","socketWriteBrowser","socket","bufferedAmount","bufferSize","bufferTimeout","coerceToBuffer","isNative","WebSocket","OPEN","binary","close","chunks","buffers","browserBufferSize","browserBufferTimeout","binaryType","onopen","onmessage","82","MozWebSocket","83","wrapper","84","description","author","contributors","email","homepage","repository","license","readmeFilename","main","scripts","minor","engines","node","yarn","npm","keywords","dependencies","add-eventlistener-with-options","animitter","audio-sample","canvas-to-buffer","classlist.js","create-error","defined","despot","document-visibility","element-closest","get-form-data","humanize-duration","hyperscript","insert-css","iphone-inline-video","is-power-of-two","keymirror","merge-recursive","number-is-integer","request-frame","superagent","ua-parser-js","websocket-stream","devDependencies","babel-polyfill","babel-preset-env","babelify","body-parser","browserify","connect-send-json","glob","gulp","gulp-autoprefixer","gulp-bump","gulp-bytediff","gulp-concat","gulp-connect","gulp-cssnano","gulp-derequire","gulp-if","gulp-inject-string","gulp-load-plugins","gulp-plumber","gulp-rename","gulp-sourcemaps","gulp-standard","gulp-stylus","gulp-todo","gulp-uglify","gulp-util","minimist","nib","router","ssl-root-cas","tap-spec","tape","tape-run","vinyl-buffer","vinyl-source-stream","watchify","85","_interopRequireDefault","adjustOptions","localOptions","_mergeRecursive2","_options2","collectLogger","_collectLogger2","_optionsWrapper2","addFunctions","_browser2","_readystate2","_util2","_constants2","_events2","_eventEmitter2","_container2","_replay2","_resource2","replay","show","isBuilt","BUILT","videomail","interactive","getElementById","build","setReplay","hasElement","getReplay","getParentElement","addPlayerDimensions","isOutsideElementOf","hideForm","loadForm","setVideomail","showReplayOnly","startOver","hide","unload","canRecord","isDirty","getLogLines","getLines","building","previousState","public","./constants","./events","./options","./resource","./util/browser","./util/collectLogger","./util/eventEmitter","./wrappers/container","./wrappers/optionsWrapper","./wrappers/visuals/replay","86","SITE_NAME_LABEL","ENC_TYPE_APP_JSON","ENC_TYPE_FORM","87","_keymirror2","FORM_READY","LOADING_USER_MEDIA","USER_MEDIA_READY","CONNECTING","CONNECTED","DISCONNECTED","COUNTDOWN","RECORDING","STOPPING","PROGRESS","BEGIN_AUDIO_ENCODING","BEGIN_VIDEO_ENCODING","RESETTING","PAUSED","RESUMING","PREVIEW","PREVIEW_SHOWN","REPLAY_SHOWN","INVALID","VALIDATING","VALID","SUBMITTING","SUBMITTED","ERROR","BLOCKING","SENDING_FIRST_FRAME","FIRST_FRAME_SENT","HIDE","NOTIFYING","ENABLING_AUDIO","DISABLING_AUDIO","LOADED_META_DATA","EVENT_EMITTED","GOING_BACK","ASKING_WEBCAM_PERMISSION","VISIBLE","INVISIBLE","88","_package","PRODUCTION","NODE_ENV","logStackSize","verbose","baseUrl","socketUrl","siteName","cache","enablePause","enableAutoPause","enableSpace","disableSubmit","enableAutoValidation","enctype","selectors","replayClass","userMediaClass","visualsClass","buttonClass","buttonsClass","recordButtonClass","pauseButtonClass","resumeButtonClass","previewButtonClass","recordAgainButtonClass","submitButtonClass","subjectInputName","fromInputName","toInputName","bodyInputName","keyInputName","parentKeyInputName","aliasInputName","formId","submitButtonId","submitButtonSelector","enabled","switch","volume","limitSeconds","countdown","pausedHeader","pausedHint","sending","limitReached","buttons","record","recordAgain","preview","notifier","entertain","entertainClass","entertainLimit","entertainInterval","timeouts","userMedia","connection","pingInterval","adjustFormDataBeforePosting","defaults","to","subject","displayErrors","adjustFormOnBrowserError","reportErrors","fakeUaString","../package.json","89","applyDefaultValue","applyDefaultValues","packError","fetch","alias","_superagent2","CACHE_KEY","identifier","queryParams","reportError","adjustedVideomail","formData","formType","90","91","getAudioContext","vcAudioContext","AudioContext","webkitAudioContext","onAudioProcess","isRecording","inputBuffer","getChannelData","_audioSample2","scriptProcessor","init","localMediaStream","audioInput","createGain","createMediaStreamSource","_videomailError2","_isPowerOfTwo2","gain","createScriptProcessor","CHANNELS","connect","onaudioprocess","getSampleRate","sampleRate","./videomailError","92","_typeof","iterator","_uaParserJs2","_defined2","getRecommendation","warning","firefox","firefoxDownload","isChrome","chromeDownload","isChromium","chromiumDownload","isIE","edgeDownload","isSafari","getUserMediaWarning","isIOS","isChromeBased","isFirefox","getPlaybackWarning","browseHappyLink","canPlayType","videoType","uaParser","osVersion","isWindows","isEdge","isOpera","isAndroid","chromeBased","okBrowser","hasNavigator","mediaDevices","getUserMedia","getUserMedia_","checkRecordingCapabilities","IOS_PROBLEM","BROWSER_PROBLEM","checkPlaybackCapabilities","getVideoType","checkBufferTypes","getNoAccessIssue","explanation","isMobile","getUsefulData","93","lifo","level","parameters","addContainerId","firstArgument","toLocaleTimeString","groupCollapsed","groupEnd","./browser","94","moreArguments","_despot2","./../events","95","_filesize3","_humanizeDuration2","toTime","96","97","arrayToString","DASH","SEPARATOR","sLines","propertyNames","excludes","exclude","anything","98","_requestFrame2","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","URL","webkitURL","mozURL","msURL","99","_createError2","_pretty2","VideomailError","logLines","useragent","pretty","PERMISSION_DENIED","NOT_ALLOWED_ERROR","NOT_CONNECTED","DOM_EXCEPTION","STARTING_FAILED","MEDIA_DEVICE_NOT_SUPPORTED","WEBCAM_PROBLEM","hasClass","isBrowserProblem","browserProblem","errType","href","originalExplanation","details","errCode","resource","videomailError","client","getClassList","removeDimensions","hideButtons","./../resource","./pretty","100","_hyperscript2","_hidden2","_contains2","Buttons","isShown","disable","tagName","enable","adjustButton","buttonElement","replaceClickHandler","clickHandler","onclick","preventDefault","makeRadioButtonPair","radioButtonElement","radioButtonGroup","htmlFor","label","submitButton","buttonsElement","changeHandler","onchange","makeButton","innerHTML","buildButtons","hasForm","recordButton","pauseButton","resumeButton","previewButton","recordAgainButton","audioOffRadioPair","isAudioEnabled","disableAudio","audioOnRadioPair","enableAudio","onFormReady","onGoingBack","onReplayShown","onUserMediaReady","onResetting","onPreview","onFirstFrameSent","onRecording","framesCount","onResuming","onStopping","onCountdown","onSubmitting","onSubmitted","onInvalid","onValid","onHidden","onEnablingAudio","onDisablingAudio","beginWaiting","initEvents","adjustButtonsForPause","built","enableSubmit","isCountingDown","isRecordAgainButtonEnabled","isRecordButtonEnabled","setSubmitButton","newSubmitButton","getSubmitButton","./../util/eventEmitter","101","_insertCss2","_documentVisibility2","_dimension2","_visuals2","_buttons2","_form2","_mainMinCss2","Container","prependDefaultCss","findParentFormElement","containerElement","getFormElement","buildForm","formElement","findSubmitButton","buildChildren","visuals","processError","hasError","visibility","isAutoPauseEnabled","keyCode","which","pauseOrResume","recordOrStop","unloadChildren","correctDimensions","validateOptions","hasDefinedWidth","hasDefinedHeight","getRecorderWidth","endWaiting","hideMySelf","trimEmail","submitVideomail","FORM_FIELDS","parentKey","videomailFormData","isPost","recordingStats","getRecordingStats","getRecorderHeight","isPut","submitForm","videomailResponse","finalizeSubmissions","formResponse","submitted","htmlElement","lastValidation","playerHeight","calculateHeight","responsive","videoWidth","ratio","playerWidth","calculateWidth","videoHeight","limitWidth","limitHeight","fnOptions","areVisualsHidden","isHidden","isNotifierBuilt","child","reference","isReplayShown","newReplay","isNotifying","back","validate","runValidation","isConnected","isUserMediaLoaded","isConnecting","whyInvalid","visualsValid","isReady","invalidInput","getInvalidElement","disableForm","buttonsToo","enableForm","submitAll","err1","baseURI","isRecorderUnloaded","loadVideomail","setAudioEnabled","doTheSubmit","./../styles/css/main.min.css.js","./../util/videomailError","./buttons","./dimension","./form","./visuals","102","getOuterWidth","rect","getBoundingClientRect","right","left","figureMinHeight","_numberIsInteger2","outerWidth","limitedWidth","limitedHeight","scrollHeight","clientHeight","getRatio","calculatedWidth","103","_getFormData2","Form","getData","isNotButton","setDisabled","hideAll","getInputElements","getSelectElements","hideSubmitButton","startListeningToSubmitEvents","disableContainerValidation","keyInput","input","inputElement","inputElements","selectElements","videomailKey","validity","formIsValid","checkValidity","104","audioEnabled","hasDefinedDimension","hasDefinedDimensions","105","_recorder2","_notifier2","_recorderInsides2","Visuals","buildNoScriptTag","noScriptElement","visualsElement","recorderInsides","blockingOptions","isRecordable","recorder","removeChild","hidePause","isVisible","showPause","resumeCountdown","startCountdown","getRecorder","getAudioSampleRate","showVisuals","isUnloaded","checkTimer","intervalSum","hideReplay","hideRecorder","./visuals/inside/recorderInsides","./visuals/notifier","./visuals/recorder","./visuals/replay","106","fire","countBackward","countdownElement","intervalId","setInterval","clearInterval","107","pausedBlockElement","pausedHeaderElement","pausedHintElement","./../../../../util/videomailError","108","recordNoteElement","setNear","setNigh","109","recordNote","thresholdReached","secs","threshold","isNear","nearComputed","endIsNigh","endNighComputed","recordTimerElement","mins","remainingSeconds","getSecondsRecorded","getStartSeconds","isStopped","started","check","newCountdown","110","_countdown2","_pausedNote2","_recordNote2","_recordTimer2","RecorderInsides","startRecording","recordTimer","resumeRecording","stopRecording","pauseRecording","hideCountdown","pausedNote","./../../../events","./../../../util/eventEmitter","./recorder/countdown","./recorder/pausedNote","./recorder/recordNote","./recorder/recordTimer","111","Notifier","lead","notify","stillWait","onConnecting","onLoadingUserMedia","onProgress","frameProgress","sampleProgress","overallProgress","setExplanation","onBeginVideoEncoding","hideExplanation","notifyElement","runEntertainment","entertaining","randomBackgroundClass","random","entertainTimeoutId","cancelEntertainment","setMessage","messageOptions","problem","messageElement","explanationElement","blocking","notifyOptions","./../../events","./../../util/eventEmitter","112","_websocketStream2","_canvasToBuffer2","_animitter2","_userMedia2","_humanize2","PIPE_SYMBOL","Recorder","writeStream","onFlushedCallback","sendPings","stopPings","onAudioSample","audioSample","samplesCount","recorderElement","userMediaLoading","unloaded","submitting","userMediaLoaded","createLoop","clearRetryTimeout","retryTimeout","clearUserMediaTimeout","userMediaTimeout","calculateFrameProgress","confirmedFrameNumber","calculateSampleProgress","confirmedSampleNumber","updateOverallProgress","updateFrameProgress","frame","updateSampleProgress","sample","mp4","setMp4Source","webm","setWebMSource","waitingTime","stopTime","bytesSum","initSocket","connected","connecting","url2Connect","perMessageDeflate","command","executeCommand","showUserMedia","userMediaErrorCallback","getCharacteristics","getUserMediaCallback","localStream","loadGenuineUserMedia","constraints","facingMode","frameRate","ideal","loadUserMedia","writeCommand","commandObj","disconnect","unloadRemainingEventListeners","getIntervalSum","getAvgInterval","reInitialiseAudio","onFlushed","frameNumber","newLoop","draw","originalAnimationFrameObject","drawImage","getRawVisuals","recordingBuffer","recordingBufferLength","setAnimationFrameObject","newObj","restoreAnimationFrameObject","loopWithTimeouts","wantedInterval","processingTime","buildElement","userMediaVideoWidth","getVideoWidth","getVideoHeight","avgFps","wantedFps","avgInterval","cause","eventType","createCanvas","getContext","getRawWidth","getRawHeight","getRawVisualUserMedia","./../../constants","./../../util/browser","./../../util/humanize","./../../util/pretty","./../../util/videomailError","./userMedia","113","_addEventlistenerWithOptions2","_iphoneInlineVideo2","Replay","replayElement","isStandalone","copyAttributes","newVideomail","attributeContainer","attribute","setVideoSource","bustCache","getVideoSource","poster","recorderWidth","recorderHeight","sources","getElementsByTagName","114","attachMediaStream","currentVisualStream","rawVisualUserMedia","srcObject","createObjectURL","setVisualStream","removeAttribute","getVisualStream","mozSrcObject","hasEnded","visualStream","hasInvalidDimensions","getTracks","tracks","getVideoTracks","videoTracks","getFirstVideoTrack","videoTrack","logEvent","EVENT_ASCII","isPromise","outputEvent","audioRecorder","_mediaEvents2","videoCallback","audioCallback","endedEarlyCallback","audioRecord","unloadAllEventListeners","onPlay","onLoadedMetaData","played","playingPromiseReached","fireCallbacks","onPlayReached","onLoadedMetaDataReached","_audioRecorder2","remote","kind","aboutToInitialize","newStopApiFound","track","rawWidth","widthDefined","rawHeight","audioSampleRate","./../../util/audioRecorder","./../../util/mediaEvents","videomail-client","_standardize2","_client2","./client","./util/standardize"],"mappings":"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","file":"videomail-client.min.js","sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.VideomailClient = f()}})(function(){var define,module,exports;return (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);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 4 && arguments[4] !== undefined ? arguments[4] : 'passive';\n\n\t if (target.addEventListener !== undefined) {\n\t var listenerOptions = _checkSupport.SupportMap[optionName] ? Object.assign({}, options, _defineProperty({}, optionName, true)) : options;\n\t target.addEventListener(name, listener, listenerOptions);\n\t }\n\t}\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.SupportMap = undefined;\n\n\tvar _OptionsMap;\n\n\tvar _constants = __webpack_require__(2);\n\n\tfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\tvar OptionsMap = (_OptionsMap = {}, _defineProperty(_OptionsMap, _constants.PASSIVE, false), _defineProperty(_OptionsMap, _constants.CAPTURE, false), _defineProperty(_OptionsMap, _constants.ONCE, false), _OptionsMap);\n\n\tvar getOptionsMap = function getOptionsMap() {\n\t Object.keys(OptionsMap).forEach(function (k, i) {\n\t OptionsMap[k] = checkSupportForProperty(k);\n\t });\n\n\t return OptionsMap;\n\t};\n\n\tfunction checkSupportForProperty(property) {\n\t if (!!OptionsMap[property]) {\n\t return OptionsMap[property];\n\t }\n\n\t try {\n\t var opts = Object.defineProperty({}, property, {\n\t get: function get() {\n\t OptionsMap[property] = true;\n\t }\n\t });\n\t window.addEventListener(\"test\", null, opts);\n\t window.removeListener(\"test\", null);\n\t } catch (e) {}\n\n\t return OptionsMap[property];\n\t}\n\n\tvar SupportMap = exports.SupportMap = getOptionsMap();\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar PASSIVE = exports.PASSIVE = 'passive';\n\tvar CAPTURE = exports.CAPTURE = 'capture';\n\tvar ONCE = exports.ONCE = 'once';\n\n/***/ }\n/******/ ])\n});\n;\n},{}],2:[function(_dereq_,module,exports){\nvar EventEmitter = _dereq_('events').EventEmitter,\n inherits = _dereq_('inherits'),\n raf = _dereq_('raf'),\n methods;\n\n\n//the same as off window unless polyfilled or in node\nvar defaultRAFObject = {\n requestAnimationFrame: raf,\n cancelAnimationFrame: raf.cancel\n};\n\nfunction returnTrue(){ return true; }\n\n//manage FPS if < 60, else return true;\nfunction makeThrottle(fps){\n var delay = 1000/fps;\n var lastTime = Date.now();\n\n\n if( fps<=0 || fps === Infinity ){\n return returnTrue;\n }\n\n //if an fps throttle has been set then we'll assume\n //it natively runs at 60fps,\n var half = Math.ceil(1000 / 60) / 2;\n\n return function(){\n //if a custom fps is requested\n var now = Date.now();\n //is this frame within 8.5ms of the target?\n //if so then next frame is gonna be too late\n if(now - lastTime < delay - half){\n return false;\n }\n lastTime = now;\n return true;\n };\n}\n\n\n/**\n * Animitter provides event-based loops for the browser and node,\n * using `requestAnimationFrame`\n * @param {Object} [opts]\n * @param {Number} [opts.fps=Infinity] the framerate requested, defaults to as fast as it can (60fps on window)\n * @param {Number} [opts.delay=0] milliseconds delay between invoking `start` and initializing the loop\n * @param {Object} [opts.requestAnimationFrameObject=global] the object on which to find `requestAnimationFrame` and `cancelAnimationFrame` methods\n * @param {Boolean} [opts.fixedDelta=false] if true, timestamps will pretend to be executed at fixed intervals always\n * @constructor\n */\nfunction Animitter( opts ){\n opts = opts || {};\n\n this.__delay = opts.delay || 0;\n\n /** @expose */\n this.fixedDelta = !!opts.fixedDelta;\n\n /** @expose */\n this.frameCount = 0;\n /** @expose */\n this.deltaTime = 0;\n /** @expose */\n this.elapsedTime = 0;\n\n /** @private */\n this.__running = false;\n /** @private */\n this.__completed = false;\n\n this.setFPS(opts.fps || Infinity);\n this.setRequestAnimationFrameObject(opts.requestAnimationFrameObject || defaultRAFObject);\n}\n\ninherits(Animitter, EventEmitter);\n\nfunction onStart(scope){\n var now = Date.now();\n var rAFID;\n //dont let a second animation start on the same object\n //use *.on('update',fn)* instead\n if(scope.__running){\n return scope;\n }\n\n exports.running += 1;\n scope.__running = true;\n scope.__lastTime = now;\n scope.deltaTime = 0;\n\n //emit **start** once at the beginning\n scope.emit('start', scope.deltaTime, 0, scope.frameCount);\n\n var lastRAFObject = scope.requestAnimationFrameObject;\n\n var drawFrame = function(){\n if(lastRAFObject !== scope.requestAnimationFrameObject){\n //if the requestAnimationFrameObject switched in-between,\n //then re-request with the new one to ensure proper update execution context\n //i.e. VRDisplay#submitFrame() may only be requested through VRDisplay#requestAnimationFrame(drawFrame)\n lastRAFObject = scope.requestAnimationFrameObject;\n scope.requestAnimationFrameObject.requestAnimationFrame(drawFrame);\n return;\n }\n if(scope.__isReadyForUpdate()){\n scope.update();\n }\n if(scope.__running){\n rAFID = scope.requestAnimationFrameObject.requestAnimationFrame(drawFrame);\n } else {\n scope.requestAnimationFrameObject.cancelAnimationFrame(rAFID);\n }\n };\n\n scope.requestAnimationFrameObject.requestAnimationFrame(drawFrame);\n\n return scope;\n}\n\nmethods = {\n //EventEmitter Aliases\n off : EventEmitter.prototype.removeListener,\n trigger : EventEmitter.prototype.emit,\n\n /**\n * stops the animation and marks it as completed\n * @emit Animitter#complete\n * @returns {Animitter}\n */\n complete: function(){\n this.stop();\n this.__completed = true;\n this.emit('complete', this.frameCount, this.deltaTime);\n return this;\n },\n\n /**\n * stops the animation and removes all listeners\n * @emit Animitter#stop\n * @returns {Animitter}\n */\n dispose: function(){\n this.stop();\n this.removeAllListeners();\n return this;\n },\n\n /**\n * get milliseconds between the last 2 updates\n *\n * @return {Number}\n */\n getDeltaTime: function(){\n return this.deltaTime;\n },\n\n /**\n * get the total milliseconds that the animation has ran.\n * This is the cumlative value of the deltaTime between frames\n *\n * @return {Number}\n */\n getElapsedTime: function(){\n return this.elapsedTime;\n },\n\n /**\n * get the instances frames per second as calculated by the last delta\n *\n * @return {Number}\n */\n getFPS: function(){\n return this.deltaTime > 0 ? 1000 / this.deltaTime : 0;\n if(this.deltaTime){\n return 1000 / this.deltaTime;\n }\n },\n\n /**\n * get the explicit FPS limit set via `Animitter#setFPS(fps)` or\n * via the initial `options.fps` property\n *\n * @returns {Number} either as set or Infinity\n */\n getFPSLimit: function(){\n return this.__fps;\n },\n\n /**\n * get the number of frames that have occurred\n *\n * @return {Number}\n */\n getFrameCount: function(){\n return this.frameCount;\n },\n\n\n /**\n * get the object providing `requestAnimationFrame`\n * and `cancelAnimationFrame` methods\n * @return {Object}\n */\n getRequestAnimationFrameObject: function(){\n return this.requestAnimationFrameObject;\n },\n\n /**\n * is the animation loop active\n *\n * @return {boolean}\n */\n isRunning: function(){\n return this.__running;\n },\n\n /**\n * is the animation marked as completed\n *\n * @return {boolean}\n */\n isCompleted: function(){\n return this.__completed;\n },\n\n /**\n * reset the animation loop, marks as incomplete,\n * leaves listeners intact\n *\n * @emit Animitter#reset\n * @return {Animitter}\n */\n reset: function(){\n this.stop();\n this.__completed = false;\n this.__lastTime = 0;\n this.deltaTime = 0;\n this.elapsedTime = 0;\n this.frameCount = 0;\n\n this.emit('reset', 0, 0, this.frameCount);\n return this;\n },\n\n /**\n * set the framerate for the animation loop\n *\n * @param {Number} fps\n * @return {Animitter}\n */\n setFPS: function(fps){\n this.__fps = fps;\n this.__isReadyForUpdate = makeThrottle(fps);\n return this;\n },\n\n /**\n * set the object that will provide `requestAnimationFrame`\n * and `cancelAnimationFrame` methods to this instance\n * @param {Object} object\n * @return {Animitter}\n */\n setRequestAnimationFrameObject: function(object){\n if(typeof object.requestAnimationFrame !== 'function' || typeof object.cancelAnimationFrame !== 'function'){\n throw new Error(\"Invalid object provide to `setRequestAnimationFrameObject`\");\n }\n this.requestAnimationFrameObject = object;\n return this;\n },\n\n /**\n * start an animation loop\n * @emit Animitter#start\n * @return {Animitter}\n */\n start: function(){\n var self = this;\n if(this.__delay){\n setTimeout(function(){\n onStart(self);\n }, this.__delay);\n } else {\n onStart(this);\n }\n return this;\n },\n\n /**\n * stops the animation loop, does not mark as completed\n *\n * @emit Animitter#stop\n * @return {Animitter}\n */\n stop: function(){\n if( this.__running ){\n this.__running = false;\n exports.running -= 1;\n this.emit('stop', this.deltaTime, this.elapsedTime, this.frameCount);\n }\n return this;\n },\n\n /**\n * update the animation loop once\n *\n * @emit Animitter#update\n * @return {Animitter}\n */\n update: function(){\n this.frameCount++;\n /** @private */\n var now = Date.now();\n this.__lastTime = this.__lastTime || now;\n this.deltaTime = (this.fixedDelta || exports.globalFixedDelta) ? 1000/Math.min(60, this.__fps) : now - this.__lastTime;\n this.elapsedTime += this.deltaTime;\n this.__lastTime = now;\n\n this.emit('update', this.deltaTime, this.elapsedTime, this.frameCount);\n return this;\n }\n};\n\n\n\nfor(var method in methods){\n Animitter.prototype[method] = methods[method];\n}\n\n\n/**\n * create an animitter instance,\n * @param {Object} [options]\n * @param {Function} fn( deltaTime:Number, elapsedTime:Number, frameCount:Number )\n * @returns {Animitter}\n */\nfunction createAnimitter(options, fn){\n\n if( arguments.length === 1 && typeof options === 'function'){\n fn = options;\n options = {};\n }\n\n var _instance = new Animitter( options );\n\n if( fn ){\n _instance.on('update', fn);\n }\n\n return _instance;\n}\n\nmodule.exports = exports = createAnimitter;\n\n/**\n * create an animitter instance,\n * where the scope is bound in all functions\n * @param {Object} [options]\n * @param {Function} fn( deltaTime:Number, elapsedTime:Number, frameCount:Number )\n * @returns {Animitter}\n */\nexports.bound = function(options, fn){\n\n var loop = createAnimitter(options, fn),\n functionKeys = functions(Animitter.prototype),\n hasBind = !!Function.prototype.bind,\n fnKey;\n\n for(var i=0; i 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n}\n\nfunction byteLength (b64) {\n // base64 is 4/3 + up to two characters of the original data\n return (b64.length * 3 / 4) - placeHoldersCount(b64)\n}\n\nfunction toByteArray (b64) {\n var i, l, tmp, placeHolders, arr\n var len = b64.length\n placeHolders = placeHoldersCount(b64)\n\n arr = new Arr((len * 3 / 4) - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0; i < l; i += 4) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp >> 16) & 0xFF\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n\n},{}],5:[function(_dereq_,module,exports){\n\n},{}],6:[function(_dereq_,module,exports){\n/*!\n * Cross-Browser Split 1.1.1\n * Copyright 2007-2012 Steven Levithan \n * Available under the MIT License\n * ECMAScript compliant, uniform cross-browser split method\n */\n\n/**\n * Splits a string into an array of strings using a regex or string separator. Matches of the\n * separator are not included in the result array. However, if `separator` is a regex that contains\n * capturing groups, backreferences are spliced into the result each time `separator` is matched.\n * Fixes browser bugs compared to the native `String.prototype.split` and can be used reliably\n * cross-browser.\n * @param {String} str String to split.\n * @param {RegExp|String} separator Regex or string to use for separating the string.\n * @param {Number} [limit] Maximum number of items to include in the result array.\n * @returns {Array} Array of substrings.\n * @example\n *\n * // Basic use\n * split('a b c d', ' ');\n * // -> ['a', 'b', 'c', 'd']\n *\n * // With limit\n * split('a b c d', ' ', 2);\n * // -> ['a', 'b']\n *\n * // Backreferences in result array\n * split('..word1 word2..', /([a-z]+)(\\d+)/i);\n * // -> ['..', 'word', '1', ' ', 'word', '2', '..']\n */\nmodule.exports = (function split(undef) {\n\n var nativeSplit = String.prototype.split,\n compliantExecNpcg = /()??/.exec(\"\")[1] === undef,\n // NPCG: nonparticipating capturing group\n self;\n\n self = function(str, separator, limit) {\n // If `separator` is not a regex, use `nativeSplit`\n if (Object.prototype.toString.call(separator) !== \"[object RegExp]\") {\n return nativeSplit.call(str, separator, limit);\n }\n var output = [],\n flags = (separator.ignoreCase ? \"i\" : \"\") + (separator.multiline ? \"m\" : \"\") + (separator.extended ? \"x\" : \"\") + // Proposed for ES6\n (separator.sticky ? \"y\" : \"\"),\n // Firefox 3+\n lastLastIndex = 0,\n // Make `global` and avoid `lastIndex` issues by working with a copy\n separator = new RegExp(separator.source, flags + \"g\"),\n separator2, match, lastIndex, lastLength;\n str += \"\"; // Type-convert\n if (!compliantExecNpcg) {\n // Doesn't need flags gy, but they don't hurt\n separator2 = new RegExp(\"^\" + separator.source + \"$(?!\\\\s)\", flags);\n }\n /* Values for `limit`, per the spec:\n * If undefined: 4294967295 // Math.pow(2, 32) - 1\n * If 0, Infinity, or NaN: 0\n * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\n * If negative number: 4294967296 - Math.floor(Math.abs(limit))\n * If other: Type-convert, then use the above rules\n */\n limit = limit === undef ? -1 >>> 0 : // Math.pow(2, 32) - 1\n limit >>> 0; // ToUint32(limit)\n while (match = separator.exec(str)) {\n // `separator.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0].length;\n if (lastIndex > lastLastIndex) {\n output.push(str.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for\n // nonparticipating capturing groups\n if (!compliantExecNpcg && match.length > 1) {\n match[0].replace(separator2, function() {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undef) {\n match[i] = undef;\n }\n }\n });\n }\n if (match.length > 1 && match.index < str.length) {\n Array.prototype.push.apply(output, match.slice(1));\n }\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= limit) {\n break;\n }\n }\n if (separator.lastIndex === match.index) {\n separator.lastIndex++; // Avoid an infinite loop\n }\n }\n if (lastLastIndex === str.length) {\n if (lastLength || !separator.test(\"\")) {\n output.push(\"\");\n }\n } else {\n output.push(str.slice(lastLastIndex));\n }\n return output.length > limit ? output.slice(0, limit) : output;\n };\n\n return self;\n})();\n\n},{}],7:[function(_dereq_,module,exports){\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],8:[function(_dereq_,module,exports){\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = _dereq_('base64-js')\nvar ieee754 = _dereq_('ieee754')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('Invalid typed array length')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n buf.__proto__ = Buffer.prototype\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\n// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\nif (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true,\n enumerable: false,\n writable: false\n })\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (value instanceof ArrayBuffer) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n return fromObject(value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nBuffer.prototype.__proto__ = Uint8Array.prototype\nBuffer.__proto__ = Uint8Array\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n buf.__proto__ = Buffer.prototype\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj) {\n if (isArrayBufferView(obj) || 'length' in obj) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (isArrayBufferView(string) || string instanceof ArrayBuffer) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n newBuf.__proto__ = Buffer.prototype\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : new Buffer(val, encoding)\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// Node 0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`\nfunction isArrayBufferView (obj) {\n return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)\n}\n\nfunction numberIsNaN (obj) {\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n},{\"base64-js\":4,\"ieee754\":33}],9:[function(_dereq_,module,exports){\nvar toBuffer = _dereq_('typedarray-to-buffer'),\n isBrowser = typeof(document) !== 'undefined' && typeof(document.createElement) === 'function',\n\n // cached, used only once for browser environments\n verifiedImageType\n\nmodule.exports = function(canvas, options) {\n\n var self = this, quality\n\n options = options ? options : {}\n options.image = options.image ? options.image : {}\n options.image.types = options.image.types ? options.image.types : []\n\n // validate some options this class needs\n if (options.image.types.length > 2)\n throw new Error('Too many image types are specified!')\n\n else if (options.image.types.length < 1) {\n\n // Set a default image type, just to be robust\n options.image.types = isBrowser ? ['webp', 'jpeg'] : ['png']\n }\n\n if (!options.image.quality)\n options.image.quality = .5 // default\n\n quality = parseFloat(options.image.quality)\n\n function composeImageType(index) {\n var imageType\n\n if (options.image.types[index])\n imageType = 'image/' + options.image.types[index]\n\n return imageType\n }\n\n function isMatch(uri, imageType) {\n var match = uri && uri.match(imageType)\n\n match && options.debug && options.debug('Image type %s verified', imageType)\n\n return match\n }\n\n // Performance tweak, we do not need a big canvas for finding out the supported image type\n function getTestCanvas() {\n\n var testCanvas\n\n if (isBrowser) {\n testCanvas = document.createElement('canvas')\n testCanvas.width = testCanvas.height = 1\n } else\n testCanvas = canvas\n\n return testCanvas\n }\n\n function canvasSupportsImageTypeAsync(imageType, cb) {\n try {\n getTestCanvas().toDataURL(imageType, function(err, uri) {\n if (err)\n cb(err)\n else\n cb(null, isMatch(uri, imageType))\n })\n } catch (exc) {\n cb(null, false)\n }\n }\n\n function canvasSupportsImageTypeSync(imageType) {\n var match\n\n try {\n var testCanvas = getTestCanvas(),\n uri = testCanvas.toDataURL && testCanvas.toDataURL(imageType)\n\n match = isMatch(uri, imageType)\n } catch (exc) {\n\n // Can happen when i.E. a spider is coming. Just be robust here and continue.\n options.debug &&\n options.logger.debug('Failed to call toDataURL() on canvas for image type %s', imageType)\n }\n\n return match\n }\n\n function verifyImageTypeAsync(imageType, cb) {\n canvasSupportsImageTypeAsync(imageType, function(err, match) {\n if (err)\n cb(err)\n else {\n\n if (match)\n cb(null, imageType)\n else {\n imageType = composeImageType(1)\n\n canvasSupportsImageTypeAsync(imageType, function(err, match) {\n if (err)\n cb(err)\n else\n cb(null, match ? imageType: null)\n })\n }\n }\n })\n }\n\n function verifyImageTypeSync(imageType) {\n if (!canvasSupportsImageTypeSync(imageType)) {\n\n if (options.image.types[1]) {\n imageType = composeImageType(1)\n\n if (!canvasSupportsImageTypeSync(imageType))\n imageType = null\n } else\n imageType = null\n }\n\n !imageType && options.debug && options.logger.debug('Unable to verify image type')\n\n return imageType\n }\n\n // callbacks are needed for server side tests\n function verifyImageType(cb) {\n var imageType = composeImageType(0)\n\n if (cb) {\n verifyImageTypeAsync(imageType, cb)\n } else {\n return verifyImageTypeSync(imageType)\n }\n }\n\n // this method is proven to be fast, see\n // http://jsperf.com/data-uri-to-buffer-performance/3\n function uriToBuffer(uri) {\n\n var uri = uri.split(',')[1],\n bytes\n\n // Beware that the atob function might be a static one for server side tests\n if (typeof(atob) === 'function')\n bytes = atob(uri)\n else if (typeof(self.constructor.atob) === 'function')\n bytes = self.constructor.atob(uri)\n else\n throw new Error('atob function is missing')\n\n var arr = new Uint8Array(bytes.length)\n\n // http://mrale.ph/blog/2014/12/24/array-length-caching.html\n for (var i = 0, l = bytes.length; i < l; i++) {\n arr[i] = bytes.charCodeAt(i)\n }\n\n return toBuffer(arr)\n }\n\n function toBufferSync() {\n var imageType = self.getImageType(),\n buffer\n\n if (imageType) {\n var uri = canvas.toDataURL(imageType, quality)\n buffer = uriToBuffer(uri)\n }\n\n return buffer\n }\n\n function toBufferAsync(cb) {\n self.getImageType(function(err, imageType) {\n if (err)\n cb(err)\n else if (!imageType)\n cb()\n else\n canvas.toDataURL(imageType, function(err, uri) {\n if (err)\n cb(err)\n else\n cb(null, uriToBuffer(uri))\n })\n })\n }\n\n this.toBuffer = function(cb) {\n if (cb)\n toBufferAsync(cb)\n else\n return toBufferSync()\n }\n\n // browsers do not need a callback, but tests do\n this.getImageType = function(cb) {\n\n // only run for the first time this constructor is called and\n // cache result for the next calls\n\n if (cb) {\n if (!verifiedImageType || !isBrowser)\n verifyImageType(function(err, newVerifiedImageType) {\n if (err)\n cb(err)\n else {\n verifiedImageType = newVerifiedImageType\n cb(null, verifiedImageType)\n }\n })\n else\n cb(null, verifiedImageType)\n\n } else {\n // on the browser side we do cache it for speed\n if (!verifiedImageType || !isBrowser)\n verifiedImageType = verifyImageType()\n\n return verifiedImageType\n }\n }\n}\n\n},{\"typedarray-to-buffer\":74}],10:[function(_dereq_,module,exports){\n// contains, add, remove, toggle\nvar indexof = _dereq_('indexof')\n\nmodule.exports = ClassList\n\nfunction ClassList(elem) {\n var cl = elem.classList\n\n if (cl) {\n return cl\n }\n\n var classList = {\n add: add\n , remove: remove\n , contains: contains\n , toggle: toggle\n , toString: $toString\n , length: 0\n , item: item\n }\n\n return classList\n\n function add(token) {\n var list = getTokens()\n if (indexof(list, token) > -1) {\n return\n }\n list.push(token)\n setTokens(list)\n }\n\n function remove(token) {\n var list = getTokens()\n , index = indexof(list, token)\n\n if (index === -1) {\n return\n }\n\n list.splice(index, 1)\n setTokens(list)\n }\n\n function contains(token) {\n return indexof(getTokens(), token) > -1\n }\n\n function toggle(token) {\n if (contains(token)) {\n remove(token)\n return false\n } else {\n add(token)\n return true\n }\n }\n\n function $toString() {\n return elem.className\n }\n\n function item(index) {\n var tokens = getTokens()\n return tokens[index] || null\n }\n\n function getTokens() {\n var className = elem.className\n\n return filter(className.split(\" \"), isTruthy)\n }\n\n function setTokens(list) {\n var length = list.length\n\n elem.className = list.join(\" \")\n classList.length = length\n\n for (var i = 0; i < list.length; i++) {\n classList[i] = list[i]\n }\n\n delete list[length]\n }\n}\n\nfunction filter (arr, fn) {\n var ret = []\n for (var i = 0; i < arr.length; i++) {\n if (fn(arr[i])) ret.push(arr[i])\n }\n return ret\n}\n\nfunction isTruthy(value) {\n return !!value\n}\n\n},{\"indexof\":34}],11:[function(_dereq_,module,exports){\n/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20150312\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif (\"document\" in self) {\n\n// Full polyfill for browsers with no classList support\n// Including IE < Edge missing SVGElement.classList\nif (!(\"classList\" in document.createElement(\"_\")) \n\t|| document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))) {\n\n(function (view) {\n\n\"use strict\";\n\nif (!('Element' in view)) return;\n\nvar\n\t classListProp = \"classList\"\n\t, protoProp = \"prototype\"\n\t, elemCtrProto = view.Element[protoProp]\n\t, objCtr = Object\n\t, strTrim = String[protoProp].trim || function () {\n\t\treturn this.replace(/^\\s+|\\s+$/g, \"\");\n\t}\n\t, arrIndexOf = Array[protoProp].indexOf || function (item) {\n\t\tvar\n\t\t\t i = 0\n\t\t\t, len = this.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tif (i in this && this[i] === item) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\t// Vendors: please allow content code to instantiate DOMExceptions\n\t, DOMEx = function (type, message) {\n\t\tthis.name = type;\n\t\tthis.code = DOMException[type];\n\t\tthis.message = message;\n\t}\n\t, checkTokenAndGetIndex = function (classList, token) {\n\t\tif (token === \"\") {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"SYNTAX_ERR\"\n\t\t\t\t, \"An invalid or illegal string was specified\"\n\t\t\t);\n\t\t}\n\t\tif (/\\s/.test(token)) {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"INVALID_CHARACTER_ERR\"\n\t\t\t\t, \"String contains an invalid character\"\n\t\t\t);\n\t\t}\n\t\treturn arrIndexOf.call(classList, token);\n\t}\n\t, ClassList = function (elem) {\n\t\tvar\n\t\t\t trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n\t\t\t, classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n\t\t\t, i = 0\n\t\t\t, len = classes.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tthis.push(classes[i]);\n\t\t}\n\t\tthis._updateClassName = function () {\n\t\t\telem.setAttribute(\"class\", this.toString());\n\t\t};\n\t}\n\t, classListProto = ClassList[protoProp] = []\n\t, classListGetter = function () {\n\t\treturn new ClassList(this);\n\t}\n;\n// Most DOMException implementations don't allow calling DOMException's toString()\n// on non-DOMExceptions. Error's toString() is sufficient here.\nDOMEx[protoProp] = Error[protoProp];\nclassListProto.item = function (i) {\n\treturn this[i] || null;\n};\nclassListProto.contains = function (token) {\n\ttoken += \"\";\n\treturn checkTokenAndGetIndex(this, token) !== -1;\n};\nclassListProto.add = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tif (checkTokenAndGetIndex(this, token) === -1) {\n\t\t\tthis.push(token);\n\t\t\tupdated = true;\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.remove = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t\t, index\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tindex = checkTokenAndGetIndex(this, token);\n\t\twhile (index !== -1) {\n\t\t\tthis.splice(index, 1);\n\t\t\tupdated = true;\n\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.toggle = function (token, force) {\n\ttoken += \"\";\n\n\tvar\n\t\t result = this.contains(token)\n\t\t, method = result ?\n\t\t\tforce !== true && \"remove\"\n\t\t:\n\t\t\tforce !== false && \"add\"\n\t;\n\n\tif (method) {\n\t\tthis[method](token);\n\t}\n\n\tif (force === true || force === false) {\n\t\treturn force;\n\t} else {\n\t\treturn !result;\n\t}\n};\nclassListProto.toString = function () {\n\treturn this.join(\" \");\n};\n\nif (objCtr.defineProperty) {\n\tvar classListPropDesc = {\n\t\t get: classListGetter\n\t\t, enumerable: true\n\t\t, configurable: true\n\t};\n\ttry {\n\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t} catch (ex) { // IE 8 doesn't support enumerable:true\n\t\tif (ex.number === -0x7FF5EC54) {\n\t\t\tclassListPropDesc.enumerable = false;\n\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t}\n\t}\n} else if (objCtr[protoProp].__defineGetter__) {\n\telemCtrProto.__defineGetter__(classListProp, classListGetter);\n}\n\n}(self));\n\n} else {\n// There is full or partial native classList support, so just check if we need\n// to normalize the add/remove and toggle APIs.\n\n(function () {\n\t\"use strict\";\n\n\tvar testElement = document.createElement(\"_\");\n\n\ttestElement.classList.add(\"c1\", \"c2\");\n\n\t// Polyfill for IE 10/11 and Firefox <26, where classList.add and\n\t// classList.remove exist but support only one argument at a time.\n\tif (!testElement.classList.contains(\"c2\")) {\n\t\tvar createMethod = function(method) {\n\t\t\tvar original = DOMTokenList.prototype[method];\n\n\t\t\tDOMTokenList.prototype[method] = function(token) {\n\t\t\t\tvar i, len = arguments.length;\n\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\ttoken = arguments[i];\n\t\t\t\t\toriginal.call(this, token);\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tcreateMethod('add');\n\t\tcreateMethod('remove');\n\t}\n\n\ttestElement.classList.toggle(\"c3\", false);\n\n\t// Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n\t// support the second argument.\n\tif (testElement.classList.contains(\"c3\")) {\n\t\tvar _toggle = DOMTokenList.prototype.toggle;\n\n\t\tDOMTokenList.prototype.toggle = function(token, force) {\n\t\t\tif (1 in arguments && !this.contains(token) === !force) {\n\t\t\t\treturn force;\n\t\t\t} else {\n\t\t\t\treturn _toggle.call(this, token);\n\t\t\t}\n\t\t};\n\n\t}\n\n\ttestElement = null;\n}());\n\n}\n\n}\n\n\n},{}],12:[function(_dereq_,module,exports){\n\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n var args = [].slice.call(arguments, 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\n\n},{}],13:[function(_dereq_,module,exports){\nvar DOCUMENT_POSITION_CONTAINED_BY = 16\n\nmodule.exports = contains\n\nfunction contains(container, elem) {\n if (container.contains) {\n return container.contains(elem)\n }\n\n var comparison = container.compareDocumentPosition(elem)\n\n return comparison === 0 || comparison & DOCUMENT_POSITION_CONTAINED_BY\n}\n\n},{}],14:[function(_dereq_,module,exports){\n(function (Buffer){\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n}).call(this,{\"isBuffer\":_dereq_(\"../../is-buffer/index.js\")})\n},{\"../../is-buffer/index.js\":39}],15:[function(_dereq_,module,exports){\n// create-error.js 0.3.1\n// (c) 2013 Tim Griesser\n// This source may be freely distributed under the MIT license.\n(function(factory) {\n\n\"use strict\";\n\n// A simple utility for subclassing the \"Error\"\n// object in multiple environments, while maintaining\n// relevant stack traces, messages, and prototypes.\nfactory(function() {\n\nvar toString = Object.prototype.toString;\n\n// Creates an new error type with a \"name\",\n// and any additional properties that should be set\n// on the error instance.\nreturn function() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = arguments[i];\n }\n var name = getName(args);\n var target = getTarget(args);\n var properties = getProps(args);\n function ErrorCtor(message, obj) {\n attachProps(this, properties);\n attachProps(this, obj);\n this.message = (message || this.message);\n if (message instanceof Error) {\n this.message = message.message;\n this.stack = message.stack;\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n function Err() { this.constructor = ErrorCtor; }\n Err.prototype = target['prototype'];\n ErrorCtor.prototype = new Err();\n ErrorCtor.prototype.name = ('' + name) || 'CustomError';\n return ErrorCtor;\n};\n\n// Just a few helpers to clean up the function above\n// https://github.com/petkaantonov/bluebird/wiki/Optimization-killers\nfunction getName(args) {\n if (args.length === 0) return '';\n return isError(args[0]) ? (args[1] || '') : args[0];\n}\nfunction getTarget(args) {\n if (args.length === 0) return Error;\n return isError(args[0]) ? args[0] : Error;\n}\nfunction getProps(args) {\n if (args.length === 0) return null;\n return isError(args[0]) ? args[2] : args[1];\n}\nfunction inheritedKeys(obj) {\n var ret = [];\n for (var key in obj) {\n ret.push(key);\n }\n return ret;\n}\n\n// Right now we're just assuming that a function in the first argument is an error.\nfunction isError(obj) {\n return (typeof obj === \"function\");\n}\n\n// We don't need the full underscore check here, since it should either be\n// an object-literal, or nothing at all.\nfunction isObject(obj) {\n return (obj && typeof obj === \"object\" && toString.call(obj) === \"[object Object]\");\n}\n\n// Used to attach attributes to the error object in the constructor.\nfunction attachProps(context, target) {\n if (isObject(target)) {\n var keys = inheritedKeys(target);\n for (var i = 0, l = keys.length; i < l; ++i) {\n context[keys[i]] = clone(target[keys[i]]);\n }\n }\n}\n\n// Don't need the full-out \"clone\" mechanism here, since if you're\n// trying to set things other than empty arrays/objects on your\n// sub-classed `Error` object, you're probably doing it wrong.\nfunction clone(target) {\n if (target == null || typeof target !== \"object\") return target;\n var cloned = target.constructor ? target.constructor() : Object.create(null);\n for (var attr in target) {\n if (target.hasOwnProperty(attr)) {\n cloned[attr] = target[attr];\n }\n }\n return cloned;\n}\n\n});\n\n// Boilerplate UMD definition block...\n})(function(createErrorLib) {\n if (typeof define === \"function\" && define.amd) {\n define(createErrorLib);\n } else if (typeof exports === 'object') {\n module.exports = createErrorLib();\n } else {\n var root = this;\n var lastcreateError = root.createError;\n var createError = root.createError = createErrorLib();\n createError.noConflict = function() {\n root.createError = lastcreateError;\n return createError;\n };\n }\n});\n\n},{}],16:[function(_dereq_,module,exports){\nmodule.exports = function () {\n for (var i = 0; i < arguments.length; i++) {\n if (arguments[i] !== undefined) return arguments[i];\n }\n};\n\n},{}],17:[function(_dereq_,module,exports){\nvar util = _dereq_('util')\nvar global = _dereq_('global')\nvar EventEmitter = _dereq_('events')\n\nvar makeDespot = function () {\n var Despot = function () {\n if (global._singletonDespotInstance) {\n return global._singletonDespotInstance\n } else {\n global._singletonDespotInstance = this\n EventEmitter.call(this)\n }\n }\n\n util.inherits(Despot, EventEmitter)\n\n return new Despot()\n}\n\nmodule.exports = makeDespot()\n\n},{\"events\":23,\"global\":29,\"util\":79}],18:[function(_dereq_,module,exports){\n'use strict'\n\nvar document = _dereq_('global/document')\nvar Event = _dereq_('geval')\nvar Keys = _dereq_('./keys')\n\nmodule.exports = Visibility\n\nfunction Visibility () {\n var keys = Keys(document)\n if (!keys) return noopShim()\n\n return {\n visible: visible,\n onChange: Event(listen)\n }\n\n function visible () {\n return !document[keys.hidden]\n }\n\n function listen (broadcast) {\n document.addEventListener(keys.event, function onVisibilityChange () {\n broadcast(visible())\n })\n }\n}\n\nfunction noopShim () {\n return {\n visible: function () {\n return true\n },\n onChange: noop\n }\n}\n\nfunction noop () {}\n\n},{\"./keys\":19,\"geval\":27,\"global/document\":28}],19:[function(_dereq_,module,exports){\n'use strict'\n\nmodule.exports = keys\n\nfunction keys (document) {\n var prefix = detectPrefix(document)\n if (prefix == null) return\n return {\n hidden: lowercaseFirst(prefix + 'Hidden'),\n event: prefix + 'visibilitychange'\n }\n}\n\nfunction detectPrefix (document) {\n if (document.hidden != null) return ''\n if (document.mozHidden != null) return 'moz'\n if (document.msHidden != null) return 'ms'\n if (document.webkitHidden != null) return 'webkit'\n}\n\nfunction lowercaseFirst (string) {\n return string.substring(0, 1).toLowerCase() + string.substring(1)\n}\n\n},{}],20:[function(_dereq_,module,exports){\n(function (process,Buffer){\nvar stream = _dereq_('readable-stream')\nvar eos = _dereq_('end-of-stream')\nvar inherits = _dereq_('inherits')\nvar shift = _dereq_('stream-shift')\n\nvar SIGNAL_FLUSH = new Buffer([0])\n\nvar onuncork = function(self, fn) {\n if (self._corked) self.once('uncork', fn)\n else fn()\n}\n\nvar destroyer = function(self, end) {\n return function(err) {\n if (err) self.destroy(err.message === 'premature close' ? null : err)\n else if (end && !self._ended) self.end()\n }\n}\n\nvar end = function(ws, fn) {\n if (!ws) return fn()\n if (ws._writableState && ws._writableState.finished) return fn()\n if (ws._writableState) return ws.end(fn)\n ws.end()\n fn()\n}\n\nvar toStreams2 = function(rs) {\n return new (stream.Readable)({objectMode:true, highWaterMark:16}).wrap(rs)\n}\n\nvar Duplexify = function(writable, readable, opts) {\n if (!(this instanceof Duplexify)) return new Duplexify(writable, readable, opts)\n stream.Duplex.call(this, opts)\n\n this._writable = null\n this._readable = null\n this._readable2 = null\n\n this._forwardDestroy = !opts || opts.destroy !== false\n this._forwardEnd = !opts || opts.end !== false\n this._corked = 1 // start corked\n this._ondrain = null\n this._drained = false\n this._forwarding = false\n this._unwrite = null\n this._unread = null\n this._ended = false\n\n this.destroyed = false\n\n if (writable) this.setWritable(writable)\n if (readable) this.setReadable(readable)\n}\n\ninherits(Duplexify, stream.Duplex)\n\nDuplexify.obj = function(writable, readable, opts) {\n if (!opts) opts = {}\n opts.objectMode = true\n opts.highWaterMark = 16\n return new Duplexify(writable, readable, opts)\n}\n\nDuplexify.prototype.cork = function() {\n if (++this._corked === 1) this.emit('cork')\n}\n\nDuplexify.prototype.uncork = function() {\n if (this._corked && --this._corked === 0) this.emit('uncork')\n}\n\nDuplexify.prototype.setWritable = function(writable) {\n if (this._unwrite) this._unwrite()\n\n if (this.destroyed) {\n if (writable && writable.destroy) writable.destroy()\n return\n }\n\n if (writable === null || writable === false) {\n this.end()\n return\n }\n\n var self = this\n var unend = eos(writable, {writable:true, readable:false}, destroyer(this, this._forwardEnd))\n\n var ondrain = function() {\n var ondrain = self._ondrain\n self._ondrain = null\n if (ondrain) ondrain()\n }\n\n var clear = function() {\n self._writable.removeListener('drain', ondrain)\n unend()\n }\n\n if (this._unwrite) process.nextTick(ondrain) // force a drain on stream reset to avoid livelocks\n\n this._writable = writable\n this._writable.on('drain', ondrain)\n this._unwrite = clear\n\n this.uncork() // always uncork setWritable\n}\n\nDuplexify.prototype.setReadable = function(readable) {\n if (this._unread) this._unread()\n\n if (this.destroyed) {\n if (readable && readable.destroy) readable.destroy()\n return\n }\n\n if (readable === null || readable === false) {\n this.push(null)\n this.resume()\n return\n }\n\n var self = this\n var unend = eos(readable, {writable:false, readable:true}, destroyer(this))\n\n var onreadable = function() {\n self._forward()\n }\n\n var onend = function() {\n self.push(null)\n }\n\n var clear = function() {\n self._readable2.removeListener('readable', onreadable)\n self._readable2.removeListener('end', onend)\n unend()\n }\n\n this._drained = true\n this._readable = readable\n this._readable2 = readable._readableState ? readable : toStreams2(readable)\n this._readable2.on('readable', onreadable)\n this._readable2.on('end', onend)\n this._unread = clear\n\n this._forward()\n}\n\nDuplexify.prototype._read = function() {\n this._drained = true\n this._forward()\n}\n\nDuplexify.prototype._forward = function() {\n if (this._forwarding || !this._readable2 || !this._drained) return\n this._forwarding = true\n\n var data\n\n while (this._drained && (data = shift(this._readable2)) !== null) {\n if (this.destroyed) continue\n this._drained = this.push(data)\n }\n\n this._forwarding = false\n}\n\nDuplexify.prototype.destroy = function(err) {\n if (this.destroyed) return\n this.destroyed = true\n\n var self = this\n process.nextTick(function() {\n self._destroy(err)\n })\n}\n\nDuplexify.prototype._destroy = function(err) {\n if (err) {\n var ondrain = this._ondrain\n this._ondrain = null\n if (ondrain) ondrain(err)\n else this.emit('error', err)\n }\n\n if (this._forwardDestroy) {\n if (this._readable && this._readable.destroy) this._readable.destroy()\n if (this._writable && this._writable.destroy) this._writable.destroy()\n }\n\n this.emit('close')\n}\n\nDuplexify.prototype._write = function(data, enc, cb) {\n if (this.destroyed) return cb()\n if (this._corked) return onuncork(this, this._write.bind(this, data, enc, cb))\n if (data === SIGNAL_FLUSH) return this._finish(cb)\n if (!this._writable) return cb()\n\n if (this._writable.write(data) === false) this._ondrain = cb\n else cb()\n}\n\n\nDuplexify.prototype._finish = function(cb) {\n var self = this\n this.emit('preend')\n onuncork(this, function() {\n end(self._forwardEnd && self._writable, function() {\n // haxx to not emit prefinish twice\n if (self._writableState.prefinished === false) self._writableState.prefinished = true\n self.emit('prefinish')\n onuncork(self, cb)\n })\n })\n}\n\nDuplexify.prototype.end = function(data, enc, cb) {\n if (typeof data === 'function') return this.end(null, null, data)\n if (typeof enc === 'function') return this.end(data, null, enc)\n this._ended = true\n if (data) this.write(data)\n if (!this._writableState.ending) this.write(SIGNAL_FLUSH)\n return stream.Writable.prototype.end.call(this, cb)\n}\n\nmodule.exports = Duplexify\n\n}).call(this,_dereq_('_process'),_dereq_(\"buffer\").Buffer)\n},{\"_process\":7,\"buffer\":8,\"end-of-stream\":22,\"inherits\":35,\"readable-stream\":60,\"stream-shift\":65}],21:[function(_dereq_,module,exports){\n// element-closest | CC0-1.0 | github.com/jonathantneal/closest\n\n(function (ElementProto) {\n\tif (typeof ElementProto.matches !== 'function') {\n\t\tElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {\n\t\t\tvar element = this;\n\t\t\tvar elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n\t\t\tvar index = 0;\n\n\t\t\twhile (elements[index] && elements[index] !== element) {\n\t\t\t\t++index;\n\t\t\t}\n\n\t\t\treturn Boolean(elements[index]);\n\t\t};\n\t}\n\n\tif (typeof ElementProto.closest !== 'function') {\n\t\tElementProto.closest = function closest(selector) {\n\t\t\tvar element = this;\n\n\t\t\twhile (element && element.nodeType === 1) {\n\t\t\t\tif (element.matches(selector)) {\n\t\t\t\t\treturn element;\n\t\t\t\t}\n\n\t\t\t\telement = element.parentNode;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t};\n\t}\n})(window.Element.prototype);\n\n},{}],22:[function(_dereq_,module,exports){\nvar once = _dereq_('once');\n\nvar noop = function() {};\n\nvar isRequest = function(stream) {\n\treturn stream.setHeader && typeof stream.abort === 'function';\n};\n\nvar eos = function(stream, opts, callback) {\n\tif (typeof opts === 'function') return eos(stream, null, opts);\n\tif (!opts) opts = {};\n\n\tcallback = once(callback || noop);\n\n\tvar ws = stream._writableState;\n\tvar rs = stream._readableState;\n\tvar readable = opts.readable || (opts.readable !== false && stream.readable);\n\tvar writable = opts.writable || (opts.writable !== false && stream.writable);\n\n\tvar onlegacyfinish = function() {\n\t\tif (!stream.writable) onfinish();\n\t};\n\n\tvar onfinish = function() {\n\t\twritable = false;\n\t\tif (!readable) callback();\n\t};\n\n\tvar onend = function() {\n\t\treadable = false;\n\t\tif (!writable) callback();\n\t};\n\n\tvar onclose = function() {\n\t\tif (readable && !(rs && rs.ended)) return callback(new Error('premature close'));\n\t\tif (writable && !(ws && ws.ended)) return callback(new Error('premature close'));\n\t};\n\n\tvar onrequest = function() {\n\t\tstream.req.on('finish', onfinish);\n\t};\n\n\tif (isRequest(stream)) {\n\t\tstream.on('complete', onfinish);\n\t\tstream.on('abort', onclose);\n\t\tif (stream.req) onrequest();\n\t\telse stream.on('request', onrequest);\n\t} else if (writable && !ws) { // legacy streams\n\t\tstream.on('end', onlegacyfinish);\n\t\tstream.on('close', onlegacyfinish);\n\t}\n\n\tstream.on('end', onend);\n\tstream.on('finish', onfinish);\n\tif (opts.error !== false) stream.on('error', callback);\n\tstream.on('close', onclose);\n\n\treturn function() {\n\t\tstream.removeListener('complete', onfinish);\n\t\tstream.removeListener('abort', onclose);\n\t\tstream.removeListener('request', onrequest);\n\t\tif (stream.req) stream.req.removeListener('finish', onfinish);\n\t\tstream.removeListener('end', onlegacyfinish);\n\t\tstream.removeListener('close', onlegacyfinish);\n\t\tstream.removeListener('finish', onfinish);\n\t\tstream.removeListener('end', onend);\n\t\tstream.removeListener('error', callback);\n\t\tstream.removeListener('close', onclose);\n\t};\n};\n\nmodule.exports = eos;\n},{\"once\":48}],23:[function(_dereq_,module,exports){\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\n},{}],24:[function(_dereq_,module,exports){\n(function (global){\n\"use strict\";\n\n/**\r\n * filesize\r\n *\r\n * @copyright 2017 Jason Mulligan \r\n * @license BSD-3-Clause\r\n * @version 3.5.10\r\n */\n(function (global) {\n\tvar b = /^(b|B)$/,\n\t symbol = {\n\t\tiec: {\n\t\t\tbits: [\"b\", \"Kib\", \"Mib\", \"Gib\", \"Tib\", \"Pib\", \"Eib\", \"Zib\", \"Yib\"],\n\t\t\tbytes: [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"]\n\t\t},\n\t\tjedec: {\n\t\t\tbits: [\"b\", \"Kb\", \"Mb\", \"Gb\", \"Tb\", \"Pb\", \"Eb\", \"Zb\", \"Yb\"],\n\t\t\tbytes: [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"]\n\t\t}\n\t},\n\t fullform = {\n\t\tiec: [\"\", \"kibi\", \"mebi\", \"gibi\", \"tebi\", \"pebi\", \"exbi\", \"zebi\", \"yobi\"],\n\t\tjedec: [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\", \"exa\", \"zetta\", \"yotta\"]\n\t};\n\n\t/**\r\n * filesize\r\n *\r\n * @method filesize\r\n * @param {Mixed} arg String, Int or Float to transform\r\n * @param {Object} descriptor [Optional] Flags\r\n * @return {String} Readable file size String\r\n */\n\tfunction filesize(arg) {\n\t\tvar descriptor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tvar result = [],\n\t\t val = 0,\n\t\t e = void 0,\n\t\t base = void 0,\n\t\t bits = void 0,\n\t\t ceil = void 0,\n\t\t full = void 0,\n\t\t fullforms = void 0,\n\t\t neg = void 0,\n\t\t num = void 0,\n\t\t output = void 0,\n\t\t round = void 0,\n\t\t unix = void 0,\n\t\t spacer = void 0,\n\t\t standard = void 0,\n\t\t symbols = void 0;\n\n\t\tif (isNaN(arg)) {\n\t\t\tthrow new Error(\"Invalid arguments\");\n\t\t}\n\n\t\tbits = descriptor.bits === true;\n\t\tunix = descriptor.unix === true;\n\t\tbase = descriptor.base || 2;\n\t\tround = descriptor.round !== undefined ? descriptor.round : unix ? 1 : 2;\n\t\tspacer = descriptor.spacer !== undefined ? descriptor.spacer : unix ? \"\" : \" \";\n\t\tsymbols = descriptor.symbols || descriptor.suffixes || {};\n\t\tstandard = base === 2 ? descriptor.standard || \"jedec\" : \"jedec\";\n\t\toutput = descriptor.output || \"string\";\n\t\tfull = descriptor.fullform === true;\n\t\tfullforms = descriptor.fullforms instanceof Array ? descriptor.fullforms : [];\n\t\te = descriptor.exponent !== undefined ? descriptor.exponent : -1;\n\t\tnum = Number(arg);\n\t\tneg = num < 0;\n\t\tceil = base > 2 ? 1000 : 1024;\n\n\t\t// Flipping a negative number to determine the size\n\t\tif (neg) {\n\t\t\tnum = -num;\n\t\t}\n\n\t\t// Determining the exponent\n\t\tif (e === -1 || isNaN(e)) {\n\t\t\te = Math.floor(Math.log(num) / Math.log(ceil));\n\n\t\t\tif (e < 0) {\n\t\t\t\te = 0;\n\t\t\t}\n\t\t}\n\n\t\t// Exceeding supported length, time to reduce & multiply\n\t\tif (e > 8) {\n\t\t\te = 8;\n\t\t}\n\n\t\t// Zero is now a special case because bytes divide by 1\n\t\tif (num === 0) {\n\t\t\tresult[0] = 0;\n\t\t\tresult[1] = unix ? \"\" : symbol[standard][bits ? \"bits\" : \"bytes\"][e];\n\t\t} else {\n\t\t\tval = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));\n\n\t\t\tif (bits) {\n\t\t\t\tval = val * 8;\n\n\t\t\t\tif (val >= ceil && e < 8) {\n\t\t\t\t\tval = val / ceil;\n\t\t\t\t\te++;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tresult[0] = Number(val.toFixed(e > 0 ? round : 0));\n\t\t\tresult[1] = base === 10 && e === 1 ? bits ? \"kb\" : \"kB\" : symbol[standard][bits ? \"bits\" : \"bytes\"][e];\n\n\t\t\tif (unix) {\n\t\t\t\tresult[1] = standard === \"jedec\" ? result[1].charAt(0) : e > 0 ? result[1].replace(/B$/, \"\") : result[1];\n\n\t\t\t\tif (b.test(result[1])) {\n\t\t\t\t\tresult[0] = Math.floor(result[0]);\n\t\t\t\t\tresult[1] = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Decorating a 'diff'\n\t\tif (neg) {\n\t\t\tresult[0] = -result[0];\n\t\t}\n\n\t\t// Applying custom symbol\n\t\tresult[1] = symbols[result[1]] || result[1];\n\n\t\t// Returning Array, Object, or String (default)\n\t\tif (output === \"array\") {\n\t\t\treturn result;\n\t\t}\n\n\t\tif (output === \"exponent\") {\n\t\t\treturn e;\n\t\t}\n\n\t\tif (output === \"object\") {\n\t\t\treturn { value: result[0], suffix: result[1], symbol: result[1] };\n\t\t}\n\n\t\tif (full) {\n\t\t\tresult[1] = fullforms[e] ? fullforms[e] : fullform[standard][e] + (bits ? \"bit\" : \"byte\") + (result[0] === 1 ? \"\" : \"s\");\n\t\t}\n\n\t\treturn result.join(spacer);\n\t}\n\n\t// Partial application for functional programming\n\tfilesize.partial = function (opt) {\n\t\treturn function (arg) {\n\t\t\treturn filesize(arg, opt);\n\t\t};\n\t};\n\n\t// CommonJS, AMD, script tag\n\tif (typeof exports !== \"undefined\") {\n\t\tmodule.exports = filesize;\n\t} else if (typeof define === \"function\" && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn filesize;\n\t\t});\n\t} else {\n\t\tglobal.filesize = filesize;\n\t}\n})(typeof window !== \"undefined\" ? window : global);\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],25:[function(_dereq_,module,exports){\n'use strict';\n\nexports.__esModule = true;\nvar NODE_LIST_CLASSES = {\n '[object HTMLCollection]': true,\n '[object NodeList]': true,\n '[object RadioNodeList]': true\n};\n\n// .type values for elements which can appear in .elements and should be ignored\nvar IGNORED_ELEMENT_TYPES = {\n 'button': true,\n 'fieldset': true,\n // 'keygen': true,\n // 'output': true,\n 'reset': true,\n 'submit': true\n};\n\nvar CHECKED_INPUT_TYPES = {\n 'checkbox': true,\n 'radio': true\n};\n\nvar TRIM_RE = /^\\s+|\\s+$/g;\n\nvar slice = Array.prototype.slice;\nvar toString = Object.prototype.toString;\n\n/**\n * @param {HTMLFormElement} form\n * @param {Object} options\n * @return {Object.)>} an object containing\n * submittable value(s) held in the form's .elements collection, with\n * properties named as per element names or ids.\n */\nfunction getFormData(form) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? { trim: false } : arguments[1];\n\n if (!form) {\n throw new Error('A form is required by getFormData, was given form=' + form);\n }\n\n var data = {};\n var elementName = undefined;\n var elementNames = [];\n var elementNameLookup = {};\n\n // Get unique submittable element names for the form\n for (var i = 0, l = form.elements.length; i < l; i++) {\n var element = form.elements[i];\n if (IGNORED_ELEMENT_TYPES[element.type] || element.disabled) {\n continue;\n }\n elementName = element.name || element.id;\n if (elementName && !elementNameLookup[elementName]) {\n elementNames.push(elementName);\n elementNameLookup[elementName] = true;\n }\n }\n\n // Extract element data name-by-name for consistent handling of special cases\n // around elements which contain multiple inputs.\n for (var i = 0, l = elementNames.length; i < l; i++) {\n elementName = elementNames[i];\n var value = getNamedFormElementData(form, elementName, options);\n if (value != null) {\n data[elementName] = value;\n }\n }\n\n return data;\n}\n\n/**\n * @param {HTMLFormElement} form\n * @param {string} elementName\n * @param {Object} options\n * @return {(string|Array.)} submittable value(s) in the form for a\n * named element from its .elements collection, or null if there was no\n * element with that name or the element had no submittable value(s).\n */\nfunction getNamedFormElementData(form, elementName) {\n var options = arguments.length <= 2 || arguments[2] === undefined ? { trim: false } : arguments[2];\n\n if (!form) {\n throw new Error('A form is required by getNamedFormElementData, was given form=' + form);\n }\n if (!elementName && toString.call(elementName) !== '[object String]') {\n throw new Error('A form element name is required by getNamedFormElementData, was given elementName=' + elementName);\n }\n\n var element = form.elements[elementName];\n if (!element || element.disabled) {\n return null;\n }\n\n if (!NODE_LIST_CLASSES[toString.call(element)]) {\n return getFormElementValue(element, options.trim);\n }\n\n // Deal with multiple form controls which have the same name\n var data = [];\n var allRadios = true;\n for (var i = 0, l = element.length; i < l; i++) {\n if (element[i].disabled) {\n continue;\n }\n if (allRadios && element[i].type !== 'radio') {\n allRadios = false;\n }\n var value = getFormElementValue(element[i], options.trim);\n if (value != null) {\n data = data.concat(value);\n }\n }\n\n // Special case for an element with multiple same-named inputs which were all\n // radio buttons: if there was a selected value, only return the value.\n if (allRadios && data.length === 1) {\n return data[0];\n }\n\n return data.length > 0 ? data : null;\n}\n\n/**\n * @param {HTMLElement} element a form element.\n * @param {booleam} trim should values for text entry inputs be trimmed?\n * @return {(string|Array.|File|Array.)} the element's submittable\n * value(s), or null if it had none.\n */\nfunction getFormElementValue(element, trim) {\n var value = null;\n var type = element.type;\n\n if (type === 'select-one') {\n if (element.options.length) {\n value = element.options[element.selectedIndex].value;\n }\n return value;\n }\n\n if (type === 'select-multiple') {\n value = [];\n for (var i = 0, l = element.options.length; i < l; i++) {\n if (element.options[i].selected) {\n value.push(element.options[i].value);\n }\n }\n if (value.length === 0) {\n value = null;\n }\n return value;\n }\n\n // If a file input doesn't have a files attribute, fall through to using its\n // value attribute.\n if (type === 'file' && 'files' in element) {\n if (element.multiple) {\n value = slice.call(element.files);\n if (value.length === 0) {\n value = null;\n }\n } else {\n // Should be null if not present, according to the spec\n value = element.files[0];\n }\n return value;\n }\n\n if (!CHECKED_INPUT_TYPES[type]) {\n value = trim ? element.value.replace(TRIM_RE, '') : element.value;\n } else if (element.checked) {\n value = element.value;\n }\n\n return value;\n}\n\ngetFormData.getNamedFormElementData = getNamedFormElementData;\n\nexports['default'] = getFormData;\nmodule.exports = exports['default'];\n},{}],26:[function(_dereq_,module,exports){\nmodule.exports = Event\n\nfunction Event() {\n var listeners = []\n\n return { broadcast: broadcast, listen: event }\n\n function broadcast(value) {\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](value)\n }\n }\n\n function event(listener) {\n listeners.push(listener)\n\n return removeListener\n\n function removeListener() {\n var index = listeners.indexOf(listener)\n if (index !== -1) {\n listeners.splice(index, 1)\n }\n }\n }\n}\n\n},{}],27:[function(_dereq_,module,exports){\nvar Event = _dereq_('./event.js')\n\nmodule.exports = Source\n\nfunction Source(broadcaster) {\n var tuple = Event()\n\n broadcaster(tuple.broadcast)\n\n return tuple.listen\n}\n\n},{\"./event.js\":26}],28:[function(_dereq_,module,exports){\n(function (global){\nvar topLevel = typeof global !== 'undefined' ? global :\n typeof window !== 'undefined' ? window : {}\nvar minDoc = _dereq_('min-document');\n\nvar doccy;\n\nif (typeof document !== 'undefined') {\n doccy = document;\n} else {\n doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'];\n\n if (!doccy) {\n doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDoc;\n }\n}\n\nmodule.exports = doccy;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"min-document\":5}],29:[function(_dereq_,module,exports){\n(function (global){\nvar win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\"){\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],30:[function(_dereq_,module,exports){\nmodule.exports = shim\n\nfunction shim (element, value) {\n if (value === undefined) {\n return element.style.display === 'none'\n }\n\n element.style.display = value ? 'none' : ''\n}\n\n},{}],31:[function(_dereq_,module,exports){\n// HumanizeDuration.js - http://git.io/j0HgmQ\n\n;(function () {\n var languages = {\n ar: {\n y: function (c) { return c === 1 ? 'سنة' : 'سنوات' },\n mo: function (c) { return c === 1 ? 'شهر' : 'أشهر' },\n w: function (c) { return c === 1 ? 'أسبوع' : 'أسابيع' },\n d: function (c) { return c === 1 ? 'يوم' : 'أيام' },\n h: function (c) { return c === 1 ? 'ساعة' : 'ساعات' },\n m: function (c) { return c === 1 ? 'دقيقة' : 'دقائق' },\n s: function (c) { return c === 1 ? 'ثانية' : 'ثواني' },\n ms: function (c) { return c === 1 ? 'جزء من الثانية' : 'أجزاء من الثانية' },\n decimal: ','\n },\n ca: {\n y: function (c) { return 'any' + (c === 1 ? '' : 's') },\n mo: function (c) { return 'mes' + (c === 1 ? '' : 'os') },\n w: function (c) { return 'setman' + (c === 1 ? 'a' : 'es') },\n d: function (c) { return 'di' + (c === 1 ? 'a' : 'es') },\n h: function (c) { return 'hor' + (c === 1 ? 'a' : 'es') },\n m: function (c) { return 'minut' + (c === 1 ? '' : 's') },\n s: function (c) { return 'segon' + (c === 1 ? '' : 's') },\n ms: function (c) { return 'milisegon' + (c === 1 ? '' : 's') },\n decimal: ','\n },\n cs: {\n y: function (c) { return ['rok', 'roku', 'roky', 'let'][getCzechForm(c)] },\n mo: function (c) { return ['měsíc', 'měsíce', 'měsíce', 'měsíců'][getCzechForm(c)] },\n w: function (c) { return ['týden', 'týdne', 'týdny', 'týdnů'][getCzechForm(c)] },\n d: function (c) { return ['den', 'dne', 'dny', 'dní'][getCzechForm(c)] },\n h: function (c) { return ['hodina', 'hodiny', 'hodiny', 'hodin'][getCzechForm(c)] },\n m: function (c) { return ['minuta', 'minuty', 'minuty', 'minut'][getCzechForm(c)] },\n s: function (c) { return ['sekunda', 'sekundy', 'sekundy', 'sekund'][getCzechForm(c)] },\n ms: function (c) { return ['milisekunda', 'milisekundy', 'milisekundy', 'milisekund'][getCzechForm(c)] },\n decimal: ','\n },\n da: {\n y: 'år',\n mo: function (c) { return 'måned' + (c === 1 ? '' : 'er') },\n w: function (c) { return 'uge' + (c === 1 ? '' : 'r') },\n d: function (c) { return 'dag' + (c === 1 ? '' : 'e') },\n h: function (c) { return 'time' + (c === 1 ? '' : 'r') },\n m: function (c) { return 'minut' + (c === 1 ? '' : 'ter') },\n s: function (c) { return 'sekund' + (c === 1 ? '' : 'er') },\n ms: function (c) { return 'millisekund' + (c === 1 ? '' : 'er') },\n decimal: ','\n },\n de: {\n y: function (c) { return 'Jahr' + (c === 1 ? '' : 'e') },\n mo: function (c) { return 'Monat' + (c === 1 ? '' : 'e') },\n w: function (c) { return 'Woche' + (c === 1 ? '' : 'n') },\n d: function (c) { return 'Tag' + (c === 1 ? '' : 'e') },\n h: function (c) { return 'Stunde' + (c === 1 ? '' : 'n') },\n m: function (c) { return 'Minute' + (c === 1 ? '' : 'n') },\n s: function (c) { return 'Sekunde' + (c === 1 ? '' : 'n') },\n ms: function (c) { return 'Millisekunde' + (c === 1 ? '' : 'n') },\n decimal: ','\n },\n en: {\n y: function (c) { return 'year' + (c === 1 ? '' : 's') },\n mo: function (c) { return 'month' + (c === 1 ? '' : 's') },\n w: function (c) { return 'week' + (c === 1 ? '' : 's') },\n d: function (c) { return 'day' + (c === 1 ? '' : 's') },\n h: function (c) { return 'hour' + (c === 1 ? '' : 's') },\n m: function (c) { return 'minute' + (c === 1 ? '' : 's') },\n s: function (c) { return 'second' + (c === 1 ? '' : 's') },\n ms: function (c) { return 'millisecond' + (c === 1 ? '' : 's') },\n decimal: '.'\n },\n es: {\n y: function (c) { return 'año' + (c === 1 ? '' : 's') },\n mo: function (c) { return 'mes' + (c === 1 ? '' : 'es') },\n w: function (c) { return 'semana' + (c === 1 ? '' : 's') },\n d: function (c) { return 'día' + (c === 1 ? '' : 's') },\n h: function (c) { return 'hora' + (c === 1 ? '' : 's') },\n m: function (c) { return 'minuto' + (c === 1 ? '' : 's') },\n s: function (c) { return 'segundo' + (c === 1 ? '' : 's') },\n ms: function (c) { return 'milisegundo' + (c === 1 ? '' : 's') },\n decimal: ','\n },\n fi: {\n y: function (c) { return c === 1 ? 'vuosi' : 'vuotta' },\n mo: function (c) { return c === 1 ? 'kuukausi' : 'kuukautta' },\n w: function (c) { return 'viikko' + (c === 1 ? '' : 'a') },\n d: function (c) { return 'päivä' + (c === 1 ? '' : 'ä') },\n h: function (c) { return 'tunti' + (c === 1 ? '' : 'a') },\n m: function (c) { return 'minuutti' + (c === 1 ? '' : 'a') },\n s: function (c) { return 'sekunti' + (c === 1 ? '' : 'a') },\n ms: function (c) { return 'millisekunti' + (c === 1 ? '' : 'a') },\n decimal: ','\n },\n fr: {\n y: function (c) { return 'an' + (c >= 2 ? 's' : '') },\n mo: 'mois',\n w: function (c) { return 'semaine' + (c >= 2 ? 's' : '') },\n d: function (c) { return 'jour' + (c >= 2 ? 's' : '') },\n h: function (c) { return 'heure' + (c >= 2 ? 's' : '') },\n m: function (c) { return 'minute' + (c >= 2 ? 's' : '') },\n s: function (c) { return 'seconde' + (c >= 2 ? 's' : '') },\n ms: function (c) { return 'milliseconde' + (c >= 2 ? 's' : '') },\n decimal: ','\n },\n gr: {\n y: function (c) { return c === 1 ? 'χρόνος' : 'χρόνια' },\n mo: function (c) { return c === 1 ? 'μήνας' : 'μήνες' },\n w: function (c) { return c === 1 ? 'εβδομάδα' : 'εβδομάδες' },\n d: function (c) { return c === 1 ? 'μέρα' : 'μέρες' },\n h: function (c) { return c === 1 ? 'ώρα' : 'ώρες' },\n m: function (c) { return c === 1 ? 'λεπτό' : 'λεπτά' },\n s: function (c) { return c === 1 ? 'δευτερόλεπτο' : 'δευτερόλεπτα' },\n ms: function (c) { return c === 1 ? 'χιλιοστό του δευτερολέπτου' : 'χιλιοστά του δευτερολέπτου' },\n decimal: ','\n },\n hu: {\n y: 'év',\n mo: 'hónap',\n w: 'hét',\n d: 'nap',\n h: 'óra',\n m: 'perc',\n s: 'másodperc',\n ms: 'ezredmásodperc',\n decimal: ','\n },\n id: {\n y: 'tahun',\n mo: 'bulan',\n w: 'minggu',\n d: 'hari',\n h: 'jam',\n m: 'menit',\n s: 'detik',\n ms: 'milidetik',\n decimal: '.'\n },\n is: {\n y: 'ár',\n mo: function (c) { return 'mánuð' + (c === 1 ? 'ur' : 'ir') },\n w: function (c) { return 'vik' + (c === 1 ? 'a' : 'ur') },\n d: function (c) { return 'dag' + (c === 1 ? 'ur' : 'ar') },\n h: function (c) { return 'klukkutím' + (c === 1 ? 'i' : 'ar') },\n m: function (c) { return 'mínút' + (c === 1 ? 'a' : 'ur') },\n s: function (c) { return 'sekúnd' + (c === 1 ? 'a' : 'ur') },\n ms: function (c) { return 'millisekúnd' + (c === 1 ? 'a' : 'ur') },\n decimal: '.'\n },\n it: {\n y: function (c) { return 'ann' + (c === 1 ? 'o' : 'i') },\n mo: function (c) { return 'mes' + (c === 1 ? 'e' : 'i') },\n w: function (c) { return 'settiman' + (c === 1 ? 'a' : 'e') },\n d: function (c) { return 'giorn' + (c === 1 ? 'o' : 'i') },\n h: function (c) { return 'or' + (c === 1 ? 'a' : 'e') },\n m: function (c) { return 'minut' + (c === 1 ? 'o' : 'i') },\n s: function (c) { return 'second' + (c === 1 ? 'o' : 'i') },\n ms: function (c) { return 'millisecond' + (c === 1 ? 'o' : 'i') },\n decimal: ','\n },\n ja: {\n y: '年',\n mo: '月',\n w: '週',\n d: '日',\n h: '時間',\n m: '分',\n s: '秒',\n ms: 'ミリ秒',\n decimal: '.'\n },\n ko: {\n y: '년',\n mo: '개월',\n w: '주일',\n d: '일',\n h: '시간',\n m: '분',\n s: '초',\n ms: '밀리 초',\n decimal: '.'\n },\n lt: {\n y: function (c) { return ((c % 10 === 0) || (c % 100 >= 10 && c % 100 <= 20)) ? 'metų' : 'metai' },\n mo: function (c) { return ['mėnuo', 'mėnesiai', 'mėnesių'][getLithuanianForm(c)] },\n w: function (c) { return ['savaitė', 'savaitės', 'savaičių'][getLithuanianForm(c)] },\n d: function (c) { return ['diena', 'dienos', 'dienų'][getLithuanianForm(c)] },\n h: function (c) { return ['valanda', 'valandos', 'valandų'][getLithuanianForm(c)] },\n m: function (c) { return ['minutė', 'minutės', 'minučių'][getLithuanianForm(c)] },\n s: function (c) { return ['sekundė', 'sekundės', 'sekundžių'][getLithuanianForm(c)] },\n ms: function (c) { return ['milisekundė', 'milisekundės', 'milisekundžių'][getLithuanianForm(c)] },\n decimal: ','\n },\n ms: {\n y: 'tahun',\n mo: 'bulan',\n w: 'minggu',\n d: 'hari',\n h: 'jam',\n m: 'minit',\n s: 'saat',\n ms: 'milisaat',\n decimal: '.'\n },\n nl: {\n y: 'jaar',\n mo: function (c) { return c === 1 ? 'maand' : 'maanden' },\n w: function (c) { return c === 1 ? 'week' : 'weken' },\n d: function (c) { return c === 1 ? 'dag' : 'dagen' },\n h: 'uur',\n m: function (c) { return c === 1 ? 'minuut' : 'minuten' },\n s: function (c) { return c === 1 ? 'seconde' : 'seconden' },\n ms: function (c) { return c === 1 ? 'milliseconde' : 'milliseconden' },\n decimal: ','\n },\n no: {\n y: 'år',\n mo: function (c) { return 'måned' + (c === 1 ? '' : 'er') },\n w: function (c) { return 'uke' + (c === 1 ? '' : 'r') },\n d: function (c) { return 'dag' + (c === 1 ? '' : 'er') },\n h: function (c) { return 'time' + (c === 1 ? '' : 'r') },\n m: function (c) { return 'minutt' + (c === 1 ? '' : 'er') },\n s: function (c) { return 'sekund' + (c === 1 ? '' : 'er') },\n ms: function (c) { return 'millisekund' + (c === 1 ? '' : 'er') },\n decimal: ','\n },\n pl: {\n y: function (c) { return ['rok', 'roku', 'lata', 'lat'][getPolishForm(c)] },\n mo: function (c) { return ['miesiąc', 'miesiąca', 'miesiące', 'miesięcy'][getPolishForm(c)] },\n w: function (c) { return ['tydzień', 'tygodnia', 'tygodnie', 'tygodni'][getPolishForm(c)] },\n d: function (c) { return ['dzień', 'dnia', 'dni', 'dni'][getPolishForm(c)] },\n h: function (c) { return ['godzina', 'godziny', 'godziny', 'godzin'][getPolishForm(c)] },\n m: function (c) { return ['minuta', 'minuty', 'minuty', 'minut'][getPolishForm(c)] },\n s: function (c) { return ['sekunda', 'sekundy', 'sekundy', 'sekund'][getPolishForm(c)] },\n ms: function (c) { return ['milisekunda', 'milisekundy', 'milisekundy', 'milisekund'][getPolishForm(c)] },\n decimal: ','\n },\n pt: {\n y: function (c) { return 'ano' + (c === 1 ? '' : 's') },\n mo: function (c) { return c !== 1 ? 'meses' : 'mês' },\n w: function (c) { return 'semana' + (c === 1 ? '' : 's') },\n d: function (c) { return 'dia' + (c === 1 ? '' : 's') },\n h: function (c) { return 'hora' + (c === 1 ? '' : 's') },\n m: function (c) { return 'minuto' + (c === 1 ? '' : 's') },\n s: function (c) { return 'segundo' + (c === 1 ? '' : 's') },\n ms: function (c) { return 'milissegundo' + (c === 1 ? '' : 's') },\n decimal: ','\n },\n ru: {\n y: function (c) { return ['лет', 'год', 'года'][getSlavicForm(c)] },\n mo: function (c) { return ['месяцев', 'месяц', 'месяца'][getSlavicForm(c)] },\n w: function (c) { return ['недель', 'неделя', 'недели'][getSlavicForm(c)] },\n d: function (c) { return ['дней', 'день', 'дня'][getSlavicForm(c)] },\n h: function (c) { return ['часов', 'час', 'часа'][getSlavicForm(c)] },\n m: function (c) { return ['минут', 'минута', 'минуты'][getSlavicForm(c)] },\n s: function (c) { return ['секунд', 'секунда', 'секунды'][getSlavicForm(c)] },\n ms: function (c) { return ['миллисекунд', 'миллисекунда', 'миллисекунды'][getSlavicForm(c)] },\n decimal: ','\n },\n uk: {\n y: function (c) { return ['років', 'рік', 'роки'][getSlavicForm(c)] },\n mo: function (c) { return ['місяців', 'місяць', 'місяці'][getSlavicForm(c)] },\n w: function (c) { return ['неділь', 'неділя', 'неділі'][getSlavicForm(c)] },\n d: function (c) { return ['днів', 'день', 'дні'][getSlavicForm(c)] },\n h: function (c) { return ['годин', 'година', 'години'][getSlavicForm(c)] },\n m: function (c) { return ['хвилин', 'хвилина', 'хвилини'][getSlavicForm(c)] },\n s: function (c) { return ['секунд', 'секунда', 'секунди'][getSlavicForm(c)] },\n ms: function (c) { return ['мілісекунд', 'мілісекунда', 'мілісекунди'][getSlavicForm(c)] },\n decimal: ','\n },\n sv: {\n y: 'år',\n mo: function (c) { return 'månad' + (c === 1 ? '' : 'er') },\n w: function (c) { return 'veck' + (c === 1 ? 'a' : 'or') },\n d: function (c) { return 'dag' + (c === 1 ? '' : 'ar') },\n h: function (c) { return 'timm' + (c === 1 ? 'e' : 'ar') },\n m: function (c) { return 'minut' + (c === 1 ? '' : 'er') },\n s: function (c) { return 'sekund' + (c === 1 ? '' : 'er') },\n ms: function (c) { return 'millisekund' + (c === 1 ? '' : 'er') },\n decimal: ','\n },\n tr: {\n y: 'yıl',\n mo: 'ay',\n w: 'hafta',\n d: 'gün',\n h: 'saat',\n m: 'dakika',\n s: 'saniye',\n ms: 'milisaniye',\n decimal: ','\n },\n vi: {\n y: 'năm',\n mo: 'tháng',\n w: 'tuần',\n d: 'ngày',\n h: 'giờ',\n m: 'phút',\n s: 'giây',\n ms: 'mili giây',\n decimal: ','\n },\n zh_CN: {\n y: '年',\n mo: '个月',\n w: '周',\n d: '天',\n h: '小时',\n m: '分钟',\n s: '秒',\n ms: '毫秒',\n decimal: '.'\n },\n zh_TW: {\n y: '年',\n mo: '個月',\n w: '周',\n d: '天',\n h: '小時',\n m: '分鐘',\n s: '秒',\n ms: '毫秒',\n decimal: '.'\n }\n }\n\n // You can create a humanizer, which returns a function with default\n // parameters.\n function humanizer (passedOptions) {\n var result = function humanizer (ms, humanizerOptions) {\n var options = extend({}, result, humanizerOptions || {})\n return doHumanization(ms, options)\n }\n\n return extend(result, {\n language: 'en',\n delimiter: ', ',\n spacer: ' ',\n conjunction: '',\n serialComma: true,\n units: ['y', 'mo', 'w', 'd', 'h', 'm', 's'],\n languages: {},\n round: false,\n unitMeasures: {\n y: 31557600000,\n mo: 2629800000,\n w: 604800000,\n d: 86400000,\n h: 3600000,\n m: 60000,\n s: 1000,\n ms: 1\n }\n }, passedOptions)\n }\n\n // The main function is just a wrapper around a default humanizer.\n var humanizeDuration = humanizer({})\n\n // doHumanization does the bulk of the work.\n function doHumanization (ms, options) {\n var i, len, piece\n\n // Make sure we have a positive number.\n // Has the nice sideffect of turning Number objects into primitives.\n ms = Math.abs(ms)\n\n var dictionary = options.languages[options.language] || languages[options.language]\n if (!dictionary) {\n throw new Error('No language ' + dictionary + '.')\n }\n\n var pieces = []\n\n // Start at the top and keep removing units, bit by bit.\n var unitName, unitMS, unitCount\n for (i = 0, len = options.units.length; i < len; i++) {\n unitName = options.units[i]\n unitMS = options.unitMeasures[unitName]\n\n // What's the number of full units we can fit?\n if (i + 1 === len) {\n unitCount = ms / unitMS\n } else {\n unitCount = Math.floor(ms / unitMS)\n }\n\n // Add the string.\n pieces.push({\n unitCount: unitCount,\n unitName: unitName\n })\n\n // Remove what we just figured out.\n ms -= unitCount * unitMS\n }\n\n var firstOccupiedUnitIndex = 0\n for (i = 0; i < pieces.length; i++) {\n if (pieces[i].unitCount) {\n firstOccupiedUnitIndex = i\n break\n }\n }\n\n if (options.round) {\n var ratioToLargerUnit, previousPiece\n for (i = pieces.length - 1; i >= 0; i--) {\n piece = pieces[i]\n piece.unitCount = Math.round(piece.unitCount)\n\n if (i === 0) { break }\n\n previousPiece = pieces[i - 1]\n\n ratioToLargerUnit = options.unitMeasures[previousPiece.unitName] / options.unitMeasures[piece.unitName]\n if ((piece.unitCount % ratioToLargerUnit) === 0 || (options.largest && ((options.largest - 1) < (i - firstOccupiedUnitIndex)))) {\n previousPiece.unitCount += piece.unitCount / ratioToLargerUnit\n piece.unitCount = 0\n }\n }\n }\n\n var result = []\n for (i = 0, pieces.length; i < len; i++) {\n piece = pieces[i]\n if (piece.unitCount) {\n result.push(render(piece.unitCount, piece.unitName, dictionary, options))\n }\n\n if (result.length === options.largest) { break }\n }\n\n if (result.length) {\n if (!options.conjunction || result.length === 1) {\n return result.join(options.delimiter)\n } else if (result.length === 2) {\n return result.join(options.conjunction)\n } else if (result.length > 2) {\n return result.slice(0, -1).join(options.delimiter) + (options.serialComma ? ',' : '') + options.conjunction + result.slice(-1)\n }\n } else {\n return render(0, options.units[options.units.length - 1], dictionary, options)\n }\n }\n\n function render (count, type, dictionary, options) {\n var decimal\n if (options.decimal === void 0) {\n decimal = dictionary.decimal\n } else {\n decimal = options.decimal\n }\n\n var countStr = count.toString().replace('.', decimal)\n\n var dictionaryValue = dictionary[type]\n var word\n if (typeof dictionaryValue === 'function') {\n word = dictionaryValue(count)\n } else {\n word = dictionaryValue\n }\n\n return countStr + options.spacer + word\n }\n\n function extend (destination) {\n var source\n for (var i = 1; i < arguments.length; i++) {\n source = arguments[i]\n for (var prop in source) {\n if (source.hasOwnProperty(prop)) {\n destination[prop] = source[prop]\n }\n }\n }\n return destination\n }\n\n // Internal helper function for Czech language.\n function getCzechForm (c) {\n if (c === 1) {\n return 0\n } else if (Math.floor(c) !== c) {\n return 1\n } else if (c % 10 >= 2 && c % 10 <= 4 && c % 100 < 10) {\n return 2\n } else {\n return 3\n }\n }\n\n // Internal helper function for Polish language.\n function getPolishForm (c) {\n if (c === 1) {\n return 0\n } else if (Math.floor(c) !== c) {\n return 1\n } else if (c % 10 >= 2 && c % 10 <= 4 && !(c % 100 > 10 && c % 100 < 20)) {\n return 2\n } else {\n return 3\n }\n }\n\n // Internal helper function for Russian and Ukranian languages.\n function getSlavicForm (c) {\n if (Math.floor(c) !== c) {\n return 2\n } else if ((c % 100 >= 5 && c % 100 <= 20) || (c % 10 >= 5 && c % 10 <= 9) || c % 10 === 0) {\n return 0\n } else if (c % 10 === 1) {\n return 1\n } else if (c > 1) {\n return 2\n } else {\n return 0\n }\n }\n\n // Internal helper function for Lithuanian language.\n function getLithuanianForm (c) {\n if (c === 1 || (c % 10 === 1 && c % 100 > 20)) {\n return 0\n } else if (Math.floor(c) !== c || (c % 10 >= 2 && c % 100 > 20) || (c % 10 >= 2 && c % 100 < 10)) {\n return 1\n } else {\n return 2\n }\n }\n\n humanizeDuration.getSupportedLanguages = function getSupportedLanguages () {\n var result = []\n for (var language in languages) {\n if (languages.hasOwnProperty(language)) {\n result.push(language)\n }\n }\n return result\n }\n\n humanizeDuration.humanizer = humanizer\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return humanizeDuration\n })\n } else if (typeof module !== 'undefined' && module.exports) {\n module.exports = humanizeDuration\n } else {\n this.humanizeDuration = humanizeDuration\n }\n})(); // eslint-disable-line semi\n\n},{}],32:[function(_dereq_,module,exports){\nvar split = _dereq_('browser-split')\nvar ClassList = _dereq_('class-list')\n\nvar w = typeof window === 'undefined' ? _dereq_('html-element') : window\nvar document = w.document\nvar Text = w.Text\n\nfunction context () {\n\n var cleanupFuncs = []\n\n function h() {\n var args = [].slice.call(arguments), e = null\n function item (l) {\n var r\n function parseClass (string) {\n // Our minimal parser doesn’t understand escaping CSS special\n // characters like `#`. Don’t use them. More reading:\n // https://mathiasbynens.be/notes/css-escapes .\n\n var m = split(string, /([\\.#]?[^\\s#.]+)/)\n if(/^\\.|#/.test(m[1]))\n e = document.createElement('div')\n forEach(m, function (v) {\n var s = v.substring(1,v.length)\n if(!v) return\n if(!e)\n e = document.createElement(v)\n else if (v[0] === '.')\n ClassList(e).add(s)\n else if (v[0] === '#')\n e.setAttribute('id', s)\n })\n }\n\n if(l == null)\n ;\n else if('string' === typeof l) {\n if(!e)\n parseClass(l)\n else\n e.appendChild(r = document.createTextNode(l))\n }\n else if('number' === typeof l\n || 'boolean' === typeof l\n || l instanceof Date\n || l instanceof RegExp ) {\n e.appendChild(r = document.createTextNode(l.toString()))\n }\n //there might be a better way to handle this...\n else if (isArray(l))\n forEach(l, item)\n else if(isNode(l))\n e.appendChild(r = l)\n else if(l instanceof Text)\n e.appendChild(r = l)\n else if ('object' === typeof l) {\n for (var k in l) {\n if('function' === typeof l[k]) {\n if(/^on\\w+/.test(k)) {\n (function (k, l) { // capture k, l in the closure\n if (e.addEventListener){\n e.addEventListener(k.substring(2), l[k], false)\n cleanupFuncs.push(function(){\n e.removeEventListener(k.substring(2), l[k], false)\n })\n }else{\n e.attachEvent(k, l[k])\n cleanupFuncs.push(function(){\n e.detachEvent(k, l[k])\n })\n }\n })(k, l)\n } else {\n // observable\n e[k] = l[k]()\n cleanupFuncs.push(l[k](function (v) {\n e[k] = v\n }))\n }\n }\n else if(k === 'style') {\n if('string' === typeof l[k]) {\n e.style.cssText = l[k]\n }else{\n for (var s in l[k]) (function(s, v) {\n if('function' === typeof v) {\n // observable\n e.style.setProperty(s, v())\n cleanupFuncs.push(v(function (val) {\n e.style.setProperty(s, val)\n }))\n } else\n var match = l[k][s].match(/(.*)\\W+!important\\W*$/);\n if (match) {\n e.style.setProperty(s, match[1], 'important')\n } else {\n e.style.setProperty(s, l[k][s])\n }\n })(s, l[k][s])\n }\n } else if(k === 'attrs') {\n for (var v in l[k]) {\n e.setAttribute(v, l[k][v])\n }\n }\n else if (k.substr(0, 5) === \"data-\") {\n e.setAttribute(k, l[k])\n } else {\n e[k] = l[k]\n }\n }\n } else if ('function' === typeof l) {\n //assume it's an observable!\n var v = l()\n e.appendChild(r = isNode(v) ? v : document.createTextNode(v))\n\n cleanupFuncs.push(l(function (v) {\n if(isNode(v) && r.parentElement)\n r.parentElement.replaceChild(v, r), r = v\n else\n r.textContent = v\n }))\n }\n\n return r\n }\n while(args.length)\n item(args.shift())\n\n return e\n }\n\n h.cleanup = function () {\n for (var i = 0; i < cleanupFuncs.length; i++){\n cleanupFuncs[i]()\n }\n cleanupFuncs.length = 0\n }\n\n return h\n}\n\nvar h = module.exports = context()\nh.context = context\n\nfunction isNode (el) {\n return el && el.nodeName && el.nodeType\n}\n\nfunction forEach (arr, fn) {\n if (arr.forEach) return arr.forEach(fn)\n for (var i = 0; i < arr.length; i++) fn(arr[i], i)\n}\n\nfunction isArray (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]'\n}\n\n\n\n},{\"browser-split\":6,\"class-list\":10,\"html-element\":5}],33:[function(_dereq_,module,exports){\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n},{}],34:[function(_dereq_,module,exports){\n\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n if (indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};\n},{}],35:[function(_dereq_,module,exports){\nif (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n},{}],36:[function(_dereq_,module,exports){\nvar containers = []; // will store container HTMLElement references\nvar styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement}\n\nvar usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).';\n\nfunction insertCss(css, options) {\n options = options || {};\n\n if (css === undefined) {\n throw new Error(usage);\n }\n\n var position = options.prepend === true ? 'prepend' : 'append';\n var container = options.container !== undefined ? options.container : document.querySelector('head');\n var containerId = containers.indexOf(container);\n\n // first time we see this container, create the necessary entries\n if (containerId === -1) {\n containerId = containers.push(container) - 1;\n styleElements[containerId] = {};\n }\n\n // try to get the correponding container + position styleElement, create it otherwise\n var styleElement;\n\n if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) {\n styleElement = styleElements[containerId][position];\n } else {\n styleElement = styleElements[containerId][position] = createStyleElement();\n\n if (position === 'prepend') {\n container.insertBefore(styleElement, container.childNodes[0]);\n } else {\n container.appendChild(styleElement);\n }\n }\n\n // strip potential UTF-8 BOM if css was read from a file\n if (css.charCodeAt(0) === 0xFEFF) { css = css.substr(1, css.length); }\n\n // actually add the stylesheet\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText += css\n } else {\n styleElement.textContent += css;\n }\n\n return styleElement;\n};\n\nfunction createStyleElement() {\n var styleElement = document.createElement('style');\n styleElement.setAttribute('type', 'text/css');\n return styleElement;\n}\n\nmodule.exports = insertCss;\nmodule.exports.insertCss = insertCss;\n\n},{}],37:[function(_dereq_,module,exports){\n/*! npm.im/intervalometer */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction intervalometer(cb, request, cancel, requestParameter) {\n\tvar requestId;\n\tvar previousLoopTime;\n\tfunction loop(now) {\n\t\t// must be requested before cb() because that might call .stop()\n\t\trequestId = request(loop, requestParameter);\n\n\t\t// called with \"ms since last call\". 0 on start()\n\t\tcb(now - (previousLoopTime || now));\n\n\t\tpreviousLoopTime = now;\n\t}\n\treturn {\n\t\tstart: function start() {\n\t\t\tif (!requestId) { // prevent double starts\n\t\t\t\tloop(0);\n\t\t\t}\n\t\t},\n\t\tstop: function stop() {\n\t\t\tcancel(requestId);\n\t\t\trequestId = null;\n\t\t\tpreviousLoopTime = 0;\n\t\t}\n\t};\n}\n\nfunction frameIntervalometer(cb) {\n\treturn intervalometer(cb, requestAnimationFrame, cancelAnimationFrame);\n}\n\nfunction timerIntervalometer(cb, delay) {\n\treturn intervalometer(cb, setTimeout, clearTimeout, delay);\n}\n\nexports.intervalometer = intervalometer;\nexports.frameIntervalometer = frameIntervalometer;\nexports.timerIntervalometer = timerIntervalometer;\n},{}],38:[function(_dereq_,module,exports){\n/*! npm.im/iphone-inline-video 2.2.2 */\n'use strict';\n\nvar intervalometer = _dereq_('intervalometer');\n\nfunction preventEvent(element, eventName, test) {\n\tfunction handler(e) {\n\t\tif (!test || test(element, eventName)) {\n\t\t\te.stopImmediatePropagation();\n\t\t\t// // console.log(eventName, 'prevented on', element);\n\t\t}\n\t}\n\telement.addEventListener(eventName, handler);\n\n\t// Return handler to allow to disable the prevention. Usage:\n\t// const preventionHandler = preventEvent(el, 'click');\n\t// el.removeEventHandler('click', preventionHandler);\n\treturn handler;\n}\n\nfunction proxyProperty(object, propertyName, sourceObject, copyFirst) {\n\tfunction get() {\n\t\treturn sourceObject[propertyName];\n\t}\n\tfunction set(value) {\n\t\tsourceObject[propertyName] = value;\n\t}\n\n\tif (copyFirst) {\n\t\tset(object[propertyName]);\n\t}\n\n\tObject.defineProperty(object, propertyName, {get: get, set: set});\n}\n\nfunction proxyEvent(object, eventName, sourceObject) {\n\tsourceObject.addEventListener(eventName, function () { return object.dispatchEvent(new Event(eventName)); });\n}\n\nfunction dispatchEventAsync(element, type) {\n\tPromise.resolve().then(function () {\n\t\telement.dispatchEvent(new Event(type));\n\t});\n}\n\nvar iOS8or9 = typeof document === 'object' && 'object-fit' in document.head.style && !matchMedia('(-webkit-video-playable-inline)').matches;\n\nvar IIV = 'bfred-it:iphone-inline-video';\nvar IIVEvent = 'bfred-it:iphone-inline-video:event';\nvar IIVPlay = 'bfred-it:iphone-inline-video:nativeplay';\nvar IIVPause = 'bfred-it:iphone-inline-video:nativepause';\n\n/**\n * UTILS\n */\n\nfunction getAudioFromVideo(video) {\n\tvar audio = new Audio();\n\tproxyEvent(video, 'play', audio);\n\tproxyEvent(video, 'playing', audio);\n\tproxyEvent(video, 'pause', audio);\n\taudio.crossOrigin = video.crossOrigin;\n\n\t// 'data:' causes audio.networkState > 0\n\t// which then allows to keep